NEWS
History Daten automatisch auf NAS exportieren [gelöst]
-
Hallo,
ich zeichne 8 Werte im History Adapter auf und stelle die letzten 24 Stunden in einem VIS-Flot-Diagramm dar.
Aber die Werte werden für 1 Jahr gespeichert.
Jetzt möchte ich die Werte am PC bzw. Fritz-NAS zugänglich machen.
Auf dem ioBroker (Raspi 4) habe ich das Verzeichnis gefunden. Dort steht für jeden Datenpunkt eine Datei.
Bei den Objekten gibt es für die entsprechenden Werte eine Möglichkeit die Daten per Hand und einzeln zu exportieren.
Meine Vorstellung ist, dass z.B. kurz nach Mitternacht die Daten von alle Datenpunkten vom Vortag in eine (CSV/TXT) Datei auf der Fritz-Nas kopiert/exportiert werden. (kopieren wäre schon mal gut, dann könnte ich Excel mit VBA anlernen, alle Werte zu einer Datei zu vereinen)
Es wird also ein CRON-Job.
Backitup funktioniert bei mir zur Fritz-NAS problemlos.
Kann man Backitup erweitern oder in einer 2. Instanz damit beauftragen?
Bei ähnlichen Fragen hier im Forum oder im Internet habe ich nichts Passendes gefunden bzw. nichts was mich auf die richtige Spur bringt.
Hat jemand etwas ähnliches realisiert oder hat einen Link auf entsprechende Hinweise?
Danke -
Ich habe schon etwas getestet, aber an einer Stelle hänge ich fest.
Zuerst muss ich für die Fritz.Nas einen Mount-Punkt erzeugen:
sudo mkdir /mnt/NAS_FB
Dann die fritz.Nas mounten:
sudo mount -t cifs //<IP>/FritzBox/ -o username=myUser,password=myPass.,rw,nounix,iocharset=utf8,file_mode=0644,dir_mode=0755 /mnt/NAS_FB
Dann kann ich auch kopieren:
sudo cp -r /opt/iobroker/iobroker-data/history/2024mmtt /mnt/NAS_FB/mein/pfad/History
und zum Schluss:
sudo umount /mnt/NAS_FB
Soweit klappt das.
Wenn ich jetzt jeweils mit Blockly "Aktion => exec" die 3 Befehle von oben ausführe, passiert nichts.
Keine Fehlermeldung.
Wenn ich den mount Befehl mit Blockly ausführe, kann ich mit dem Befehl "df -h" die ge'mount'ete Fritzbox sehen.
Ein Kopieren von der Konsole klappt dann auch, aber der gleiche Befehl mit "Aktion => exec" klappt nicht.
Warum?
Hat einer eine Idee?
Wie würden die Konsolenbefehle in JS aussehen? -
@martinsu
Ich habe es jetzt geschafft.
Für alle, die es interessiert hier die Lösung:
Es lag an den User-Rechten des ioBrokers, deshalb habe ich den Kopierbefehl in JS umgesetzt. Das mounten und umount könnte man natürlich auch in JS umsetzen.
Ich starte einen CRON Job, der die Dateien von gestern umkopiert.
Mein Code im Javascript:var SSH = require('simple-ssh'); var ssh = new SSH({ host: 'FritzBoxIP', user: 'meinUser', pass: 'meinPasswort' }); ssh.exec('sudo cp -r /opt/iobroker/iobroker-data/history/'+getState('0_userdata.0.History.CopyDate').val+'/ /mnt/NAS_FB/ioBroker/History').start();
P.S.
IP, Passwort und User anpassen!Wer die Werte in Excel weiter verarbeiten möchte, hier noch ein Hinweis:
Die Excel Zeitbasis ist der 1.1.1900, vor dem Komma die Tage sowie als Nachkommastellen Stunden, Minuten und Sekunde
Die ioBroker Zeitbasis ist der 1.1.1970, der Wert ist ein Ganzzahl-Wert in Sekunden
ioBroker-Datum = (Excel-Datum + 25569) * 60 * 60 * 24
Die Zeitzone ist dabei nicht berücksichtigt! Bei MEZ + 1 Std, bei MESZ + 2 Std -
Noch zwei ergänzende Hinweise für die Blockly-Routine:
- Zwischen der Javascript-Funktion "CopyHistory" und dem "umount"-Befehl sollte noch eine Pause eingefügt werden, damit der Copy-Befehl fertig ist, bevor der "umount" ausgeführt wird. Sonst ist das Laufwerk weiterhin ge"mount"ed.
- Die ganze Blockly Routine habe ich in einen "Trigger-Zeitplan" gepackt und lasse sie morgens um 8:00 Uhr ausführen. Wenn alles kopiert ist, schickt die Routine mir noch einen Email.
Und dann ist mir noch etwas aufgefallen: Wird die Kopierroutine zweimal ausgeführt, sind alle Dateien von diesem Tag auf 0 Bytes Länge. Warum? Ist zwar mit dem Zeitplan nicht besonders wichtig, aber interessieren würde es mich schon.
-
@martinsu sagte in History Daten automatisch auf NAS exportieren [gelöst]:
Es lag an den User-Rechten des ioBrokers,
Und an den falschen Mountoptionen für cifs auf dem FritzNAS.
Die braucht die Mountoptionen 'noserverino' und 'cache=loose'.Ich mounte das Ganze so:
//fritz.nas/FRITZ.NAS/Hitachi-HTS545012B9SA00-01/iobbackups/chet /opt/iobroker/backups cifs credentials=/home/iobroker/.smbcredentials,users,noserverino,cache=loose,noauto,rw,uid=iobroker,gid=iobroker,file_mode=0770,dir_mode=0770,vers=3.1.1 0 0
-
@thomas-braun
Du greifst mit SMB zu, soll doch recht unsicher sein!?
Mein Zugriff ist per FTP. -
@martinsu sagte in History Daten automatisch auf NAS exportieren [gelöst]:
Du greifst mit SMB zu, soll doch recht unsicher sein!?
Mein Zugriff ist per FTP.LOL.
ftp ist wesentlich unsicherer als SMB/Cifs. Weswegen man das u. a. auch nicht mehr verwenden sollte, wenn man besseres zur Verfügung hat.
Davon abgesehen verwendest du doch wohl SMB/cifs:
Dann die fritz.Nas mounten:
sudo mount -t cifs //<IP>/FritzBox/ -o username=myUser,password=myPass.,rw,nounix,iocharset=utf8,file_mode=0644,dir_mode=0755 /mnt/NAS_FBNoch dazu hantierst du da mit root-Rechten herum, meine Freigabe kann vom entsprechenden user gemounted werden. Kein root/sudo erforderlich. Ist wesentlich sicherer...
Die credentials liegen in der .smbcredetials drin, muss also auch keiner kennen, weil die von dort ausgelesen werden. -
@thomas-braun ,
das mit den ".smbcredentials" hatte ich auch probiert, aber micht ans laufen bekommen.
Muss ich mir vielleicht doch nochmal ansehen.... -
@martinsu sagte in History Daten automatisch auf NAS exportieren [gelöst]:
Muss ich mir vielleicht doch nochmal ansehen....
Solltest du...
-
So wenig wie ich von Ubuntu als OS auch halte, deren Wiki ist sehr gut:
https://wiki.ubuntuusers.de/mount.cifs/
Da steht eigentlich alles drin.
Zum Security-Thema nur noch: In aktuellen Versionen ist smb 'Ende-zu-Ende'-Verschlüsselt. Bei ftp dürfte das erstmal nicht der Fall sein, es sei denn man verwendet sftp.