NEWS
#solved / Datenpunkt auslesen um Rechnung zu erstellen
-
Guten tag Ihr Lieben.
Ich habe da mal eine Blockly/Datenpunkt Frage:
Ich errechne mit einem Blockly Script einen kWh Wert.
(Impulse pro kWh, Offset, etc..)Wenn ich in Blockly diese Konstellation benutze, geht es!
Dort gebe ich den Offset Wert im Script direkt ein.
Wenn ich diesen Offset allerdings von "außen" eintragen möchte, dachte ich an das hier an der gleichen Stelle:
Die Datenpunkte sehen so aus:
Wenn ich die Blockly Aufgabe mit "außen" einstellbare Funktion betreibe, sieht man in dem Datenpunkt Bild, das dass Ergebnis mit (null) deklariert wird.
Ohne diese Änderung bekomme ich einen echten Wert, also das was ich möchte.Wie verändere ich den Datenpunkt "faktor", damit dieser vom Blockly Script anerkannt wird?!
Der Datenpunkt "faktor" hat:
{ "common": { "name": "faktor", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": false }, "type": "state", "_id": "0_userdata.0.faktor", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1629555179671 }
Der Datenpunkt "Zahl" hat:
{ "common": { "name": "Zahl", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": 0, "color": "#11d80e" }, "type": "state", "_id": "0_userdata.0.Zahl", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1629554525604 }
Zusammengefasst:
Warum geht das Script nicht, wenn ich den Wert von "außen" hole und wenn ich den "factor" direkt im Script eingebe, es geht?!
Hilfe :(((
Euer Dice
-
@dices
Füge mal nach x = x + Wert von faktor eine Log-Ausgabe von x ein, um zu sehen, was das Ergebnis der Addition (oder String-Verkettung) ist. -
Oke gute Idee:
Nach dem Runden auf 3 Nachkommastellen ist das Ergebnis NaN
Davor ist es eine echte Dezimalzahl.
Was geschieht da?
-
@dices sagte: Davor ist es eine echte Dezimalzahl.
Mit 2 Punkten? Das ist eine String-Verkettung von 5.924 + "28.701". Wandle mal den "Wert von faktor" nach Zahl.
-
Nun:
Das Objekt "faktor" ist:
{ "common": { "name": "faktor", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": 0 }, "type": "state", "_id": "0_userdata.0.faktor", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1629558831100 }
Das Objekt "Zahl ist:
{ "common": { "name": "Zahl", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": 0, "color": "#11d80e" }, "type": "state", "_id": "0_userdata.0.Zahl", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1629558820447 }
Das Ergebnis ist imme rnoch seltsam.
Die Funktion:Wo X auf den Wert + den Anderen Wert gesetzt wird mit diesem "+" ist das auch als Addition gemeint oder nur als "Füge zusammen?!"
-
@dices sagte: ist das auch als Addition gemeint oder nur als "Füge zusammen?!"
Wenn ein Wert vom Typ "string" ist, erfolgt bei + immer eine String-Verkettung.
So passiert es nicht: -
Ach sooo, also muss die Addition "als ZAHL" addiert werden!
Warte...
SO!
Ich glaube jetzt geht es...:Ergebnis:
Scheint mir auf den Ersten Blick richtg.
Aber warum muss ich diesen Baustzein "nach Zahl" dazu geben?
Werden dann nicht die beiden Werte addiert "von Haus aus"? -
@dices sagte: Werden dann nicht die beiden Werte addiert "von Haus aus"?
28.701 wird anscheinend als String eingelesen. Keine Ahnung weshalb. Vielleicht ein unsichtbares Zeichen oder ein Leerzeichen hinten dran?
-
Das werde ich noch genauer verfolgen warum das so ist.
Jetzt geht es, also mein Problem ist dank dir gelöst!
Danke dir
Grüße und /closed
Dices