NEWS
Restlaufzeit Shelly Plug S
-
@tobrog Der angeschlossene Verbraucher (Gartenwasserpumpe) läuf 30 min und dann wird er ausgeschaltet. Die Restlaufziet, wenn die Pumpe zu fördern beginnt, bzw wann sie wieder aufhört, würde ich gerne visualisieren.
-
@erich-1 Wenn die Dose den Timer-Stand nicht in einem Datenpunkt ausgibt, sondern irgendwann kommentarlos wieder abschaltet, kann man nur einen "mitlaufenden" Timer in Blockly auf den Schalterzustand des Shelly starten.
Wenn man aber einen mitlaufenden Timer in Blockly gebastelt hat, kann der auch gleich das Ausschalten des Shelly erledigen, und man kann den Timer in der Shelly ad acta legen...
Solche verteilten "Ping-Pong" Spielchen zwischen Geräten/Domänen sind immer ein Quell von Mehr-Arbeit (Laufzeit muss an zwei Stellen geändert werden) und Ärger, wenn man nach längerer Zeit wieder "dran" muss (Wie war das noch...)
-
Ich möchte in meiner Visualisierung die Restlaufzeit eines Shelly Plug S anzeigen, jedoch hat das der Shelly Plug S offensichtlich nicht in seinen Datenpunkten.
Kennt sich da jemand hier aus und könnte mir einen Tipp geben, wie ich sowas realisieren kann?
-
@erich-1 Wenn die Dose den Timer-Stand nicht in einem Datenpunkt ausgibt, sondern irgendwann kommentarlos wieder abschaltet, kann man nur einen "mitlaufenden" Timer in Blockly auf den Schalterzustand des Shelly starten.
Wenn man aber einen mitlaufenden Timer in Blockly gebastelt hat, kann der auch gleich das Ausschalten des Shelly erledigen, und man kann den Timer in der Shelly ad acta legen...
Solche verteilten "Ping-Pong" Spielchen zwischen Geräten/Domänen sind immer ein Quell von Mehr-Arbeit (Laufzeit muss an zwei Stellen geändert werden) und Ärger, wenn man nach längerer Zeit wieder "dran" muss (Wie war das noch...)
@martinp said in Restlaufzeit Shelly Plug S:
Wenn man aber einen mitlaufenden Timer in Blockly gebastelt hat, kann der auch gleich das Ausschalten des Shelly erledigen, und man kann den Timer in der Shelly ad acta legen...
Ist reine Absicht, denn wenn der Shelly mal per App geschaltet wird, was durchaus mal vorkommen kann, dann schaltet er sich nach 30 min auch wieder aus.
-
@martinp said in Restlaufzeit Shelly Plug S:
Wenn man aber einen mitlaufenden Timer in Blockly gebastelt hat, kann der auch gleich das Ausschalten des Shelly erledigen, und man kann den Timer in der Shelly ad acta legen...
Ist reine Absicht, denn wenn der Shelly mal per App geschaltet wird, was durchaus mal vorkommen kann, dann schaltet er sich nach 30 min auch wieder aus.
-
@martinp said in Restlaufzeit Shelly Plug S:
Wenn man aber einen mitlaufenden Timer in Blockly gebastelt hat, kann der auch gleich das Ausschalten des Shelly erledigen, und man kann den Timer in der Shelly ad acta legen...
Ist reine Absicht, denn wenn der Shelly mal per App geschaltet wird, was durchaus mal vorkommen kann, dann schaltet er sich nach 30 min auch wieder aus.
-
@erich-1 sagte: wie ich sowas realisieren kann?
Z.B. per Blockly, das auch gleich den Shelly nach Ablauf der in einem Datenpunkt eingestellten Zeit ausschaltet.

@paul53 said in Restlaufzeit Shelly Plug S:
@erich-1 sagte: wie ich sowas realisieren kann?
Z.B. per Blockly, das auch gleich den Shelly nach Ablauf der in einem Datenpunkt eingestellten Zeit ausschaltet.

Hab das mal umgesetzt und es funktioniert auch recht gut. Einzigs, wenn die Zeit abgelaufen ist, dann zählt er in den Minus-Bereich einfach weiter ...
Da muss ich noch was einbauen.
-
@paul53 said in Restlaufzeit Shelly Plug S:
@erich-1 sagte: wie ich sowas realisieren kann?
Z.B. per Blockly, das auch gleich den Shelly nach Ablauf der in einem Datenpunkt eingestellten Zeit ausschaltet.

Hab das mal umgesetzt und es funktioniert auch recht gut. Einzigs, wenn die Zeit abgelaufen ist, dann zählt er in den Minus-Bereich einfach weiter ...
Da muss ich noch was einbauen.
@erich-1 sagte in Restlaufzeit Shelly Plug S:
Da muss ich noch was einbauen.
Eigentlich nicht, wenn dein Blockly exakt genauso aussieht.
Bitte zeigen!
-
@erich-1 sagte in Restlaufzeit Shelly Plug S:
Da muss ich noch was einbauen.
Eigentlich nicht, wenn dein Blockly exakt genauso aussieht.
Bitte zeigen!
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`3-s]Pi^V2d8N9J-76fO">Rest</variable> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="on" id=".0K53IaR?_D^E^0Qr5}A" x="63" y="88"> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="=VB)QX`VIsFqa?%dv*/+"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="VALUE"> <block type="math_arithmetic" id="eS{QUa6y@lfj^#6,Oh#m"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="7nK#jz~d3KX?o]fQ:M/w"> <field name="NUM">10</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="K~b;$sQw#)NjQwQh`Aw."> <field name="NUM">1</field> </shadow> <block type="get_value" id="P$3Tge$tbi#ee:DJmDR2"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Laufzeit</field> </block> </value> </block> </value> <next> <block type="timeouts_setinterval" id="OIwHQs|PCd5#%oEjIa7K"> <field name="NAME">Intervall</field> <field name="INTERVAL">6</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="s;cX%Jh7wG?9Q!7Jqy=;"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="DELTA"> <shadow type="math_number" id="Uivu%JL?GZJ%KmTMlk7;"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="7t(p,Syit;%jem/{G5!j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Restminuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="]3]MzdqtYE0:d;}ou0b-"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="1yb@9@Vr^BR+-y4E?QsB"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="!~y2XoKP0yV0OQyK8pTw"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <shadow type="math_number" id="|nHD{4P4Q+|Wekr{5[Sj"> <field name="NUM">10</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="oVv#NBAx]^NjD$#isELN"> <value name="IF0"> <block type="logic_compare" id="r/.r#tf.+]ku0qZxOpfa"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id=".3XFGd.-1ZO~#./41o^v"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <block type="math_number" id="VeJQlK+PMZ4{+In3D*Cc"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=".Swg1BM$Y*6{hK:7giFF"> <field name="NAME">Intervall</field> <next> <block type="control" id="zv)}0mRZW|7pJKeJD(5w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6,b[sF=en3kx5ZbgERlr"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>MOD-EDIT: Code in code-tags gesetzt!
-
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`3-s]Pi^V2d8N9J-76fO">Rest</variable> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="on" id=".0K53IaR?_D^E^0Qr5}A" x="63" y="88"> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="=VB)QX`VIsFqa?%dv*/+"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="VALUE"> <block type="math_arithmetic" id="eS{QUa6y@lfj^#6,Oh#m"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="7nK#jz~d3KX?o]fQ:M/w"> <field name="NUM">10</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="K~b;$sQw#)NjQwQh`Aw."> <field name="NUM">1</field> </shadow> <block type="get_value" id="P$3Tge$tbi#ee:DJmDR2"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Laufzeit</field> </block> </value> </block> </value> <next> <block type="timeouts_setinterval" id="OIwHQs|PCd5#%oEjIa7K"> <field name="NAME">Intervall</field> <field name="INTERVAL">6</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="s;cX%Jh7wG?9Q!7Jqy=;"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="DELTA"> <shadow type="math_number" id="Uivu%JL?GZJ%KmTMlk7;"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="7t(p,Syit;%jem/{G5!j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Restminuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="]3]MzdqtYE0:d;}ou0b-"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="1yb@9@Vr^BR+-y4E?QsB"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="!~y2XoKP0yV0OQyK8pTw"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <shadow type="math_number" id="|nHD{4P4Q+|Wekr{5[Sj"> <field name="NUM">10</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="oVv#NBAx]^NjD$#isELN"> <value name="IF0"> <block type="logic_compare" id="r/.r#tf.+]ku0qZxOpfa"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id=".3XFGd.-1ZO~#./41o^v"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <block type="math_number" id="VeJQlK+PMZ4{+In3D*Cc"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=".Swg1BM$Y*6{hK:7giFF"> <field name="NAME">Intervall</field> <next> <block type="control" id="zv)}0mRZW|7pJKeJD(5w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6,b[sF=en3kx5ZbgERlr"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>MOD-EDIT: Code in code-tags gesetzt!
-
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`3-s]Pi^V2d8N9J-76fO">Rest</variable> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="on" id=".0K53IaR?_D^E^0Qr5}A" x="63" y="88"> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="=VB)QX`VIsFqa?%dv*/+"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="VALUE"> <block type="math_arithmetic" id="eS{QUa6y@lfj^#6,Oh#m"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="7nK#jz~d3KX?o]fQ:M/w"> <field name="NUM">10</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="K~b;$sQw#)NjQwQh`Aw."> <field name="NUM">1</field> </shadow> <block type="get_value" id="P$3Tge$tbi#ee:DJmDR2"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Laufzeit</field> </block> </value> </block> </value> <next> <block type="timeouts_setinterval" id="OIwHQs|PCd5#%oEjIa7K"> <field name="NAME">Intervall</field> <field name="INTERVAL">6</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="s;cX%Jh7wG?9Q!7Jqy=;"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> <value name="DELTA"> <shadow type="math_number" id="Uivu%JL?GZJ%KmTMlk7;"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="update" id="7t(p,Syit;%jem/{G5!j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.Gartenpumpe.Restminuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="]3]MzdqtYE0:d;}ou0b-"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="1yb@9@Vr^BR+-y4E?QsB"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="!~y2XoKP0yV0OQyK8pTw"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <shadow type="math_number" id="|nHD{4P4Q+|Wekr{5[Sj"> <field name="NUM">10</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="oVv#NBAx]^NjD$#isELN"> <value name="IF0"> <block type="logic_compare" id="r/.r#tf.+]ku0qZxOpfa"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id=".3XFGd.-1ZO~#./41o^v"> <field name="VAR" id="`3-s]Pi^V2d8N9J-76fO">Rest</field> </block> </value> <value name="B"> <block type="math_number" id="VeJQlK+PMZ4{+In3D*Cc"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id=".Swg1BM$Y*6{hK:7giFF"> <field name="NAME">Intervall</field> <next> <block type="control" id="zv)}0mRZW|7pJKeJD(5w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHPLG-S#DDB4D9#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6,b[sF=en3kx5ZbgERlr"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>MOD-EDIT: Code in code-tags gesetzt!
-
@erich-1 wie weit zählt er ins negstive?
dein Vergleichsoperator stimmt nicht ganz -
@homoran Ich lass ihn mal laufen. Aber auch wenn der Shelly vor dem Ablauf der vorgegebenen Zeit ausgeschaltet wird, dann läuft der Zähler ebenso weiter und dann eben auch in den Bereich unter 0.
@erich-1 sagte in Restlaufzeit Shelly Plug S:
wenn der Shelly vor dem Ablauf der vorgegebenen Zeit ausgeschaltet wird, dann läuft der Zähler ebenso weiter
Davon war ja auch nie die Rede, dass das abgefangen werden soll.
@erich-1 sagte in Restlaufzeit Shelly Plug S:
eben auch in den Bereich unter 0.
so steht es ja auch in deinem Blockly
-
@erich-1 sagte in Restlaufzeit Shelly Plug S:
wenn der Shelly vor dem Ablauf der vorgegebenen Zeit ausgeschaltet wird, dann läuft der Zähler ebenso weiter
Davon war ja auch nie die Rede, dass das abgefangen werden soll.
@erich-1 sagte in Restlaufzeit Shelly Plug S:
eben auch in den Bereich unter 0.
so steht es ja auch in deinem Blockly
-
@homoran Ja, das kann ich mir schon vorstellen. Aber den Fehler zu lokalisieren, ist für mich doch noch eine Herausforderung.
@erich-1 sagte in Restlaufzeit Shelly Plug S:
Aber den Fehler zu lokalisieren, ist für mich doch noch eine Herausforderung.
deswegen hab ich ihn dir ja genannt;
@homoran sagte in Restlaufzeit Shelly Plug S:
@erich-1 wie weit zählt er ins negstive?
dein Vergleichsoperator stimmt nicht ganz -
@erich-1 sagte in Restlaufzeit Shelly Plug S:
Aber den Fehler zu lokalisieren, ist für mich doch noch eine Herausforderung.
deswegen hab ich ihn dir ja genannt;
@homoran sagte in Restlaufzeit Shelly Plug S:
@erich-1 wie weit zählt er ins negstive?
dein Vergleichsoperator stimmt nicht ganz


