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. Skripten / Logik
  4. Blockly
  5. json datei für Chart aus vorhandenen DP's erstellen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    958

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

json datei für Chart aus vorhandenen DP's erstellen

Geplant Angeheftet Gesperrt Verschoben Blockly
80 Beiträge 2 Kommentatoren 6.5k 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.
  • D dos1973

    @mickym welches?

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

    @dos1973 Ich hab den Code nochmal gepostet

    
    payload.{"axisLabels": [_id~>/(Datum-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "date":val}, 
    "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "val":val}}{"axisLabels":axisLabels,"data":data}
    ~>|$|{"axisLabels":$sort(axisLabels,function($l,$r){$l.id < $r.id}),"data":$sort(data,function($l,$r){$l.id < $r.id})}|
    ~>|$|{"axisLabels": axisLabels.date,"data":data.val}|
    

    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.

    D 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @dos1973 Ich hab den Code nochmal gepostet

      
      payload.{"axisLabels": [_id~>/(Datum-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "date":val}, 
      "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "val":val}}{"axisLabels":axisLabels,"data":data}
      ~>|$|{"axisLabels":$sort(axisLabels,function($l,$r){$l.id < $r.id}),"data":$sort(data,function($l,$r){$l.id < $r.id})}|
      ~>|$|{"axisLabels": axisLabels.date,"data":data.val}|
      
      D Offline
      D Offline
      dos1973
      schrieb am zuletzt editiert von
      #65

      @mickym

      YES!!!
      Bildschirmfoto 2023-11-09 um 22.15.00.png

      nur noch der aktuelle Tag.

      mickymM 1 Antwort Letzte Antwort
      0
      • D dos1973

        @mickym

        YES!!!
        Bildschirmfoto 2023-11-09 um 22.15.00.png

        nur noch der aktuelle Tag.

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

        @dos1973 Ok dann sag nochmal woher Du den holst und wie sieht der vom value her aus.

        sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
        

        Bzw. muss ich eigentlich nicht wissen - Du holst einfach einen Zahlenwert irgendwoher?

        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.

        D 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @dos1973 Ok dann sag nochmal woher Du den holst und wie sieht der vom value her aus.

          sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
          

          Bzw. muss ich eigentlich nicht wissen - Du holst einfach einen Zahlenwert irgendwoher?

          D Offline
          D Offline
          dos1973
          schrieb am zuletzt editiert von
          #67

          @mickym

          sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
          
          

          einfach der heutige Verbrauch als Inhalt.

          5,922
          
          1 Antwort Letzte Antwort
          0
          • mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #68

            Ok bin fertig:

            Einfach diese 3 Nodes noch einfügen.

            9c2e60c2-49e5-48fa-8b9c-c6284f281956-image.png

            [
               {
                   "id": "bd6eca790986a04a",
                   "type": "change",
                   "z": "5a7d3179c5870381",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "date",
                           "pt": "msg",
                           "to": "$moment().format(\"DD.MM.\")",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 920,
                   "y": 640,
                   "wires": [
                       [
                           "247b31bbef072b30"
                       ]
                   ]
               },
               {
                   "id": "a507d81536b10e6d",
                   "type": "change",
                   "z": "5a7d3179c5870381",
                   "name": "Ergänze Graph",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "$.payload~>|$|{\"axisLabels\":$append($$.date,axisLabels)}| ~>|$.graphs|{\"data\":$append($$.val_today,data)}|",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 1320,
                   "y": 640,
                   "wires": [
                       [
                           "f1e2f69ae8e15d75",
                           "2de45b53a28dc5d2"
                       ]
                   ]
               },
               {
                   "id": "247b31bbef072b30",
                   "type": "ioBroker get",
                   "z": "5a7d3179c5870381",
                   "name": "Verbrauch heute",
                   "topic": "0_userdata.0.Test.dos-1973.-2_Tage.Verbrauch-2",
                   "attrname": "val_today",
                   "payloadType": "value",
                   "errOnInvalidState": "nothing",
                   "x": 1120,
                   "y": 640,
                   "wires": [
                       [
                           "a507d81536b10e6d"
                       ]
                   ]
               }
            ]
            

            In der get-Node "Verbrauch heute" halt noch den richtigen Pfad zum Datenpunkt einfügen.

            0ee585d4-a6a8-44d7-aac7-65a14bbe38fe-image.png

            Und zum Schluß kann ich immer nur wieder sagen, lernt JSONATA mit diesem Tool - so erstelle ich ja meine Ausdrücke auch, in dem ich diese Stück für Stück zusammensetze. Hier kannst Du ausprobieren, welche Teile welche Auswirkungen haben: https://try.jsonata.org/Dcmx04fzH

            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.

            D 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              Ok bin fertig:

              Einfach diese 3 Nodes noch einfügen.

              9c2e60c2-49e5-48fa-8b9c-c6284f281956-image.png

              [
                 {
                     "id": "bd6eca790986a04a",
                     "type": "change",
                     "z": "5a7d3179c5870381",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "date",
                             "pt": "msg",
                             "to": "$moment().format(\"DD.MM.\")",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 920,
                     "y": 640,
                     "wires": [
                         [
                             "247b31bbef072b30"
                         ]
                     ]
                 },
                 {
                     "id": "a507d81536b10e6d",
                     "type": "change",
                     "z": "5a7d3179c5870381",
                     "name": "Ergänze Graph",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$.payload~>|$|{\"axisLabels\":$append($$.date,axisLabels)}| ~>|$.graphs|{\"data\":$append($$.val_today,data)}|",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1320,
                     "y": 640,
                     "wires": [
                         [
                             "f1e2f69ae8e15d75",
                             "2de45b53a28dc5d2"
                         ]
                     ]
                 },
                 {
                     "id": "247b31bbef072b30",
                     "type": "ioBroker get",
                     "z": "5a7d3179c5870381",
                     "name": "Verbrauch heute",
                     "topic": "0_userdata.0.Test.dos-1973.-2_Tage.Verbrauch-2",
                     "attrname": "val_today",
                     "payloadType": "value",
                     "errOnInvalidState": "nothing",
                     "x": 1120,
                     "y": 640,
                     "wires": [
                         [
                             "a507d81536b10e6d"
                         ]
                     ]
                 }
              ]
              

              In der get-Node "Verbrauch heute" halt noch den richtigen Pfad zum Datenpunkt einfügen.

              0ee585d4-a6a8-44d7-aac7-65a14bbe38fe-image.png

              Und zum Schluß kann ich immer nur wieder sagen, lernt JSONATA mit diesem Tool - so erstelle ich ja meine Ausdrücke auch, in dem ich diese Stück für Stück zusammensetze. Hier kannst Du ausprobieren, welche Teile welche Auswirkungen haben: https://try.jsonata.org/Dcmx04fzH

              D Offline
              D Offline
              dos1973
              schrieb am zuletzt editiert von
              #69

              @mickym

              soweit stimmt es, nur steht der Wert an falscher stelle

              Bildschirmfoto 2023-11-09 um 22.59.33.png

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

                Ok - verstehe zwar wieder nicht warum aber dann tausch einfach in der letzten Change Node (Ergänze Graph) die beiden Parameter in der append Funktion.

                $.payload~>|$|{"axisLabels":$append(axisLabels,$$.date)}|
                ~>|$.graphs|{"data":$append(data,$$.val_today)}|
                

                Also in der letzten Node.

                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 Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #71

                  Ich denke, wenn Du es mir kurz bestätigst, dass ich dann alles wieder löschen kann?

                  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.

                  D 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    Ich denke, wenn Du es mir kurz bestätigst, dass ich dann alles wieder löschen kann?

                    D Offline
                    D Offline
                    dos1973
                    schrieb am zuletzt editiert von
                    #72

                    @mickym

                    Perfekt!

                    Bildschirmfoto 2023-11-09 um 23.08.53.png

                    D mickymM 2 Antworten Letzte Antwort
                    0
                    • D dos1973

                      @mickym

                      Perfekt!

                      Bildschirmfoto 2023-11-09 um 23.08.53.png

                      D Offline
                      D Offline
                      dos1973
                      schrieb am zuletzt editiert von
                      #73

                      @dos1973

                      das große Problem war nicht das json, sonder die Art wie ich die Daten aufgebaut habe, richtig?

                      1 Antwort Letzte Antwort
                      0
                      • D dos1973

                        @mickym

                        Perfekt!

                        Bildschirmfoto 2023-11-09 um 23.08.53.png

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

                        @dos1973 sagte in json datei für Chart aus vorhandenen DP's erstellen:

                        @mickym

                        Perfekt!

                        Bildschirmfoto 2023-11-09 um 23.08.53.png

                        Super

                        @dos1973 sagte in json datei für Chart aus vorhandenen DP's erstellen:

                        @dos1973

                        das große Problem war nicht das json, sonder die Art wie ich die Daten aufgebaut habe, richtig?

                        Auch - das hat einiges zusätzliches Kopfzerbrechen gekostet, und mir ist auch trotzdem nicht klar wieso der letzte Punkt nun da oder dort ist. Aber egal.
                        Und doch mit Blockly hast du ein Problem - da sind ja mit den schwarzen Balken die Formatierung verschütt gegangen. Und das liegt daran, dass Du nicht mit Objekten arbeitest, sondern mit Strings versuchst Objekte zu basteln.

                        Ich kann davon nur abraten. Trotzdem Du den Code nicht jetzt verstehst - kannst es ja mal versuchen ;) - ist das 10 mal praktischer als Objekte mit Strings zu erstellen:

                        65a0b265-64b3-494c-a3c4-5a7442cbc5de-image.png

                        Da dreht sich mir nur der Magen um - und Blockly kann das einfach nicht. Dann musst halt mit Javascript programmieren - brauchst aber 10 mal soviel Code wie mit JSONATA und NodeRed.

                        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.

                        D 1 Antwort Letzte Antwort
                        0
                        • mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #75

                          Aber nochmal - darf ich nun wieder löschen??? :grinning: :grinning: :grinning:

                          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 mickym

                            @dos1973 sagte in json datei für Chart aus vorhandenen DP's erstellen:

                            @mickym

                            Perfekt!

                            Bildschirmfoto 2023-11-09 um 23.08.53.png

                            Super

                            @dos1973 sagte in json datei für Chart aus vorhandenen DP's erstellen:

                            @dos1973

                            das große Problem war nicht das json, sonder die Art wie ich die Daten aufgebaut habe, richtig?

                            Auch - das hat einiges zusätzliches Kopfzerbrechen gekostet, und mir ist auch trotzdem nicht klar wieso der letzte Punkt nun da oder dort ist. Aber egal.
                            Und doch mit Blockly hast du ein Problem - da sind ja mit den schwarzen Balken die Formatierung verschütt gegangen. Und das liegt daran, dass Du nicht mit Objekten arbeitest, sondern mit Strings versuchst Objekte zu basteln.

                            Ich kann davon nur abraten. Trotzdem Du den Code nicht jetzt verstehst - kannst es ja mal versuchen ;) - ist das 10 mal praktischer als Objekte mit Strings zu erstellen:

                            65a0b265-64b3-494c-a3c4-5a7442cbc5de-image.png

                            Da dreht sich mir nur der Magen um - und Blockly kann das einfach nicht. Dann musst halt mit Javascript programmieren - brauchst aber 10 mal soviel Code wie mit JSONATA und NodeRed.

                            D Offline
                            D Offline
                            dos1973
                            schrieb am zuletzt editiert von dos1973
                            #76

                            @mickym

                            das ist mir ja voher nicht bekannt - und ich starte und kämpf nicht durch. Ich bin eben kein Enwickler.

                            Dir ein Riesen Dankeschön, für deine Mühe.

                            Ja, hau weg die Daten ...

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • D dos1973

                              @mickym

                              das ist mir ja voher nicht bekannt - und ich starte und kämpf nicht durch. Ich bin eben kein Enwickler.

                              Dir ein Riesen Dankeschön, für deine Mühe.

                              Ja, hau weg die Daten ...

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

                              @dos1973 Noch ein Tipp - Du kannst auch den Graph nur einmal am Tag erstellen und nur den vorhanden Graph wenn Du ihn in einem anderen Datenpunkt speicherst dann immer mit den aktuellen Daten ergänzen. Musst du aber wissen. Dann musst Du jedenfalls nicht alle 10 Minuten alle alten Datenpunkte auslesen, sondern nur noch einmal am Tag und dann lässt Du den current Datenpunkt triggern. Das finde ich 10 mal besser, als immer diese zyklischen Abfragen.

                              Ich bin auch kein Entwickler - Du siehst ja ich brauche ja auch immer meiner Zeit.

                              Danke für die Rückmeldung - ich werde nun alles wieder löschen. ;)

                              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.

                              D 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @dos1973 Noch ein Tipp - Du kannst auch den Graph nur einmal am Tag erstellen und nur den vorhanden Graph wenn Du ihn in einem anderen Datenpunkt speicherst dann immer mit den aktuellen Daten ergänzen. Musst du aber wissen. Dann musst Du jedenfalls nicht alle 10 Minuten alle alten Datenpunkte auslesen, sondern nur noch einmal am Tag und dann lässt Du den current Datenpunkt triggern. Das finde ich 10 mal besser, als immer diese zyklischen Abfragen.

                                Ich bin auch kein Entwickler - Du siehst ja ich brauche ja auch immer meiner Zeit.

                                Danke für die Rückmeldung - ich werde nun alles wieder löschen. ;)

                                D Offline
                                D Offline
                                dos1973
                                schrieb am zuletzt editiert von
                                #78

                                @mickym
                                Du hast Recht, hört sich sinnvoll an. Ich löse das mit RAM 😂

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • D dos1973

                                  @mickym
                                  Du hast Recht, hört sich sinnvoll an. Ich löse das mit RAM 😂

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

                                  @dos1973 Na das hat weniger mit RAM zu tun - sondern Du beschäftigst Deinen Rechner halt unnötig wobei das auch nicht so tragisch ist. Du liest halt alle 10 Minuten - sprich 120 mal am Tag die gleichen 10 Datenpunkte ein, die sich nicht verändern.

                                  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.

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @dos1973 Na das hat weniger mit RAM zu tun - sondern Du beschäftigst Deinen Rechner halt unnötig wobei das auch nicht so tragisch ist. Du liest halt alle 10 Minuten - sprich 120 mal am Tag die gleichen 10 Datenpunkte ein, die sich nicht verändern.

                                    D Offline
                                    D Offline
                                    dos1973
                                    schrieb am zuletzt editiert von
                                    #80

                                    @Dirk-4

                                    anbei gewünscht das script, wie im Thread erkennbar - nicht voll funktionsfähig

                                    strom_json.txt

                                    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

                                    739

                                    Online

                                    32.6k

                                    Benutzer

                                    82.2k

                                    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