NEWS
[Gelöst] Script um JSON erzeugen funktioniert nicht
-
Hi,
versuche mit folgendem Script ein JSON zu erzeugen. Als trigger soll der DP "ecovacs-deebot.0.status.device" dienen.
Wenn ich das script starte bekomme ich folgende Warnung angezeigt:
16:53:42.813 info javascript.0 (2842511) Start javascript script.js.common.JSON.Deebot 16:53:42.828 warn javascript.0 (2842511) at script.js.common.JSON.Deebot:9:4 16:53:42.828 warn javascript.0 (2842511) at script.js.common.JSON.Deebot:31:3 16:53:42.828 info javascript.0 (2842511) script.js.common.JSON.Deebot: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsconst idTable = '0_userdata.0.JSON.Deebot'; const idRaum = 'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName'; const idDatumEnde ='ecovacs-deebot.0.map.lastCleanedSpotArea.dateTime'; const idFlaeche = 'ecovacs-deebot.0.cleaninglog.current.cleanedArea'; const idDauer = 'ecovacs-deebot.0.map.lastCleanedSpotArea.totalTime'; const idAktiv = 'ecovacs-deebot.0.status.device'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; var startDate = new Date(); on(idAktiv, function(dp) { if(dp.state.val) { obj = {}; obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.StartUhr = formatDate(new Date(), 'hh:mm'); } else { obj.Ende = idDatumEnde; obj.Dauer = idDauer; obj.Flaeche = idFlaeche; obj.Raum = idRaum; log(table); table.push(obj); if(table.length > 50) table.shift(); setState(idTable, JSON.stringify(table), true); log(table); } });Kann mir hier jemand auf die sprünge helfen?
Danke
-
Hi,
versuche mit folgendem Script ein JSON zu erzeugen. Als trigger soll der DP "ecovacs-deebot.0.status.device" dienen.
Wenn ich das script starte bekomme ich folgende Warnung angezeigt:
16:53:42.813 info javascript.0 (2842511) Start javascript script.js.common.JSON.Deebot 16:53:42.828 warn javascript.0 (2842511) at script.js.common.JSON.Deebot:9:4 16:53:42.828 warn javascript.0 (2842511) at script.js.common.JSON.Deebot:31:3 16:53:42.828 info javascript.0 (2842511) script.js.common.JSON.Deebot: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsconst idTable = '0_userdata.0.JSON.Deebot'; const idRaum = 'ecovacs-deebot.0.map.lastCleanedSpotArea.spotAreaName'; const idDatumEnde ='ecovacs-deebot.0.map.lastCleanedSpotArea.dateTime'; const idFlaeche = 'ecovacs-deebot.0.cleaninglog.current.cleanedArea'; const idDauer = 'ecovacs-deebot.0.map.lastCleanedSpotArea.totalTime'; const idAktiv = 'ecovacs-deebot.0.status.device'; var table = []; if(getState(idTable).val) table = JSON.parse(getState(idTable).val); var obj = {}; var startDate = new Date(); on(idAktiv, function(dp) { if(dp.state.val) { obj = {}; obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.StartUhr = formatDate(new Date(), 'hh:mm'); } else { obj.Ende = idDatumEnde; obj.Dauer = idDauer; obj.Flaeche = idFlaeche; obj.Raum = idRaum; log(table); table.push(obj); if(table.length > 50) table.shift(); setState(idTable, JSON.stringify(table), true); log(table); } });Kann mir hier jemand auf die sprünge helfen?
Danke
@chris76e
Im Tab "Protokolle" stehen mehr Informationen zur Warnung.
Welchen Wert enthält "0_userdata.0.JSON.Deebot"?Außerdem Zeilen 20 bis 23:
obj.Ende = getState(idDatumEnde).val; obj.Dauer = getState(idDauer).val; obj.Flaeche = getState(idFlaeche).val; obj.Raum = getState(idRaum).val; -
@chris76e
Im Tab "Protokolle" stehen mehr Informationen zur Warnung.
Welchen Wert enthält "0_userdata.0.JSON.Deebot"?Außerdem Zeilen 20 bis 23:
obj.Ende = getState(idDatumEnde).val; obj.Dauer = getState(idDauer).val; obj.Flaeche = getState(idFlaeche).val; obj.Raum = getState(idRaum).val;"0_userdata.0.JSON.Deebot" da stand "null" drin, habe jetzt [] reingeschrieben, keine Warnung mehr.
Habe auch das andere geändert, aber es wird nichts geschrieben.
der DP "ecovacs-deebot.0.status.device" kann die werte "charging", "cleaning" und "returing" annehmen. Vermute da wird nochwas faul sein. Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....
-
"0_userdata.0.JSON.Deebot" da stand "null" drin, habe jetzt [] reingeschrieben, keine Warnung mehr.
Habe auch das andere geändert, aber es wird nichts geschrieben.
der DP "ecovacs-deebot.0.status.device" kann die werte "charging", "cleaning" und "returing" annehmen. Vermute da wird nochwas faul sein. Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....
@chris76e sagte: Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....
if(dp.state.val == 'cleaning') { obj = {}; obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.StartUhr = formatDate(new Date(), 'hh:mm'); } else if(dp.state.val == 'charging') { -
@chris76e sagte: Mit dem Wert "cleanig" soll JSON anfangen und mit "charging" beenden....
if(dp.state.val == 'cleaning') { obj = {}; obj.Start = formatDate(new Date(), 'MM.DD.YY hh:mm'); obj.StartUhr = formatDate(new Date(), 'hh:mm'); } else if(dp.state.val == 'charging') {
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
