NEWS
Dauer rechnen
-
@nicoloma sagte in Dauer rechnen:
aber ich bekomme ja noch nicht mal die Millisekunden raus.
doch: 2 ms
-
@homoran
hahaha, Ja ...gut hast recht.. ist aber nicht wahr... ich lasse im test 3-10 sekunden vergehen und es steht das gleiche
-
@nicoloma Hi, wenn ich das richtig sehe bekommst du doch Millisekunden raus. Dein Trigger ist letzte Änderung und du berechnest die aktuelle Zeit -(minus) letzte Änderung. Dann weißt du jetzt das dein Script vom Trigger bis zur Berechnung 2 Millisekunden braucht.
Eventuell könnte man das mit nem Intervall machen. Wird Brenner wahr, Datenpunkt auf 0 setzen, dann alle Sekunde den Datenpunkt Plus 1 hochzählen, wird Brenner Unwahr Intervall stoppen und Datenpunkt ausgeben.
-
@nicoloma sagte in Dauer rechnen:
hahaha
nicht zum lachen!
Du hast genau diese Werte ausgelesen, und mit denen rechnest du.Ich weiß nicht was die Brennerlaufzeit ist, aber wenn sich diese alle 2ms ändert, weil sie hocjzählt, dann ist das so
-
@nicoloma
Vorschlag:- Trigger "ist kleiner als letztes" triggert nur beim Ausschalten.
- delta erhält die Einschaltdauer in ms
- Für die Wandlung nach "hh:mm:ss" erfolgt eine Zeitzonenkorrektur
-
@homoran sagte in Dauer rechnen:
aber wenn sich diese alle 2ms änder
Ich lache weil ich es nicht schaffe "In meinem Test" den Schalter in 2ms zu Drücken
Mein lachen war nicht böse gemeint. -
- Ersetze den Baustein
Wert vom ObjektID Brenner an
durch den BausteinWert
- Ersetze den Baustein
letzte Änderung vom Objekt ID Brenner AN
durch den Bausteinvorherige letzte Änderung
- Ersetze den Baustein
Aktuelle Zeit als Datum-Objekt
durch den BausteinLetzte Änderung
- Spar Dir die ganze Umrechnerei. Die Minuten bekommst du durch: (
Letzte Änderung
-vorherige letzte Änderung
) / 60000
Nebenbei: Die vier Bausteine die du da nehmen sollst sind eigentlich alle der gleiche Baustein, nämlich:
Der auf dem Objekt ID voreingestellt ist kann auf diese Werte Eingestellt werden.
A.
- Ersetze den Baustein
-
@paul53 Oh, cool, habe gar nicht gewusst das man die vorherige letzte Änderung auch auslesen kann.
-
@nicoloma sagte in Dauer rechnen:
@homoran sagte in Dauer rechnen:
aber wenn sich diese alle 2ms änder
Ich lache weil ich es nicht schaffe "In meinem Test" den Schalter in 2ms zu Drücken
Mein lachen war nicht böse gemeint.Das Problem ist nicht das sich der State "Brenner AN" so schnell ändert, sondern das du
- auf die Änderung triggerst
- danach die letzte Änderung ausliest, sprich die auf die du gerade getriggert hast.
Die 2 ms sind also die Laufzeit zwischen dem Trigger und dem Auslesen des Zeitstempels der letzten Änderung.
der Zeitstempel der vorletzten Änderung ist nur innerhalb eines Triggers verfügbar.
A.
-
YEEEES, danke hat geklappt.
Danke, ich bin neu und kannte und fand die Bausteine" letzte änderung und vorletzte" nicht.
Super.... -
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="`S+`{N!EhP*SpjqZpIgy">delta</variable> </variables> <block type="on_ext" id="@23iI/^O^[olnPXpcn9m" x="-12" y="-112"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">lt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="5$rbyi?g{DP-7btzXUov"> <field name="oid">default</field> </shadow> <block type="field_oid" id="+7yqjI6AxEk5-jUkZ*:B"> <field name="oid">0_userdata.0.Heizung.test</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="Z}6pLWL#)A8gc}4wn-D#"> <value name="IF0"> <block type="logic_compare" id="#jDqR44SXHaKA0.my8Ku"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="$kaqu=JI270Bn9/-%AZp"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="sJP?5-BoRG`Pbdl49At3"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="@3Gl]Mbf6;[n]*E/h-WM"> <field name="VAR" id="`S+`{N!EhP*SpjqZpIgy">delta</field> <value name="VALUE"> <block type="math_arithmetic" id="/Z~*ndcFz??/0TvOu5[E"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="5K9eR;u_Ni.oY,:m6NR6"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=":n4a-B#_99I3FQg`/G0Q"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="63)L.lzMnw7,P^;h22qR"> <field name="NUM">1</field> </shadow> <block type="on_source" id="RN#^Ctm0*P2-=Xz7@hK("> <field name="ATTR">state.lc</field> </block> </value> <value name="B"> <shadow type="math_number" id="sCU-Cjgp})3`5E:K~-.R"> <field name="NUM">1</field> </shadow> <block type="on_source" id="imcTiJ^PJ7_[z+Dl{u:Y"> <field name="ATTR">oldState.lc</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="~C0[[kxiDl+Kf3GqAMJR"> <field name="NUM">1</field> </shadow> <block type="math_number" id="rsVYi+Ji:SsNLfDU`$KE"> <field name="NUM">60000</field> </block> </value> </block> </value> <next> <block type="update" id="U~$y8Ce(OiLx[qEVCJ~!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Heizung.Brennerlaufzeit</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="K?aU$x[afANIo%O)_=/$"> <field name="VAR" id="`S+`{N!EhP*SpjqZpIgy">delta</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@asgothian Danke jetzt weis ich auch mein Fehler. Klasse danke für die erklärung.
Macht Sinn!