Skip to content
  • 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
  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.1k

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

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

JSON Objekte in Liste

Geplant Angeheftet Gesperrt Verschoben Off Topic
94 Beiträge 3 Kommentatoren 8.1k 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

    @mickym

    00a69e9d-454f-4e9b-9844-c2aa61110804-image.png

    Das Ergebnis ist leider nicht die gewünschte Summe. Es fehlt der Betrag zwischen den Ständen[0] und [1] -> 2510.191 * 0,3693

    Müssten nicht die Indizes "parametrisiert" werden, damit sie alle Werte durchlaufen?

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #63

    @legro Na ja - das ist das was ich nicht verstehe. Ich hab es mit dem letzten Energiepreis verrechnet. Ich blicke das nicht.
    Rechne mir doch mal ein Objekt im Detail vor also den Bezug

     {
          "Name": "Bezug",
          "Stände": [
            {
              "Datum": "2023-01-01",
              "Energiepreis": 0.3963,
              "Wert": 468303
            },
            {
              "Datum": "2023-06-30",
              "Energiepreis": 0.3328,
              "Wert": 482512
            }
          ]
        }
    

    Wie soll das bitte gerechnet werden. Step für Step please.

    Der 1. Energiepreis ist doch irrelevant - das war doch meine Frage die ganze Zeit. Du misst doch mit den Zählerwerten W - wandelst das in kW um. Dann nimmst Du doch die Differenz und die kannst Du doch nur mit EINEM Preis multiplizieren. Der Preis im ersten Objekt spielt doch gar keine Rolle deswegen wurde nicht 2510,191 *0,3693 gerechnet, sondern nur die Differenz (2597930 - 2510191)/1000, also 87,739 mit 0,3328 multipliziert, was somit 29,1995392 ergibt. Also der 1. Preis ist doch Nonsense.
    Oder Du nimmst einen Mittelwert - aber Du kannst ja nicht 2 Preise voneinander abziehen. Das würde im 1. Beispiel einen negativen Betrag ergeben. 😉

    Die Preise für jedes Objekt an sich, sind doch total irrelevant: https://try.jsonata.org/vAh2mh_SG

    55eafbce-60f6-4a5e-b0ef-34356123dfc8-image.png

    das kannst Du auf diese Weise haben. Dann hast Du 2510,191 * 0,3693 = 994,7886933

    Die Einzelpreise dieser Stände sind aber irrelevant.

    Wie gesagt - Rechne mir bitte EIN Objekt mit den beiden Zählerständen vor, wie Du es haben möchtest.

    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 Na ja - das ist das was ich nicht verstehe. Ich hab es mit dem letzten Energiepreis verrechnet. Ich blicke das nicht.
      Rechne mir doch mal ein Objekt im Detail vor also den Bezug

       {
            "Name": "Bezug",
            "Stände": [
              {
                "Datum": "2023-01-01",
                "Energiepreis": 0.3963,
                "Wert": 468303
              },
              {
                "Datum": "2023-06-30",
                "Energiepreis": 0.3328,
                "Wert": 482512
              }
            ]
          }
      

      Wie soll das bitte gerechnet werden. Step für Step please.

      Der 1. Energiepreis ist doch irrelevant - das war doch meine Frage die ganze Zeit. Du misst doch mit den Zählerwerten W - wandelst das in kW um. Dann nimmst Du doch die Differenz und die kannst Du doch nur mit EINEM Preis multiplizieren. Der Preis im ersten Objekt spielt doch gar keine Rolle deswegen wurde nicht 2510,191 *0,3693 gerechnet, sondern nur die Differenz (2597930 - 2510191)/1000, also 87,739 mit 0,3328 multipliziert, was somit 29,1995392 ergibt. Also der 1. Preis ist doch Nonsense.
      Oder Du nimmst einen Mittelwert - aber Du kannst ja nicht 2 Preise voneinander abziehen. Das würde im 1. Beispiel einen negativen Betrag ergeben. 😉

      Die Preise für jedes Objekt an sich, sind doch total irrelevant: https://try.jsonata.org/vAh2mh_SG

      55eafbce-60f6-4a5e-b0ef-34356123dfc8-image.png

      das kannst Du auf diese Weise haben. Dann hast Du 2510,191 * 0,3693 = 994,7886933

      Die Einzelpreise dieser Stände sind aber irrelevant.

      Wie gesagt - Rechne mir bitte EIN Objekt mit den beiden Zählerständen vor, wie Du es haben möchtest.

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

      @mickym sagte in JSON Objekte in Liste:

      Wie gesagt - Rechne mir bitte EIN Objekt mit den beiden Zählerständen vor, wie Du es haben möchtest.

      In diesem Beitrag habe ich versucht, die Aufgabenstellung zu reduzieren. Sinnvollerweise sollte man wohl ein leeres Element (Energiepries=0 und Wert=0) in jedem ARRAY Bezug, Verbrauch und Verkauf einführen, um über alles Differenzen zwei aufeinander folgender Werte zu summieren.

      In JSONata fand ich bisher keine Kontrollstrukturen, die so etwas ermöglichen. Hier muss ich dann wohl doch noch mit Blockly ran.

      Da ich ja nur immer eine Summe für jedes ARRAY getrennt haben muss, habe ich die Datenstruktur und Abfrage wie hier ausgeführt geändert.

      Nun ja, ich habe mich für den Anfang wohl schlichtweg übernommen. Erst einmal kleiner Brötchen backen, wäre wohl besser.

      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 2 Antworten Letzte Antwort
      0
      • L legro

        @mickym sagte in JSON Objekte in Liste:

        Wie gesagt - Rechne mir bitte EIN Objekt mit den beiden Zählerständen vor, wie Du es haben möchtest.

        In diesem Beitrag habe ich versucht, die Aufgabenstellung zu reduzieren. Sinnvollerweise sollte man wohl ein leeres Element (Energiepries=0 und Wert=0) in jedem ARRAY Bezug, Verbrauch und Verkauf einführen, um über alles Differenzen zwei aufeinander folgender Werte zu summieren.

        In JSONata fand ich bisher keine Kontrollstrukturen, die so etwas ermöglichen. Hier muss ich dann wohl doch noch mit Blockly ran.

        Da ich ja nur immer eine Summe für jedes ARRAY getrennt haben muss, habe ich die Datenstruktur und Abfrage wie hier ausgeführt geändert.

        Nun ja, ich habe mich für den Anfang wohl schlichtweg übernommen. Erst einmal kleiner Brötchen backen, wäre wohl besser.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #65

        @legro Nun bitte sehr: https://try.jsonata.org/lM8bWJD1Q

        Hier war dein Array

        [0,2,4,7,9]
        

        und das sind die Differenzen

        [
          2,
          2,
          3,
          2
        ]
        

        c887c7c5-7196-4a76-9683-2fefd43c7bbb-image.png

        und die Summe ist dann 9 😁

        9e888c77-f1af-462c-8779-92f72bdf736a-image.png

        Ok - ich verstehe, da hast zum Schluss mehr als 2 Elemente in Deinen Arrays. Trotzdem ist der 1. Preis immer irrelevant.

        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
        • L legro

          @mickym sagte in JSON Objekte in Liste:

          Wie gesagt - Rechne mir bitte EIN Objekt mit den beiden Zählerständen vor, wie Du es haben möchtest.

          In diesem Beitrag habe ich versucht, die Aufgabenstellung zu reduzieren. Sinnvollerweise sollte man wohl ein leeres Element (Energiepries=0 und Wert=0) in jedem ARRAY Bezug, Verbrauch und Verkauf einführen, um über alles Differenzen zwei aufeinander folgender Werte zu summieren.

          In JSONata fand ich bisher keine Kontrollstrukturen, die so etwas ermöglichen. Hier muss ich dann wohl doch noch mit Blockly ran.

          Da ich ja nur immer eine Summe für jedes ARRAY getrennt haben muss, habe ich die Datenstruktur und Abfrage wie hier ausgeführt geändert.

          Nun ja, ich habe mich für den Anfang wohl schlichtweg übernommen. Erst einmal kleiner Brötchen backen, wäre wohl besser.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #66

          @legro Ja das Problem ist dass Dein Array ja wächst, deswegen dürfen wir nicht mit fixen Indizes arbeiten. Ich überlege noch.

          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 Problem ist dass Dein Array ja wächst, deswegen dürfen wir nicht mit fixen Indizes arbeiten. Ich überlege noch.

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

            @mickym

            Ok - ich verstehe, da hast zum Schluss mehr als 2 Elemente in Deinen Arrays. Trotzdem ist der 1. Preis immer irrelevant.

            Daher ja auch die Idee eine "leeren Elementes", damit die Iteration gelingt.

            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

              Ok - ich verstehe, da hast zum Schluss mehr als 2 Elemente in Deinen Arrays. Trotzdem ist der 1. Preis immer irrelevant.

              Daher ja auch die Idee eine "leeren Elementes", damit die Iteration gelingt.

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #68

              @legro Ja passt schon - wir könnten das auch mit Codieren in JSONATA lösen - aber ich tüftle noch. 😉

              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 2 Antworten Letzte Antwort
              0
              • mickymM mickym

                @legro Ja passt schon - wir könnten das auch mit Codieren in JSONATA lösen - aber ich tüftle noch. 😉

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

                @mickym sagte in JSON Objekte in Liste:

                @legro Ja passt schon - wir könnten das auch mit Codieren in JSONATA lösen - aber ich tüftle noch. 😉

                Ich bin voller Bewunderung!👍

                Allerdings verstehe ich noch nicht die Syntax in dem Ausdruck $#$i.[$$[$i+1]-$$[$i]] Da muss ich noch kräftig nachdenken.

                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

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @legro Ja passt schon - wir könnten das auch mit Codieren in JSONATA lösen - aber ich tüftle noch. 😉

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

                  @mickym

                  Hier habe ich das Ganze für die neue Datenstruktur mit benannten ARRAYs einmal ausgeführt.

                  Wie gesagt: leider verstehe ich die Syntax mit den Indizes noch nicht so richtig.

                  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

                    Hier habe ich das Ganze für die neue Datenstruktur mit benannten ARRAYs einmal ausgeführt.

                    Wie gesagt: leider verstehe ich die Syntax mit den Indizes noch nicht so richtig.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #71

                    @legro Ja wie gesagt das nützt nichts, ich gehe ja davon aus, dass Dein Array weiter wächst.

                    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 wie gesagt das nützt nichts, ich gehe ja davon aus, dass Dein Array weiter wächst.

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

                      @mickym sagte in JSON Objekte in Liste:

                      @legro Ja wie gesagt das nützt nichts, ich gehe ja davon aus, dass Dein Array weiter wächst.

                      Wenn ich in dem Beispiel-ARRAY mit den Zahlen Elemente ergänze, wird doch alles dynamisch bereits berücksichtigt. Das Ganze funktioniert doch schon wie gewünscht. Oder wo liegt mein Denkfehler?

                      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 sagte in JSON Objekte in Liste:

                        @legro Ja wie gesagt das nützt nichts, ich gehe ja davon aus, dass Dein Array weiter wächst.

                        Wenn ich in dem Beispiel-ARRAY mit den Zahlen Elemente ergänze, wird doch alles dynamisch bereits berücksichtigt. Das Ganze funktioniert doch schon wie gewünscht. Oder wo liegt mein Denkfehler?

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von
                        #73

                        @legro Ja da funktioniert es auch aber ich komme mit den Objekten noch nicht klar - ich versuch das nun mal mit bissi Code. Hab einfach bissi Geduld.

                        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 da funktioniert es auch aber ich komme mit den Objekten noch nicht klar - ich versuch das nun mal mit bissi Code. Hab einfach bissi Geduld.

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

                          @mickym sagte in JSON Objekte in Liste:

                          @legro Ja da funktioniert es auch aber ich komme mit den Objekten noch nicht klar - ich versuch das nun mal mit bissi Code. Hab einfach bissi Geduld.

                          Du kannst gerne alle Zeit der Welt haben. Wenn du bei der Anpassung an meinen Beispielcode noch überlegen muss, habe ich gar keinen Mut das Beispiel daraufhin zu erweitern.

                          Kannst du bitte die neue Struktur 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 sagte in JSON Objekte in Liste:

                            @legro Ja da funktioniert es auch aber ich komme mit den Objekten noch nicht klar - ich versuch das nun mal mit bissi Code. Hab einfach bissi Geduld.

                            Du kannst gerne alle Zeit der Welt haben. Wenn du bei der Anpassung an meinen Beispielcode noch überlegen muss, habe ich gar keinen Mut das Beispiel daraufhin zu erweitern.

                            Kannst du bitte die neue Struktur verwenden?

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #75

                            @legro Ja mach ich

                            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
                            • mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #76

                              So ich habs fertig. 😉 Deine Formel stimmt meines Erachtens auch nicht - aber so dürfte das nun gehen.

                              https://try.jsonata.org/p-SrPKlgy

                              Die Summe ist nun: 1213.29

                              (gerundet)

                              Wenn Du die Aufsummierung weglässt, siehst Du das Ergebnis jedes Blocks:

                              [
                                190.3172341,
                                0,
                                1022.9705301
                              ]
                              

                              6f4903a5-b84d-46b8-a301-bd3950a389a4-image.png

                              Grundsätzlich würde ich aber mit Sonderzeichen aufpassen - also Umlauten auch wenn es hier im Moment kein Problem gibt

                              Man kann das Ganze auch ohne Programm schreiben:

                              https://try.jsonata.org/AUkOIVcjP

                              ABER - deine 1. Struktur war viel besser. ....

                              damit geht es in einer Zeile: https://try.jsonata.org/1lDqzoiKc

                              a2ea621f-5e1b-4280-84ac-0cd4d53e3b9c-image.png

                              Das liegt daran weil Du das Objekt Stände benannt hast. Sowas ist wesentlich besser, als unbenannte Objekte in einem Array aneinanderzureihen. Ich hätte auch deine jetzige Struktur in die alte Struktur überführen können, hängt halt davon ab, wie Du die erzeugst.

                              Nachtrag:

                              Im Prinzip ist es egal - ob Du mit einem 0 Wert anfängst oder nicht - es wird halt immer brav die Differenz zwischen einem Objekt und seinem Vorgänger ermittelt und wenn das Stände Array nur ein Objekt enthält, wird 0 zurückgegeben.

                              Und das Array kann nun beliebig wachsen. 😉

                              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

                                So ich habs fertig. 😉 Deine Formel stimmt meines Erachtens auch nicht - aber so dürfte das nun gehen.

                                https://try.jsonata.org/p-SrPKlgy

                                Die Summe ist nun: 1213.29

                                (gerundet)

                                Wenn Du die Aufsummierung weglässt, siehst Du das Ergebnis jedes Blocks:

                                [
                                  190.3172341,
                                  0,
                                  1022.9705301
                                ]
                                

                                6f4903a5-b84d-46b8-a301-bd3950a389a4-image.png

                                Grundsätzlich würde ich aber mit Sonderzeichen aufpassen - also Umlauten auch wenn es hier im Moment kein Problem gibt

                                Man kann das Ganze auch ohne Programm schreiben:

                                https://try.jsonata.org/AUkOIVcjP

                                ABER - deine 1. Struktur war viel besser. ....

                                damit geht es in einer Zeile: https://try.jsonata.org/1lDqzoiKc

                                a2ea621f-5e1b-4280-84ac-0cd4d53e3b9c-image.png

                                Das liegt daran weil Du das Objekt Stände benannt hast. Sowas ist wesentlich besser, als unbenannte Objekte in einem Array aneinanderzureihen. Ich hätte auch deine jetzige Struktur in die alte Struktur überführen können, hängt halt davon ab, wie Du die erzeugst.

                                Nachtrag:

                                Im Prinzip ist es egal - ob Du mit einem 0 Wert anfängst oder nicht - es wird halt immer brav die Differenz zwischen einem Objekt und seinem Vorgänger ermittelt und wenn das Stände Array nur ein Objekt enthält, wird 0 zurückgegeben.

                                Und das Array kann nun beliebig wachsen. 😉

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

                                @mickym

                                Vielen herzlichen Dank für die vielen Mühen, die du sicherlich trotz deinem großen Können hast auf dich genommen. Wie ich befürchtet habe: Das Ganze war gleich mehrere Nummern zu groß für einen Anfänger wie mich. Da du jedoch gleich mehrere Lösungen anbietest, habe ich Hoffnung, wenigstens die ein oder andere zu verstehen.

                                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

                                  Vielen herzlichen Dank für die vielen Mühen, die du sicherlich trotz deinem großen Können hast auf dich genommen. Wie ich befürchtet habe: Das Ganze war gleich mehrere Nummern zu groß für einen Anfänger wie mich. Da du jedoch gleich mehrere Lösungen anbietest, habe ich Hoffnung, wenigstens die ein oder andere zu verstehen.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #78

                                  @legro Du musst halt fragen, wenn Du was nicht verstehst. Kern ist dieses Mal das nutzen der $reduce Funktion: https://docs.jsonata.org/higher-order-functions#reduce

                                  Diese verwendet man generell, wenn man mehrere Werte in einem Zusammenfassen will. 😉

                                  Sowas kannst Du wenn Du das lieber machst auch in Blockly machen. Ich behaupte nur mal, da brauchst Du 10 mal soviel Code bzw. Puzzleteilchen.

                                  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 Du musst halt fragen, wenn Du was nicht verstehst. Kern ist dieses Mal das nutzen der $reduce Funktion: https://docs.jsonata.org/higher-order-functions#reduce

                                    Diese verwendet man generell, wenn man mehrere Werte in einem Zusammenfassen will. 😉

                                    Sowas kannst Du wenn Du das lieber machst auch in Blockly machen. Ich behaupte nur mal, da brauchst Du 10 mal soviel Code bzw. Puzzleteilchen.

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

                                    @mickym sagte in JSON Objekte in Liste:

                                    @legro Du musst halt fragen, wenn Du was nicht verstehst. Kern ist dieses Mal das nutzen der $reduce Funktion: https://docs.jsonata.org/higher-order-functions#reduce

                                    Die hatte ich mir angeschaut, während ich auf deine Lösungen wartete. Mich überfordert das Ganze noch gewaltig. Allein um weitere Fragen zu stellen, muss ich erst einmal die eine oder andere Grundlage sicher verstanden haben.

                                    Sowas kannst Du wenn Du das lieber machst auch in Blockly machen. Ich behaupte nur mal, da brauchst Du 10 mal soviel Code bzw. Puzzleteilchen.

                                    Da kann ich dir nur zustimmen. Während du hier für mich die Lösung in JSONata erstellt hast, hatte ich parallel dazu versucht, meine Ziele via Blockly zu realisieren. Selbstverständlich stampfe ich dieses Vorhaben ein, verfüge ich doch nun über deine großartige Lösung in JSONata.

                                    Meine nächste Vorhaben ..

                                    • Ich möchte in das jeweils letzte ARRAY-Element den jeweils aktuellen Zählerstand schreiben.
                                    • Ich möchte ein weiteres ARRAY-Element (Zählerstand) an-/einfügen.

                                    Hierzu bietet Blockly erst gar nichts an. Ich denke, dass ich mit den Blöcken ..

                                    d6a0058e-8138-4faf-b8d7-b8afec10ec6d-image.png

                                    .. das realisiert bekomme.

                                    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 sagte in JSON Objekte in Liste:

                                      @legro Du musst halt fragen, wenn Du was nicht verstehst. Kern ist dieses Mal das nutzen der $reduce Funktion: https://docs.jsonata.org/higher-order-functions#reduce

                                      Die hatte ich mir angeschaut, während ich auf deine Lösungen wartete. Mich überfordert das Ganze noch gewaltig. Allein um weitere Fragen zu stellen, muss ich erst einmal die eine oder andere Grundlage sicher verstanden haben.

                                      Sowas kannst Du wenn Du das lieber machst auch in Blockly machen. Ich behaupte nur mal, da brauchst Du 10 mal soviel Code bzw. Puzzleteilchen.

                                      Da kann ich dir nur zustimmen. Während du hier für mich die Lösung in JSONata erstellt hast, hatte ich parallel dazu versucht, meine Ziele via Blockly zu realisieren. Selbstverständlich stampfe ich dieses Vorhaben ein, verfüge ich doch nun über deine großartige Lösung in JSONata.

                                      Meine nächste Vorhaben ..

                                      • Ich möchte in das jeweils letzte ARRAY-Element den jeweils aktuellen Zählerstand schreiben.
                                      • Ich möchte ein weiteres ARRAY-Element (Zählerstand) an-/einfügen.

                                      Hierzu bietet Blockly erst gar nichts an. Ich denke, dass ich mit den Blöcken ..

                                      d6a0058e-8138-4faf-b8d7-b8afec10ec6d-image.png

                                      .. das realisiert bekomme.

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #80

                                      @legro na dann musst Du wieder JS programmieren. Wie gesagt ich bin kein Blockly Spezialist, das kann @paul53 viel besser, aber

                                      6e645144-9eea-47d2-8d8a-f297feea5a3a-image.png

                                      mit diesem Baustein solltest Du das Array erweitern können.

                                      und wenn Du auf setze änderst, wird das letzte Element geändert

                                      ccd254cc-d512-496e-be4b-b5326401b43d-image.png

                                      Aber wie gesagt musst ausprobieren. Ich nutze das Tool sonst nicht.

                                      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 2 Antworten Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @legro na dann musst Du wieder JS programmieren. Wie gesagt ich bin kein Blockly Spezialist, das kann @paul53 viel besser, aber

                                        6e645144-9eea-47d2-8d8a-f297feea5a3a-image.png

                                        mit diesem Baustein solltest Du das Array erweitern können.

                                        und wenn Du auf setze änderst, wird das letzte Element geändert

                                        ccd254cc-d512-496e-be4b-b5326401b43d-image.png

                                        Aber wie gesagt musst ausprobieren. Ich nutze das Tool sonst nicht.

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

                                        @mickym sagte in JSON Objekte in Liste:

                                        Aber wie gesagt musst ausprobieren.

                                        In der Tat.

                                        Ich entnehme das Objekt ja aus einem Datenpunkt, der nach meinem Verständnis ja bloß einen JSON-Text enthält. Schreiben sollte ich jedoch nur auf die Felder des aus diesem Text erzeugten Objektes können. Somit sollte nach den Änderungen das Ganze wieder zurück als Text in den Datenpunkt geschrieben werden.

                                        Mal sehen, ob ich mit dieser Strategie ans Ziel komme.

                                        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

                                        1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @legro na dann musst Du wieder JS programmieren. Wie gesagt ich bin kein Blockly Spezialist, das kann @paul53 viel besser, aber

                                          6e645144-9eea-47d2-8d8a-f297feea5a3a-image.png

                                          mit diesem Baustein solltest Du das Array erweitern können.

                                          und wenn Du auf setze änderst, wird das letzte Element geändert

                                          ccd254cc-d512-496e-be4b-b5326401b43d-image.png

                                          Aber wie gesagt musst ausprobieren. Ich nutze das Tool sonst nicht.

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

                                          [@mickym sagte in JSON Objekte in Liste:

                                          @legro Du musst halt fragen, wenn Du was nicht verstehst. ..

                                          Dann will ich dich mal beim Wort nehmen.🙂 Während du für mich deine Lösungen zusammengebastelt hast, war ich nämlich nicht untätig.

                                          Nachdem wir ja die Aufgabenstellung zerlegt hatten in ..

                                          1. Summe der Produkte (Wert * Energiepreis) und ..
                                          2. Summe der Differenzen auf einanderfolgender ARRAY-Elemente, ..

                                          .. versuchte ich aus diesen beiden Gedanken die Lösung zusammenzubasteln. Leider mit viel wenig Erfolg.😕

                                          1. Produktsumme

                                          a4475b4a-e3cd-470e-b613-0ff7880a8357-image.png

                                          In diesem ARRAY galt es nun mittels der ersten Idee die Differenzsummen zu bilden, was mir nicht gelang, weil ich diese deine oben angegebene Lösung hierzu letztendlich wohl nicht tiefgreifend genug verstanden habe.

                                          1. Differenzsumme

                                          8f9f71bb-a9aa-4501-9bb1-79f9ffcea3f6-image.png

                                          Die Kodierung $#$i.[$$[$i+1]-$$[$i]] verstehe ich nur teilweise. Hier, was ich glaube, verstanden zu haben ..

                                          • $ steht für einen relativen Pfad. (Am Anfang hätte also auch $$ stehen können.)
                                          • $$ steht für den absoluten (gesamten) Pfad von Beginn an.
                                          • $i steht für eine - nennen wie sie mal - Hilfsvariable (und könnte auch ganz anders heißen).
                                          • Aber was macht der Operator '#' genau? Pappt er (wie auch '@') den Pfad aus $ an die Variable $i und bezeichnet damit in der Ausgabe das ermittelte ARRAY-Element (Differenz).
                                          • [$$[$i+1]-$$[$i]] bildet die Differenz zweier aufeinander folgender Element, die durch die Indizes $i und $i+1 referenziert werden.

                                          Was ich mich frage ..

                                          • Könnte man nicht die beiden Ansätze 1. und 2. zu einer Lösung zusammenfügen? Wenn ja, wie?
                                          • Was mich nach wie vor völlig verwirrt, ist die Tatsache, dass keinerlei Syntax auf eine Kontrollstruktur (hier wird ja wohl eine Schleife erzeugt) zu sehen ist.
                                          • Auch verstehe ich nicht, warum ich nicht in Anlehnung aus deiner Lösung zu 2. in 1. hätte kodieren können [ZählerStände.Bezug[$i].Wert * ZählerStände.Bezug[$i].Wert.Energiepreis]

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          398

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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