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.
    • 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

                        803
                        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