Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [GELÖST] Auslesen JSON Wert Bedeutung

    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] Auslesen JSON Wert Bedeutung

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Peter c last edited by Peter c

      Habe mir ein kleines Blockly geschrieben das einen Wert aus einer Objekt JSON in einen eigenen DP schreibt. Das funktioniert aber ich erhalte Fehlermeldungen und in der Ausgabe des Wertes erscheint nicht nur was ich dachte.
      Die Fehlermeldung bemängelt einen falschen Zustandstyp. Aber egal was ich beim DP einstelle (String / Objekt) kommt diese Meldung. Was mache ich da falsch?
      Zudem habe ich noch eine Verständnisfrage zum JSON. Der in den DP geschriebene Wert ist der den ich will, aber warum wird immer der aktuelle Wert des JSON in den DP geschrieben? Das JSON hat ja 24 Channels und so wie ich es sehe nimmt es irgendwie den aktuellen.

      Bildschirmfoto 2025-01-30 um 13.31.56.png

      2025-01-30 13:37:00.020 - info: javascript.0 (927) script.js.common.Werte_aus_Json: { val: undefined, ack: true }
      2025-01-30 13:37:00.023 - info: javascript.0 (927) State value to set for "0_userdata.0.Tibberlink_Kanäle.höchste_Kosten_Status" has to be stringified but received type "object"
      

      Bildschirmfoto 2025-01-30 um 13.33.03.png
      Bildschirmfoto 2025-01-30 um 13.33.40.png

      Hier noch das JSON

       [ { "hour": 0, "startsAt": "2025-01-30T00:00:00.000+01:00", "total": 0.3263, "output": true }, { "hour": 1, "startsAt": "2025-01-30T01:00:00.000+01:00", "total": 0.3263, "output": true }, { "hour": 2, "startsAt": "2025-01-30T02:00:00.000+01:00", "total": 0.3274, "output": true }, { "hour": 3, "startsAt": "2025-01-30T03:00:00.000+01:00", "total": 0.3269, "output": true }, { "hour": 4, "startsAt": "2025-01-30T04:00:00.000+01:00", "total": 0.3263, "output": true }, { "hour": 5, "startsAt": "2025-01-30T05:00:00.000+01:00", "total": 0.3456, "output": true }, { "hour": 6, "startsAt": "2025-01-30T06:00:00.000+01:00", "total": 0.3827, "output": true }, { "hour": 7, "startsAt": "2025-01-30T07:00:00.000+01:00", "total": 0.398, "output": true }, { "hour": 8, "startsAt": "2025-01-30T08:00:00.000+01:00", "total": 0.4071, "output": false }, { "hour": 9, "startsAt": "2025-01-30T09:00:00.000+01:00", "total": 0.3966, "output": true }, { "hour": 10, "startsAt": "2025-01-30T10:00:00.000+01:00", "total": 0.3771, "output": true }, { "hour": 11, "startsAt": "2025-01-30T11:00:00.000+01:00", "total": 0.363, "output": true }, { "hour": 12, "startsAt": "2025-01-30T12:00:00.000+01:00", "total": 0.3542, "output": true }, { "hour": 13, "startsAt": "2025-01-30T13:00:00.000+01:00", "total": 0.3511, "output": true }, { "hour": 14, "startsAt": "2025-01-30T14:00:00.000+01:00", "total": 0.3703, "output": true }, { "hour": 15, "startsAt": "2025-01-30T15:00:00.000+01:00", "total": 0.3986, "output": false }, { "hour": 16, "startsAt": "2025-01-30T16:00:00.000+01:00", "total": 0.4078, "output": false }, { "hour": 17, "startsAt": "2025-01-30T17:00:00.000+01:00", "total": 0.4309, "output": false }, { "hour": 18, "startsAt": "2025-01-30T18:00:00.000+01:00", "total": 0.4264, "output": false }, { "hour": 19, "startsAt": "2025-01-30T19:00:00.000+01:00", "total": 0.4082, "output": false }, { "hour": 20, "startsAt": "2025-01-30T20:00:00.000+01:00", "total": 0.3951, "output": true }, { "hour": 21, "startsAt": "2025-01-30T21:00:00.000+01:00", "total": 0.376, "output": true }, { "hour": 22, "startsAt": "2025-01-30T22:00:00.000+01:00", "total": 0.3668, "output": true }, { "hour": 23, "startsAt": "2025-01-30T23:00:00.000+01:00", "total": 0.3594, "output": true }]
      
      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Peter c last edited by

        @peter-c sagte in Auslesen JSON Wert Bedeutung:

        Was mache ich da falsch?

        Du hast ein Array mit 24 Objekten.
        Du musst entscheiden, welches Element Du überhaupt lesen möchtest.
        Da erste? Das letzte? Oder eines mit bestimmten Eigenschaften?

        P 1 Reply Last reply Reply Quote 1
        • P
          Peter c @Codierknecht last edited by

          @codierknecht said in Auslesen JSON Wert Bedeutung:

          Oder eines mit bestimmten Eigenschaften?

          Ja das im Moment gültige.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Peter c last edited by Codierknecht

            @peter-c
            Und das wäre? Das erste?

            5a17d0d9-1d6c-48d0-b9a7-8c4ff155a99f-image.png

            Edit
            Oder das mit der passenden Stunde?

            13c7eb20-36f6-4339-990d-8b30d3cce44b-image.png

            P 1 Reply Last reply Reply Quote 0
            • P
              Peter c @Codierknecht last edited by

              @codierknecht said in Auslesen JSON Wert Bedeutung:

              Und das wäre? Das erste?

              Nein das mit der aktuellen Stunde. Das JSON hat 24 Channel. Verstehe deine Anmerkung.
              "hour": 0, "startsAt": "2025-01-30T00:00:00.000+01:00", "total": 0.3263, "output": true
              Müßte einen Vergleich zur aktuellen Uhrzeit und dem startsAt machen.

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Peter c last edited by

                @peter-c
                Siehe Edit

                Homoran P 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Codierknecht last edited by Homoran

                  @codierknecht

                  oder so:
                  Screenshot_20250130-143459_Firefox.jpg

                  paul53 1 Reply Last reply Reply Quote 1
                  • paul53
                    paul53 @Homoran last edited by paul53

                    @homoran sagte: oder so:

                    Das setzt voraus, dass die Liste immer mit Stunde 0 beginnt.
                    Die Wandlung nach Zahl ist nicht erforderlich.

                    Codierknecht Homoran 2 Replies Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @paul53 last edited by

                      @paul53 sagte in Auslesen JSON Wert Bedeutung:

                      Das setzt voraus, dass die Liste immer mit Stunde 0 beginnt.

                      Könnte man jetzt mal annehmen. Dann wäre die Vorgehensweise sehr effizient.

                      Allein: Wir wissen es nicht sicher 😉

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @paul53 last edited by

                        @paul53 sagte in Auslesen JSON Wert Bedeutung:

                        @homoran sagte: oder so:

                        Das setzt voraus, dass die Liste immer mit Stunde 0 beginnt.

                        ich bin davon ausgegangen, dass die Liste imner die entsprechenden Elemente enthält
                        Screenshot_20250130-144208_Firefox.jpg

                        egal in welcher Reihenfolge

                        1 Reply Last reply Reply Quote 0
                        • P
                          Peter c @Codierknecht last edited by

                          @codierknecht

                          Habs jetzt nachgebaut.

                          Bildschirmfoto 2025-01-30 um 14.37.16.png

                          Ergebnis stimmt jetzt mit dem von Dir vorgeschlagenem ersten Ansatz.
                          Keine Fehlermeldung mehr.

                          Hab Deine andere Lösung erst jetzt gesehen.

                          2025-01-30 14:37:00.017 - info: javascript.0 (927) script.js.common.Werte_aus_Json: { ack: true }
                          2025-01-30 14:37:00.019 - info: javascript.0 (927) script.js.common.Werte_aus_Json: 14
                          2025-01-30 14:38:00.025 - info: javascript.0 (927) script.js.common.Werte_aus_Json: { ack: true }
                          2025-01-30 14:38:00.026 - info: javascript.0 (927) script.js.common.Werte_aus_Json: 14
                          
                          paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Peter c last edited by paul53

                            @peter-c sagte: Habs jetzt nachgebaut.

                            Nein, die Schleife wird zu früh abgebrochen.
                            Es genügt, auf jede volle Stunde zu triggern.

                            P 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Peter c last edited by

                              @peter-c

                              @paul53 sagte in Auslesen JSON Wert Bedeutung:

                              Nein, die Schleife wird zu früh abgebrochen.

                              Der Abbruch muss mit in den "Falls"-Block.
                              Die Schleife soll ja erst verlassen werden, wenn der passende Eintrag gefunden wurde.

                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Peter c @paul53 last edited by

                                @paul53 said in Auslesen JSON Wert Bedeutung:

                                Es genügt, auf jede volle Stunde zu triggern.

                                Ja das ändere ich noch, hatte den Zeitplan nur zum Ausprobieren gewählt.

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @Peter c last edited by

                                  @peter-c sagte in Auslesen JSON Wert Bedeutung:

                                  hatte den Zeitplan nur zum Ausprobieren gewählt

                                  Zum Ausprobieren kannst Du den Zeitplan erstmal komplett weglassen.
                                  Dann wird der Code bei jedem Start des Script 1x ausgeführt 😉

                                  1 Reply Last reply Reply Quote 1
                                  • P
                                    Peter c @Codierknecht last edited by

                                    @codierknecht said in Auslesen JSON Wert Bedeutung:

                                    Der Abbruch muss mit in den "Falls"-Block.

                                    Stimmt habe ich geändert, bekomme aber jetzt Fehlermeldung.

                                    Bildschirmfoto 2025-01-30 um 14.53.18.png

                                    2025-01-30 14:53:53.286 - info: javascript.0 (927) Start JavaScript script.js.common.Werte_aus_Json (Blockly)
                                    2025-01-30 14:53:53.292 - warn: javascript.0 (927) You are assigning a boolean to the state "0_userdata.0.Tibberlink_Kanäle.höchste_Kosten_Status" which expects a string. Please fix your code to use a string or change the state type to boolean. This warning might become an error in future versions.
                                    2025-01-30 14:53:53.294 - warn: javascript.0 (927) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20)
                                    2025-01-30 14:53:53.294 - warn: javascript.0 (927) at script.js.common.Werte_aus_Json:10:5
                                    2025-01-30 14:53:53.294 - warn: javascript.0 (927) at script.js.common.Werte_aus_Json:22:3
                                    2025-01-30 14:53:53.294 - info: javascript.0 (927) script.js.common.Werte_aus_Json: true
                                    2025-01-30 14:53:53.294 - info: javascript.0 (927) script.js.common.Werte_aus_Json: 14
                                    
                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Peter c last edited by

                                      @peter-c sagte: bekomme aber jetzt Fehlermeldung.

                                      Aus dem JSON:

                                      "output": true
                                      

                                      Der Datenpunkt hat den falschen Typ.

                                      P 1 Reply Last reply Reply Quote 1
                                      • P
                                        Peter c @paul53 last edited by

                                        @paul53 said in Auslesen JSON Wert Bedeutung:

                                        Der Datenpunkt hat den falschen Typ.

                                        Ja stimmt, jetzt keine Fehler mehr.
                                        Puh was man alles übersehen kann - danke für die Unterstützung, hab wieder was gelernt!

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        761
                                        Online

                                        31.9k
                                        Users

                                        80.3k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        18
                                        446
                                        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