NEWS
vis binding durch Vergleich Farbe ändern
-
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
und sehe trotz großer Sucheaktion den Fehler nicht:
zu sehen habe ich auch nichts
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
alle beiden sind als Typ number hinterlegt
Soll heißen? Die Datenpunkte sind vom Typ Number?
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
Hat hier jemand eine Idee wo meine Stolperfalle ist?
Liefert der Sensor auch Numbers? oder Strings?
-
Mea culpa, ich habe zur Veranschaulichung jetzt ein Bild angehängt.
Ja, die Datenpunkte sind laut RAW Ansicht "Number":
"type": "state", "common": { "name": "temp", "type": "number", "role": "value.min", "unit": "°C",
Ich verstehe nur nicht warum das Binding funktioniert wenn beide Zahlen die gleiche Anzahl von Stellen haben
Edit: ich hab den View Export mal angehängt.
-
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
Ich verstehe nur nicht warum das Binding funktioniert wenn beide Zahlen die gleiche Anzahl von Stellen haben
das könnte ein Hinweis auf einen Stringvergleich sein.
Deswegen die Frage als was der Sensor die Daten liefert -
@Homoran
wie kann ich das herausfinden? Dachte wenn der DP als "Number" definiert ist, ist auch der Wert entsprechend gespeichert. -
@micklafisch sagte:
Dachte wenn der DP als "Number" definiert ist, ist auch der Wert entsprechend gespeichert.
Das ist leider nicht immer so.
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
wie kann ich das herausfinden?
Kurzes Test-Script:
log(typeof getstate('Hier die ID eingeben').val);
-
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
@Homoran
wie kann ich das herausfinden? Dachte wenn der DP als "Number" definiert ist, ist auch der Wert entsprechend gespeichert.@paul53 hat mir da mal geholfen:
https://forum.iobroker.net/topic/28101/wrong-type-of/8 -
@micklafisch sagte in vis binding durch Vergleich Farbe ändern:
{wert_min:Sensors.Sensor_1.min;wert_temp:Sensors.Sensor_1.temp;wert_min>wert_temp?"#ff0000"::"#000000"}
2 Doppelpunkte sind falsch, es düprfen nur einmal doppelpunkt sein
{wert_min:Sensors.Sensor_1.min;wert_temp:Sensors.Sensor_1.temp;wert_min>wert_temp?"#ff0000":"#000000"}
syntax ist hier identisch zu
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Conditional_Operator -
@paul53 @Homoran
habe beide Punkte abgefragt, das Skriptlog sagt es sind "number":21:20:00.993 info javascript.0 (10626) Start javascript script.js.common.zzz_Datenpunkttyp 21:20:01.001 info javascript.0 (10626) script.js.common.zzz_Datenpunkttyp: number 21:20:01.002 info javascript.0 (10626) script.js.common.zzz_Datenpunkttyp: number
@OliverIO
den Doppel-Doppelpunkt hatte ich schon beim endlosen experimentieren mal testweise entfernt, auch da funktioniert es nicht.Ich bin aktuell ratlos.
-
{wert_min:Sensors.Sensor_1.min; wert_temp:Sensors.Sensor_1.temp; parseInt(wert_min) > parseInt(wert_temp) ? "#ff0000" : "#000000"}
Die Leerzeichen sind nur wegen der besseren Lesbarkeit
-
@SBorg
Hi, es funktioniert endlich. Vielen Dank für die Infos und Hilfestellungen.
Warum ein Number nochmal konvertiert werden will/muss erklärt sich mir zwar nicht, aber jetzt klappts.Nochmals vielen Dank an alle!
-
@micklafisch Tücke des Objekts. Zumindest bis jetzt (ev. ändert es sich ja auch noch mal) wird der Datenpunkt beim Einlesen per Binding, unabhängig davon was es im Datenpunkt ist (Number, String, ...), als "String" eingelesen.