Mit einem POW ein MQTT Nachricht absetzen wenn der Leistungswert über eine gewisse Zeit (10 min) unter einen Grenzwert fällt:
rule1 on Energy#Power<3.5 do rule2 1 endon on Energy#Power>4.5 do rule2 0 endon
rule2 on Energy#Power<3.5 do ruletimer1 600 endon on rules#timer=1 do publish stat/<TOPIC> OFF endon
Rule1 1 zum akivieren der Rule1
Rule1 5 um Rul1 auf once zu setzten damit sie nicht permanent triggert.
Rule2 5 um Rule2 auf once zu setzen, falls diese noch nicht der Fall ist
Erklärung:
Rule1:
Wenn der Leistungsbezug kleiner 3,5W wird, wird Rule2 aktiviert. Wird der Leistungswert größer 4,5W wird Rule2 deaktiviert.
Rule2:
Wenn aktiviert, läuft bei einem Leistungswert kleiner 3,5W Der Timer an, wartet 600 Sekunden und setzte eine MQTT Message ab. Das kann natürlich auch durch einen Websend ersetzt werden, ganz nach belieben.
Wird während der Timer läuft der Leistungswert größer 4,5W wird die Rule 2 deaktiviert und nichts passiert. Fällt der Der Wert unter 3,5W wird Rule2 erneut aktiv und der Timer fängt wieder von vorne an.
Kommentare 11
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
BeatMaster
Coole Sache, ich überlege so etwas für unseren Trockner zu realisieren.
Aber ich habe keine IO Broker, oder MQTT Dienst.
Meine Idee wäre, wenn ich Websend richtig interpretiere, die Rule einfach eine URL aufrufen zu lassen.
Die URL wäre dann das Maker/Webhook Event von Ifft. Da könnte ich dahinter ja verschiedene Sachen machen. Push Nachricht, LED Blinken, E-Mail versenden, etc.
Dann wäre die 2. Zeile:
rule2 on Energy#Power<3.5 do ruletimer1 600 endon on rules#timer=1 do websend https://maker.ifttt.com/trigger/{event}/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Gerade das mit Ifttt getestet, also wenn der Sonoff die Url aufrufen könnte, dann bekomme ich per ifft die Nachricht, das der Trockner fertig ist.
Könnte man auch noch eine 2. URL aufrufen mit der gleichen Regel, da er direkt dahinter noch die 2. websend message rausjagt?
Falls das geht, hänge ich hier das Tutorial mit dran.
HoerMirAuf
Hi.
geht mit backlog:
rule2 on Energy#Power<3.5 do ruletimer1 600 endon on rules#timer=1 do backlog websend <url1>; websend <url2> endon
BeatMaster
Mein Held. Danke.
Ich bestelle mir mal einen Pow und flashe den. Bisher hatte ich noch keinen. Aber allein für den Einsatz ist es mir Wert.
Dann kann ich mit nem 2. Trigger evtl. noch die Beleuchtung im Flur und Küche blinken lassen.
Danke schön.
BeatMaster
der Websend Befehl musste etwas angepasst werden.
rule1 on Energy#Power<10 do rule2 1 endon on Energy#Power>110 do rule2 0 endon
rule2 on Energy#Power<10 do ruletimer1 10 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxx endon
Ich habe die Werte aus folgenden Grund gewählt, vielleicht liege ich ja falsch.
Der Trockner geht nach dem Trocknungsvorgang in den Standby.
Watt zwischen 3 und 8 wechselt er.
Aber er hat ja das Knitterschutzprogramm, wo er die Trommel weiter dreht, da geht dann die Wattzahl kurzzeitig bis ca. 90 hoch.
Deshalb habe ich den oberen Wert auf 110 gesetzt und den niedrigen auf 10. Weil er ja mit dem Trocknen fertig ist.
Woher weiß die Regel eigentlich, das Sie den Timer wieder von vorne starten muss. Wäre das, wenn der Schwellenwert bei mir von 110 Watt wieder überschritten wurde?
BeatMaster
kurzer Log. Kurz eingeschaltet damit die Wattzahl hoch geht, danach aus.
20:50:38 RUL: ENERGY#POWER>10 performs "rule2 0"
20:50:38 RSL: RESULT = {"Rule2":"OFF","Once":"ON","StopOnError":"OFF","Free":337,"Rules":"on Energy#Power<9 do ruletimer1 10 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxxc endon"}
20:50:40 RUL: ENERGY#POWER>10 performs "rule2 0"
20:50:40 RSL: RESULT = {"Rule2":"OFF","Once":"ON","StopOnError":"OFF","Free":337,"Rules":"on Energy#Power<9 do ruletimer1 10 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxx endon"}
20:50:42 RUL: ENERGY#POWER>10 performs "rule2 0"
20:50:42 RSL: RESULT = {"Rule2":"OFF","Once":"ON","StopOnError":"OFF","Free":337,"Rules":"on Energy#Power<9 do ruletimer1 10 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxx endon"}
hier kommt der Wechsel:
20:50:44 RUL: ENERGY#POWER<9 performs "rule2 1"
20:50:44 RSL: RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Free":337,"Rules":"on Energy#Power<9 do ruletimer1 10 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxx endon"}
20:50:44 RUL: ENERGY#POWER<9 performs "ruletimer1 10"
Ich habe jetzt heute morgen noch mal ein paar Zeilen angehangen.
07:30:28 RSL: RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Free":234,"Rules":"on Energy#Power<10.0 do ruletimer1 9 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxxxxxxx; websend [maker.ifttt.com:80]/trigger/trockner4/with/key/xxxxxxxxxxx endon"}
07:30:28 RUL: ENERGY#POWER<10.0 performs "ruletimer1 9"
07:30:28 RSL: RESULT = {"T1":9,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
07:30:30 RUL: ENERGY#POWER<10.0 performs "rule2 1"
07:30:30 RSL: RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Free":234,"Rules":"on Energy#Power<10.0 do ruletimer1 9 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxxxxxxx; websend [maker.ifttt.com:80]/trigger/trockner4/with/key/xxxxxxxxxxx endon"}
07:30:30 RUL: ENERGY#POWER<10.0 performs "ruletimer1 9"
07:30:30 RSL: RESULT = {"T1":9,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
07:30:31 RUL: ENERGY#POWER<10.0 performs "rule2 1"
07:30:31 RSL: RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Free":234,"Rules":"on Energy#Power<10.0 do ruletimer1 9 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxxxxxxx; websend [maker.ifttt.com:80]/trigger/trockner4/with/key/xxxxxxxxxxx endon"}
07:30:31 RUL: ENERGY#POWER<10.0 performs "ruletimer1 9"
07:30:31 RSL: RESULT = {"T1":9,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
07:30:33 RUL: ENERGY#POWER<10.0 performs "rule2 1"
07:30:33 RSL: RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Free":234,"Rules":"on Energy#Power<10.0 do ruletimer1 9 endon on rules#timer=1 do backlog websend [maker.ifttt.com:80]/trigger/trockner1/with/key/xxxxxxxxxxx; websend [maker.ifttt.com:80]/trigger/trockner4/with/key/xxxxxxxxxxx endon"}
07:30:33 RUL: ENERGY#POWER<10.0 performs "ruletimer1 9"
Er setzt kein Websend ab.
Setzte ich den Timer auf eine Sekunde (ruletimer1 1), dann kommen die Meldungen gleich nacheinander und er hört gar nicht mehr auf.
Wo liegt hier noch der Fehler?
Irgendwie zählt er einfach nicht den Timer runter, oder verstehe ich das falsch?
Selbst Timer 2 geht schon nicht mehr.
/EDIT: Ich habe die Beiträge von mir mal aufgeräumt.
HoerMirAuf
Heiligs Blechle.
Wer soll denn da noch durchblicken?
Also:
rule2 on Energy#Power<3.5 do ruletimer1 600 endon on rules#timer=1 do publish stat/<TOPIC> OFF endon
Der Ruletimer wird nur dann neu gestartet, wenn a: die Rule2 aktiv ist, b: der Wert kleiner 3,5 ist.
Damit die die rule nicht in ner schleife läuft wird deshalb rule2 5 also "once" aktiviert. Sprich, die ruzle wird bei "mehrfach aufruf" nur einmalig ausgeführt. ich denke mal deshalb triggert Dein Timer dauernd. Kein "ONCE" gesetzt.
Deine Wert mit 110 ist nicht notig, alles über 10W sagt ja aus der Trockner ist an. Wenn du 110 wählst die niemals erreicht wird dann wird auch nie als "nicht aus" defniert. logisch oder?
Wenn er zwischen 3 und 8 Watt wechselst, würde ich sagen er ist sicher aus, wenn der Wert UNTER 3 Watt fällt.
also Energy#Power<3 und Energy#Power>10