NEWS
Einzelwerte aus Zeichenkette auslesen
-
@paul53
Vielen Dank, habs soweit nachgebaut, bekomme den Wert 291 gerade noch nicht auf den Bus. Kann ich mir im Debug anschauen, was durch das Skript ausgespuckt wird?
-
@blacksheep587 sagte: bekomme den Wert 291 gerade noch nicht auf den Bus.
Der JSON-String in "salt" muss sich erst ändern, damit getriggert wird. Um das zu provozieren, kann man den Wert von vorgestern im JSON manuell ändern.
-
@paul53 Okay, jetzt habe ich einen String extrahiert. Wie muss es aussehen, wenn ich daraus eine Zahl(Number) machen möchte?
-
@blacksheep587 sagte: String extrahiert. Wie muss es aussehen, wenn ich daraus eine Zahl(Number) machen möchte?
Verstehe ich nicht. Das macht das gezeigte Skript unter der Voraussetzung, dass der Trigger auslöst.
Damit der Wert auch bei Skriptstart geschrieben wird, ergänze das Skript: -
@paul53 das sagt das Log zu Skript 1
-
@blacksheep587 sagte: das sagt das Log zu Skript 1
Was wurde denn in den KNX-Datenpunkt geschrieben? Im JSON liegt 291 als Zahl vor, muss also nicht gewandelt werden.
-
@paul53 das habe ich gerade noch entdeckt.
Aktuell steht in der ETS 0
-
@blacksheep587 sagte: das habe ich gerade noch entdeckt.
Poste bitte den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
var obj1, obj2; on({id: 'gruenbeck.0.softliQ.D/BS50010188.salt', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; obj1 = (function () { try {return JSON.parse((obj.state ? obj.state.val : ""));} catch(e) {return {};}})()[0]; setState("knx.0.Sonderfunktionen.Wasseraufbereitung.softliQ-Salzverbrauch_gestern"/*softliQ-Salzverbrauch_gestern*/, getAttr(obj1, 'value')); }); on({id: 'gruenbeck.0.softliQ.D/BS50010188.water', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; obj2 = (function () { try {return JSON.parse((obj.state ? obj.state.val : ""));} catch(e) {return {};}})()[0]; setState("knx.0.Sonderfunktionen.Wasseraufbereitung.softliQ-Weichwasserverbrauch_gestern"/*softliQ-Weichwasserverbrauch_gestern*/, getAttr(obj2, 'value')); });
-
@blacksheep587 Kein Fehler zu erkennen.
@blacksheep587 sagte in Einzelwerte aus Zeichenkette auslesen:
Aktuell steht in der ETS 0
Wenn nicht immer der JSON-String im Datenpunkt steht, dann ergänze um eine Prüfung:
-
@blacksheep587 said in Einzelwerte aus Zeichenkette auslesen:
@paul53 das habe ich gerade noch entdeckt.
Aktuell steht in der ETS 0
Hat es denn bei dir noch funktioniert?
Ich bekomme ebenfalls "Cannot get value of undefined".Viele Grüße