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.
    • 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
                                          • mickym
                                            mickym Most Active @dos1973 last edited by

                                            @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 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            905
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            80
                                            3207
                                            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