NEWS
Rechenaufgabe liefert "NULL"
-
Hallo zusammen,
ich habe ein Skript, welches einen Wert von einem anderen Wert abziehen soll. Als Ergebnis erscheint aber immer "NULL". Ich habe den Zustandstyp der Objekte geprüft, es ist alles auf "number" eingestellt. Ich kann mir das Verhalten nicht erklären. Hat jemand einen Tipp?



<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="C:I{E_+:_~Ru8U.OCC1k" x="538" y="88"> <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="=~:8~s)aX%e8h5:?bnFS"> <field name="oid">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="!KxuaL1Ln@W}Y9Py;1Ad"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2026</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="J}TSk/=y{!dZd[GRFvLP"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="C~1SQZfC6#}@zv;m$l{B"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="?,Qbi9;h|U=D[Y8z^`[6"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[)+;IN6ZoMCcG8Vh=?yN"> <field name="NUM">1</field> </shadow> <block type="get_value" id="qQl5}}.zA[V5@-{i[u)n"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </block> </value> <value name="B"> <shadow type="math_number" id="jwtcvn!bSjf:GD25_-uq"> <field name="NUM">1</field> </shadow> <block type="get_value" id="O8Fw]rN;2+CCu|G|pe30"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </xml>Danke!
Gruß surfer ;-)
-
Hallo zusammen,
ich habe ein Skript, welches einen Wert von einem anderen Wert abziehen soll. Als Ergebnis erscheint aber immer "NULL". Ich habe den Zustandstyp der Objekte geprüft, es ist alles auf "number" eingestellt. Ich kann mir das Verhalten nicht erklären. Hat jemand einen Tipp?



<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="C:I{E_+:_~Ru8U.OCC1k" x="538" y="88"> <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="=~:8~s)aX%e8h5:?bnFS"> <field name="oid">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="!KxuaL1Ln@W}Y9Py;1Ad"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2026</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="J}TSk/=y{!dZd[GRFvLP"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="C~1SQZfC6#}@zv;m$l{B"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="?,Qbi9;h|U=D[Y8z^`[6"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[)+;IN6ZoMCcG8Vh=?yN"> <field name="NUM">1</field> </shadow> <block type="get_value" id="qQl5}}.zA[V5@-{i[u)n"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </block> </value> <value name="B"> <shadow type="math_number" id="jwtcvn!bSjf:GD25_-uq"> <field name="NUM">1</field> </shadow> <block type="get_value" id="O8Fw]rN;2+CCu|G|pe30"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </xml>Danke!
Gruß surfer ;-)
@surfer09 sagte in Rechenaufgabe liefert "NULL":
ich habe ein Skript,
und wo kann man das sehen?
@surfer09 sagte in Rechenaufgabe liefert "NULL":
, es ist alles auf "number" eingestellt
das muss ja nicht der Grund sein.
Du kannst ja auch in einen DP vom Typ number einen Wert vom Typ String zwingen.
Dann sollte allerdings etwas passendes im log stehen -
Hallo zusammen,
ich habe ein Skript, welches einen Wert von einem anderen Wert abziehen soll. Als Ergebnis erscheint aber immer "NULL". Ich habe den Zustandstyp der Objekte geprüft, es ist alles auf "number" eingestellt. Ich kann mir das Verhalten nicht erklären. Hat jemand einen Tipp?



<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="C:I{E_+:_~Ru8U.OCC1k" x="538" y="88"> <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="=~:8~s)aX%e8h5:?bnFS"> <field name="oid">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="update" id="!KxuaL1Ln@W}Y9Py;1Ad"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2026</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="J}TSk/=y{!dZd[GRFvLP"> <field name="n">2</field> <value name="x"> <shadow type="math_number" id="C~1SQZfC6#}@zv;m$l{B"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="?,Qbi9;h|U=D[Y8z^`[6"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[)+;IN6ZoMCcG8Vh=?yN"> <field name="NUM">1</field> </shadow> <block type="get_value" id="qQl5}}.zA[V5@-{i[u)n"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-Stromzähler</field> </block> </value> <value name="B"> <shadow type="math_number" id="jwtcvn!bSjf:GD25_-uq"> <field name="NUM">1</field> </shadow> <block type="get_value" id="O8Fw]rN;2+CCu|G|pe30"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </xml>Danke!
Gruß surfer ;-)
-
@paul53 : Ich weiß jetzt nicht genau was du mit Werte meinst, aber dort stehen Dezimalzahlen. Typ der Objekte ist Zahl (number) - siehe Screenshots oben im ersten Beitrag.

-
@surfer09 sagte in Rechenaufgabe liefert "NULL":
Den Code vom Skript hatte ich mit eingefügt. (siehe oben)
der nutzt mir (und allen anderen Helfenden) unterwegs bicht due Bohne.
Deswegen wird es auch hier
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
explizit erwähnt: Blockly immer als Bild zeigen! -
@surfer09 sagte: Typ der Objekte ist Zahl (number)
Das bedeutet nicht, dass auch Zahlen enthalten sind. Strings können genau so aussehen. Deshalb prüfe es:

@paul53 sagte in Rechenaufgabe liefert "NULL":
Das bedeutet nicht, dass es auch Zahlen sind. Strings können genau so aussehen.
Dann würde das Ergebnis aber nie
nullsein. Ich gehe davon aus, dass das Script einfach nicht läuft undnullder Standardwert ist, nachdem der Datenpunkt angelegt wurde. -
@surfer09 sagte in Rechenaufgabe liefert "NULL":
Den Code vom Skript hatte ich mit eingefügt. (siehe oben)
der nutzt mir (und allen anderen Helfenden) unterwegs bicht due Bohne.
Deswegen wird es auch hier
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
explizit erwähnt: Blockly immer als Bild zeigen! -
@paul53 : Ich weiß jetzt nicht genau was du mit Werte meinst, aber dort stehen Dezimalzahlen. Typ der Objekte ist Zahl (number) - siehe Screenshots oben im ersten Beitrag.

@surfer09 sagte in Rechenaufgabe liefert "NULL":
Typ der Objekte ist Zahl (number) - siehe Screenshots oben im ersten Beitrag
sagte in Rechenaufgabe liefert "NULL":
@surfer09 sagte in Rechenaufgabe liefert "NULL":
, es ist alles auf "number" eingestellt
das muss ja nicht der Grund sein.
Du kannst ja auch in einen DP vom Typ number einen Wert vom Typ String zwingen.
Dann sollte allerdings etwas passendes im log stehen -
@surfer09 wie bereits geschrieben müsstest du dir den Typ der Werte ansehen, oder testweise erst mal due Werte auf Zahl konvertieren
-
@surfer09 sagte: Typ der Objekte ist Zahl (number)
Das bedeutet nicht, dass auch Zahlen enthalten sind. Strings können genau so aussehen. Deshalb prüfe es:

-
Ich habe das jetzt mal so laufen lassen. 3 verschiedene Typen .. sehe ich das richtig?? Wie bekomme ich das denn am einfachsten gerade gezogen?

@surfer09 sagte in Rechenaufgabe liefert "NULL":
3 verschiedene Typen .. sehe ich das richtig?
ja, wie vermutet!
@surfer09 sagte in Rechenaufgabe liefert "NULL":
Wie bekomme ich das denn am einfachsten gerade gezogen?
sagte in Rechenaufgabe liefert "NULL":
erst mal due Werte auf Zahl konvertieren
-
Ich habe das jetzt mal so laufen lassen. 3 verschiedene Typen .. sehe ich das richtig?? Wie bekomme ich das denn am einfachsten gerade gezogen?

@surfer09 sagte: 3 verschiedene Typen .. sehe ich das richtig?
Wenn das Skript läuft, muss bei der ersten Änderung des Zählerstandes ein Zahlenwert geschrieben werden. Das ist offenbar noch nicht der Fall gewesen.
Der String von "0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025" wird automatisch in eine Zahl konvertiert.
Der Typ von null ist in Javascript ein Objekt.Anmerkung: Dass "0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025" einen String enthält, liegt an einem Skript, das diesen DP schreibt.
-
Ich weiß gerade nicht genau, was ich jetzt machen soll...
Das Skript für den Datenpunkt 0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025 gibt es nicht mehr. Ich hatte das Skript nur für 2025 aktiv und wollte es jetzt für 2026 anpassen mit dem neuen Objekt 0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2026 -
Ich weiß gerade nicht genau, was ich jetzt machen soll...
Das Skript für den Datenpunkt 0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2025 gibt es nicht mehr. Ich hatte das Skript nur für 2025 aktiv und wollte es jetzt für 2026 anpassen mit dem neuen Objekt 0_userdata.0.PV-Anlage.Einspeisung-ins-Netz-2026 -
@surfer09 sagte: was ich jetzt machen soll...
Warten bis sich der Zählerstand ändert oder - falls es zu lange dauert - bei Skriptstart den Wert schreiben:

-
@paul53 Ich habe das Skript jetzt so angepasst, wie von dir beschrieben. Der Wert für 2026 ist aber weiterhin "NULL"


-
@paul53 Ich habe das Skript jetzt so angepasst, wie von dir beschrieben. Der Wert für 2026 ist aber weiterhin "NULL"


@surfer09 sagte in Rechenaufgabe liefert "NULL":
Der Wert für 2026 ist aber weiterhin "NULL"
...und welche Werte enthalten die zugrundeliegenden Datenpunkte?
ist da auch noch einnulldabei?hast du mal die Werte nach Zahl konvertiert?

