SSFile - Integration der Synology File Station in FHEM

Begonnen von DS_Starter, 29 Oktober 2020, 09:30:22

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo zusammen,

es gibt nun für Synology User einen neuen Baustein zur Synology File Station Integration, neben den schon bestehenden Modulen SSCam, SSCal und SSChatBot.

Anwendungsgebiet ist die Übertragung von Files/Verzeichnisinhalten von und zur Synology Diskstation ohne die Notwendigkeit der Einrichtung von Laufwerk-Mounts. Außerdem werden alle Übertragungen asynchron nicht blockierend ausgeführt.
Wartungszeiten bzw. Sleep-Zeiten der Diskstation werden toleriert und die gepufferten Übertragungen nachgeholt sobald
die Diskstation wieder verfügbar ist.

Das Modul 50_SSFile ist im Beta-Status und wird noch weiterentwickelt, aber grundlegende Funktionen sind bereits implementiert. Es kann über den nachfolgenden Download bezogen werden.

Bitte den Befehl so komplett mit den Ausführungszeichen am Anfang und Ende in der FHEMWEB Kommandozeile eingeben:

    "wget -qO ./FHEM/50_SSFile.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSFile.pm"
   
   
FHEM danach restarten.

Es steht eine deutsche Hilfe zur Verfügung, die mit

  help SSFile de
 
aufgerufen werden kann und alle implementierte Funktionen enthält.
Weiterhin habe ich begonnen eine Wiki-Seite für SSFile zu erstellen -> https://wiki.fhem.de/wiki/SSFile_-_Integration_der_Synology_File_Station

Die Definition eines Devices ist sehr einfach:

  define SynFile SSFile <IP-Adresse der Diskstation>
 
Die Verwendung von HTTPS und vom Standard abweichenden Ports ist ebenfalls möglich, z.B:

  define SynFile SSFile 192.168.2.20 9001 https
 

Nach der Definition ist der verwendete User und Paßwort einzugeben mit:

  set <Name> credentials <User> <Passwort>
 

Danach ist das Device einsatzbereit.
Ich freue mich auf eure Testergebnisse. Da der Haupteinsatz des Moduls vermutlich im Bereich Backup/Restore angesiedelt sein wird, ist auch auch eine Integration in das Modul 98_backupToStorage mit CoolTux geplant wenn ein entsprechender Reifegrad erreicht ist.

Wichtig !! FHEM muß aktuell sein, insbesondere die Libraries im Verzeichnis /opt/fhem/lib/FHEM/SynoModules

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rabehd

Das finde ich interessant, also gleich mal angelegt.

PERL WARNING: Parentheses missing around "my" list at ./FHEM/50_SSFile.pm line 337.

Aber Device vorhanden.
Auch funktionierende Lösungen kann man hinterfragen.

DS_Starter

Kleiner Programmierfehler ... ist korrigiert.

Bitte auch den roten Zusatz im Threadstart beachten. Hatte ich heute früh vergessen zu erwähnen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TL60

Hallo,
als Synology Nutzer ist soetwas für mich natürlich äußerst interessant, also gleichmal gemäß Anleitung installiert (ohne Fehlermeldung) und ein erstes jpg file aus dem Ordner "/opt/fhem/www/snapshots" auf die Diskstation kopiert. Also "set SynFile Upload /opt/fhem/www/snapshots/YiCam1_snapshot_1.jpg" dest=/ShareFHEM Meine Erwartungshaltung wäre gewesen, das er das jpg file direkt in den Ordner ShareFHEM schreibt. Es wurde jedoch der komplette Pfad mitkopiert, das jpg steht also jetzt im Ordner /ShareFHEM/opt/fhem/www/snapshots, was habe ich nicht bzw. falsch bedacht?
Gruß und auch schon Mal besten Dank für das Modul
Thomas

DS_Starter

Hallo Thomas,

Zitat
Meine Erwartungshaltung wäre gewesen, das er das jpg file direkt in den Ordner ShareFHEM schreibt. Es wurde jedoch der komplette Pfad mitkopiert, das jpg steht also jetzt im Ordner /ShareFHEM/opt/fhem/www/snapshots, was habe ich nicht bzw. falsch bedacht?

Hast du alles richtig gemacht. Das ist von mir so implementiert, damit die Struktur der Quelle erhalten bleibt und man gleich sieht was das Ursprungsverzeichnis war. Das Verhalten ist in der Hilfe in diesem Satz "versteckt":

Zitat
In Ordnern werden die Inhalte inklusive Subordnern ausgelesen und zur Destination Struktur erhaltend übertragen.

Würdest du den Befehl z.B. so schreiben:


set SynFile Upload "./www/snapshots/YiCam1_snapshot_1.jpg" dest=/ShareFHEM


würde das File auf der Syno landen unter:

         /ShareFHEM/www/snapshots

Eine Übersicht deiner Uploads siehst du mit


set SynFile listUploadsDone


Ich könnte bei Bedarf aber noch einen Qualifier bereitstellen mit dem die Übertragung nicht Struktur erhaltend passiert, d.h. alles in dem angegebenen Ordner landet ohne Unterverzeichnisstruktur.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Habe gleich einen neuen Qualifier für Upload integriert:

struc= (optional) true: alle Objekte werden inkl. ihrer Verzeichnisstruktur im Zielpfad gespeichert (default)
          (optional) false: alle Objekte werden ohne die ursprüngliche Verzeichnisstruktur im Zielpfad gespeichert

Wenn du also jetzt angeben würdest:


set SynFile Upload "/opt/fhem/www/snapshots/YiCam1_snapshot_1.jpg" dest=/ShareFHEM struc=false


landet alles direkt im Pfad "/ShareFHEM" ohne Berücksichtigung der Quellstruktur.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TL60

wow, das ist ja schneller als die Polzei erlaubt  ;)
Danke für die Erklärungen und auch für die Erweiterungen, um diese zu bekommen, nehme ich an, den wget ... Befehl nochmal ausführen und danach FHEM neu starten, richtig? Dann will ich mich mal mit dem Hilfe File beschäftigen. Ich schätze es kommt noch die ein oder andere Frage, zumal ich mich momentan sowohl mit diesem Modul als auch mit dem SSChat Modul von dir beschäftige.
Ich will versuchen mit Hilfe dieser beiden Module Bilder meiner Überwachungskamera außerhalb von FHEM zu sichern und mir außerdem neue Bilder zu schicken zu lassen. Mal sehen wie weit ich komme  ;)
nochmals Danke für deinen Einsatz und die Module
Thomas

DS_Starter

ZitatDanke für die Erklärungen und auch für die Erweiterungen, um diese zu bekommen, nehme ich an, den wget ... Befehl nochmal ausführen und danach FHEM neu starten, richtig?

Ja richtig. Solange das Modul noch nicht offiziell eingecheckt ist so verfahren wie im ersten Post beschrieben.

Ich arbeite auch immer weiter am Modul und dem Wiki um alles so gut es geht zu erläutern wenn es die Zeit erlaubt.
Immer gerne fragen wenn etwas unklar ist.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TL60

Danke,
dann habe ich auch gleich die erste Frage: Inwieweit kann ich beim Upload/Download mit Wildcards arbeiten. Hintergrund ist der das ich ein IPCAM Device definiert habe, das mir bei Auslösung über ein notify, 5 Bilder YiCam1_snapshot_1.jpg bis YiCam1_snapshot_5.jpg speichert Diese Bilder möchte ich nachdem sie gespeichert wurden auf meine Diskstation übertragen. Ein Versuch das ganze so zu machenset SynFile Upload "./www/snapshots/YiCam1_snapshot_.*.jpg" dest=/ShareFHEM bringt im Log die Fehlermeldung2020.10.29 21:37:40 3: SynFile - The object "./www/snapshots/YiCam1_snapshot_.*.jpg" doesn't exist, ignore it for upload
Schön wäre auch wenn man bei der Angabe des Zieles (dest) das aktuelle Datum mit Uhrzeit als Ordnername mit übergeben könnte, oder geht sowas schon und ich hab es wieder überlesen.
danke im Voraus und ich hoffe ich fordere nicht zuviel, aber du hattest ja gesagt
ZitatIch arbeite auch immer weiter am Modul und dem Wiki um alles so gut es geht zu erläutern wenn es die Zeit erlaubt.
Immer gerne fragen wenn etwas unklar ist.
;)
Gruß und noch einen schönen Abend
Thomas

DS_Starter

ZitatInwieweit kann ich beim Upload/Download mit Wildcards arbeiten
Momentan noch nicht. Für den Upload kann ich es wahrscheinlich implementieren.

ZitatSchön wäre auch wenn man bei der Angabe des Zieles (dest) das aktuelle Datum mit Uhrzeit als Ordnername mit übergeben könnte
Denke auch das will ich versuchen mit vorzusehen.

Zitat...aber du hattest ja gesagt...
Und auch so gemeint  :D

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Habe es umgesetzt, dass Datum/Uhrzeit als Bestandteil der Upload-Destination verwendet werden kann.
Man verwendet %-POSIX Wildcards, zB:

%d    : Tag des Monats (01..31)
%m    : Monat (01..12)
%Y    : Jahr (1970...)
%w    : Wochentag (0..6); beginnend mit Sonntag (0)
%j    : Tag des Jahres (001..366)
%U    : Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
%W    : Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)

Alle Möglichkeiten-> https://metacpan.org/pod/POSIX::strftime::GNU

Als Beispiel:


"./log" dest=/home/upload/%Y_%m_%d_%H_%M_%S mode=full struc=false


Update liegt im contrib.

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TL60

Einfach nur Wahnsinn, was für eine Geschwindigkeit. Danke, Danke. Heute ist der Rechner aber aus bei mir. Morgen werde ich dann mal meine Pläne umschmeißen und testen  :)
Gute Nacht
Thomas

DS_Starter

ZitatEinfach nur Wahnsinn, was für eine Geschwindigkeit.
Das war Zufall, weil ich so etwas in einem anderen Modul auch eingebaut hatte und wußte wie ich es schnell integrieren kann.  ;)

Mit den Wildcards muß ich mich erstmal befassen, habe ich so auch noch nicht umgesetzt.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Jetzt habe ich auch die Wildcard-Unterstützung eingebaut.
Damit kann man nun den Upload z.B. so gestalten:


"./log/*.txt,./log/archive/fhem-2019-12*.*" dest=/home/upload mode=full


Es würden nur Textfiles aus dem Unterverzeichnis ./log und Files aus ./log/archive hochgeladen deren Namen auf fhem-2019-12*.* matched.

ACHTUNG: gilt nur für Filenamen, nicht Verzeichnisse mit Wildcards angeben

Liegt wieder im contrib, download wie gehabt.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

TL60

ZitatEinfach nur Wahnsinn, was für eine Geschwindigkeit. Danke, Danke. Heute ist der Rechner aber aus bei mir. Morgen werde ich dann mal meine Pläne umschmeißen und testen  :)
Gute Nacht
Thomas
Manchmal klappt es doch nicht so,wie man es gerne hätte. Bin leider erst jetzt dazu  gekommen die ganzen neuen Features zu probieren, ich bin begeistert was jetzt alles geht. Jetzt noch die Integration in CoolTux neues Backup Tool und als Diskstation Nutzer hat man (wiedermal) einen echten Mehrwert durch die Integration in FHEM. Top und vielen Dank
Gruß Thomas
PS: jetzt werde ich mich mal intensiver mit dem SSChat Modul beschäftigen