NEWS
Brauche bitte Hilfe zu Json String
-
Hallo Leute,
ich habe hier ein BMS, was ich per Matt angebunden habe. Das spuckt mir hier keine einzelnen Datenpunkte aus sondern alles in einem.
Wie kann ich nun aus dem String einzelne Datenpunkte erstellen. Ich stehe da gerade total auf dem Schlauch.{
"EspError": "",
"BMSAddress": 0,
"SOC": 38.4,
"RemainCapacity": 112.03,
"BatteryVoltage": 52.82,
"ChargeDischargeCurrent": -4.86,
"CellMinV": 3.301,
"CellMinIdx": 0,
"CellMaxV": 3.303,
"CellMaxIdx": 9,
"CellDiffMv": 1,
"CellCount": 16,
"CellVoltages": {
"Cell1": 3.301,
"Cell2": 3.301,
"Cell3": 3.302,
"Cell4": 3.302,
"Cell5": 3.301,
"Cell6": 3.301,
"Cell7": 3.301,
"Cell8": 3.302,
"Cell9": 3.302,
"Cell10": 3.303,
"Cell11": 3.301,
"Cell12": 3.301,
"Cell13": 3.302,
"Cell14": 3.303,
"Cell15": 3.302,
"Cell16": 3.303
},
"TempCount": 6,
"Temperatures": {
"CellTemp1": 17.5,
"CellTemp2": 17.6,
"CellTemp3": 17.9,
"CellTemp4": 17.6,
"AmbientTemp": 18.2,
"PowerTemp": 17
},
"BatteryCycles": 5,
"SOH": 100,
"BatteryCapacity": 291.35,
"RatedCapacity": 150,
"BusVoltage": 52.86
} -
Hallo Leute,
ich habe hier ein BMS, was ich per Matt angebunden habe. Das spuckt mir hier keine einzelnen Datenpunkte aus sondern alles in einem.
Wie kann ich nun aus dem String einzelne Datenpunkte erstellen. Ich stehe da gerade total auf dem Schlauch.{
"EspError": "",
"BMSAddress": 0,
"SOC": 38.4,
"RemainCapacity": 112.03,
"BatteryVoltage": 52.82,
"ChargeDischargeCurrent": -4.86,
"CellMinV": 3.301,
"CellMinIdx": 0,
"CellMaxV": 3.303,
"CellMaxIdx": 9,
"CellDiffMv": 1,
"CellCount": 16,
"CellVoltages": {
"Cell1": 3.301,
"Cell2": 3.301,
"Cell3": 3.302,
"Cell4": 3.302,
"Cell5": 3.301,
"Cell6": 3.301,
"Cell7": 3.301,
"Cell8": 3.302,
"Cell9": 3.302,
"Cell10": 3.303,
"Cell11": 3.301,
"Cell12": 3.301,
"Cell13": 3.302,
"Cell14": 3.303,
"Cell15": 3.302,
"Cell16": 3.303
},
"TempCount": 6,
"Temperatures": {
"CellTemp1": 17.5,
"CellTemp2": 17.6,
"CellTemp3": 17.9,
"CellTemp4": 17.6,
"AmbientTemp": 18.2,
"PowerTemp": 17
},
"BatteryCycles": 5,
"SOH": 100,
"BatteryCapacity": 291.35,
"RatedCapacity": 150,
"BusVoltage": 52.86
} -
@yoshi
Beispiel:on(idJson, function(dp) { const obj = JSON.parse(dp.state.val); setState(idCellTemp2, obj.Temperatures.CellTemp2, true); }); -
@paul53
ok, das habe ich schon beim suchen irgendwo gelesen.
Aber bei mir scheitert es gerade dabei, wo ich genau das eintragen muss ? -
Hallo Leute,
ich habe hier ein BMS, was ich per Matt angebunden habe. Das spuckt mir hier keine einzelnen Datenpunkte aus sondern alles in einem.
Wie kann ich nun aus dem String einzelne Datenpunkte erstellen. Ich stehe da gerade total auf dem Schlauch.{
"EspError": "",
"BMSAddress": 0,
"SOC": 38.4,
"RemainCapacity": 112.03,
"BatteryVoltage": 52.82,
"ChargeDischargeCurrent": -4.86,
"CellMinV": 3.301,
"CellMinIdx": 0,
"CellMaxV": 3.303,
"CellMaxIdx": 9,
"CellDiffMv": 1,
"CellCount": 16,
"CellVoltages": {
"Cell1": 3.301,
"Cell2": 3.301,
"Cell3": 3.302,
"Cell4": 3.302,
"Cell5": 3.301,
"Cell6": 3.301,
"Cell7": 3.301,
"Cell8": 3.302,
"Cell9": 3.302,
"Cell10": 3.303,
"Cell11": 3.301,
"Cell12": 3.301,
"Cell13": 3.302,
"Cell14": 3.303,
"Cell15": 3.302,
"Cell16": 3.303
},
"TempCount": 6,
"Temperatures": {
"CellTemp1": 17.5,
"CellTemp2": 17.6,
"CellTemp3": 17.9,
"CellTemp4": 17.6,
"AmbientTemp": 18.2,
"PowerTemp": 17
},
"BatteryCycles": 5,
"SOH": 100,
"BatteryCapacity": 291.35,
"RatedCapacity": 150,
"BusVoltage": 52.86
} -
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 -
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. }); -
@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).
-
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

