NEWS
Mit Blockly CSV exportieren
-
Hallo,
nachdem mir die Visualisierung nicht ganz so zusagt will ich nun das ganze mit einer Tabellenkalkulation machen. Das sollte sich gut automatisieren lassen. Nur kenne ich mich mit Blockly oder sonst was so gut wie überhaupt nicht aus um sowas realisieren zu können.
Mein Blockly Script aktualisiert momentan alle 5 Minuten einen Datenpunkt im 0_userdata, den will ich in eine CSV geschrieben bekommen die dann die Tabellenkalkulation auslesen kann. Am besten mit der dazugehörigen Datum und Uhrzeit in einer separaten Spalte.
Ich habe zwar hier schon mal ein Skript gesehen, was das können soll, aber davon hab ich überhaupt nix kapiert. Sorry, bin eben kein Programmierer und komme in Blockly zwar ein ganz kleines bisschen zurecht aber das wars schon.
Könnt ihr mir helfen? Sollte das in einem separaten Skript laufen oder einfach unter den bisherigen Bausteinen?
Vielen Dank schonmal im Voraus.mfg
Special_B
-
gelöscht - da in Blockly Kategorie.
-
Welche Tabellenkalkulation benutzt Du?
Mein Ziel (wie wohl bei allen hier) ist es, alles automatisch zu haben. Z.B. kann man eine exportierte CSV Datei überhaupt automatisch in Excel importieren?
Daher benutzte ich Google Sheet für so einiges an Daten speichern und auswerten.
Um Daten aus iobroker in ein Google Sheet zu bekommen gibt es mehrere Möglichkeiten, u.a.:-
IFTTT: Einen Account bei ifttt.com anlegen, den ifttt adapter in iobroker installieren und konfigurieren.
In ifttt.com einen "Maker" event erstellen und diesen mit einem Google Sheet verknüpfen.
In Blockly kann man dann "send to ifttt" benutzen:
Im Beispiel oben ist event der Name der im "Maker" Event benutzt wird. Dadurch weiss ifttt welche Aktion ausgeführt werden soll.
Man kann 3 Daten Werte (=3 Spalten in der Tabelle) per ifttt übergeben. Da ich ca. 200 Werte in die Tabelle eintrage passt das nicht. Da gibt es aber einen schönen Trick in Google:
Value3 beinhaltet eine Formel ("=split ..."). Diese Formel splittet die Werte in der Spalte mit offset -2 mit dem Trennzeichen "§". Der Wert in value1 ist ein generierter String mit all den Daten die ich übertrage mit eben diesem Trennzeichen.
Im Google Sheet wird dann in einer Spalte value1 abgelegt, in Spalte 3 die Formel, die automatisch dafür sorgt, dass alle 200 Werte in den Spalten daneben sauber angezeigt werden. -
Google Form:
Eine "Form" in Google erstellen. Alles, was man über diese Form absendet wird in einem "Response" sheet gespeichert.
Man muss sich da ein bisschen einlesen. Jede Form hat eine eindeutige Adresse, jedes Feld in der Form eine eigene "entry id". In Blockly (oder javascript) kann man sich mit diesen Daten einen String zusammen basteln und per http request abschicken.
Ein link einer Google Form sieht z. B. so aus:
https://docs.google.com/forms/d/e/<key der google form>/viewform?usp=pp_url&entry.236857345=meine+id&entry.2018954000=meine+Daten
Vor und Nachteile von ifttt:
- grosse Datenmengen können einfach übertragen werden
- man braucht einen dritten Dienst, dem man vertrauen muss
Vor und Nachteile über google form:
- sehr einfach zu implementieren
- nicht so einfach für grosse Datenmengen, da man für jeden Datenwert eine entryid braucht.
Der Trick mit der Formel funktioniert hier leider nicht
Per http request kann ich Daten von Google Sheets abholen, habe aber nicht herausgefunden, ob man auch Daten (ohne Form) auf diesem Weg an ein Google Sheet anhängen kann. Evtl. hat hier noch jemand einen Tipp?
-
-
@simplyclever
Ich will das mit Numbers machen. IOBroker läuft bei mir auf einem älteren Mac Mini, da würde ich entweder mit Automator oder AppleScript die Daten einlesen lassen. Einfach den Ordner überwachen lassen, sobald IOBroker da was reingespeichert hat läuft das Skript los und trägt die Daten in das Dokument ein.Ich muss bloß irgendwie die Daten sauber als CSV aus IOBroker raus bekommen.
ITTT kenne ich, nur habe ich damit noch nichts gemacht. Mit Google Docs will ich nicht unbedingt anfangen, die wissen schon genug über mich.
mfg
Special_B