Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (GELÖST) JSON Zeitplan auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    (GELÖST) JSON Zeitplan auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      Langer last edited by Langer

      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 1300

      usw.

      Wie geht das?
      Kann mir mal einer einen Schubs geben?
      Habe schon mit JSON.parse() versucht aber ich verstehe JSON einfach nicht!!!

      MfG
      Wastl

      paul53 mickym 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Langer last edited by paul53

        @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
              }
           }
        });
        
        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Langer last edited by mickym

          @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:

          39705ed0-161b-4267-aabc-a8ad26afc47a-image.png

          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:

          fd4608f5-c832-4433-adfe-600669f1f7b8-image.png

          Das kann man in dem JSON Formatter sehen, wenn man auf den TreeView umschaltet (oranger Pfeil).

          L 1 Reply Last reply Reply Quote 0
          • L
            Langer @mickym last edited by

            @paul53
            @mickym

            Guten Morgen Ihr beiden,

            Danke für die Hilfe, hat funktioniert!!!!

            MfG
            Wastl

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            777
            Online

            31.8k
            Users

            80.0k
            Topics

            1.3m
            Posts

            javascript
            3
            4
            137
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo