NEWS
(GELÖST) JSON Zeitplan auslesen
-
Hallo zusammen,
Dies bekomme ich vom bshb-Adapter unter dem DP "schedule"
{"profiles":[{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"MONDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"TUESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"WEDNESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"THURSDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"FRIDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SATURDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SUNDAY"}]}Nun möchte ich folgendes auslesen:
MONDAY ECO 0 COMFORT 255 ECO 1300
TUESDAY ECO 0 COMFORT 255 ECO 1300usw.
Wie geht das?
Kann mir mal einer einen Schubs geben?
Habe schon mit JSON.parse() versucht aber ich verstehe JSON einfach nicht!!!MfG
Wastl -
Hallo zusammen,
Dies bekomme ich vom bshb-Adapter unter dem DP "schedule"
{"profiles":[{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"MONDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"TUESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"WEDNESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"THURSDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"FRIDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SATURDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SUNDAY"}]}Nun möchte ich folgendes auslesen:
MONDAY ECO 0 COMFORT 255 ECO 1300
TUESDAY ECO 0 COMFORT 255 ECO 1300usw.
Wie geht das?
Kann mir mal einer einen Schubs geben?
Habe schon mit JSON.parse() versucht aber ich verstehe JSON einfach nicht!!!MfG
Wastl@langer
Ansatz:on(idJSON, function(dp) { let profile = JSON.parse(dp.state.val).profiles; // Array mit 7 Wochentagen, Mo = 0 for(let wd = 0; wd < 7; wd++) { let switchpoints = profile[wd].switchPoints; // Array mit Schaltpunkten eines Tages for(let i = 0; i < switchpoints.length; i++) { // enthält switchpoints[i].startTimeMinutes und switchpoints[i].value.temperatureLevel } } }); -
Hallo zusammen,
Dies bekomme ich vom bshb-Adapter unter dem DP "schedule"
{"profiles":[{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"MONDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"TUESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"WEDNESDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"THURSDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"FRIDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SATURDAY"},{"switchPoints":[{"startTimeMinutes":0,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}},{"startTimeMinutes":255,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"COMFORT"}},{"startTimeMinutes":1300,"value":{"@type":"temperatureLevelSwitchPointValue","temperatureLevel":"ECO"}}],"day":"SUNDAY"}]}Nun möchte ich folgendes auslesen:
MONDAY ECO 0 COMFORT 255 ECO 1300
TUESDAY ECO 0 COMFORT 255 ECO 1300usw.
Wie geht das?
Kann mir mal einer einen Schubs geben?
Habe schon mit JSON.parse() versucht aber ich verstehe JSON einfach nicht!!!MfG
Wastl@langer Unabhängig von @paul53 's Ansatz, nutz doch mal den JSON Formater: https://jsonformatter.org/
Wenn man da Deinen String reinkopiert und dann schön formatierst dann kommt sowas raus:

Du siehst also Du bekommst ein in profiles ein Array[0-7] aus, das wiederrum ein Array aus 3 switchpoint Objekten enthält.
profiles[0].switchPoints[0].value.temperatureLevel ist dann der Pfad zu dem grün markierten Wert:

Das kann man in dem JSON Formatter sehen, wenn man auf den TreeView umschaltet (oranger Pfeil).
-
@langer Unabhängig von @paul53 's Ansatz, nutz doch mal den JSON Formater: https://jsonformatter.org/
Wenn man da Deinen String reinkopiert und dann schön formatierst dann kommt sowas raus:

Du siehst also Du bekommst ein in profiles ein Array[0-7] aus, das wiederrum ein Array aus 3 switchpoint Objekten enthält.
profiles[0].switchPoints[0].value.temperatureLevel ist dann der Pfad zu dem grün markierten Wert:

Das kann man in dem JSON Formatter sehen, wenn man auf den TreeView umschaltet (oranger Pfeil).
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