NEWS
JSON String aus mehreren Datenpunkten für Tabelle
-
Hallo zusammen,
ich scheitere leider daran einen JSON String aus verschiedenen Datenpunkten zu bauen.
Der JSON String soll am Ende so aussehen:
[
{
"Anlagenname": "Anlagenname",
"Spannung": "230",
"Leistung": "350"
}
]So sehen die Datenpunkte aus:
Spannung: 'modbus.0.holdingRegisters.19006_G_ULL0'
Leistung: 'modbus.0.holdingRegisters.19026_G_P_SUM3'Anlagenname kann vom Namen eines der Datenpunkte genommen werden (dp.state.name).
Ich würde die Datenpunkte gerne manuell im Script definieren da sich die Bezeichnung dieser schon mal ändert. Die Reihenfolge wäre aber immer Spannung, Leistung.
Kann mir da mal bitte jemand einen Einstieg aufzeigen?
Danke!
-
@ck_coke
Sollen da das noch mehr Anlagen dazukommen?
Ich Frage weil das ein array ist. -
Ja es sollen noch mehr Anlagen dazu kommen.
-
@ck_coke sagte: einen Einstieg aufzeigen?
Prinzip in Blockly:
-
Vielen Dank!
Damit habe ich den Einstieg gefunden!!! -
probiere mal hier.
ich habe das trocken aufgeschrieben, also nicht getestet-
aber das Prinzip müsste klar werden.let myArray = []; myArray.push(getAnlage( "userdata_0.anlagename", "userdata_0.leistung", "userdata_0.spannung", )); console.log(JSON.stringify(myArray)); async function getAnlage(anlagenid,leistungid,spannungid) { let anlage = await getStateAsync(anlagenid); let spannung = await getStateAsync(leistungid); let leistung = await getStateAsync(spannungid); return { "Anlagenname":anlage, "Spannung":spannung, "Leisutng":leistung } }
Einfacher würde aber gehen, das direkt in einem html widget zu definieren
<table> <tr> <th>Anlagenname</th> <th>Spannung</th> <th>Leistung</th> </tr> <tr> <td>{0_userdata.anlagenname}</td> <td>{0_userdata.Spannung}</td> <td>{0_userdata.Leistung}</td> </tr> </table>