ich habe mich jetzt ein wenig in openHAB eingearbeitet und dank eurer Hilfe auch schon etwas um Laufen gebracht. Danke hierfür.
Jetzt stehe ich allerdings komplett auf dem Schlauch.
Ich habe für jedes Rollo im Haus eine *.rules Datei erstellt. Diese sind bis auf den Rollo spezifischen Teil alle gleich.
Hier das Beispiel für das Rollo im Eltern Schlafzimmer:
Code: Alles auswählen
var Timer Rollo = null
var Timer tEltern = null
rule "Astro_Auf"
when
Channel 'astro:sun:home:civilDawn#event' triggered START
then
tEltern = createTimer(now.plusSeconds(7), [|
Eltern_Zu.sendCommand(OFF)
Eltern_Auf.sendCommand(ON)
logInfo("Rollo", "Eltern Auf")])
end
rule "Astro_Zu"
when
Channel 'astro:sun:home:civilDusk#event' triggered END
then
tEltern = createTimer(now.plusSeconds(7), [|
Eltern_Auf.sendCommand(OFF)
Eltern_Zu.sendCommand(ON)
logInfo("Rollo", "Eltern Zu")])
end
rule "Auf_Stop"
when
Item Eltern_Auf changed to ON
then
Eltern_Zu.sendCommand(OFF)
logInfo("Rollo", "Eltern Zu aus -Auf Stop Triggered")
Rollo?.cancel
Rollo = null
Rollo = createTimer(now.plusSeconds(20), [|
Eltern_Auf.sendCommand(OFF)
logInfo("Rollo", "Eltern Auf aus")])
end
rule "Zu_Stop"
when
Item Eltern_Zu changed to ON
then
Eltern_Auf.sendCommand(OFF)
logInfo("Rollo", "Eltern Auf aus - Zu Stop Triggered")
Rollo?.cancel
Rollo = null
Rollo = createTimer(now.plusSeconds(20), [|
Eltern_Zu.sendCommand(OFF)
logInfo("Rollo", "Eltern Zu aus")])
end
In den ersten beiden Regeln soll bei Morgen bzw. Abenddämmerung das entsprechende Rollo auf bzw. zu gefahren weden. Damit nicht beide Befehle am Aktor (Sonoff dual mit Tasmota per MQTT) anstehen wird vorher der Ggegenbefehl ausgeschaltet. Der Timer vor dem Befehl soll dazu dienen, zum Zeitpunkt des Triggers das WLAN zu entzerren und damit den Trafic im WLAN zu verteilen. Hier sollen die Aktoren mit 1 Sekunde Abstand angesteuert werden.
In den lezten beiden Regeln sollen die Aktoren nach der Laufzeit der Rollos wieder abgeschaltet werden (Abschaltregel). sobald der Aktor, egal von wo ( Taster opebHAB, Webinterface), eingeschaltet wird.
Zum Testen habe ich 5 Rollos mit dieser Regel angelegt. Den Rest habe ich nur mit der Abschaltregel angelegt. Vorher hatte ich alle Rollos nur mit der Abschaltregel angelegt. Diese haben funktioniert, wenn mann die Aktoren nicht zu schnell hintereinander betätigt hat. Bei zu schnellem Betätigen wurden die Reglen nicht alle getriggert (Kontrolle über die Log Ausgaben). Bei einenm Dämmerungs Event,wird ein Trigger ausgeführt, der Rest nicht.
Ab dem Zeitpunkt, zu dem ich die Absschaltregeln aktiviert habe funktioniert auch die Regel aus dem Beitrag viewtopic.php?f=15&t=3970, bei der mich udo1toni sehr hilfreich untersützt hat, auch nicht mehr.
Genug der Erklärung, nun zu einer Frage.
Kann es sein, das openHAB mit der Anzahl Trigger zum gleichne Zeitpunkt überlastet ist und nach der ersten Ausführung ohne Fehlermeldung blockiert? Oder habe ich in meiner Struktur einen Denkfehler?
Gruß
Markus