NEWS
[gelöst] mit blockly einen Countdown starten, unterbrechen und fortführen
-
Wie kann ich aber erreichen, daß der Countdown unterbricht, wenn die Wattzahl unter einen bestimmten Wert fällt `
stop zyklische Ausführung, Zähler bleibt stehen
@weimaraner:und der Countdown fortgesetzt wird (nicht neu gestartet wird wird), wenn der Fernseher wieder an ist? `
Ausführen Intervall, es wird weiter gezählt.Etwa so:
-
Sehr cool! Das probiere ich morgen gleich aus.
Danke für Deine Hilfe!
Grüße Andreas
Edit: eine Frage noch: Warum steht unten beim Trigger "setze countdown auf 600" zweimal?
-
Warum steht unten beim Trigger "setze countdown auf 600" zweimal? `
Das erste mal täglich um Mitternacht, das zweite mal bei Skriptstart, damit man zum Testen nicht bis Mitternacht warten muss. -
Jetzt habe ich es mal ausprobiert und zuerst ging der Föhn, den ich zu Testzwecken an die HM Steckdose angeschlossen habe nach 10 Sekunden aus. Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an.
Was lief falsch?
Edit: noch eine Verständnsisfrage. Muß die Variable (?) "countdown" noch irgendwie angelegt werden oder läuft das auch so in blockly. Falls ich den countdown visualisieren möchte, wo sehe ich diese Zahl?
hier noch der Import! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="C)Oi+tobP3NJb8-5}_|" x="-587" y="-251"><field name="COMMENT">Leistung TV</field> ! <next><block type="on" id="Gb!veBqIjiY?+r9[#uBd"><field name="OID">hm-rpc.0.NEQ0399022.2.POWER</field> ! <field name="CONDITION">ne</field> ! <statement name="STATEMENT"><block type="controls_if" id="Sz~/2LQ)-na5/TBs]eGJ"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_operation" id="0ex^sjpa!qYiKEHq^Z9%"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="k%~+oSc;IMB8C{=qhHq-"><field name="OP">GT</field> ! <value name="A"><block type="on_source" id="IYp)x,cC9%dslvy]-D~v"><field name="ATTR">state.val</field></block></value> ! <value name="B"><block type="math_number" id="9[V^yH
f85K:BIj;Qhfz"><field name="NUM">20</field></block></value></block></value>
! <value name="B"><block type="logic_compare" id="_b4u5:[xOOK)33LeOKP"><field name="OP">LT</field> ! <value name="A"><block type="on_source" id="8N:v1V4e:b/=X6*nxmfe"><field name="ATTR">oldState.val</field></block></value> ! <value name="B"><block type="math_number" id="sF;5?c;kVM=CQ%Ay%ruq"><field name="NUM">20</field></block></value></block></value></block></value> ! <statement name="DO0"><block type="timeouts_setinterval" id="M~/KK*jhdrtS]+AFhKbu"><field name="NAME">Intervall</field> ! <field name="INTERVAL">1000</field> ! <statement name="STATEMENT"><block type="math_change" id="gtrmX:13zZ=wR=[Z[B2i"><field name="VAR">countdown</field> ! <value name="DELTA"><shadow type="math_number" id="K|#JrzHvxmb{?|[Ors;j"><field name="NUM">-1</field></shadow></value> ! <next><block type="controls_if" id="xz4bhId~KOga3Gi^3z8r"><value name="IF0"><block type="logic_compare" id="V;6%b8l2_8M.JbT?+6J_"><field name="OP">LTE</field> ! <value name="A"><block type="variables_get" id=";9ULSELXNb:L|7ew]9+["><field name="VAR">countdown</field></block></value> ! <value name="B"><block type="math_number" id="Im78V(2SQtT-Ej+VUS
7"><field name="NUM">0</field></block></value></block></value>
! <statement name="DO0"><block type="comment" id="1**{-)VFBc?j0L/AaqxW"><field name="COMMENT">TV aus</field>
! <next><block type="control" id="rZzovp+z/Dh=KlM}+BeE"><mutation delay_input="false"></mutation>
! <field name="OID">hm-rpc.0.NEQ0399022.1.STATE</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="oO.l2^),wV(}Vw]0Ss7"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></next></block></statement></block></statement> ! <statement name="ELSE"><block type="timeouts_clearinterval" id="q2_0P~crCR[p0P=F/d:^"><field name="NAME">Intervall</field></block></statement></block></statement> ! <next><block type="schedule" id=":hRnpZId0WJtEG_v?3D."><field name="SCHEDULE">0 0 * * *</field> ! <statement name="STATEMENT"><block type="variables_set" id="
?K~khJsMCiym/!BZi^J"><field name="VAR">countdown</field>
! <value name="VALUE"><block type="math_number" id="tJ5JliPj-#TzK)p.qiw"><field name="NUM">10</field></block></value></block></statement> ! <next><block type="comment" id="F67q]lpYtzr7K9@bl.@c"><field name="COMMENT">Skript Start</field> ! <next><block type="variables_set" id="G.*+9:~[g8mc#U
1q5Xj"><field name="VAR">countdown</field>
! <value name="VALUE"><block type="math_number" id="Qz|ukuR7ryml=9RJOUo3"><field name="NUM">10</field></block></value></block></next></block></next></block></next></block></next></block></xml> -
Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an. `
Das ist logisch nicht nachvollziehbar, da auf countdown <= 0 geprüft wird. Was ist "vorheriges Wert" ? Eine Skriptvariable oder eine Datenpunkteigenschaft ? Es muss die Datenpunkteigenschaft "vorheriger Wert" sein !
@weimaraner:Muß die Variable (?) "countdown" noch irgendwie angelegt werden oder läuft das auch so in blockly. `
Bei Auswahl des Blocks setze etwas auf wird die Variable etwas angelegt und je nach Auswahl umbenannt oder eine neue Variable erzeugt.
@weimaraner:Falls ich den countdown visualisieren möchte, wo sehe ich diese Zahl? `
Nirgends, denn es ist ein Skriptvariable. Anzeigen kannst Du den Wert mit einem Debug-Block unter erhöhe countdown um -1. -
Wenn ich allerdings zwischendurch unterbreche und den Föhn per Hand ausschalte, sollte ja der Countdown unterbrechen und erst weiterzählen, wenn der Föhn wieder an ist. Er bleib dann aber unendlich an. `
Das ist logisch nicht nachvollziehbar, da auf countdown <= 0 geprüft wird. Was ist "vorheriges Wert" ? Eine Skriptvariable oder eine Datenpunkteigenschaft ? Es muss die Datenpunkteigenschaft "vorheriger Wert" sein !Blockly_DP_Props.JPG `
Ich habe diesen Wert ausgewählt.
Edit: Jetzt schaltet sich die HM Steckdose auch aus, wenn der Föhn zwischendurch ausgeschaltet wurde. Heißt der Countdown wird nicht angehalten. Ich bastel das blockly morgen nochmal in Ruhe nach. Meine Frau denkt schon ich habe einen an der Waffel, daß ich ständig den Föhn auf dem Schreibtisch anmache. :shock:
-
Welche Version des JS-Adapters verwendest Du (vorheriges Wert vs. vorheriger Wert) ?
-
Jetzt schaltet sich die HM Steckdose auch aus, wenn der Föhn zwischendurch ausgeschaltet wurde. Heißt der Countdown wird nicht angehalten. `
Da ich keine Meßsteckdose habe, weiß ich nicht, wie schnell der Leistungs-Datenpunkt bei Ausschalten reagiert. Vergrößere mal die Zykluszeit (z.B. auf 3 s). -
JS-Adapter habe ich 3.2.6.
ich werde am Wochenende nochmal ausführlich mit längerer Zykluszeit testen.
Heute nicht mehr… :? bin gerade rein und hundemüde.
-
So, das blockly läuft! Vielen Dank vor allem an paul53.
Scheinbar war mein Raspi mit der sekündlichen Abarbeitung des Intervalls etwas überfordert und hat sich da verschluckt. Ich habe diesen nun von 1 Sekunde auf 5 Sekunden gesetzt und dafür den countdown entsprechend eingekürzt. Jetzt läuft alles sauber und wird bei Unterbrechung angehalten und startet auch wieder.
Viele Grüße Andreas