NEWS
ioBroker mit Influxdb => Datenbank als .csv
-
@meierchen006 sagte in ioBroker mit Influxdb => Datenbank als .csv:
Allerdings stehen dann alle Werte in Zeilen untereinander.
Mir wäre es lieber gewesen wenn ich drei Spalten hintereinander haben könnte:Den "Zahn" muss ich dir leider ziehen, dass geht nicht. Du könntest höchstens ein Makro in Excel erstellen was es dann bei Ausführung für dich umkopiert.
Die Zeit kannst du mittels "Where" noch einschränken. Bsp. für die letzten 7 Tage:
-execute 'SELECT * FROM "mqtt.0..." WHERE time > now() - 7d'
@meierchen006 sagte in ioBroker mit Influxdb => Datenbank als .csv:
-bash: /media/usb_stick_128/datenbanken_csv/DBEnergie.csv: Keine Berechtigung
Das, und der andere Fehler, deutet auf mangelnde Rechte hin. Der User "pi" darf anscheinend keine Dateien im Verzeichnis anlegen.
-
Hallo SBorg,
Übersicht über die Rechte:
pi@ioBroker:~ $
pi@ioBroker:~ $ cd /media/usb_stick_128
pi@ioBroker:/media/usb_stick_128 $ ls -la
insgesamt 32
drwxr-xr-x 5 root root 4096 Jan 11 18:30 .
drwxr-xr-x 3 root root 4096 Jan 6 10:00 ..
drwxr-xr-x 2 root root 4096 Jan 15 13:48 datenbanken_csv
drwx------ 2 root root 16384 Jan 6 09:27 lost+found
drwxr-xr-x 3 root root 4096 Jan 6 20:07 varpi@ioBroker:/media/usb_stick_128 $ cd /media/usb_stick_128/datenbanken_csv
pi@ioBroker:/media/usb_stick_128/datenbanken_csv $
pi@ioBroker:/media/usb_stick_128/datenbanken_csv $
pi@ioBroker:/media/usb_stick_128/datenbanken_csv $ ls -la
insgesamt 1384
drwxr-xr-x 2 root root 4096 Jan 15 13:48 .
drwxr-xr-x 5 root root 4096 Jan 11 18:30 ..
-rw-r--r-- 1 pi pi 1408977 Jan 19 13:09 DBWetter.csv
pi@ioBroker:/media/usb_stick_128/datenbanken_csv $ -
@meierchen006 sagte in ioBroker mit Influxdb => Datenbank als .csv:
drwxr-xr-x 2 root root 4096 Jan 15 13:48 datenbanken_csv
Jo, ziemlich eindeutig. Verzeichnis gehört User und Gruppe "root" und nur der User "root" hat auch Schreibrechte ("w") im Verzeichnis. Da wahrscheinlich eh kein anderer an den PI ran kommt, könnten die Rechte auch auf den User PI übergehen?
cd /media/usb_stick_128/ chown -R pi datenbanken_csv*
Dein Aufruf geschieht zwar mit "sudo", der bezieht sich aber nur auf den Befehl "influx". Durch das "pipen" (>) kommt der aber quasi "nicht durch", die Datei soll also ohne root-Rechte wieder als normaler User angelegt werden --> Zugriff verweigert
-
Hallo SBorg,
wenn ich ausführen möchte was du geschrieben hast passiert dies:
pi@ioBroker:~ $ cd /media/usb_stick_128
pi@ioBroker:/media/usb_stick_128 $ chown -R pi datenbanken_csv*
chown: der Eigentümer von 'datenbanken_csv' wird geändert: Die Operation ist nicht erlaubt
pi@ioBroker:/media/usb_stick_128 $pi@ioBroker:/media/usb_stick_128 $ ls -la
insgesamt 32
drwxr-xr-x 5 root root 4096 Jan 11 18:30 .
drwxr-xr-x 3 root root 4096 Jan 6 10:00 ..
drwxr-xr-x 2 root root 4096 Jan 15 13:48 datenbanken_csv
drwx------ 2 root root 16384 Jan 6 09:27 lost+found
drwxr-xr-x 3 root root 4096 Jan 6 20:07 var
pi@ioBroker:/media/usb_stick_128 $Hat sich also nichts geändert!
pi@ioBroker:~ $ cd /media/usb_stick_128
pi@ioBroker:/media/usb_stick_128 $ sudo chown -R pi datenbanken_csv*
pi@ioBroker:/media/usb_stick_128 $pi@ioBroker:/media/usb_stick_128 $ ls -la
insgesamt 32
drwxr-xr-x 5 root root 4096 Jan 11 18:30 .
drwxr-xr-x 3 root root 4096 Jan 6 10:00 ..
drwxr-xr-x 2 pi root 4096 Jan 15 13:48 datenbanken_csv
drwx------ 2 root root 16384 Jan 6 09:27 lost+found
drwxr-xr-x 3 root root 4096 Jan 6 20:07 var
pi@ioBroker:/media/usb_stick_128 $Jetzt werde ich mal sehen ob sich weitere Ordner speichern lassen!
Ja funktioniert jetzt habe ich die neuen Ordner erstellen können!
Vielen Dank!
So jetzt muss ich mal meine weiteren Aufgaben (Datumseinschränkung) machen!
VG
meierchen006 -
Hallo SBorg,
die Zeit/Datum Einschränkung macht mir noch Probleme:
Erst:
pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas" WHERE time >"2020-01-01T00:00:00Z" and time <"2020-01-15T23:59:59Z"' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
invalid operation: time and *influxql.VarRef are not compatible
pi@ioBroker:~ $jetzt aktuell:
pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"' WHERE time >= "2020-01-01T00:00:00Z" AND time <= "2020-01-15T23:59:59Z" > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
unknown arguments: WHERE time 2020-01-01T00:00:00Z AND time 2020-01-15T23:59:59Z
pi@ioBroker:~ $pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"' WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-15T23:59:59Z' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
unknown arguments: WHERE time 2020-01-01T00:00:00Z AND time 2020-01-15T23:59:59Z
pi@ioBroker:~ $Habe jetzt hier nochmal nachgeschaut:
github.com/influxdata/docspi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"' WHERE time > '''2020-01-01''' and time < '''2020-01-15T23:59:59Z'' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
unknown arguments: WHERE time
pi@ioBroker:~ $sehe aber meinen Fehler nicht? evtl. siehst du was
-
Hallo SBorg,
Oben hatte ich noch ein Leerzeichen vor dem "WHERE"
heute Morgen nochmal mit deinem Vorschlag von gestern getestet:
pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"'WHERE time > now() - 7d' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
-bash: Syntaxfehler beim unerwarteten Wort `('
pi@ioBroker:~ $pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"'WHERE time>= '2020-01-01T00:00:00Z' AND time <= '2020-01-15T23:59:59Z' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
unknown arguments: time 2020-01-01T00:00:00Z AND time 2020-01-15T23:59:59Z
pi@ioBroker:~ $pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"'WHERE time > '2020-01-01T00:00:00Z' AND time < '2020-01-15T23:59:59Z' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
-bash: 2020-01-15T23:59:59Z: Datei oder Verzeichnis nicht gefunden
pi@ioBroker:~ $VG
meierchen006 -
@meierchen006 sagte in ioBroker mit Influxdb => Datenbank als .csv:
-execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas"'WHERE time > now() - 7d'
Du hast bei fast allen Versuchen ein ' zu viel drin:
-execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas" WHERE time > now() - 7d'
...und bei denen zwei oder drei wo du es nicht drin hast, hast du leider gleich einen anderen Fehler eingebaut:
bei Time-Strings wie bspw. 2020-01-15T23:59:59Z dürfen keine doppelten Anführungszeichen (") benutzt werden, sondern nur einfache (') -
Hallo SBorg,
pi@ioBroker:~ $
pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas" WHERE time > now() - 31d' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
pi@ioBroker:~ $pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas" WHERE time > now() - 7d' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
pi@ioBroker:~ $scheint zu funktionieren
dies leider nicht loggt sich direkt in die Influx Konsole ein:
pi@ioBroker:~ $ sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute 'SELECT * FROM "mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-15T23:59:59Z' > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
> -
@meierchen006 Das hängt da leider mit den ' zusammen. Dein Befehl ist -execute ' ... ' Kommen jetzt zwischen dem beginnenden und endenden ' noch weitere hinzu, kann er das nicht mehr richtig interpretieren. Versuch mal:
sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute "SELECT * FROM \"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas\" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-15T23:59:59Z'" > /media/usb_stick_128/datenbanken_csv/DBEnergie.csv
-
Hallo SBorg,
ja so funktioniert es:
sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute "SELECT * FROM \"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas\" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-31T23:59:59Z'" > /media/usb_stick_128/datenbanken_csv/DBEnergie_02.csv
so jetzt teste ich noch wenn alle Sensoren in eine .csv Datei kommen, ob dies auch funktioniert.
sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute "SELECT * FROM \"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-H2O\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Strom\" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-31T23:59:59.999Z'" > /media/usb_stick_128/datenbanken_csv/DBEnergie_05.csv
Ja so würde es mit drei Sensoren aussehen.
Vielen Herzlichen Dank für deine Unterstützung
Viele Grüße
meierchen006 -
Hallo SBorg,
Nun habe ich doch noch Fragen:
Gibt es eine Möglichkeit direkt aus Windows 10 raus eine Abfrage in meinen Raspberry zu starten, wo diese Daten dann abgerufen und in eine .csv Datei gespeichert werden, ohne das ich mich immer extra in den Raspberry einloggen muss?Wenn ja, wie würde eine solche Lösung aussehen?
Viele Grüße
meierchen006 -
Das geht auch, wird aber aufwändig.
Zuerst: brauchst du "sudo" bei influx überhaupt? Sollte auch ohne gehen?
Dann musst du ein Shellskript zB. im home-Verzeichnis anlegen mit deinem influx-Aufruf und ausführbar machen.
Dann musst du ein SSH-Zertifikat erstellen und auf dem PI einrichten.
Dann kannst du vom Win-Rechner ssh pi@192.168.x.x .... mit dem Aufruf des Shellskriptes ausführen und das dank SSH-Zertifikat ohne Passworteingabe. -
Hallo SBorg,
ich habe noch eine Entdeckung gemacht und zwar kann man dem Befehle auch noch eine Timezone mitgeben:
influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute "SELECT * FROM \"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-H2O\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Strom\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Leistung\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Stroeme\" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-31T23:59:59.999Z' tz('Europe/Berlin')" > /media/usb_stick_128/datenbanken_csv/DBEnergie_WGS.csv
so sah ja das original aus:
sudo influx -username 'admin' -password '123456789' -host 'localhost' -database 'DBEnergie' -precision 'rfc3339' -format 'csv' -execute "SELECT * FROM \"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Gas\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-H2O\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Strom\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Leistung\",\"mqtt.0.SmartHome.Energie.100-WGS-Zaehler.tele.Sensor-Stroeme\" WHERE time >= '2020-01-01T00:00:00Z' AND time <= '2020-01-31T23:59:59.999Z'" > /media/usb_stick_128/datenbanken_csv/DBEnergie_WGS.csv
Somit ist im Moment mal die richtige Zeit im Export der csv. => originalzeit eben 2020-01-23 16:30 Uhr
beim erstellen der .csv DateiJa geht auch ohne "sudo"