NEWS
Vis Binding mit Zahl funktioniert nicht
-
Hallo, ich möchte in die CSS Farbe eine IF Abfrage einbauen.
{x:smartmeter.0.1-0:16_7_0__255.value; parseFloat(x) < 1 ? "#ffc404" : "red"}
Aber es ist immer RED egal ob der Wert über oder unter 1 liegt.
Ein Test im HTML Widget zeigt das Problem:{smartmeter.0.1-0:16_7_0__255.value} <br/> {x:smartmeter.0.1-0:16_7_0__255.value; typeof x} <br/> {x:smartmeter.0.1-0:16_7_0__255.value; typeof parseFloat(x)} <br/> {x:smartmeter.0.1-0:16_7_0__255.value; parseFloat(x)} <br/> {x:smartmeter.0.1-0:16_7_0__255.value; parseFloat(x) < 1} <br/>
Ergibt folgende Ausgabe in der View
-148.53 string number NaN false
typeof parseFloat funktioniert wie erwartet und gibt eine number zurück.
Aber bei der folgenden Zeile ist es dann NaNWo sitzt der Fehler?
Grüße Marco
-
funktioniert alles.
{0_userdata.0.testFolder.test} <br/> {x:0_userdata.0.testFolder.test; typeof x} <br/> {x:0_userdata.0.testFolder.test; typeof parseFloat(x)} <br/> {x:0_userdata.0.testFolder.test; parseFloat(x)} <br/> {x:0_userdata.0.testFolder.test; parseFloat(x) < 1} <br/>
-148.53 string number -148.53 true
148.53 string number 148.53 false
-
@sinky
Funktioniert auch bei mir tadellos.
Wie ist denn Deinsmartmeter.0.1-0:16_7_0__255.value
definiert? -
zum vergleich so sieht mein datenpunkt aus.
ne normale number{ "common": { "name": "testFolder.test", "desc": "Manually created", "role": "state", "type": "number", "read": true, "write": true, "def": 0 }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1720175999472, "_id": "0_userdata.0.testFolder.test", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@oliverio
Meiner ist string:{ "common": { "name": "teststring", "desc": "Manuell erzeugt", "role": "state", "type": "string", "read": true, "write": true, "def": "" }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1720176543393, "_id": "0_userdata.0.Test.teststring", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
bei binding ist das eigentlich auch egal, da die meisten datentypen immer nur als string ankommen
-
Hä, mit einem Testdatenpunkt funktioniert es bei mir dann auch.
So sieht der problematische Datenpunkt aus
{ "type": "state", "common": { "name": "1-0:16_7_0__255.value", "type": "number", "read": true, "unit": "W", "role": "value", "write": false, "custom": { "influxdb.0": { "enabled": true, "storageType": "", "aliasId": "", "changesOnly": false, "debounce": 1000, "changesRelogInterval": 0, "changesMinDelta": 0, "debounceTime": 0, "blockTime": 60000, "ignoreBelowNumber": "", "disableSkippedValueLogging": false, "enableDebugLogs": false } } }, "native": { "id": "1-0:16_7_0__255.value" }, "_id": "smartmeter.0.1-0:16_7_0__255.value", "acl": { "object": 1636, "state": 1636, "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1673021874671 }
Wie bekomme ich das jetzt mit diesem Datenpunkt hin?
Gruß Marco
-
@sinky sagte in Vis Binding mit Zahl funktioniert nicht:
smartmeter.0.1-0:16_7_0__255.value
dein problem ist der name des dp:
smartmeter.0.1-0:16_7_0__255.value
ist ein vis fehler - der doppelpunkt ist das problem - du musst dir ein alias davon anlegen