Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. CSV Daten exportieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    CSV Daten exportieren

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

      Hallo,

      nachdem mir mit Blockly niemand helfen konnte, frage ich nun einmal universell.

      Ich will meinen Stromverbrauch als CSV exportieren damit ich den in eine Tabellenkalkulation importieren kann. Leider kenne ich mich da so gut wie überhaupt nicht aus.
      Bisher habe ich ein Blockly Skript welches mir in einen Datenpunkt alle 5 Minuten den Stromverbrauch schreibt sowie einen Datenpunkt der alle 60 Minuten den Durchschnittswert reinschreibt.

      Mit Node Red soll das wohl funktionieren, aber kenne ich mich da halt kein bisschen aus. Soll ich da das Skript aus Blockly nachbauen (oder kann man das in Node Red importieren)?

      Kann mir da jemand helfen?

      mfg

      Special_B

      Homoran OliverIO 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @special_b last edited by

        @special_b sagte in CSV Daten exportieren:

        einen Datenpunkt alle 5 Minuten den Stromverbrauch schreibt sowie einen Datenpunkt der alle 60 Minuten den Durchschnittswert reinschreibt.

        und diese Datenpunkte historisierst du?

        dann hol dir doch da das csv ab!
        Screenshot_20230108-204909_Firefox.jpg

        S 1 Reply Last reply Reply Quote 0
        • S
          special_b @Homoran last edited by

          @homoran
          Das müsste ich jedes mal aktiv machen, aber das soll nach Möglichkeit automatisch gespeichert werden.

          mfg
          Special_B

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @special_b last edited by Homoran

            @special_b sagte in CSV Daten exportieren:

            Das müsste ich jedes mal aktiv machen,

            um Himmels willen das geht ja gar nicht!

            das Skript soll dann wohl auch den PC anwerfen, Excel öffnen und die CSV da direkt nach deinen Wünschen bearbeiten, konvertieren oder was auch immer.
            Sonst musst du das tatsächlich auch mit der Hand machen.


            Spaß beiseite!
            Im Ernst. was ist daran so schlimm?
            in dem Moment, in dem du Excel aufmachst, klickst du einmal darauf und holst die Daten ab.

            Gespeichert sind die Daten ja für alle Zeiten.

            S 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @special_b last edited by OliverIO

              @special_b
              Eine CSV Datei zu erstellen ist relativ einfach. Mit dem FS Objekt von Node kannst du eine Datei öffnen und beschreiben.
              Wie eine CSV Datei aufgebaut ist weißt du?
              Der folgende Code schreibt 2 Datensätze

              
              const fs = require("fs");
              var str = "";
              str+= "a,b,c,d,e\n";
              str+= "1,2,3,4,5\n";
              fs.writeFile("./data.csv", str, (err) => {
                  console.log(err || "done");
              });
              
              
              1 Reply Last reply Reply Quote 0
              • S
                special_b @Homoran last edited by

                Danke euch.

                @homoran
                Der PC ist ein Mac, der läuft sowieso weil darauf IOBroker läuft. Dort kann ein Ordner überwacht werden, sobald da eine Datei geändert oder hinzugefügt wurde, läuft ein AppleScript los welches die Daten in Numbers integriert.

                @OliverIO
                Wie eine CSV aufgebaut ist, weiß ich. Aber aus deinem Code werde ich nicht all zu schlau. Ich denke, dass dort a,b,c,d,e in eine Zeile und 1,2,3,4,5 in eine zweite Zeile geschrieben werden. a und 1 sind eine Spalte, sowie b und 2, c und 3, d und 4 sowie e und 5. Oder?

                mfg

                Special_B

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @special_b last edited by

                  @special_b
                  Genau.
                  Felder mit , getrennt
                  Datensätze sind die verschiedene Zeilen
                  Die erste Zeile kann als spaltenkopf interpretiert werden.
                  Deswegen musst in excel auch ein Häkchen setzen ob in der ersten Zeile sich das befindet.
                  \n ist das newline Zeichen für eine neue Zeile
                  Die letzten 3 Zeilen schreiben den Inhalt der variable str in die Datei und meldet sich dann wenn sie fertig ist zurück.
                  Falls ein Fehler auftritt wird der Fehler ausgegeben, ansonsten der Text done

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    special_b @OliverIO last edited by

                    @oliverio
                    Danke. Und wie soll das dann ablaufen? Läuft Node Red irgendwie wie Blockly, sodass am Ende dann ein Javascript daraus wird? Sollte ich den Blockly Code dann irgendwie in Node Red reinbringen? Geht das überhaupt? Oder soll ich nur aus dem Datenpunkt auslesen und in eine CSV schreiben?
                    Sorry, ich kenne mich damit halt so gut wie überhaupt nicht aus.

                    mfg

                    Special_B

                    Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @special_b last edited by

                      @special_b
                      Das was @OliverIO da zeigt ist JS. Die Funktion steckt in Node.js und hat mit NodeRed nix zu tun.
                      Du kannst in Blockly eine JS Funktion erstellen und als Block hinzufügen.

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

                        Nun mit NodeRed kann ich Dir helfen - aber das musst Du halt wollen. Den Thread habe ich Dir ja schon mal verlinkt.

                        https://forum.iobroker.net/topic/49120/datenpunkt-in-log-oder-csv-file-schreiben/40?_=1673281238329

                        Solange Du nach anderen Lösungen suchst bin ich aber raus. Das können die anderen besser.

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

                          @mickym sagte in CSV Daten exportieren:

                          … aber das musst Du halt wollen.

                          Kann man nicht oft genug sagen.

                          Man muss sich halt auf einige Dinge einlassen, wenn man das Optimum herausholen möchte. Blockly, NodeRed, JavaScript und noch ein paar andere Dinge.
                          Ein gewisses Grundverständnis muss man sich dann eben erarbeiten bzw. anlesen.

                          1 Reply Last reply Reply Quote 1
                          • haus-automatisierung
                            haus-automatisierung Developer Most Active last edited by

                            Ich habe mal für jemanden hier im Forum ein Script gebaut. Das Ergebnis liegt auf GitHub als "Basis". Kannst Du ja nach deinen Vorstellungen anpassen:

                            https://github.com/haus-automation/iobroker-script-examples/blob/main/logging/history-save-csv.md

                            Und hier noch als Beispiel, wie man das die CSV-Datei als Mail verschicken könnte:

                            https://github.com/haus-automation/iobroker-script-examples/blob/main/logging/history-as-mail-csv.md

                            1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @special_b last edited by

                              @special_b
                              So wie andere geschrieben haben.
                              Iobroker bringt verschiedene logikmaschinen mit, die man nutzen kann.
                              Blockly, node red, JavaScript, rules
                              Wenn in einer etwas nicht geht, dann kann man es in einer anderen probieren. Damit man sich nicht überall einarbeiten muss, was auch unterschiedlich komplex ist, sollte man es auf wenige beschränken.
                              Mit JavaScript hast du die maximale Flexibilität
                              Bei blockly viel Komfort, weil du dich nicht viel um Syntax kümmern musst und die notwendigen Parameter mehr oder weniger abgefragt werden. Node red ist dazwischen, wobei man Node red durch weitere Module aus dem Internet auch erheblich erweitern kann.
                              Rules habe ich nie ausprobiert und kann nix sagen.

                              Wenn du Lust hast was neues zu lernen, also programmieren, dann würde ich dir zu JavaScript raten. Da gibt es im Internet unendliche Ressourcen zum lesen, Code Beispiele, Tutorials,etc.

                              Wenn du auch lernen willst, aber etwas geführt werden will’s, dann wäre Node red das richtige. Da gibt es auch viel Inhalte, aber nicht so viel wie bei js und such nicht für alle möglichen Fälle

                              Den Aufbau der Logik musst du aber in allen Fällen immer selbst durchdenken. Aber hier im Forum gibt es genügend, die da gerne helfen.

                              S 1 Reply Last reply Reply Quote 2
                              • S
                                special_b @OliverIO last edited by

                                @oliverio

                                Danke erstmal. Dann werde ich mich mal langsam in Node Red einarbeiten. Das kann ich halt fast immer nur Nachts, wenn die Kinder im Bett sind. Meine bessere Hälfte will auch mal was von mir haben. Nebenbei gibts im Haus auch einiges zu tun, nebenbei will ich eigentlich auch noch einen neuen Job suchen.

                                Aber ich werde mal versuchen mich in Node Red einzuarbeiten.

                                mfg

                                Special_B

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                353
                                Online

                                31.7k
                                Users

                                79.8k
                                Topics

                                1.3m
                                Posts

                                6
                                14
                                931
                                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