NEWS
Erster Versuch ein JSON zu erzeugen
Erster Versuch ein JSON zu erzeugen
-
@chris76e sagte: Cannot set properties of undefined (setting 'Ende')
Ist Zeile 14 in meinem Vorschlag jetzt Zeile 29?
Schiebe mal die Deklaration von obj (Zeile 10) vor den Trigger.@chris76e sagte in Erster Versuch ein JSON zu erzeugen:
wie die Endzeit immer neu geschrieben wurden ist
Das ist ein anderes Skript.
Habe das Script jetzt so geändert:
const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = getObject(idProg).common.states[getState(idProg).val]; } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } });Dann wird das in JSON geschrieben, fehlt also noch das Programm
[ { "Start": "05.09.22 23:37", "Ende": "05.09.22 23:38" } ]Die Zeilen hatten sich beim Kopieren vom Script geändert, wurde immer eine leerzeile eingefügt, ist jetzt geändert.
-
Habe das Script jetzt so geändert:
const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = getObject(idProg).common.states[getState(idProg).val]; } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } });Dann wird das in JSON geschrieben, fehlt also noch das Programm
[ { "Start": "05.09.22 23:37", "Ende": "05.09.22 23:38" } ]Die Zeilen hatten sich beim Kopieren vom Script geändert, wurde immer eine leerzeile eingefügt, ist jetzt geändert.
-
@chris76e sagte: fehlt also noch das Programm
Ohne Error- oder Warn-Log?
Füge mal Logs ein (hinter Zeile 11):log(getState(idProg).val); log(getObject(idProg).common.states[getState(idProg).val]); -
Wenn Spülmaschiene Startet kommt das im Log
00:23:34.096 info javascript.0 (649) script.js.common.JSON.JASONSP: null 00:23:34.097 info javascript.0 (649) script.js.common.JSON.JASONSP: undefined -
Da ist das selbe....
00:43:45.727 info javascript.0 (649) script.js.common.JSON.JASONSP: null 00:43:45.728 info javascript.0 (649) script.js.common.JSON.JASONSP: undefinedconst idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Programm = getObject(idProg).common.states[getState(idProg).val]; obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); log(getState(idProg).val); log(getObject(idProg).common.states[getState(idProg).val]); } }); -
Vieleicht hilft das dir noch weiter, die Objektdaten von
{ "type": "state", "common": { "name": "BSH_Common_Root_ActiveProgram", "type": "string", "role": "indicator", "write": true, "read": true, "states": { "Dishcare.Dishwasher.Program.Intensiv70": "Intensiv 70°", "Dishcare.Dishwasher.Program.Auto2": "Auto 45-65°", "Dishcare.Dishwasher.Program.Eco50": "Eco 50°", "Dishcare.Dishwasher.Program.Quick45": "Speed 45°", "Dishcare.Dishwasher.Program.PreRinse": "Vorspülen", "Dishcare.Dishwasher.Program.Quick65": "Speed 65°", "Dishcare.Dishwasher.Program.MachineCare": "Maschinenpflege" }, "custom": { "history.0": { "enabled": true, "aliasId": "", "debounceTime": 0, "blockTime": 0, "changesOnly": false, "changesRelogInterval": 0, "changesMinDelta": 0, "ignoreBelowNumber": "", "disableSkippedValueLogging": false, "retention": 31536000, "customRetentionDuration": 365, "maxLength": 10, "enableDebugLogs": false, "debounce": 0 } } }, "native": {}, "_id": "homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.homeconnect.0", "user": "system.user.admin", "ts": 1662416101983 } -
Bin jetzt einwenig weiter gekommen, wenn ich den DP
homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgramnehme, dann wird der erkannt.
Aber mit der Schleife ist nochwas nicht richtig. Hier werden Daten überschrieben
[ { "Start": "06.09.22 00:42", "Ende": "06.09.22 00:43" }, { "Start": "06.09.22 09:25", "Ende": "06.09.22 09:25", "Programm": "Eco 50°" }, { "Start": "06.09.22 09:25", "Ende": "06.09.22 09:25", "Programm": "Eco 50°" } ][ { "Start": "06.09.22 00:42", "Ende": "06.09.22 00:43" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" } ]const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = getObject(idProg).common.states[getState(idProg).val]; log(getState(idProg).val); log(getObject(idProg).common.states[getState(idProg).val]); } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } }); -
Bin jetzt einwenig weiter gekommen, wenn ich den DP
homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgramnehme, dann wird der erkannt.
Aber mit der Schleife ist nochwas nicht richtig. Hier werden Daten überschrieben
[ { "Start": "06.09.22 00:42", "Ende": "06.09.22 00:43" }, { "Start": "06.09.22 09:25", "Ende": "06.09.22 09:25", "Programm": "Eco 50°" }, { "Start": "06.09.22 09:25", "Ende": "06.09.22 09:25", "Programm": "Eco 50°" } ][ { "Start": "06.09.22 00:42", "Ende": "06.09.22 00:43" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" } ]const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = getObject(idProg).common.states[getState(idProg).val]; log(getState(idProg).val); log(getObject(idProg).common.states[getState(idProg).val]); } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } });Habe vermutlich zuschnell das Programm am GS gestoppt.
Habe es jetzt einwenig länger laufen lassen und dann wird richtig geschrieben.
{ "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:13", "Programm": "Eco 50°", "Ende": "06.09.22 10:20" } ] -
@chris76e sagte: fehlt also noch das Programm
Ohne Error- oder Warn-Log?
Füge mal Logs ein (hinter Zeile 11):log(getState(idProg).val); log(getObject(idProg).common.states[getState(idProg).val]);Kannst du dir nochmal bitte die schleife anschauen? Irgendwas stimmt da doch nicht.
Es werden weiter Dopelte Einträge gemacht, bzw. alte Einträge überschrieben.
[ { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:49", "Programm": "Intensiv 70°", "Ende": "06.09.22 09:49" }, { "Start": "06.09.22 09:49", "Programm": "Intensiv 70°", "Ende": "06.09.22 09:49" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:31", "Programm": "Eco 50°", "Ende": "06.09.22 15:08" }, { "Start": "06.09.22 10:31", "Programm": "Eco 50°", "Ende": "06.09.22 15:08" } ] -
Kannst du dir nochmal bitte die schleife anschauen? Irgendwas stimmt da doch nicht.
Es werden weiter Dopelte Einträge gemacht, bzw. alte Einträge überschrieben.
[ { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:28", "Ende": "06.09.22 09:28", "Programm": "Speed 45°" }, { "Start": "06.09.22 09:49", "Programm": "Intensiv 70°", "Ende": "06.09.22 09:49" }, { "Start": "06.09.22 09:49", "Programm": "Intensiv 70°", "Ende": "06.09.22 09:49" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:09", "Programm": "Auto 45-65°", "Ende": "06.09.22 10:11" }, { "Start": "06.09.22 10:31", "Programm": "Eco 50°", "Ende": "06.09.22 15:08" }, { "Start": "06.09.22 10:31", "Programm": "Eco 50°", "Ende": "06.09.22 15:08" } ] -
@chris76e sagte: Es werden weiter Dopelte Einträge gemacht
Das kann nur am Verhalten des Datenpunktes "homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState" liegen". Logge mal den Wert bei jedem Trigger-Ereignis.
Hier der Eintrag aus dem Log
- Start war noch ohne log vom Ende
20:19:34.230 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege 20:27:19.463 info javascript.0 (649) Stop script script.js.common.JSON.JASONSP 20:27:19.466 info javascript.0 (649) Start javascript script.js.common.JSON.JASONSP 20:27:19.479 info javascript.0 (649) script.js.common.JSON.JASONSP: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 20:28:02.079 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:28:02.081 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:28:02.082 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick45 20:28:02.082 info javascript.0 (649) script.js.common.JSON.JASONSP: Speed 45° 20:30:16.619 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting 20:30:16.619 info javascript.0 (649) script.js.common.JSON.JASONSP: Aborting 20:32:02.233 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege 20:33:17.902 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting 20:33:17.902 info javascript.0 (649) script.js.common.JSON.JASONSP: AbortingUnd so sieht die JSON aus
{ "Start": "06.09.22 20:19", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:25" }, { "Start": "06.09.22 20:32", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:33" }, { "Start": "06.09.22 20:32", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:33" }Hier stand auch mal zwischenzeitlich der Eintrag von 20:28 mit Speed 45°
-
Hier der Eintrag aus dem Log
- Start war noch ohne log vom Ende
20:19:34.230 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare 20:19:34.231 info javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege 20:27:19.463 info javascript.0 (649) Stop script script.js.common.JSON.JASONSP 20:27:19.466 info javascript.0 (649) Start javascript script.js.common.JSON.JASONSP 20:27:19.479 info javascript.0 (649) script.js.common.JSON.JASONSP: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 20:28:02.079 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:28:02.081 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:28:02.082 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.Quick45 20:28:02.082 info javascript.0 (649) script.js.common.JSON.JASONSP: Speed 45° 20:30:16.619 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting 20:30:16.619 info javascript.0 (649) script.js.common.JSON.JASONSP: Aborting 20:32:02.233 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Run 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Run 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Dishcare.Dishwasher.Program.MachineCare 20:32:02.234 info javascript.0 (649) script.js.common.JSON.JASONSP: Maschinenpflege 20:33:17.902 info javascript.0 (649) script.js.common.JSON.JASONSP: BSH.Common.EnumType.OperationState.Aborting 20:33:17.902 info javascript.0 (649) script.js.common.JSON.JASONSP: AbortingUnd so sieht die JSON aus
{ "Start": "06.09.22 20:19", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:25" }, { "Start": "06.09.22 20:32", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:33" }, { "Start": "06.09.22 20:32", "Programm": "Maschinenpflege", "Ende": "06.09.22 20:33" }Hier stand auch mal zwischenzeitlich der Eintrag von 20:28 mit Speed 45°
@chris76e
Aus dem Log sehe ich, dass "Run" nur als kurzer Impuls gemeldet wird und danach das Programm, beendet durch "Aborting". Dann versuche es mal so:const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; // const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = dp.common.states[dp.state.val]; } else if (dp.state.val == 'BSH.Common.EnumType.OperationState.Aborting') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } }); -
@chris76e
Aus dem Log sehe ich, dass "Run" nur als kurzer Impuls gemeldet wird und danach das Programm, beendet durch "Aborting". Dann versuche es mal so:const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; // const idProg = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idStatus, function(dp) { if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = dp.common.states[dp.state.val]; } else if (dp.state.val == 'BSH.Common.EnumType.OperationState.Aborting') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } }); -
obj.Programm = dp.common.states[dp.state.val];Wo kommt jetzt der DP herr? Fehlt da nicht was?
-
@chris76e sagte: Wo kommt jetzt der DP herr?
Aus dem Trigger: Enthält den Zustand "laufendes Programm" nach "Run".
-
@chris76e sagte: Mit der Version wird nichts geschrieben
Wurde obj außerhalb des Triggers deklariert? Habe ich oben korrigiert.
-
@chris76e sagte: ist geändert, aber macht immer noch nichts.
@chris76e sagte in Erster Versuch ein JSON zu erzeugen:
Hier der Eintrag aus dem Log
Das ist wirklich der Wert des Trigger-Datenpunktes. Es sind zumindest zwei Log-Ausgaben. Logge mal nur den Trigger-Wert:
on(idStatus, function(dp) { log(dp.state.val);Alle anderen Logs kommentiere aus.
-
@chris76e sagte: ist geändert, aber macht immer noch nichts.
@chris76e sagte in Erster Versuch ein JSON zu erzeugen:
Hier der Eintrag aus dem Log
Das ist wirklich der Wert des Trigger-Datenpunktes. Es sind zumindest zwei Log-Ausgaben. Logge mal nur den Trigger-Wert:
on(idStatus, function(dp) { log(dp.state.val);Alle anderen Logs kommentiere aus.
log sieht so aus
23:48:20.661 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Ready 23:48:25.593 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Run 23:49:37.318 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Aborting 23:50:02.051 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.ReadyWird aber nichts geschrieben
-
log sieht so aus
23:48:20.661 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Ready 23:48:25.593 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Run 23:49:37.318 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.Aborting 23:50:02.051 info javascript.0 (649) script.js.common.JSON.JASONTest: BSH.Common.EnumType.OperationState.ReadyWird aber nichts geschrieben
@chris76e
Habe mich hier durch die weiteren Logs täuschen lassen, da sie nicht gekennzeichnet sind.
Weshalb das Skript doppelte Einträge erzeugt, erschließt sich mir bisher nicht. Deshalb erzeuge bitte Logs mit Datenpunkt-Kennung:const idTable = '0_userdata.0.JSON.Spülmaschiene'; // ID JSON-Tabelle const idStatus = 'homeconnect.0.011040388898000963.status.BSH_Common_Status_OperationState'; const idProg = 'homeconnect.0.011040388898000963.programs.selected.BSH_Common_Root_SelectedProgram'; const idAktiv = 'homeconnect.0.011040388898000963.programs.active.BSH_Common_Root_ActiveProgram'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; on(idAktiv, function(dp) { log('Aktiv: ' + dp.state.val); }); on(idStatus, function(dp) { log('gewählt: ' + getState(idProg).val); log('alter Status: ' + dp.oldState.val); log('neuer Status: ' + dp.state.val); if(dp.state.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Start = formatDate(new Date(), 'DD.MM.YY hh:mm'); obj.Programm = getObject(idProg).common.states[getState(idProg).val]; } else if(dp.oldState.val == 'BSH.Common.EnumType.OperationState.Run') { obj.Ende = formatDate(new Date(), 'DD.MM.YY hh:mm'); table.push(obj); if(table.length > 10) table.shift(); setState(idTable, JSON.stringify(table), true); } });