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 @mickym last edited by mickym

      @mickym Warte hab den Fehler.

      payload.{"axisLabels": [_id~>/(Datum-(\d|10)$)/] ? val, "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? val}
      

      Ich hab unten immer xaxisLabels geschrieben.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            864
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

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