NEWS
CSV Daten exportieren
-
@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ätzeconst 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"); });
-
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
-
@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 -
@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
-
@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. -
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.
-
@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. -
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
-
@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.
-
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