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.4k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

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.
  • mickymM mickym

    @dos1973 Dann dreh einfach mal das größer Zeichen um - keine Ahnung - warum das so ist.

    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
    #63

    @mickym welches?

    mickymM 1 Antwort Letzte Antwort
    0
    • 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

                                      336

                                      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