NEWS
Intervall zählt weiter
-
Hallo,
ich habe ein Script angelegt, bei dem ein Datenpunkt die Minuten zählt wenn mein Rasenroboter mäht oder die Kanten schneidet.
Wenn er mäht steht im Status 7, wenn er die Kanten schneidet steht dort 32 und wenn er zu Hause ist steht dort 1.Leider zählte er nach dem er zu Hause ist (1) immer weiter.
Hier das Script, was mach ich falsch? Vielen Dank.
-
-
@kg36304 sagte: was mach ich falsch?
Bei Änderung von 7 auf 32 oder umgekehrt wird ein weiteres Intervall gestartet, das sich nicht mehr stoppen lässt.
Besser so:Wert (unter "Trigger"):
-
Hallo, Danke für die Antwort, ich habe es umgebaut. Es sieht jetzt so aus:
Ich hoffe so ist es richtig.
Zum Verständniss, die Variable "Messerzeit" hat den letzten wert der Objekt ID "Messerzeit" (Datenpunkt) übernommen. Wenn der Status des Mähers sich ändert auf 7 oder 32 zählt die Variable in einer Schritten. Andert Sie sich auf 1, stopt der Intervall und der Wert der Variablen wird in den Datenpunkt geschrieben???
Stimmt das so, ich will es nicht nur nachbauen sondern auch verstehenVielen Dank
-
@kg36304 sagte: Andert Sie sich auf 1, stopt der Intervall und der Wert der Variablen wird in den Datenpunkt geschrieben???
Vergleiche die Bilder: In meinem Vorschlag wird der Wert der Variablen jede Minute in den Datenpunkt geschrieben. Somit ist der Datenpunkt stets aktuell, was für ein Weiterzählen bei einem Neustart des Skripts erforderlich ist.
-
1 = Mäher ist zu Hause
7 = Mäher mäht
32 = Mäher schneidet die Kante.
Er fängt immer mit dem Kantenschnitt an also geht er von 1 auf 32 ca. 11 Min. Fährt nach Hause (geht auf 1) und startet umgehend den Mähvorgang (geht auf 7).bei dem Script wie oben zählt er nur die 10 Minuten Kantenschnitt. Die Zeit wo er mäht ca 100 Min. werden nicht mehr gezählt.
Mhm, stehe auf dem Schlauch.
-
@kg36304 sagte: Fährt nach Hause (geht auf 1) und startet umgehend den Mähvorgang (geht auf 7).
Wenn dem immer so wäre, würde Dein ursprüngliches Skript funktionieren.
@kg36304 sagte in Intervall zählt weiter:
Die Zeit wo er mäht ca 100 Min. werden nicht mehr gezählt.
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
@paul53 Ok, muss ich später machen, bin gerade an der Arbeit.
Danke
-
meinst Du so?
<block xmlns="https://developers.google.com/blockly/xml" type="variables_set" id="%[JGi6etLl$$Gv$1Hl%c" x="146" y="1162"> <field name="VAR" id="W-.N_n4^2j2n9ld}}FT/">Messerzeit</field> <value name="VALUE"> <block type="math_round" id="BsHHbBF6NI|F#DH8/Bs5"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="NkJ9r_RUF0CJE]6x~c6/"> <field name="NUM">3.1</field> </shadow> <block type="get_value" id="JP3tUi|jD`d5u#4k5,zR"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Messerzeit</field> </block> </value> </block> </value> </block> <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="ln8?f7z^ZE:9{kmWrH(A" x="146" y="1190"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="hrK=_],O?_T=V6iYQzZ2"> <field name="oid">worx.0.201930198404006033C5.mower.status</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_clearinterval" id="QodN}l(];;1H6=61GGRW"> <field name="NAME">Intervall3</field> <next> <block type="controls_if" id="|nE/SNJEj0`N3B${9pyF"> <value name="IF0"> <block type="logic_operation" id="lW.!^fiH`LU|3.bpV@5;"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="zC+|wBAWbG7aKqv^+4+:"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="|FWPTz+gk-uKq86!qf]/"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="5`(a=r|(n5=?Ty~0/YZU"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="OyU@nRcgOf2mH#$Wq.:t"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="p^M8?a2OVH;f:_GCl0N0"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="reZICHLhubr%VR0?#rjt"> <field name="NUM">32</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id=";1vf$B4z,rrUf`RF(h/e"> <field name="NAME">Intervall3</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="*X_x2`5`aG)D=%hHELJV"> <field name="VAR" id="W-.N_n4^2j2n9ld}}FT/">Messerzeit</field> <value name="DELTA"> <shadow type="math_number" id="rAjLf8c8WTARD6@o~{;D"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="update" id="v#L@sS1+%o;C?`9RHDW!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Messerzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",p^[R1Q@TXfl^[3WqQ@p"> <field name="VAR" id="W-.N_n4^2j2n9ld}}FT/">Messerzeit</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block>
-
@kg36304 sagte in Intervall zählt weiter:
meinst Du so?
nein!
umschalten auf Javascript Ansicht und dann dort den code nehmen. -
@kg36304 sagte: meinst Du so?
Eigentlich nicht, aber damit geht es auch. Es sind zwei Fehler drin.
Der Fehler, dass die falsche Variable gestoppt wurde, kann aber auch durch den Import entstanden sein.
-
Super, ich glaube ich habe es hin bekommen!!
Heute beobacgte ich es nochmal.
DDDDAAAANNNNNKKKKEEEE.
-