Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Energieverbrauch in Datei speichern?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Energieverbrauch in Datei speichern?

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Butalive23 last edited by

      Hallo, ich suche einer Möglichkeit, Werte z. B. Energieverbrauch in eine Datei zu schreiben und zu speichern.

      mickym B 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @Butalive23 last edited by mickym

        @butalive23 Wenn Du Node-Red verwendest, ist das kein Problem.
        Wenn Du lieber puzzelst hast Du glaube ein Problem, ausser Du programmierst wie mit JS und benutzt das fs Modul.

        B 1 Reply Last reply Reply Quote 0
        • B
          Butalive23 @mickym last edited by

          @mickym Danke für die schnelle Antwort dann bleibt nur Nod-Red gibt es da fertige Vorlagen von JS lasse ich die Finger als Anfänger.

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

            @butalive23 Na Vorlagen ist schwierig - aber NodeRed ist ja einfach. Es gibt eine Node mit einem Hilfetext - und damit kann man eine payload in eine Datei schreiben:

            93de3f88-f10c-4878-b373-9ede40fe1a63-image.png

            1 Reply Last reply Reply Quote 0
            • B
              Butalive23 last edited by

              @mickym

              Hallo, danke, aber ich verstehe nur Bahnhof helfe mir mal auf die Sprünge muss dann mal per Videos anschauenbolded text

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

                @butalive23 Na sag doch einfach, was Du konkret machen willst und dann können wir es doch gemeinsam machen

                B 1 Reply Last reply Reply Quote 0
                • B
                  Butalive23 @mickym last edited by

                  @mickym Hallo Mick nach dem mein Editor geht, könnten wir ja einen Versuch machen, was für Daten brauchst den noch?

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

                    @butalive23 Ich bin jetzt erst mal nur noch ca. 10 Minuten da. Aber beschreib, wo die Daten (Datenpunkte liegen), wie die Datei aussehen soll. Wie oft wird da geschrieben, wie lange soll die Datei werden, soll die Datei jeden Tag/Woche etc. neu geschrieben werden.

                    Du musst doch eine Vorstellung haben, wie genau das Prozedere aussehen soll, nur dann kann man es doch entsprechend umsetzen.

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      Butalive23 @mickym last edited by

                      @mickym Danke es eilt nicht.Also, wie gesagt, ich bin Anfänger und habe das Talent mich nicht richtig ausdrücken zu können, ich versuche es mal. Ich habe zur Zeit 17 Schellys im Iobroker per Script eingebunden(https://www.kreyenborg.koeln/shelly-verbrauchs-historie-fuer-tag-woche-monat-jahr/). Ich möchte nun, dass die Werte täglich zur gleichen Zeit pro Gerät fortlaufend in eine Datei geschrieben (nicht überschrieben) im odt oder csv Format auf meinen NAS geschrieben und gespeichert werden. Der Hintergrund ist, dass ich das füher mit meinen Gosund zwischen Steckern auch so gemacht habe. Es wurde mir auch reichen, wenn nur der tägliche Wert geschrieben wird, den Rest könnte man auch über die Tabellenkalkulation machen. Zurzeit habe ich auch noch keine VIS, aber das ist ein anderes Thema. Danke

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

                        @butalive23 Ja OK - ich habe zwar zwischenzeitlich auch ein Node-Red Flow gemacht, der Dir die Zählerstände abliest - aber gut, dann hast Du ja Datenpunkte.

                        Dann lässt Du die halt in eine Datei schreiben. Da die Datenpunkte ja zu unterschiedlichen Zeiten triggern - solltest Du vielleicht die Dateien nach Zeit erstellen und dafür die Spalten nach Geräten.
                        Grundsätzlich kann NodeRed nur ins lokale Dateisystem schreiben. Wenn Du also auf ein NAS ausserhalb des Systems schreiben willst, musst die Netzlaufwerke vorher in entsprechende Ordner mounten. Ich empfehle Dir Dateien in das home Verzeichnis des Benutzers iobroker zu schreiben.

                        1 Reply Last reply Reply Quote 0
                        • B
                          Butalive23 last edited by

                          Hallo danke für Dir schon mal.
                          Die Datenpunkte stehen in den Objekten, oder?
                          Mit den unterschiedlichen Zeiten ist mir noch nicht klar, gut finde ich aber das nur eine Datei für alles erstellt wird und meine Geräte in Spalten angezeigt werden, dass erleichtert es mir es verstehe ich das richtig? Oder meinst Du das, für jedes Gerät eine Datei erstellt wird und Spalten für Tag, Woche, Monat und Jahr angezeigt werden. Auf jeden Fall möchte ich die Auswertung nicht unnötig verkomplizieren.
                          Der Speicherort spielt eigentlich keine Rolle, wollte damit sagen, dass dies bei den alten Geräten so bisher gemacht wurde, der Raspi ist ja auch eine Art NAS.
                          Kommt das nicht auf das Gleiche raus, wenn die Zählerstände in den Objekten abgelesen werden?

                          1 Reply Last reply Reply Quote 0
                          • B
                            Butalive23 last edited by

                            Ich hoffe, Du kannst auch anderen damit anderen Usern helfen, nicht nur solch einen Statistik Narren wie mich.

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

                              @butalive23

                              Im Prinzip habe ich das ganze hier schon mal gemacht: https://forum.iobroker.net/topic/73421/mehrere-objektwerte-in-csv-schreiben-gelöst

                              Wenn Du nicht jetzt die Luxusversion willst und nicht lange überprüfen willst, ob eine Datei bereits existiert oder nicht dann brauchst Du keine zusätzlichen Nodes wie in dem Thread den ich gerade gepostet habe.

                              Wie gesagt ich kenne das Skript von Kreyenborg nicht und habe dafür erst ein eigenen NodeRed Flow gemacht, der wahrscheinlich das gleiche wie dieses Skript macht - aber halt nicht mit Javascript Code.

                              Dieses Javascript erzeugt ja einen Datenpunkt - gestern, der wahrscheinlich dann einen gesamten Tagesverbrauch enthält.

                              7b6cef89-76db-42a5-bb50-b6ef1804eaed-image.png

                              Diesen würde ich halt dann zum triggern nehmen.

                              Momentan erzeugt mein Node-Red Flow aktuell zu beliebigen Zeitpunkten auch Verbrauchsdaten anhand der Standardzählerstände.

                              d4900fa9-fe8d-436c-892a-5322554b97c2-image.png

                              Jedenfalls auch mit der Kreyenborg version hast Du ja mit dem Datenpunkt "gestern" einen vollständigen Tagesverbrauch.

                              Diesen lässt Du triggern über eine iobroker-In Node und setzt anschließend ein topic - der beschreibt, um was es sich für ein Gerät handelt.

                              Um das Ganze im Detail zu erklären:

                              Du gehst allso in Deinen Kreyenborg Datenpunkten auf den Datenpunkt gestern und kopierst aus der 1. Spalte über das Kopieren Icon den Pfad in die Zwischenablage:
                              50bf54fa-d3ad-405b-b8dd-f9bfee58204d-image.png

                              Dann ziehst Du Dir eine iobroker-IN Node in Dein Floweditor und kopierst den Pfad des Topics aus Deinem Kreyenborg datenpunkt in das Topic.

                              Alternativ kannst Du das topic auch durch das Klicken auf die 3 Punkte neben dem Topic auswählen:
                              87ff8405-df92-4813-8fd4-081452268d2a-image.png

                              Jedenfalls steht dann im topic oben das Feld:

                              Damit die Datei nicht ungeplant erzeugt wird, sagst Du dass nur Änderungen triggern sollen und der Datenpunkt beim Neustart des Node-Red Adapter neu eingelesen wird. .

                              Ich mach das mal bei mir für stündlich, um es Dir zu Testzwecken zu zeigen.

                              b65e8f21-e9d2-4957-95e0-b9156e9abd26-image.png

                              Den Rest kannst Du so lassen.

                              Nun setzen wir das topic so, wie wir die Spalte dann in der CSV Datei haben wollen.

                              Also um bei dem Kreyenborg Beispiel zu bleiben:

                              b2958cd7-cab6-4f1b-9a4c-144809d5093c-image.png

                              handelt es sich wohl um einen Katzenbrunnen und dieses werden wir dann als Spaltenüberschrift benutzen und somit als topic. Dieses topic setzen wir in einer Change Node

                              adbce948-d3e7-495a-b69f-09256956613b-image.png

                              Das machst Du mit allen anderen Geräten, die Du in die Datei schreiben willst genauso.

                              Anschließend fasst Du das ganze Zusammen - definierst die Spaltenüberschriften nochmal und fügst das Datum ein, wann die Zeile geschrieben wurde.

                              8a80b436-882a-43ce-bf53-e5e1d66ec87f-image.png

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

                                So zum Abschluss jetzt hier mal eine vereinfachte Form des Flows, den ich aus dem anderen Thread referenziert habe:

                                b49988e0-34ed-4c56-963e-1dbbcbcba741-image.png

                                Man importiert die CSV Datei am Besten in ein leeres Excelsheet.

                                75fd125c-6c98-48b4-b589-520e5ebe189d-image.png

                                Hier der Flow zum Import:

                                [{"id":"0fd963e0ffd0d7df","type":"ioBroker in","z":"289f539dcc33814e","name":"0_userdata.0.Test.FritzBox4440.Verbrauch.stündlich","attrname":"payload","topic":"0_userdata.0.Test.FritzBox4440.Verbrauch.stündlich","payloadType":"value","onlyack":"","func":"rbe-preinitvalue","gap":"","fireOnStart":"false","outFormat":"MQTT","x":230,"y":5100,"wires":[["037f33f93df21f90"]]},{"id":"037f33f93df21f90","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"FritzBox 4440","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":5100,"wires":[["6461bb798c5b5405"]]},{"id":"9230f6bf5e533d70","type":"ioBroker in","z":"289f539dcc33814e","name":"0_userdata.0.Test.FritzBo7590.Verbrauch.stündlich","attrname":"payload","topic":"0_userdata.0.Test.FritzBox7590.Verbrauch.stündlich","payloadType":"value","onlyack":"","func":"rbe-preinitvalue","gap":"","fireOnStart":"false","outFormat":"MQTT","x":230,"y":5160,"wires":[["2ef87c9fae2c9c8a"]]},{"id":"2ef87c9fae2c9c8a","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"FritzBox 7590","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":5160,"wires":[["6461bb798c5b5405"]]},{"id":"6ce7ad66b88615ed","type":"join","z":"289f539dcc33814e","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":910,"y":5120,"wires":[["a7bd772dd40b23e8"]]},{"id":"6461bb798c5b5405","type":"change","z":"289f539dcc33814e","name":"Zahlen  Komma","rules":[{"t":"set","p":"payload","pt":"msg","to":"$formatNumber(payload, \"0,####\", {'decimal-separator':',', 'grouping-separator':'.'} )\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":740,"y":5120,"wires":[["6ce7ad66b88615ed"]]},{"id":"81f4eb101e660bac","type":"debug","z":"289f539dcc33814e","name":"Test","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1430,"y":5080,"wires":[]},{"id":"a7bd772dd40b23e8","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"columns","pt":"msg","to":"\"Datum & Uhrzeit,\" & ($keys(payload)~>$join(\",\"))","tot":"jsonata"},{"t":"set","p":"payload[\"Datum & Uhrzeit\"]","pt":"msg","to":"$moment().locale(\"de\").tz('Europe/Berlin').format('DD.MM.YYYY HH:mm:ss')","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":5120,"wires":[["d42c2b9e5c40b488"]]},{"id":"d42c2b9e5c40b488","type":"csv","z":"289f539dcc33814e","name":"","sep":"\\t","hdrin":"","hdrout":"once","multi":"one","ret":"\\r\\n","temp":"","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":1270,"y":5120,"wires":[["81f4eb101e660bac","55efda56ca28136a"]]},{"id":"31969226023e3e83","type":"file","z":"289f539dcc33814e","name":"","filename":"filename","filenameType":"msg","appendNewline":false,"createDir":false,"overwriteFile":"false","encoding":"none","x":1640,"y":5120,"wires":[[]]},{"id":"55efda56ca28136a","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"filename","pt":"msg","to":"/home/iobroker/MWDesktop/NodeRed.csv","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1450,"y":5120,"wires":[["31969226023e3e83"]]},{"id":"f49158ee4ecf2fb8","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"reset","v":"true","vt":"bool"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"reset","x":1110,"y":5160,"wires":[["d42c2b9e5c40b488"]]},{"id":"bc72d75a5873b3e2","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1280,"y":5180,"wires":[["55efda56ca28136a"]]}]
                                

                                1 Reply Last reply Reply Quote 0
                                • B
                                  Butalive23 @Butalive23 last edited by

                                  @butalive23 Hallo, ich bin überwältigt, ich habe es bis jetzt nicht fassen, über eure Hilfe, ein Spitzenforum hier.
                                  Das Script war das Einzige, was ich damals gefunden habe. Natürlich bin ich offen für Alternativen, was mir ein Bekannter in meinen Iobroker eingepflegt, deswegen habe ich auch keine Ahnung. Klar beschäftige ich mich damit, aber ich werde das nicht umsetzen können( Ewiger Pessimist). Ich danke Euch.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  1.1k
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  2
                                  15
                                  520
                                  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