Hi,
wie mir aufgefallen ist funktionieren die dynamic Icons doch nicht alle in der OH3 Übersicht. Icons die sich anhand von Zahlen anpassen (wie z.B. battery) funktionieren noch nicht. Das ist wohl noch nicht implementiert.
Aber nun geht es mir um etwas anderes.
Bei manchen Channels die ich vom Fronius Wechselrichter auslese kommt manchmal keine Zahl, sondern das Wort "null" (z.B. bei der PV Leistung am Abend, bevor der Wechselrichter dann in Standby geht. Ich habe solche Channels also als string angelegt. Das Item möchte ich aber doch als Number haben, damit ich die Werte auch als Chart anzeigen kann. Nun habe ich schon versucht mit einer MAP das Wort null in den Wert 0 umzuwandeln, das hat nicht funktioniert. Nun versuche ich es mit Javascript, das sieht momentan so aus:
Code: Alles auswählen
(function(string){
var data = JSON.parse(string);
var value = data.Body.Data.Site.P_PV.toString();
if (value == 'null') {
value = 0;
}
return value;
})(input)
Funktioniert aber auch nicht, sobald die "null" auftaucht. Es kommt folgende Meldung im Log:
Code: Alles auswählen
2021-05-03 20:27:10.759 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='p_pv_null.js', serviceName='JS'} failed: An error occurred while executing script. TypeError: null has no such function "toString" in <eval> at line number 3
Es hakt also schon beim auslesen in der Zeile 3.
Kann man in dem Javascript nicht irgendwie angeben, dass immer wenn in Zeile 3 nichts ausgelesen wird, oder es keine Zahl ist, der value auf 0 gesetzt werden soll?