Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. JSON Objekte in Liste

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

JSON Objekte in Liste

Geplant Angeheftet Gesperrt Verschoben Off Topic
94 Beiträge 3 Kommentatoren 8.2k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L legro

    @paul53 @mickym

    Vielen Dank euch beiden für die schnelle und tolle Hilfe!

    Folgendes habe ich probiert ..

    b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

    Die erste Lösung hat direkt funktioniert.

    Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

    16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
    16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
    16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
    16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
    16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
    

    Habe ich dabei etwas falsch gemacht?

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #6

    @legro Du musst ja vorher das Array erst einer Variablen zuweisen. Deswegen finde ich das umständlicher. Du setzt ja Tarif auf das ganze Objekt - musst aber erst mit dem Attribut Tarife das Array aus dem Objekt herauslösen.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    L 1 Antwort Letzte Antwort
    0
    • L legro

      @paul53 @mickym

      Vielen Dank euch beiden für die schnelle und tolle Hilfe!

      Folgendes habe ich probiert ..

      b05909a9-534f-4c59-a658-4c8b1f3e1562-image.png

      Die erste Lösung hat direkt funktioniert.

      Beim zweiten Beispiel erhalte ich folgende Fehlermeldung ..

      16:45:22.015	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
      16:45:22.021	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      16:45:22.022	error	javascript.0 (2182) script.js.TestSkripte.JSON_Test: TypeError: Cannot read properties of undefined (reading '1')
      16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:5:27
      16:45:22.022	error	javascript.0 (2182) at script.js.TestSkripte.JSON_Test:8:3
      

      Habe ich dabei etwas falsch gemacht?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #7

      @legro sagte : Habe ich dabei etwas falsch gemacht?

      Du hast das Attribut "Tarife" vergessen, um die Liste zu erzeugen und außerdem eine zweite Variable Liste verwendet.

      Blockly_temp.JPG

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @legro Du musst ja vorher das Array erst einer Variablen zuweisen. Deswegen finde ich das umständlicher. Du setzt ja Tarif auf das ganze Objekt - musst aber erst mit dem Attribut Tarife das Array aus dem Objekt herauslösen.

        L Offline
        L Offline
        legro
        schrieb am zuletzt editiert von legro
        #8

        @mickym

        Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

        {
          "Tarife": [
            {
              {
                "Name" : "Tarif1"
                "Energiepreis": 0.3963,
                "Intervall": {
                  "Startwert": 0,
                  "Endwert": 486303
                },
                "Zeitraum": {
                  "Start": "2023-01-01",
                  "Ende": "2023-06-30"
                }
              }
            },
            {
              {
                "Name" : "Tarif2"
                "Energiepreis": 0.3328,
                "Intervall": {
                  "Startwert": 486303,
                  "Endwert": null
                },
                "Zeitraum": {
                  "Start": "2023-07-01",
                  "Ende": "2024-06-30"
                }
              }
            }
          ]
        }
        

        .. und folgendes kodiert ..

        544197fd-7609-4093-a030-66ec725e8b4c-image.png

        Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

        17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
        17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
        17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
        17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
        

        Welchen Denkfehler habe ich nun schon wieder gemacht?

        Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
        Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

        paul53P mickymM 2 Antworten Letzte Antwort
        0
        • L legro

          @mickym

          Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

          {
            "Tarife": [
              {
                {
                  "Name" : "Tarif1"
                  "Energiepreis": 0.3963,
                  "Intervall": {
                    "Startwert": 0,
                    "Endwert": 486303
                  },
                  "Zeitraum": {
                    "Start": "2023-01-01",
                    "Ende": "2023-06-30"
                  }
                }
              },
              {
                {
                  "Name" : "Tarif2"
                  "Energiepreis": 0.3328,
                  "Intervall": {
                    "Startwert": 486303,
                    "Endwert": null
                  },
                  "Zeitraum": {
                    "Start": "2023-07-01",
                    "Ende": "2024-06-30"
                  }
                }
              }
            ]
          }
          

          .. und folgendes kodiert ..

          544197fd-7609-4093-a030-66ec725e8b4c-image.png

          Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

          17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
          17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
          

          Welchen Denkfehler habe ich nun schon wieder gemacht?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #9

          @legro sagte: Welchen Denkfehler habe ich nun schon wieder gemacht?

          Du hast Objekte ohne Bezeichner. Richtig:

          {
            "Tarife": [
              {
                  "Name" : "Tarif1",
                  "Energiepreis": 0.3963,
                  "Intervall": {
                    "Startwert": 0,
                    "Endwert": 486303
                  },
                  "Zeitraum": {
                    "Start": "2023-01-01",
                    "Ende": "2023-06-30"
                  }
              },
              {
                  "Name" : "Tarif2",
                  "Energiepreis": 0.3328,
                  "Intervall": {
                    "Startwert": 486303,
                    "Endwert": null
                  },
                  "Zeitraum": {
                    "Start": "2023-07-01",
                    "Ende": "2024-06-30"
                  }
              }
            ]
          }
          

          Damit funktioniert es auch so:

          Blockly_temp.JPG

          Die Wandlung "JSON nach Objekt" ist unnötig, denn das macht der Block "Attribut" von sich aus.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          L 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @legro sagte: Welchen Denkfehler habe ich nun schon wieder gemacht?

            Du hast Objekte ohne Bezeichner. Richtig:

            {
              "Tarife": [
                {
                    "Name" : "Tarif1",
                    "Energiepreis": 0.3963,
                    "Intervall": {
                      "Startwert": 0,
                      "Endwert": 486303
                    },
                    "Zeitraum": {
                      "Start": "2023-01-01",
                      "Ende": "2023-06-30"
                    }
                },
                {
                    "Name" : "Tarif2",
                    "Energiepreis": 0.3328,
                    "Intervall": {
                      "Startwert": 486303,
                      "Endwert": null
                    },
                    "Zeitraum": {
                      "Start": "2023-07-01",
                      "Ende": "2024-06-30"
                    }
                }
              ]
            }
            

            Damit funktioniert es auch so:

            Blockly_temp.JPG

            Die Wandlung "JSON nach Objekt" ist unnötig, denn das macht der Block "Attribut" von sich aus.

            L Offline
            L Offline
            legro
            schrieb am zuletzt editiert von
            #10

            @paul53

            Damit funktioniert es auch so: ..

            Ich bin verwirrt. Tut es eben nicht. Oben habe ich die Fehlermeldung dokumentiert.

            Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
            Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

            paul53P 1 Antwort Letzte Antwort
            0
            • L legro

              @paul53

              Damit funktioniert es auch so: ..

              Ich bin verwirrt. Tut es eben nicht. Oben habe ich die Fehlermeldung dokumentiert.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #11

              @legro sagte: Tut es eben nicht.

              Du musst das (ungültige) Objekt (JSON) korrigieren: Lösche Zeilen 3, 15, 17 und 30. Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              L 1 Antwort Letzte Antwort
              -1
              • L legro

                @mickym

                Jetzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen ..

                {
                  "Tarife": [
                    {
                      {
                        "Name" : "Tarif1"
                        "Energiepreis": 0.3963,
                        "Intervall": {
                          "Startwert": 0,
                          "Endwert": 486303
                        },
                        "Zeitraum": {
                          "Start": "2023-01-01",
                          "Ende": "2023-06-30"
                        }
                      }
                    },
                    {
                      {
                        "Name" : "Tarif2"
                        "Energiepreis": 0.3328,
                        "Intervall": {
                          "Startwert": 486303,
                          "Endwert": null
                        },
                        "Zeitraum": {
                          "Start": "2023-07-01",
                          "Ende": "2024-06-30"
                        }
                      }
                    }
                  ]
                }
                

                .. und folgendes kodiert ..

                544197fd-7609-4093-a030-66ec725e8b4c-image.png

                Dies funktioniert nicht mehr. Ich erhalte, egal auf was ich selektiere, stets null.

                17:13:13.763	info	javascript.0 (2182) Start javascript script.js.TestSkripte.JSON_Test
                17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: null
                17:13:13.771	info	javascript.0 (2182) script.js.TestSkripte.JSON_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                

                Welchen Denkfehler habe ich nun schon wieder gemacht?

                mickymM Offline
                mickymM Offline
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #12

                @legro sagte in JSON Objekte in Liste:

                etzt wollte ich's wissen! Um das Ganze besser zu verstehen, habe ich die Objektnamen Tarif1, Tarif2 weggelassen .

                Du darfst das nicht einfach weglassen. Jedes Objekt wird durch eine Eigenschaft festgelegt und die hast Du damit weggenommen.

                Ein JSON Objekt wird durch geschweifte Klammern definiert, dabei besteht es aus verschiedenen Eigenschaften in Anführungszeichen und einem Wert, der durch einen Doppelpunkt getrennt ist.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @legro sagte: Tut es eben nicht.

                  Du musst das (ungültige) Objekt (JSON) korrigieren: Lösche Zeilen 3, 15, 17 und 30. Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

                  L Offline
                  L Offline
                  legro
                  schrieb am zuletzt editiert von legro
                  #13

                  @paul53 @mickym

                  Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                  Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                  2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                  Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                  58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                  Was mache ich nun schon wieder falsch?

                  Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                  Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                  paul53P mickymM 2 Antworten Letzte Antwort
                  0
                  • L legro

                    @paul53 @mickym

                    Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                    Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                    2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                    Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                    58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                    Was mache ich nun schon wieder falsch?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #14

                    @legro sagte: schon wieder falsch?

                    Zeig mal das JSON.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    L 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @legro sagte: schon wieder falsch?

                      Zeig mal das JSON.

                      L Offline
                      L Offline
                      legro
                      schrieb am zuletzt editiert von legro
                      #15

                      @paul53

                      Es ist (hoffentlich) identisch mit dem von dir vorgeschlagenen JSON.

                      {
                        "Tarife": [
                            {
                              "Name" : "Tarif1"
                              "Energiepreis": 0.3963,
                              "Intervall": {
                                "Startwert": 0,
                                "Endwert": 486303
                              },
                              "Zeitraum": {
                                "Start": "2023-01-01",
                                "Ende": "2023-06-30"
                              }
                          },
                            {
                              "Name" : "Tarif2"
                              "Energiepreis": 0.3328,
                              "Intervall": {
                                "Startwert": 486303,
                                "Endwert": null
                              },
                              "Zeitraum": {
                                "Start": "2023-07-01",
                                "Ende": "2024-06-30"
                              }
                            }
                        ]
                      }
                      

                      Ich habe einen Verdacht ..

                      Damit die Selektion via "." anstelle von [Index] funktioniert, müssen die Listenobjekte benannt sein.

                      Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                      Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • L legro

                        @paul53

                        Es ist (hoffentlich) identisch mit dem von dir vorgeschlagenen JSON.

                        {
                          "Tarife": [
                              {
                                "Name" : "Tarif1"
                                "Energiepreis": 0.3963,
                                "Intervall": {
                                  "Startwert": 0,
                                  "Endwert": 486303
                                },
                                "Zeitraum": {
                                  "Start": "2023-01-01",
                                  "Ende": "2023-06-30"
                                }
                            },
                              {
                                "Name" : "Tarif2"
                                "Energiepreis": 0.3328,
                                "Intervall": {
                                  "Startwert": 486303,
                                  "Endwert": null
                                },
                                "Zeitraum": {
                                  "Start": "2023-07-01",
                                  "Ende": "2024-06-30"
                                }
                              }
                          ]
                        }
                        

                        Ich habe einen Verdacht ..

                        Damit die Selektion via "." anstelle von [Index] funktioniert, müssen die Listenobjekte benannt sein.

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #16

                        @legro sagte: identisch mit dem von dir vorgeschlagenen JSON.

                        @paul53 sagte in JSON Objekte in Liste:

                        Außerdem fehlt jeweils ein Komma hinter "Tarif1" und "Tarif2".

                        Zeilen 4, 16.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        1
                        • mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #17

                          Hier mal die Definitionen, die Du verinnerlichen musst:

                          =======================================================================
                          Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.

                          =======================================================================

                          Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                          =======================================================================

                          Und wie Du dann üben kannst - kannst an diesem Mammut Thread sehen. ;)

                          https://forum.iobroker.net/post/905403

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          L 1 Antwort Letzte Antwort
                          0
                          • L legro

                            @paul53 @mickym

                            Ich habe verstanden worin mein Fehler bestand. Die {..} um die Listenobjekte müssen weg, wenn diese Objekte keinen Namen (mehr) besitzen.

                            Aber es funktioniert noch immer nicht. Egal auf was ich selektiere, ich erhalte ich in den nachfolgenden Beispielen stets null.
                            2ea22af8-e48b-4a29-8e3e-34a63c88fe3b-image.png

                            Ebenso erhalte ich die Liste nicht mehr ausgegeben, wenn ich ..
                            58b5410c-0bff-48cd-8dfb-9639b66d138f-image.png

                            Was mache ich nun schon wieder falsch?

                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von mickym
                            #18

                            @legro Und hier hängt es halt davon ab, ob Du mit Listen arbeiten willst oder nicht. Ich habe Dir ja den direkten Pfad gezeigt, weil ich den Umweg über Listen zu umständlich fand.

                            Ich empfehle Dir grundsätzlich so ein Tool wie: https://jsonformatter.org/ zu verwenden - da siehst Du schon auf den ersten Blick dass Du Dich verheddert hast. ;)

                            d844040d-3f89-47d2-92e1-592601ddd0e9-image.png

                            was gefehlt hat, sind die beiden Kommas. ;) Habe ich im Screenshot markiert.

                            621f8546-f882-43b4-8755-29224d302263-image.png

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            1 Antwort Letzte Antwort
                            1
                            • mickymM mickym

                              Hier mal die Definitionen, die Du verinnerlichen musst:

                              =======================================================================
                              Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.

                              =======================================================================

                              Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                              =======================================================================

                              Und wie Du dann üben kannst - kannst an diesem Mammut Thread sehen. ;)

                              https://forum.iobroker.net/post/905403

                              L Offline
                              L Offline
                              legro
                              schrieb am zuletzt editiert von legro
                              #19

                              @mickym @paul53

                              Es funktioniert. Es lag natürlich an den fehlenden Kommas.

                              VIELEN DANK FÜR EURE GEDULD UND GROßARTIGE HILFE

                              Ich versuche einmal eine Zusammenfassung ..

                              In Blockly funktioniert die in ARRAYs übliche Syntax zum Selektieren auf die einzelnen Elemente nicht mittels der Angabe [Index], sondern ebenfalls über "."

                              In den Anfängen hatte ich kodiert ..

                              Tarife[1].Name
                              Tarife[0].Intervall.Endwert
                              ..

                              Auf die Idee, dass hier, der Index zwischen zwei Punkten einzuschließen, es tut, bin ich nicht gekommen.

                              Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                              Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                              L 1 Antwort Letzte Antwort
                              0
                              • L legro

                                @mickym @paul53

                                Es funktioniert. Es lag natürlich an den fehlenden Kommas.

                                VIELEN DANK FÜR EURE GEDULD UND GROßARTIGE HILFE

                                Ich versuche einmal eine Zusammenfassung ..

                                In Blockly funktioniert die in ARRAYs übliche Syntax zum Selektieren auf die einzelnen Elemente nicht mittels der Angabe [Index], sondern ebenfalls über "."

                                In den Anfängen hatte ich kodiert ..

                                Tarife[1].Name
                                Tarife[0].Intervall.Endwert
                                ..

                                Auf die Idee, dass hier, der Index zwischen zwei Punkten einzuschließen, es tut, bin ich nicht gekommen.

                                L Offline
                                L Offline
                                legro
                                schrieb am zuletzt editiert von legro
                                #20

                                Hat sich erledigt.

                                Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • L legro

                                  Hat sich erledigt.

                                  mickymM Offline
                                  mickymM Offline
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #21

                                  @legro Ja das kannst Du auch nicht. Insbesondere nicht mit Blockly alleine, sondern wenn Du JSONATA verwendest - das ist eine geniale Bibliothek. ;)

                                  https://docs.jsonata.org/overview

                                  78a77db7-6d18-45d7-8562-18a30e99f02d-image.png

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  L 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @legro Ja das kannst Du auch nicht. Insbesondere nicht mit Blockly alleine, sondern wenn Du JSONATA verwendest - das ist eine geniale Bibliothek. ;)

                                    https://docs.jsonata.org/overview

                                    78a77db7-6d18-45d7-8562-18a30e99f02d-image.png

                                    L Offline
                                    L Offline
                                    legro
                                    schrieb am zuletzt editiert von legro
                                    #22

                                    @mickym

                                    Zum Formatieren von JSON-Ausdrücken nutze ich Visual Studio Code.

                                    Wie kann man JSONata in ioBroker verwenden?

                                    Unter Konvertierung habe ich dazu in Blockly den Baustein JSON Ausdruck .. gefunden. Ich probiere das mal aus.

                                    Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                    Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • L legro

                                      @mickym

                                      Zum Formatieren von JSON-Ausdrücken nutze ich Visual Studio Code.

                                      Wie kann man JSONata in ioBroker verwenden?

                                      Unter Konvertierung habe ich dazu in Blockly den Baustein JSON Ausdruck .. gefunden. Ich probiere das mal aus.

                                      mickymM Offline
                                      mickymM Offline
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #23

                                      @legro ich hab dir doch einen Screenshot gepostet mit einer Lösung und JSONATA. Zum Üben kannst Du übrigens auch das JSONATA try Fenster verwenden. Links die Eingangsdaten, rechts oben Dein Code, rechts unten das Ergebnis. Das ganze kann man auch abspeichern.

                                      Schau mal : https://try.jsonata.org/8DLapvppx

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      L 1 Antwort Letzte Antwort
                                      1
                                      • mickymM mickym

                                        @legro ich hab dir doch einen Screenshot gepostet mit einer Lösung und JSONATA. Zum Üben kannst Du übrigens auch das JSONATA try Fenster verwenden. Links die Eingangsdaten, rechts oben Dein Code, rechts unten das Ergebnis. Das ganze kann man auch abspeichern.

                                        Schau mal : https://try.jsonata.org/8DLapvppx

                                        L Offline
                                        L Offline
                                        legro
                                        schrieb am zuletzt editiert von legro
                                        #24

                                        @mickym

                                        Ich bin doch schon fleißig am Üben.:slightly_smiling_face:

                                        Mein erstes Ziel ..

                                        011ff32a-3533-4721-b862-6ef5362bd926-image.png

                                        .. habe ich schon erreicht.

                                        Der JSONata-Block verhält sich ziemlich seltsam. Man kann ihn nicht anstelle von "Ergebnis" in der Summenbildung verwenden.

                                        Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                                        Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                                        mickymM 1 Antwort Letzte Antwort
                                        0
                                        • L legro

                                          @mickym

                                          Ich bin doch schon fleißig am Üben.:slightly_smiling_face:

                                          Mein erstes Ziel ..

                                          011ff32a-3533-4721-b862-6ef5362bd926-image.png

                                          .. habe ich schon erreicht.

                                          Der JSONata-Block verhält sich ziemlich seltsam. Man kann ihn nicht anstelle von "Ergebnis" in der Summenbildung verwenden.

                                          mickymM Offline
                                          mickymM Offline
                                          mickym
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #25

                                          @legro Wenn Du JSONATA verwendest - dann brauchst Du alles andere nicht - ich habe Dir doch den Link geschickt. Wenn Du die Doku anschaust, dann referenzierst Du mit $ das aktuelle Objekt - ausserdem ist es geschickter mit JSONATA zu rechnen und lieber das Ergebnis als Liste ausgeben zu lassen.

                                          Ich habe Dir doch unten den Link geschickt - da solltest Du doch das try Fenster mit Deinem Objekt bekommen haben. Um für jeden Tarif das Produkt von Preis und Startwert zu bekommen - machst Du das erst mal in JSONATA. Wenn Du Gesamtsumme haben willst geht das noch einfacher.

                                          Der Link sollte Dir doch folgendes zeigen. ;)

                                          f8562220-bd8c-4b4c-b499-9907f111ada7-image.png

                                          Um nun die Produkte der einzelnen Tarife zu bilden:

                                          9e446702-67b6-4d04-8701-405c64d9cee3-image.png

                                          Du musst halt bissi üben, wenn Du Dich mit JSONATA beschäftigen willst.

                                          Wie Du siehst wird nun für jeden Tarif das Produkt gebildet und in einem Array gespeichert. Das Ganze kannst Du dann auch noch aufsummieren.

                                          c7c04071-cb11-4466-8bcd-b0bcedddb7f7-image.png

                                          Wenn Du das dann in JSONATA Fenster alles gemacht hast - dann referenzierst Du im Blockly das Objekt auf der linken Seite einfach mit $, wie in dem Code rechts oben.

                                          f2596f67-0947-439b-8a4d-725ea33268e7-image.png

                                          Hier zum Import:

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="NWR;`_N@3a:sTiBKQkne">Objekt</variable>
                                           </variables>
                                           <block type="variables_set" id="M@F*zUMa;{#yJo2.2goG" x="-1137" y="-337">
                                             <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                             <value name="VALUE">
                                               <block type="convert_json2object" id="wV#~g_#qRM}fhgD[;waT">
                                                 <value name="VALUE">
                                                   <block type="text" id="7@h4[@Y-M.M.tsLuCU56">
                                                     <field name="TEXT">{   "Tarife": [     {       "Tarif1": {         "Energiepreis": 0.3963,         "Intervall": {           "Startwert": 0,           "Endwert": 486303         },         "Zeitraum": {           "Start": "2023-01-01",           "Ende": "2023-06-30"         }       }     },     {       "Tarif2": {         "Energiepreis": 0.3328,         "Intervall": {           "Startwert": 486303,           "Endwert": null         },         "Zeitraum": {           "Start": "2023-07-01",           "Ende": "2024-06-30"         }       }     }   ] }</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="9S+u#Vzo/zuptK|}o,?9">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="COg%Nwdd92sEj=QP[Lt)">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="variables_get" id="N=A4,QQsE8/8~[BL])Xc">
                                                     <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="debug" id="^5#in-UU}%!K~KPOKHz_">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="-,TGC$b5|aHgxT-/9J]`">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="convert_jsonata" id="lJ3pgV,d!Gi]8s,TMKUf">
                                                         <value name="EXPRESSION">
                                                           <shadow type="text" id="$?E[/Hc*GGc|PsLH./zl">
                                                             <field name="TEXT">$.Tarife.*.(Energiepreis * Intervall.Startwert / 1000) ~&gt; $sum()</field>
                                                           </shadow>
                                                         </value>
                                                         <value name="TARGET">
                                                           <block type="variables_get" id="$EtNHY[c50V=?^FK.SM-">
                                                             <field name="VAR" id="NWR;`_N@3a:sTiBKQkne">Objekt</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                          L 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          500

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe