NEWS
Jahres Zählerstanderfassung, klappt das so ?
-
Ich möchte folgendes mit einem Script realisieren:
Jeweils zum Jahreswechsel wird der aktuelle Zählerstand von meinem Drehstromzähler in eine variable geschrieben. Im laufe des Jahres wird der aktuelle Zählerstand vom Stand in der Variablen abgezogen um so den Netzbezug im laufe des Jahres mit VIS anzueigen.
Sobald das Jahr wechselt, soll das ganze wieder von vorne beginnen. Könnte bitte jemand drüber schauen, ob ich darin einen Fehler gemacht habe ?Das habe ich so versucht zu realisieren:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0iqw_6A:9)NKsk64YQC.">ZahlerYE</variable> <variable id="4hI8+[l?WR.zT1+WoyHc">Aktuellerverbrauch</variable> </variables> <block type="variables_set" id="/_oV1Z7i0T@A.ww!7|?q" x="63" y="88"> <field name="VAR" id="0iqw_6A:9)NKsk64YQC.">ZahlerYE</field> <value name="VALUE"> <block type="get_value" id="z2_W4$)v|-2oVe:@@-9Y"> <field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Eigener_Ordner.Zaehler3112</field> </block> </value> <next> <block type="on_ext" id="=DWH`6T]v6T|KS`n;NHz"> <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="|KZ`pl8Y6L|;DAT!uFi$"> <field name="oid">powerfox.0.devices.246f283d49d8.consumptionMeterReadingKWh</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="LF0SM*Ue7}~}D08c2|DH"> <field name="VAR" id="4hI8+[l?WR.zT1+WoyHc">Aktuellerverbrauch</field> <value name="VALUE"> <block type="math_arithmetic" id="|To@#^%c2n,B$XL5+duj"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="@YUZKq_p|vPgNShOrG:W"> <field name="NUM">1</field> </shadow> <block type="get_value" id="m=`9i5~~wEjuaoVruU]*"> <field name="ATTR">val</field> <field name="OID">powerfox.0.devices.246f283d49d8.consumptionMeterReadingKWh</field> </block> </value> <value name="B"> <shadow type="math_number" id="wt_rH;+^)c8bEqk2R_!P"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="xj`SU-t-;sE:w?lEp[ZU"> <field name="VAR" id="0iqw_6A:9)NKsk64YQC.">ZahlerYE</field> </block> </value> </block> </value> <next> <block type="update" id="hMe8Q#`KEomBh7Sz1dZ="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Eigener_Ordner.Jahresverbrauch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="ia}v@j}(Zw?|XZMK6w?z"> <field name="n">1</field> <value name="x"> <shadow type="math_number"> <field name="NUM">3.1234</field> </shadow> <block type="variables_get" id="`g61wfDUKH$Hf@mt_69h"> <field name="VAR" id="4hI8+[l?WR.zT1+WoyHc">Aktuellerverbrauch</field> </block> </value> </block> </value> <next> <block type="on_ext" id="L7NNa^z(1o02^9A32EeZ"> <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="#n9P)dyn+eq[PRUN3^Eh"> <field name="oid">javascript.0.Eigene_Datenpunkte.Eigener_Ordner.Jahr</field> </shadow> <block type="logic_compare" id="+=PU~K_lM}=[V@}owVs?"> <field name="OP">LT</field> <value name="A"> <block type="field_oid" id="DFhhjL$dy~[zO)[7Sb,m"> <field name="oid">javascript.0.Eigene_Datenpunkte.Eigener_Ordner.Jahr</field> </block> </value> <value name="B"> <block type="time_get" id="D7M#r.)m-{ImL,-])SSJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">JJJJ</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="update" id="wn$U-^QxeaiLdB10x:su"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Eigener_Ordner.Jahr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="time_get" id="f9`5Lic9RBGI/9~9ErST"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">JJJJ</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
So geht das nicht. Trigger im trigger machen immer Ärger.
Aber:
Der Wert vom datenpunkt zaehler3112 ändert sich nur 1 mal im Jahr, korrekt ?
Dann kannst du einfach einen 2. Trigger aufsetzen, der den Wert der Variable zählerYE aktualisiert wenn der datenpunkt sich geändert hat. Das ganze außerhalb des bestehenden triggers auf consumption meter reading
Und den trigger block auf objektJahr einfach beseitigen.