Rules Beispiel - Mit einem POW ein MQTT Nachricht absetzen wenn der Leistungswert über eine gewisse Zeit (10 min) unter einen Grenzwert fällt

  • erstellt durch HoerMirAuf

    Mit einem POW ein MQTT Nachricht absetzen wenn der Leistungswert über eine gewisse Zeit (10 min) unter einen Grenzwert fällt:

    Code
    1. rule1 on Energy#Power<3.5 do rule2 1 endon on Energy#Power>4.5 do rule2 0 endon
    2. 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

    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.

Teilen

Kommentare 10

  • 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.

    • 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

    • 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.

    • 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?

    • kurzer Log. Kurz eingeschaltet damit die Wattzahl hoch geht, danach aus.




      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.

    • Heiligs Blechle.


      Wer soll denn da noch durchblicken?


      Also:

      Zitat

      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?

      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