Re: Rules: Triggern von nur einem Zustand innerhalb der ".map" Datei (IR Fernbedienung)
Verfasst: 5. Nov 2020 19:05
Okey, die Ablaufsteuerung mit einer Zählervariablen ähnlich in dem Beispiel von Peter macht für mich Sinn.
Ich habe allerdings keine Rückmeldung der Geräte wenn ich die IR-Befehle sende, somit kann ich keine Bedingungen verwenden.
Würde ich dann trotzdem das .reschedule in meinem Falle nutzen?
Ich verstehe es so, dass ich reschedule nur nutze wenn ich innerhalb des Timers den Loop solange wiederholen möchte bis Bedingung x erfüllt ist (in meinem Fall habe ich ja keinen Bedingungen)
Mein Ziel ist es, die Steckdose bei triggern der Rule einzuschalten, 15 Sekunden warten bis ESP hochgefahren ist und per IR-Befehlt die Anlage anzuschalten. 5 Sekunden nach dem Anschalten der Anlage kann ich dann auf den korrekten Input der Anlage schalten.
Sprich ich will ein Thread:sleep innerhalb eines Thread:sleep benutzen, im besten falle mit dem selben Timer.
kann man den selben Timer hintereinande erstellen wie in meiner Rule hier?
Und wann müsste ich den Timer nullen? Immer bevor ich ihn neu anlege oder schickt es einmalig vor Ende der Rule?
Hab mir schon mehrere Design Patterns im Englischen Forum angeschaut aber ich glaube das hat mich jetzt noch mehr verwirrt
Ich habe allerdings keine Rückmeldung der Geräte wenn ich die IR-Befehle sende, somit kann ich keine Bedingungen verwenden.
Würde ich dann trotzdem das .reschedule in meinem Falle nutzen?
Ich verstehe es so, dass ich reschedule nur nutze wenn ich innerhalb des Timers den Loop solange wiederholen möchte bis Bedingung x erfüllt ist (in meinem Fall habe ich ja keinen Bedingungen)
Mein Ziel ist es, die Steckdose bei triggern der Rule einzuschalten, 15 Sekunden warten bis ESP hochgefahren ist und per IR-Befehlt die Anlage anzuschalten. 5 Sekunden nach dem Anschalten der Anlage kann ich dann auf den korrekten Input der Anlage schalten.
Sprich ich will ein Thread:sleep innerhalb eines Thread:sleep benutzen, im besten falle mit dem selben Timer.
kann man den selben Timer hintereinande erstellen wie in meiner Rule hier?
Und wann müsste ich den Timer nullen? Immer bevor ich ihn neu anlege oder schickt es einmalig vor Ende der Rule?
Hab mir schon mehrere Design Patterns im Englischen Forum angeschaut aber ich glaube das hat mich jetzt noch mehr verwirrt

Code: Alles auswählen
var Timer tSzene_TV=null
rule "Szene TV"
when
Item Szene_TV changed from OFF to ON // Schalter zum aktivieren der Szene
then
WZ_TVLampe.sendCommand(ON)
ShellyPlugS_7A35C0_Power.sendCommand(ON) //Fernseher
tSzene_TV?.cancel // Falls Timer läuft stoppen
tSzene_TV = createTimer(now.plusSeconds (15))[| // Abwarten bis ESP hochgefahren ist
IR_Control.sendCommand("IRSEND,NEC,0x400501FE,32") // Logitech Z906 "Power" --> (ircodes.map)
tSzene_TV = createTimer(now.plusSeconds (5))[| // Abwarten bis Anlage an ist
IR_Control.sendCommand("IRSEND,NEC,0x400530CF,32") // Logitech Z906 "Input 3/ TV" --> (ircodes.map)
]
tSzene_TV = null // Timer = 0
]
tSzene_TV = createTimer(now.plusSeconds (5))[| // Ausschalten nach 5 Sekunden
Szene_TV.sendCommand(OFF) // Wiederausschalten des Szenenswitchs
tSzene_TV = null // Timer = 0
]
end