NEWS
Tagesstromverbrauch mit Blockly ermitteln
-
Hallo Zusammen,
ich möchte gerne den Tagesstromverbrauch meiner Wärmepumpe in einem Säulendiagramm speichern. Dazu soll jeden Tag um Mitternacht, der jeweilige Tagesverbrauch errechnet werden.
Die Daten kommen in diesem Fall von einem Shelly 3EM.
Mein Problem ist, dass das Skript nicht das macht, was soll. Es kommen irgendwie sinnlose Werte dabei raus.
Im folgenden die exportierten Blöcke:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="+c;[B`+y6S)=?4uo~1eT">Zahler_alt</variable> <variable id="djeBD%2K/Tu_7UM)XVmz">Zaehler_aktuell</variable> <variable id="MUHR(G41{]}v@c(DTsq-">Ergebnis</variable> </variables> <block type="create" id="DL8pvP(/uuTf[,TD-IJ5" x="63" y="-362"> <field name="NAME">WP_Tagesverbrauch_0</field> <value name="VALUE"> <block type="math_number" id="vzRK;wVbCl/3iof?UT-I"> <field name="NUM">0</field> </block> </value> <next> <block type="create" id="Yi+!;%+]YP3%QT2Fe!$s"> <field name="NAME">WP_Tagesverbrauch_1</field> <next> <block type="create" id="~FGXor{WsXIpt7H3/9DB"> <field name="NAME">WP_Tagesverbrauch_2</field> <next> <block type="schedule" id="|~L9c`YU)-N~O4V?zysc"> <field name="SCHEDULE">0 0 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="E+Ssm]7jD{W]OV=KIDp1"> <field name="VAR" id="+c;[B`+y6S)=?4uo~1eT">Zahler_alt</field> <value name="VALUE"> <block type="get_value" id="DSJWz%x2{v$bqg}N@1^:"> <field name="ATTR">val</field> <field name="OID">javascript.0.WP_Tagesverbrauch_0</field> </block> </value> <next> <block type="debug" id="-:Fn#k$1[0_p:U@aHKOB"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="!vkcPC*7pwYR?_c~:)Gy"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="z/Bg|h(X5CS?AaRXRrvY"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="bZq@y~c`xPDt#UL[@.pA"> <field name="TEXT">Zählerwert alt:</field> </block> </value> <value name="ADD1"> <block type="variables_get" id=")T?pj`:8c,BRxHU)Z:fa"> <field name="VAR" id="+c;[B`+y6S)=?4uo~1eT">Zahler_alt</field> </block> </value> </block> </value> <next> <block type="variables_set" id="gi*z!nJu-@w3%]Qk)exf"> <field name="VAR" id="djeBD%2K/Tu_7UM)XVmz">Zaehler_aktuell</field> <value name="VALUE"> <block type="get_value" id="UN.yZ{D{Tf88f:f[;Y_Z"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHEM-3#68C63AFB3314#1.Total.ConsumedPower</field> </block> </value> <next> <block type="debug" id="Figt$o2J@ua[[4DC~?$~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="j*zvqB0}Oj~KvQU/Z_5y"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="E30:I.$JF.O6Uq*w4Pp;"> <field name="TEXT">Zählerwert aktuell:</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="s-|rkEf[HdK=s5CD:[6."> <field name="VAR" id="djeBD%2K/Tu_7UM)XVmz">Zaehler_aktuell</field> </block> </value> </block> </value> <next> <block type="control" id="tfW:P`/V@=:ZpbdqH?%C"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.WP_Tagesverbrauch_2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="!!a}0`0da}CghR}vJ16R"> <field name="ATTR">val</field> <field name="OID">javascript.0.WP_Tagesverbrauch_1</field> </block> </value> <next> <block type="control" id="^KMnZC|c%o]lHJGBh]uI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.WP_Tagesverbrauch_1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="de:v-ss4IAMU3LK~/NpT"> <field name="ATTR">val</field> <field name="OID">javascript.0.WP_Tagesverbrauch_0</field> </block> </value> <next> <block type="variables_set" id="))!?wz_R{f3b?$-L#.n~"> <field name="VAR" id="MUHR(G41{]}v@c(DTsq-">Ergebnis</field> <value name="VALUE"> <block type="math_rndfixed" id="pleU`Z|R:fsf4okyv_[L"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="YFMMwG0F^)!|)v7DB{Bs"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="co(W`9Z~BfjveTzy|O6E"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="F@(+^S%hRmTh;53;6lXN"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="732OGk%FZJLQXv5Wyf6#"> <field name="VAR" id="djeBD%2K/Tu_7UM)XVmz">Zaehler_aktuell</field> </block> </value> <value name="B"> <shadow type="math_number" id="Dc)8w~SxjHyCc})kN.iH"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="B^(UzzY]f4/LQ$b$sNR^"> <field name="VAR" id="+c;[B`+y6S)=?4uo~1eT">Zahler_alt</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="o:WI/xoF{X^A?!BH1y])"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="8(0v)c=pb$bvkdL8^KqH"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="{G(Fapi|xpAzzu4Z}m1}"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="HFjr8YXS5(X41dAi4v?T"> <field name="TEXT">Ergebnis: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id=",z8smMx+!_TP:99$+NJ2"> <field name="VAR" id="MUHR(G41{]}v@c(DTsq-">Ergebnis</field> </block> </value> </block> </value> <next> <block type="control" id="eJFD%]trWZ-)8TPBqrH)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.WP_Tagesverbrauch_0</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="wh$blJ4a)/2ZNm9;bQBm"> <field name="VAR" id="MUHR(G41{]}v@c(DTsq-">Ergebnis</field> </block> </value> <next> <block type="debug" id="94+zx_gm[=uMxZ*?W8D]"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="[Uk;e;DOX;r`Uk17Houj"> <field name="TEXT">test</field> </shadow> <block type="text_join" id=")}ROXL1Z=F|l]fdcHJlE"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="PxVqPvYC}fOy1wqQ(4k-"> <field name="TEXT">WP_Tagesverbrauch_0: </field> </block> </value> <value name="ADD1"> <block type="get_value" id="Uev#X0kx|nb%N})EH}F("> <field name="ATTR">val</field> <field name="OID">javascript.0.WP_Tagesverbrauch_0</field> </block> </value> </block> </value> <next> <block type="debug" id="aM?Py%V%;^n20PD}F_U,"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=",]6U*:#ZRd`6KVEv4Ah~"> <field name="TEXT">test</field> </shadow> <block type="text_join" id=".?]1hQk0FTk*PM4|S0lu"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id=";D#8,.Mp3qP585Y[3NFg"> <field name="TEXT">WP_Tagesverbrauch_1: </field> </block> </value> <value name="ADD1"> <block type="get_value" id="j-(Ndx^}u,(=2C|66ckm"> <field name="ATTR">val</field> <field name="OID">javascript.0.WP_Tagesverbrauch_1</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </xml>
Die dazugehörige Log-Datei sieht wie folgt aus:
02.11.2020:2020-11-03 00:00:00.020 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Zählerwert alt:177.22 2020-11-03 00:00:00.028 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Zählerwert aktuell:304.98 2020-11-03 00:00:00.029 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Ergebnis: 127.76 2020-11-03 00:00:00.029 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: WP_Tagesverbrauch_0: 177.22 2020-11-03 00:00:00.030 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: WP_Tagesverbrauch_1: 126.11
01.11.2020:
2020-11-01 00:00:00.022 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Zählerwert alt:174.58 2020-11-01 00:00:00.028 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Zählerwert aktuell:300.69 2020-11-01 00:00:00.030 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: Ergebnis: 126.11 2020-11-01 00:00:00.030 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: WP_Tagesverbrauch_0: 174.58 2020-11-01 00:00:00.031 - info: javascript.0 (40551) script.js.Tagesverbrauch_WP: WP_Tagesverbrauch_1: 122.95
Irgendwie bin ich mir fast sicher, dass der Fehler total banal ist. Ich komm aber einfach nicht drauf....
Danke für die Hilfe!
BG Maximilian
-
@wolkenschaufler sagte:
Es kommen irgendwie sinnlose Werte dabei raus.
Die Variable Zahler_alt wird falsch gesetzt, sie muss auf den Zählerstand um Mitternacht gesetzt werden.
-
@paul53 Du speicherst den aktuellen Zählerstand vor dem CRON-Job - warum? Bzw wann führt er diesen dann aus? Doch nur beim initialisieren des Scripts oder?
Ich versteh immer noch nicht, warum mein Script nicht funktioniert hat. Kannst du mir das erklären?
Danke.
VG Maximilian
-
@wolkenschaufler sagte:
Kannst du mir das erklären?
@paul53 sagte in Tagesstromverbrauch mit Blockly ermitteln:
sie muss auf den Zählerstand um Mitternacht gesetzt werden.
Tagesverbrauch = Zählerstand heute - Zählerstand gestern,