Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. json datei für Chart aus vorhandenen DP's erstellen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dos1973 @mickym last edited by

      @mickym
      es wird wärmer 😉
      es muss aber andersherum... und der 30.10/ 31.10 sind auch nicht in der richtigen reihenfolge.

      lässt sich das nicht hardcoden, dp-10, dp-9...

      Bildschirmfoto 2023-11-09 um 21.18.39.png

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @dos1973 last edited by

        @dos1973 Ich bin dran. 😉 Wie gesagt das Dumme ist dass Du -1 und -10 gemacht hast und damit wird es nach Zeichenketten sortiert und da kommt nun mal 1 und 10 vor 2.

        D 1 Reply Last reply Reply Quote 0
        • D
          dos1973 @mickym last edited by dos1973

          @mickym
          Ja, Anfänger Fehler

          Ich hätte -001, 002 Tage machen sollen, richtig?

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @dos1973 last edited by

            @dos1973 Eigentlich
            -00, -01, etc. - aber ich wandle es nun in Zahlen um. Dauert halt bissi.

            D 1 Reply Last reply Reply Quote 0
            • D
              dos1973 @mickym last edited by

              @mickym

              brauche ich wirklich ein Blockly mit cronjob,
              dass meinen DP triggert, damit das nodeRed zb alle 10min läuft 🙂
              suche noch ein 10min Trigger

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @dos1973 last edited by

                @dos1973 Einfach die Injectnode triggern lassen - da brauchst kein blockly

                1 Reply Last reply Reply Quote 1
                • mickym
                  mickym Most Active last edited by

                  So damit sollte es nun gehen:

                  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 1 Reply Last reply Reply Quote 0
                  • D
                    dos1973 @mickym last edited by dos1973

                    @mickym

                    fast 🙂

                    Bildschirmfoto 2023-11-09 um 22.10.37.png

                    von links nach rechts aufsteigend.

                    manchmal kann ich ja code "interpretieren" aber hier sehe ich nur Bahnhof.

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @dos1973 last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • D
                        dos1973 @mickym last edited by

                        @mickym welches?

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @dos1973 last edited by 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 1 Reply Last reply Reply Quote 0
                          • D
                            dos1973 @mickym last edited by

                            @mickym

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

                            nur noch der aktuelle Tag.

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @dos1973 last edited by 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 1 Reply Last reply Reply Quote 0
                              • D
                                dos1973 @mickym last edited by

                                @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 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active last edited by 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 1 Reply Last reply Reply Quote 0
                                  • D
                                    dos1973 @mickym last edited by

                                    @mickym

                                    soweit stimmt es, nur steht der Wert an falscher stelle

                                    Bildschirmfoto 2023-11-09 um 22.59.33.png

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active last edited by mickym

                                      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.

                                      1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active last edited by

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

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          dos1973 @mickym last edited by

                                          @mickym

                                          Perfekt!

                                          Bildschirmfoto 2023-11-09 um 23.08.53.png

                                          D mickym 2 Replies Last reply Reply Quote 0
                                          • D
                                            dos1973 @dos1973 last edited by

                                            @dos1973

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            887
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            80
                                            3193
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo