NEWS
Ausgabe Werten bei stündlichem Abfragen unklar
-
Habe ein Blockly geschrieben, dass in Abhängigkeit von einem Trigger (der sich jede Stunde ändert) eine Steckdose schalten soll und die zwischen Ein/Auschalten verbrauchte Leistung messen sollte.
Nur die verbrauchte Leistung sollte bei der Änderung des Triggers in einen DP geschrieben werden.
Es wird aber falls die Bedingung unter "falls" nicht mehr stimmt trotzdem ein DP "Start" geschrieben.
Rote Linie sollte Power (Verbrauch sein)
Strichlierte ist der steigende Verbrauch
Blau ist Verbrauch Anfang????
Pink ist der Trigger.Nun kommt aber nicht das raus was ich wollte. Es wird bei jedem Trigger die "Sonst Bedingung" ausgelöst und ich verstehe nicht warum, da sich "Variable Laden" ja gleich bleibt.
Was läuft da falsch?<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="6#Wj|F%:%yH*qMf~R:,M">Laden</variable> </variables> <block type="on" id="yx*Z%?C-kV9kZ|PalqBS" x="-562" y="-287"> <field name="OID">alias.0.Variable.Energiefluss.Tibber_Preis_Aktuel</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="timeouts_wait" id="FWGa/(Zxl++,[4uUXlrK"> <field name="DELAY">2</field> <field name="UNIT">min</field> <next> <block type="variables_set" id="JB)i@~Nmnw42li%M;KJw"> <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field> <value name="VALUE"> <block type="logic_compare" id=";6Gjp/TIMQtE?WuqFHtT"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="sNqbL+fq^6^E^DQ:nA2N"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="$S.gQAuha!OK=p)Zo7tI"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="|g@P4)@R[{X7C:Ahjvck"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Jed@.A?MMB_I-o(bqdW1"> <field name="ATTR">val</field> <field name="OID">alias.0.Variable.Energiefluss.Tibber_Average_Preis_Today</field> </block> </value> <value name="B"> <shadow type="math_number" id=");4{jN%Be5]rtIn#-TkM"> <field name="NUM">0.97</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="bwD0)KqNOy*O6jB#ovF4"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="wkD0SDG99;{gu#rPuWzT" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="r[E.5+I=~N]_Wm0P(elC"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="jV#0`i=ZJiKNDf?y)xO2"> <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field> </block> </value> <value name="B"> <block type="get_value" id="ok6P*}*`6@zDj^eYmkIU"> <field name="ATTR">val</field> <field name="OID">alias.0.Variable.Soyo_inteligent_schalten.Soyo_Dect_schalten</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="AWo~XeceneG#rz7)QT9o"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="q;@RrG[L]cK;.8XfUO]x"> <field name="ATTR">val</field> <field name="OID">alias.0.Variable.Energiefluss.Leistung_PV-Modul</field> </block> </value> <value name="B"> <block type="math_number" id="|KRrW{.s/QX.BGYw1{Tn"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="L[2p?@rnU6GFCYhWpx/9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Variable.Soyo_inteligent_schalten.Soyo_Dect_schalten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="^KqUlbc!uM9Gu!`}5ji|"> <field name="VAR" id="6#Wj|F%:%yH*qMf~R:,M">Laden</field> </block> </value> <next> <block type="control" id="+t3%ZOFyrY932R2O::y*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Start</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="7hisw^CpvBCU-,c=5)P6"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT_116570243229.energy</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="ax-RNF;~i7^qK:mvD:D/"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Ende</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="d#=qD%=qRuwE|/.@(F,b"> <field name="ATTR">val</field> <field name="OID">fritzdect.0.DECT_116570243229.energy</field> </block> </value> <next> <block type="control" id="9rGIM8)YArQt#0kH}LI*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="i)%%x#|W#X[pN[b_r]K%"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="}y@snz@3.R!2mHn]QJs["> <field name="NUM">1</field> </shadow> <block type="get_value" id="_!#!F,yGWa!0)gmjzX$-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Ende</field> </block> </value> <value name="B"> <shadow type="math_number" id="9`TlZ=Q9F`w/TKD1-.*6"> <field name="NUM">1</field> </shadow> <block type="get_value" id="x({#-a_ehw1jA,k_H11L"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Start</field> </block> </value> </block> </value> <next> <block type="debug" id="vVSWhM_msZcd7Qe6=}d."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="E}xukGr8GQ3AvIHU/{B%"> <field name="TEXT">test</field> </shadow> <block type="get_value" id="(~(`Tt)z!6r.icGm;Hee"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Eigene_Datenpunkte.BatLaden_Power</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@peter-c sagte in Ausgabe Werten bei stündlichem Abfragen unklar:
da sich "Variable Laden" ja gleich bleibt.
und der pv ertrag?
-
@peter-c sagte in Ausgabe Werten bei stündlichem Abfragen unklar:
Abhängigkeit von einem Trigger (der sich jede Stunde ändert)
ich kenne tibber nicht, aber ändert sich der Preis zwingend? Falls nicht kanns auch mal länger als 1 Stunde dauern bis das Skript auslöst
Wenn "Leistung PV-Modul"=100 ist läufst du immer in den sonst-Zweig
Aber stimmt deine Logik überhaupt? Du löst aus, wenn der aktuelle Preis kleiner als Durchschnittspreis*0,97 ist, hast du anhand der Werte mal geprüft, ob das überhaupt eintritt?
-
@homoran Der ist in der Nacht immer erfüllt. Dient nur dazu zu verhindern, dass sich das Skript bei alternativer Leistung einschaltet.
-
@amg_666 Ja das habe ich. Grüne Linie ist der Ausgang des Skriptes. Der Schalter ist geschaltet. Der Preis ändert sich wirklich jede Stunde. Pinke Linie.
Die 0,97 soll sicherstellen, dass der Preis wirklich niedriger ist als der Durchschnittspreis. -
@peter-c Dann häng mal paar debug-Bausteine rein und lass dir an den neuralgischen Punkten die Entscheidungswerte ausgeben
Möglicherweise rennst du aber in die asynchron-Falle
-
@peter-c
Ich nehme mal an, dass sich bei einer Preisänderung oder auch im Fortschritt des Tages auch der Durchschnittspreis ändert. Und dann entspricht der Durchschnittspreis nicht mehr der Variable 'Laden'.Edit: Sorry, falsch verstanden
Um das zu überprüfen kannst du die Werte ja mal über den Debug-Baustein ausgeben.
Edit: Aber das gilt noch...
-
Das mit dem asynchron gibt mir zu denken.
Es wurden laut History 3 Werte erfasst für die Startbedingung. (zwei zu viel!) Zwei waren noch dazu gleich.Aber es wurden 6 mal Ende Werte abgespeichert.
Habe mal ein paar Bausteine eingefügt.
Sind das genug? -
-
@paul53 Hast Du das so gemeint?
-
@peter-c sagte: Hast Du das so gemeint?
Ja. Der Debug-Block unten kann noch einen Wert zeigen, der vor einer Stunde gültig war. Übergebe dort auch die Berechnung.
-
@paul53 Warum ist das nicht der letzte Wert?
-
@peter-c sagte: Warum ist das nicht der letzte Wert?
Durch die asynchrone Ausführung von "steuere": Wenn der Datenpunktwert eingelesen wird, ist "steuere" noch nicht fertig.
-
-
@peter-c sagte: also so:
Ja. An den obersten Debug-Block übergebe "Energy consumption" anstelle von "BatLaden_Start".
-
Verstanden. Dann kann ich den DP BatLaden Ende löschen. Den gibts ja nicht als Ausgang.
Bekomme ich nun nur noch 2 Werte: BatStart und Power.
-
-
@peter-c sagte: Hoffe das ist der letzte gültige Wert.
Passt.
-
@paul53 Danke
-
@paul53 Habe das Skript jetzt einige Zeit am Laufen gehabt. Leider kommt nicht ganz das raus was ich wollte.
Ziel war es ja jede Stunde (beim ändern des Triggers) einen Verbrauchswert zu bekommen.
Anstelle dessen bekomme ich wilde Zacken.Rot ist Badladen_Power.
Die Subtraktion nimmt falsche Werte.
Auszug aus Log. Skript heißt Netzladen.2023-12-18 00:02:22.271 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 909932 2023-12-18 00:02:22.321 - info: fritzdect.0 (10589) DECT ID: 116570243229 identified for command (state) : true 2023-12-18 00:02:46.084 - info: web.0 (10634) ==> Connected system.user.admin from ::ffff:192.168.178.83 2023-12-18 00:07:47.051 - info: web.0 (10634) <== Disconnect system.user.admin from ::ffff:192.168.178.83 vis.0 2023-12-18 00:15:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 00:30:00.015 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 00:43:41.104 - error: bmw.0 (10574) update failed 2023-12-18 00:43:41.107 - error: bmw.0 (10574) AxiosError: Request failed with status code 403 2023-12-18 00:43:41.107 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:16:19."} 2023-12-18 00:45:00.013 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 00:58:41.104 - error: bmw.0 (10574) update failed 2023-12-18 00:58:41.105 - error: bmw.0 (10574) AxiosError: Request failed with status code 403 2023-12-18 00:58:41.105 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:01:19."} 2023-12-18 00:59:57.618 - warn: modbus.0 (10433) Error: undefined 2023-12-18 00:59:57.619 - error: modbus.0 (10433) Request timed out. 2023-12-18 00:59:57.620 - error: modbus.0 (10433) Client in error state. 2023-12-18 00:59:57.620 - warn: modbus.0 (10433) Poll error count: 1 code: {"err":"timeout","timeout":5000} 2023-12-18 00:59:58.620 - info: modbus.0 (10433) Disconnected from slave 192.168.178.28 2023-12-18 01:00:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 01:00:20.841 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean" 2023-12-18 01:00:20.849 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean" 2023-12-18 01:00:20.853 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean" 2023-12-18 01:00:20.904 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean" 2023-12-18 01:00:34.785 - info: shelly.0 (10448) [MQTT] Client Close: 192.168.178.100 (shellyplusplugs / shellyplusplugs-80646fe770c4 / shellyplusplugs#80646fe770c4#1) (false) 2023-12-18 01:00:58.626 - info: modbus.0 (10433) Connected to slave 192.168.178.28 2023-12-18 01:00:58.803 - info: shelly.0 (10448) [MQTT] Device with client id "shellyplusplugs-80646fe770c4" connected! 2023-12-18 01:02:20.836 - info: javascript.0 (10388) script.js.Batterie_Netzladen: true 2023-12-18 01:02:20.837 - info: javascript.0 (10388) script.js.Batterie_Netzladen: -689 2023-12-18 01:15:00.030 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 01:30:00.034 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 1 | Reboots korrigiert: 0 | Unveränderte Werte: 4 2023-12-18 01:37:34.045 - info: host.iobroker Delete log file iobroker.2023-12-10.log.gz 2023-12-18 01:45:00.013 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 2 | Reboots korrigiert: 0 | Unveränderte Werte: 3 2023-12-18 01:48:41.219 - error: bmw.0 (10574) update failed 2023-12-18 01:48:41.220 - error: bmw.0 (10574) AxiosError: Request failed with status code 403 2023-12-18 01:48:41.220 - error: bmw.0 (10574) {"statusCode":403,"message":"Out of call volume quota. Quota will be replenished in 00:11:19."} 2023-12-18 02:00:00.014 - info: javascript.0 (10388) script.js.Skript_Shelly_Verbrauch: Shelly Verbrauch: Verbrauchswerte aktualisiert: 2 | Reboots korrigiert: 0 | Unveränderte Werte: 3 2023-12-18 02:00:20.713 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean" 2023-12-18 02:00:20.716 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Stundenblock" has to be type "number" but received type "boolean" 2023-12-18 02:00:20.724 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean" 2023-12-18 02:00:20.735 - info: tibberlink.0 (10604) State value to set for "0_userdata.0.Tibberlink_Kanäle.beste_Kosten" has to be type "number" but received type "boolean" 2023-12-18 02:02:20.707 - info: javascript.0 (10388) script.js.Batterie_Netzladen: true 2023-12-18 02:02:20.707 - info: javascript.0 (10388) script.js.Batterie_Netzladen: 1128 2023-12-18 02:05:05.075 - info: cloud.0 (10674) Connection changed: disconnect 2023-12-18 02:05:05.078 - info: cloud.0 (10674) Connection lost 2023-12-18 02:05:05.079 - info: cloud.0 (10674) Restart adapter by disconnect 2023-12-18 02:05:15.082 - warn: cloud.0 (10674) Terminated (-100): Without reason