NEWS
Lötstation
-
Hallo.
Letzte Woche habe ich vergessen meine Lötstation auszuschalten. Das habe ich erst nach 3 Tage gemerkt. Die Stromrechnung kommt noch
Um sowas zu vermeiden habe ich mir Shelly Plug S besorgt und kleinen Script geschrieben . Wenn ich das wieder vergesse soll die Station automatisch nach 30 Minuten ausgehen und ich soll eine Benachrichtigung bekommen.Die Benachrichtigung kommt aber sowieso , auch wenn ich die Lötstation ganz normal ausschalte .
Warum ? Ich habe doch stop timeout verwendet . -
Statt „wert von ObjektID“ nimm aus dem trigger die „ObjekteID“ und wähle deren „Wert“.
„Sonst falls“ kannst du weg lassen und nur „sonst“ nehmen und den Timer stoppen.
-
@umbrella1980 Das liegt daran, dass zig Timer gestartet werden, während sich Power ändert. Angenommen der Wert aktualisiert sich ständig:
- 2,5
- 4
- 3
- 2,5
- …
Dann hättest Du jetzt 4 Timer gestartet, welche alle eine Nachricht senden. Abgebrochen würde nur der letzte. Du musst Dir merken, ob schon ein Timeout gestartet wurde und nur einen starten.
-
@umbrella1980 da sich aber auch die Leistung >2W ändert wird jedesmal ein neuer timeout angestoßen ohne dass der laufende gleiche Timeout vorher gestoppt wird. Das führt dazu, dass er nie wieder gestoppt werden kann.
-
Probiere mal das. Musst noch das Telegram einsetzen
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=r+sx9%s_u2/DdGv[47j">Loetstation</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="?U7-D#UY_B(9(uetx{sP" x="38" y="13"> <field name="OID">Object ID</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="D_:PZjkF:ZT[VKsp@J[F"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="k+^OUi5~-Nrwt3:`9SS@"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="4Y#?FVP~dSXv|?PON78O"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="qe32shB/-,A^WG3Z61e|"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="SwxS,API^nKrqPAbx{Rl"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")BP;dc$qBF7k.?iIxEVo"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="$;En?G18$hSx#y%(O.Je"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3mVl]C@*f%=XjVD+hQqn"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="0N.W0*Ih0;#nP0*gTYa;"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> <value name="VALUE"> <block type="logic_boolean" id="t}q_yRH?{7g18rDyjQFp"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="ITq1j/=hJfY/8g,Jm]l)"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">min</field> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="H$r@m=ciam@K#rKqH~vq"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="wW)VFg{${`Ba-j}A8_gT"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> <value name="VALUE"> <block type="logic_boolean" id="b[3S~3y`z*WFrjj66!$b"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@umbrella1980 du bist nicht der erste der das Problem hatte ...
Da auf meinen Plugs Tasmota ist habe ich eine Rule erstellt die spätestens nach 2h die Lötstation wieder ausschaltet.
Also auch ohne ioBroker.
Gibt auf dem Shelly direkt keine Timer? -
@tt-tom sagte in Lötstation:
Probiere mal das. Musst noch das Telegram einsetzen
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=r+sx9%s_u2/DdGv[47j">Loetstation</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="?U7-D#UY_B(9(uetx{sP" x="38" y="13"> <field name="OID">Object ID</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="D_:PZjkF:ZT[VKsp@J[F"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="k+^OUi5~-Nrwt3:`9SS@"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="4Y#?FVP~dSXv|?PON78O"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="qe32shB/-,A^WG3Z61e|"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="SwxS,API^nKrqPAbx{Rl"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")BP;dc$qBF7k.?iIxEVo"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="$;En?G18$hSx#y%(O.Je"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3mVl]C@*f%=XjVD+hQqn"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="0N.W0*Ih0;#nP0*gTYa;"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> <value name="VALUE"> <block type="logic_boolean" id="t}q_yRH?{7g18rDyjQFp"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="ITq1j/=hJfY/8g,Jm]l)"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">min</field> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="H$r@m=ciam@K#rKqH~vq"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="wW)VFg{${`Ba-j}A8_gT"> <field name="VAR" id="=r+sx9%s_u2/DdGv[47j">Loetstation</field> <value name="VALUE"> <block type="logic_boolean" id="b[3S~3y`z*WFrjj66!$b"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Die Variable "loetstation" kann man sich auch sparen und direkt abfragen, ob der Timer schon läuft.
So in der Art:
-
@bananajoe Gibt auf dem Shelly direkt keine Timer?
Ja die gibt es. Auto on und off, sowie Wochen Timer.
-
@david-g sagte: So in der Art:
So wird der Timeout beim nächsten Trigger gleich wieder gestoppt, egal wir groß der Wert ist.
Deshalb so: -
@umbrella1980 Das Konstrukt, welches ich hier im Forum bisher sehr häufig gesehen habe ist sowas wie:
Falls Wert > 2 und Alter Wert <= 2: Timer starten... sonst Falls Wert <= 2: Timer stoppen
Die erste Abfrage sorgt dafür, dass der Timer nur gestartet wird, wenn der Wert die Grenze überschreitet, die zweite Abfrage sorgt dafür, dass ansonsten der Timer nur angehalten wird, wenn der Wert die Grenze unterschreitet.
Sorry, ich habe gerade kein Blockly zur Verfügung, ich hoffe, es wurde trotzdem klar was ich meinte.
Edit: Oder natürlich so wie @paul53 gerade noch ergänzt hat
-
@zarello sagte: sehr häufig gesehen habe
Eine Alternative zu "sonst falls nicht timeout" ist "sonst falls vorheriger Wert <= 2".
-
@paul53 Ja, viele Wege führen nach Rom
-
Vielen Dank für eure Hilfe . Das ich doch bisschen schwerer als ich gedacht habe.
Natürlich kann ich das Shelly mit Timer automatisch ausschalten lassen aber dann muss ich jedes Mal die Lötstation mit dem Schalter am Shelly Plug einschalten. Bisschen unpraktisch da die Steckdose versteckt ist.Das Script funktioniert aber nicht ganz .Bestimmt habe ich irgendwo einen Fehler gemacht. Das Shelly schaltet die Station automatisch aus , aber auch wenn ich die mit dem Schalter ganz normal ausschalte - also immer nach 30 Minuten .
-
@umbrella1980
Die Vergleichswerte müssen identisch sein!Rest gelöscht.
-
@umbrella1980 sagte in Lötstation:
Das Shelly schaltet die Station automatisch aus , aber auch wenn ich die mit dem Schalter ganz normal ausschalte - also immer nach 30 Minuten .
aber doch immer nach 30 Minuten nach dem Anschalten und nicht 30 Minuten nach dem manuellen ausschalten, oder?
du hast ja auch mit wert>2 eine weitere kontraproduktive Bedingung eingebaut.
-
@paul53 Muss es nicht in beiden Abfragen "<= 2" heißen statt "> 2"?
-
@zarello sagte: Muss es nicht in beiden Abfragen "<= 2" heißen statt "> 2"?
Nein: "> 2"
Bei "Wert > 2" muss der Timeout gestoppt werden.
Bei erstmaligem Unterschreiten von 2 (Wert <= 2 UND vorheriger Wert > 2) wird Timeout gestartet. -
@paul53 Aber der Timeout soll doch starten, wenn die Lötstation eingeschaltet wird (also Power > 2) und abgebrochen werden, wenn die Lötstation normal ausgeschaltet wird und damit kein Strom mehr verbraucht (also Power < 2).
-
@zarello
Ich bin davon ausgegangen, dass die Lötstation in eine Art "Standby" mit einer Leistungsaufnahme < 2 W geht. Falls nicht, hast Du natürlich recht.EDIT: Habe die ersten Beiträge noch mal angeschaut und korrigiert:
-
@umbrella1980
Hier nochmal die korrekten Bedingungen: