NEWS
Brauche bitte Hilfe zu Json String
-
@paul53
ok, das habe ich schon beim suchen irgendwo gelesen.
Aber bei mir scheitert es gerade dabei, wo ich genau das eintragen muss ? -
@yoshi sagte: wo ich genau das eintragen muss ?
Das ist ein Javascript. Der Datenpunkt mit dem JSON ist der Trigger und die neuen Datenpunkte vom Typ "Zahl" erstellt man vorher unter "0_userdata.0".
-
@yoshi So?
-
@mcu sagte: So?
Oder so (nur einige Datenpunkte): -
Hab nun diese Skript laufen.
on(idJson, function(mqtt.0.Seplos.SEPLOS_dfc47.AllJsonData) {
const obj = JSON.parse(dp.state.val);
setState(idCellTemp2, obj.Temperatures.CellTemp2, true);
});Und diesen Datenpunkt erstellt.
Aber er kommt mit der Fehlermeldung: und schreibt nichts rein.
javascript.0 (8856) script.js.Übergreifendes.Batterie compile failed:
at script.js.Übergreifendes.Batterie:1 -
@yoshi sagte: Hab nun diese Skript laufen.
Korrektur:
const idJson = 'mqtt.0.Seplos.SEPLOS_dfc47.AllJsonData'; const path = '0_userdata.0.Batterie.' on(idJson, function(dp) { const obj = JSON.parse(dp.state.val); setState(path + 'Temperatures.CellTemp1', obj.Temperatures.CellTemp1, true); setState(path + 'Temperatures.CellTemp2', obj.Temperatures.CellTemp2, true); // usw. });
-
Genial, funktioniert.
Muss ich für jeden Wert ein eigenes Skript bauen, oder kann ich das irgendwie fortlaufend machen ?Vielen Dank für die schnelle Hilfe
-
@yoshi sagte: kann ich das irgendwie fortlaufend machen ?
Fortlaufend ein setState() unter dem anderen (habe oben um "CellTemp1" ergänzt).
-
@paul53
VIELEN DANK!! -
@yoshi
Für die 16 Zellenspannungen kann man eine Schleife verwenden:for(let i = 1; i <= 16; i++) { setState(path + 'CellVoltages.Cell' + i, obj.CellVoltages['Cell' + i], true); }