ich habe mir eine Rule erstellt, wenn in der Druckerwarteschlange Dokuemnte zu ausdrucken liegen, soll er den Drucker einschalten. Danach sobald der Spooler leer ist nach 5 Minuten wieder ausschalten:
Code: Alles auswählen
var Timer Drucker01Timer = null
rule "Drucker01_Jobs"
when
Item EG_Buero_Drucker01_JobsSpooler changed or
Item Homematic_EG_Buero_Drucker01_Scanner_Dose_Status changed or
Item EG_Buero_Drucker01_Status changed
then
// Kontrollieren ob Druckjobs vorhanden sind
if (EG_Buero_Drucker01_JobsSpooler.state != 0) {
// Ja, es sind Druckjobs vorhanden
logInfo("Drucker01_Jobs", EG_Buero_Drucker01_JobsSpooler.state+" queued job(s) found")
// Abschalttimer reseten
if (Drucker01Timer!==null) {
logInfo("Drucker01", "Abschalttimer reseten")
Drucker01Timer.cancel
Drucker01Timer=null
}
// Drucker einschalten falls ausgeschaltet
if (Homematic_EG_Buero_Drucker01_Dose_Status.state!=ON) {
logInfo("Drucker01", "Drucker01 ein")
sendCommand(Homematic_EG_Buero_Drucker01_Dose_Status,ON)
} else {
logInfo("Drucker01", "Drucker01 aus")
}
} else {
// Keine Druckjobs vorhanden
logInfo("Drucker01_Jobs", "Keine Druckjobs mehr vorhanden")
// Drucker im Energiesparmodus?
if (EG_Buero_Drucker01_Status.state==1) {
logInfo("Drucker01", "Drucker01 ist im Energiesparmodus, ausschalten in 5 Minuten")
// Drucker01 ausschalten in 5 minuten
// Bei drucken wöhrend Timer läuft, Timer reset
Drucker01Timer = createTimer(now.plusMinutes(5)) [|
sendCommand(Homematic_EG_Buero_Drucker01_Dose_Status,OFF)
]
} else {
logInfo("Drucker01", "Drucker01 ist nicht mehr im ENergiesparmodus ("+EG_Buero_Drucker01_Status.state+"), warten auf Energiesparmodus")
// Reset Timer wenn Druckjob oder Status ändert
if (Drucker01Timer!==null) {
logInfo("Drucker01", "Reset laufender Timer zum ausschalten")
Drucker01Timer.cancel
Drucker01Timer=null
}
}
}
end
Nun zu meinem Problem. Der betroffene Drucker, ist ein Kompi Gerät. Nun, wenn ich etwas einscannen möchte, und den Drucker einschalte, wird er nach 5 Minuten, wie in meiner Regel wieder ausgeschaltet, da ja keine Druckaufträge vorhanden sind.
Nun möchte ich ein Switch Item erstellen: Scannen. Welches eigentlich den Drucker einschaltet und den Timer bzw. die Rule aussschaltet. Bis ich den Scanner Switch wieder auf Off stelle.
Hat jemand eine Idee, wie ich das realisieren könnte? Am besten iergendwie, wenn Switch ON, Timer ausschalten. Das selbe Problem werde ich auch mit meinen Garagentore später haben. Denn da möchte ich auch einen Timer setzten, falls ich aber mal in der Garage eine längere Zeit arbeite, würde ich auch da gerne den TImer ausschalten können.
Vielen Dank für eurer Hilfe.
Gruss Sandro