Verzögerung in Regeln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
gizzmo112
Beiträge: 17
Registriert: 8. Jan 2018 17:42
Answers: 0

Verzögerung in Regeln

Beitrag von gizzmo112 »

Hallo zusammen,

nachdem ich gerstern meinen SonOff Pow erfolgreich in OpenHab eingebunden haben und jetzt auch die Leistungsdaten messen und auswerten kann, möchte ich diesen nutzen, um mit einer Hue anzuzeigen, wann die Waschmaschine fertig ist.

Dafür habe ich folgende Regel geschrieben:

Code: Alles auswählen

rule "Meldung Waschmaschine fertig"

when

Item Sonoffswitch_05_Power changed 

then

if (Sonoffswitch_05_Power.state > 1 && Sonoffswitch_05_Power.state <5)

			{
	val Vorher1 = storeStates(Light3_Toggle,Light3_Dimmer,Light3_Color)
	Light3_Color.sendCommand("252,96,100") //Lampe 3 blau
	Light3_Alert.sendCommand("LSELECT") //Lampe 3 Alarm
	createTimer(now.plusSeconds(15)) [| restoreStates(Vorher1) ]
			}
end
Das funktioniert soweit auch ganz gut, allerdings ist der Stromverbrauch bei der Waschmaschine nicht so konstant hoch wie beim Trocker und fällt immer mal wieder unter die Grenze für das Auslösen der Meldung. Ich müsste die Regel so erweitern, dass der Wert für eine bestimmte Zeit unter dem Schwellenwert liegen muss und dann erst die Lampe geschaltet wird. Und das kriege ich als Newbee so nicht hin und würde euch um Rat bitten.

Danke im Voraus und ein schönes Wochenende,

Stefan

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41
Answers: 0

Re: Verzögerung in Regeln

Beitrag von hr3 »

Thread::sleep(1000) oder Timer https://community.openhab.org/t/thread- ... rules/6529
und dann nochmals prüfen, ggf. mehrfach wiederholen.

Aber Achtung, der nächste Wechsel ruft eine neue Instanz dieser Regel auf, sodaß diese dann ggf. parallel mehrfach läuft.
Sonst zusätzlich Zeit der Wertunterschreitung in Variable speichern und bei Überschreitung löschen. Wenn der Wert nach der Wartezeit noch gesetzt ist, dann reagieren. Wenn bereits gesetzt, dann ohne regel ohne Verzögerung beenden.

gizzmo112
Beiträge: 17
Registriert: 8. Jan 2018 17:42
Answers: 0

Re: Verzögerung in Regeln

Beitrag von gizzmo112 »

Wie müsste der Code dann aussehen? Wo muss der der "sleep" eingefügt werden, bzw. wie löse ich dann die nochmalige Prüfung des Werts aus?

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41
Answers: 0

Re: Verzögerung in Regeln

Beitrag von hr3 »

Code: Alles auswählen

if (Sonoffswitch_05_Power.state > 1 && Sonoffswitch_05_Power.state <5) {
   Thread::sleep(1000)
   if (Sonoffswitch_05_Power.state > 1 && Sonoffswitch_05_Power.state <5) {
Damit wird z.B. eine Sekunde später nochmals überprüft, ohne darauf zu reagieren, was ggf. zwischendurch passiert ist.

gizzmo112
Beiträge: 17
Registriert: 8. Jan 2018 17:42
Answers: 0

Re: Verzögerung in Regeln

Beitrag von gizzmo112 »

Danke. Werd ich probieren!

gizzmo112
Beiträge: 17
Registriert: 8. Jan 2018 17:42
Answers: 0

Re: Verzögerung in Regeln

Beitrag von gizzmo112 »

Der Einbau des "sleep" hat funktioniert, aber ich stehe jetzt vor dem nächsten Problem:

da ich für die Überwachung der Waschmaschine den Takt der Daten aus dem Sonoff recht kurz gewählt habe, schaufelt der Sonoff dementsprechend viele Daten rüber. Deshalb würde ich gerne die Datenmenge bei Nichtnutzung der Maschine reduzieren und dafür das Sendeintervall per "Teleperiod" Befehl an den Sonoff verlängern wollen.
Ich habe aber nicht gefunden, wie man einen einzelnen Config-Befehl über MQTT an den Tasmota schickt. Kann man den Befehl direkt in den rules anlegen, oder muss ein entsprechendes Item angelegt werden?
Als Befehl würde ich dann folgendes schicken, bin mir aber auch nicht sicher, ob das richtig ist:

Code: Alles auswählen

{ mqtt=">[mosquitto:cmnd/Sonoff_3B7BB5/TelePeriod:command:*:600]" }
Danke für eure Hilfe!

mikshe
Beiträge: 3
Registriert: 30. Nov 2017 19:26
Answers: 0

Re: Verzögerung in Regeln

Beitrag von mikshe »

gizzmo112 hat geschrieben: 3. Feb 2018 12:48 nachdem ich gerstern meinen SonOff Pow erfolgreich in OpenHab eingebunden haben und jetzt auch die Leistungsdaten messen und auswerten kann, möchte ich diesen nutzen, um mit einer Hue anzuzeigen, wann die Waschmaschine fertig ist.

[...]

Das funktioniert soweit auch ganz gut, allerdings ist der Stromverbrauch bei der Waschmaschine nicht so konstant hoch wie beim Trocker und fällt immer mal wieder unter die Grenze für das Auslösen der Meldung. Ich müsste die Regel so erweitern, dass der Wert für eine bestimmte Zeit unter dem Schwellenwert liegen muss und dann erst die Lampe geschaltet wird.
Das Tutorial Washing Machine State Machine könnte Dir da weiterhelfen!

Antworten