NEWS
Number ist aufeinmal String?
-
Guten Tag liebe Community,
ich habe seit ein paar Tagen etwas festgestellt. Und zwar habe ich einen Datenpunkt mit Typ Number. Diese Variable wird im Heizungsskript den Solltemperatur-Datenpunkten der Heizungen gegeben.
Diesen Datenpunkt kann man seit paar Tagen in Lovelace ändern, hier die Einstellungen:
{ "common": { "name": "TagtemperaturSupport", "desc": "Manuell erzeugt", "role": "state", "type": "number", "read": true, "write": true, "def": 0, "custom": { "lovelace.0": { "enabled": true, "entity": "input_number", "name": "Raum_Support_TagtemperaturSupport", "attr_mode": "box" } } }, "type": "state", "native": {}, "_id": "0_userdata.0.Raum.Support.TagtemperaturSupport", "acl": { "object": 1636, "state": 1636, "file": 1632, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1722240525184 }
Ich habe gleich auch mal testweise den Wert verändert - Funktioniert super.
Allerdings kam am nächsten Tag die Meldung im Log:
2024-08-02 06:00:00.009 - warn: javascript.0 (31850) You are assigning a string to the state "hm-rpc.1.00399F29A4F5DA.1.SET_POINT_TEMPERATURE" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions. 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1975:20) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at Object. (script.js.common.Raum.Support.Support_autom__Heizungssteuerung:14:7) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1769:34) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at listOnTimeout (node:internal/timers:569:17) 2024-08-02 06:00:00.012 - warn: javascript.0 (31850) at processTimers (node:internal/timers:512:7) 2024-08-02 06:00:00.019 - info: javascript.0 (31850) State value to set for "hm-rpc.1.00399F29A4F5DA.1.SET_POINT_TEMPERATURE" has to be type "number" but received type "string"
Es sagt, ich würde der Solltemperatur einen String überweisen?
Das ist der Ausschnitt aus meinem Blockly:
Dieser hat zuvor problemlos funktioniert. Erst, seitdem ich den Wert geändert habe im Lovelace-Eingabefeld, kommt es zu dem String-Problem.
Kennt das jemand?
-
@timmss sagte in Number ist aufeinmal String?:
Erst, seitdem ich den Wert geändert habe im Lovelace-Eingabefeld, kommt es zu dem String-Problem.
dann schreibt lovelace wohl einen String.
Wandeln in Zahl hilft nicht? -
@homoran Ich habe das jetzt mal probiert:
Und damit klappt es fehlerfrei. Trotzdem komisch, weil es ja eigentlich nie zum String gemacht wird.
-
@timmss sagte in Number ist aufeinmal String?:
weil es ja eigentlich nie zum String gemacht wird.
tatsächlich?
was sagt denn
Typ von
?@homoran sagte in Number ist aufeinmal String?:
dann schreibt lovelace wohl einen String.
-
2024-08-02 09:46:53.778 - info: javascript.0 (31850) script.js.common.Test.Testskript1: Typ von Datenpunkt = number
Sehr komisch.
-
@timmss sagte in Number ist aufeinmal String?:
Sehr komisch.
nee, falscher Block,
deswegen hab ich ihn wieder weggenommen.
das ist der Datenpunkt-Typ, nicht der Typ des Werts -
@homoran Sorry, da hat es wieder gekracht
2024-08-02 09:58:45.308 - info: javascript.0 (31850) script.js.common.Test.Testskript1: Typ von Wert = string
Es passiert aber echt beim Verändern des Wertes im Lovelace Eingabefeld. Ich habe es mit einem Wert probiert, den ich noch nicht im Lovelace Feld verändert habe und er sagt mir Typ = number. Nun habe ich ihn verändert und er sagt Typ = string
-
@timmss sagte in Number ist aufeinmal String?:
Typ von Wert = string
@timmss sagte in Number ist aufeinmal String?:
weil es ja eigentlich nie zum String gemacht wird.
-
@homoran Jaja, deswegen das eigentlich kursiv geschrieben
Mein Lovelace Eingabefeld vom Typ input-number wandelt meine Eingaben in String um.
-
@timmss sagte in Number ist aufeinmal String?:
@homoran Jaja, deswegen das eigentlich kursiv geschrieben
Mein Lovelace Eingabefeld vom Typ input-number wandelt meine Eingaben in String um.
Wäre ein Issue wert!
-
Issue ist erstellt, https://github.com/ioBroker/ioBroker.lovelace/issues/545
-
Die Lovelace Version 4.1.11 ist nun da. Number-Werte bleiben jetzt auch number-Werte nach Veränderung in Lovelace Eingabefeldern.
Vielen lieben Dank @Garfonso!