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

#15
Tipp: In der gerade hochgeladenen Version wird auch ein Event eines hochgeladenen Files erstellt, z.B.


2020-10-31 15:07:44.081 SSFile SynFile Upload: local File "./log/archive/fhem-2019-09-34.log" to remote File "/home/upload/log/archive/fhem-2019-09-34.log"


Damit kann man sich mit einem eigenen Filelog / DbLog eine Backuphistorie erstellen und nachschauen wann was wohin auf die Synology geladen wurde.
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

Es ist noch eine Löschfunktion für Objekte auf der Synology DS hinzugekommen.

deleteRemoteObject "<File>[,<File>,...]" | "<Ordner>[,<Ordner>,...]" [<args>]
Löscht die angegebenen Files oder Verzeichnisse auf der Synology Diskstation. Mehrere Objekte sind durch Komma zu trennen. Verzeichnissse sind ohne "/" am Ende einzugeben. Alle angegebenen Objekte sind insgesamt in " einzuschließen.

Optional kann als <args> angegeben werden:

    recursive=    true: Dateien innerhalb eines Ordners rekursiv löschen. (default)
    false: Nur erste Ebene Datei/Ordner löschen. Wenn ein zu löschender Ordner eine Datei enthält, wird ein Fehler auftreten, weil der Ordner nicht direkt gelöscht werden kann.


Beispiele:
set <Name> deleteRemoteObject "/backup/Carport-20200625-1147065130.jpg"
set <Name> deleteRemoteObject "/backup/log,/backup/cookie - old.txt"
set <Name> deleteRemoteObject "/backup/log/archive" recursive=false


Liegt wieder in meinem contrib. Download wie beschrieben im ersten Post.

Achtung !!  fHEM muss aktuell von heute 03.11. sein weil auch die Libs aktualisiert wurden.
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

#17
Hallo zusammen,

ich habe ein kleines Bugfix des Moduls in mein contrib geladen.

An dem Beitrag im Wiki habe ich ebenfalls weitergearbeitet.

VG
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

#18
Hallo zusammen,

In habe einen Wiki-Beitrag erstellt, wie mit dem Synology Modulen SSCal und SSFile eine übersichtliche und Kalender gestützte Sicherungslösung für die Verzeichnisse des FHEM-Servers aufgebaut werden kann.

Schöne Feiertage,
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

Newbee

Hallo,

bei mir funktioniert der Zugriff aus die DS nicht. Komme bis zu apiInfo und es werden mir die verschiedenen Versionen im Pop-Up angezeigt. Wenn ich aber ein File upload oder nur die get fileStationInfo durchführe kommt folgende Fehlermeldung.


2021.01.06 17:40:22 3: SynFile - no session ID found - get new one
2021.01.06 17:40:23 3: SynFile - Login of User abc unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 17:40:24 3: SynFile - Login of User abc unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 17:40:24 3: SynFile - Login of User abc unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 17:40:24 2: SynFile - ERROR - Login or privilege of user abc unsuccessful



User ist auf der DS angelegt und für das entsprechende Verzeichnis sowie File Station berechtigt.

list:


Internals:
   CREDENTIALS Set
   DEF        192.168.178.86 5001 https
   FUUID      5ff5afd4-f33f-6389-9e52-56eb8b18c151d74c
   MODE       Manual
   MODEL      unspecified
   NAME       SynFile
   NR         172
   OPIDX      4
   OPMODE     backgroundTask
   PROTOCOL   https
   RESEND     next planned SendQueue start: immediately by next entry
   SERVERADDR 192.168.178.86
   SERVERPORT 5001
   STATE      <b>letzter Update:</b> lastUpdate\ <br>\ 1:login Error
   TYPE       SSFile
   VERSION    0.7.6
   HELPER:
     CREDENTIALS xxxxxxxxxxxxxx
     LOGINRETRIES 3
     PACKAGE    FHEM::SSFile
     VERSION    0.7.6
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.7
   OLDREADINGS:
   READINGS:
     2021-01-06 17:40:24   Error           No such account or incorrect password
     2021-01-06 17:40:24   Errorcode       400
     2021-01-06 17:40:22   QueueLength     1
     2021-01-06 17:00:05   nextUpdate      undefined
     2021-01-06 17:40:24   state           login Error
Attributes:
   alias      Backup auf Synology (API)
   devStateIcon .*running:control_arrow_rightward .*done|.*Upload\squeue\sfill\sfinished:control_on_off:startQueue .*Error:control_arrow_rightward@red .*Initialized:control_standby@orange
   excludeFromUpload ./FHEM/FhemUtils/cacheSSCam.*,\ ./www/SVGcache.*
   group      Backup
   icon       system_backup
   interval   0
   noAsyncFillQueue 0
   room       SSFile
   showPassInLog 0
   stateFormat <b>letzter Update:</b> lastUpdate\ <br>\ 1:state


Über eine Tip würde ich mich freuen.

Danke

Grüße
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

DS_Starter

Hallo,

hast du eventuell Sonderzeichen wie @ $ % & in deinem Passwort ?

Ansonsten verbose 5 einschalten und z.B. ein get <> fileStationInfo ausführen. Die Ausgabe bitte posten.
Wenn du das Attr showPassInLog = 1 setzt, siehst du auch das verwendete Passwort im Log. Vllt. siehst du dort schon etwas. Diese Ausgabe natürlich nicht posten.  ;)

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

Danke, aber verbose 5 nur im SSFile Device einschalten. Das ist einfach übersichlicher.
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

Newbee

Verbose 5 auf SSFlie - nach fileStationInfo Request:


2021.01.06 20:24:29 4: SynFile - ####################################################
2021.01.06 20:24:29 4: SynFile - ### start Synology File operation fileStationInfo   
2021.01.06 20:24:29 4: SynFile - ####################################################
2021.01.06 20:24:29 4: SynFile - API hash values already set - ignore get apisites
2021.01.06 20:24:29 3: SynFile - no session ID found - get new one
2021.01.06 20:24:29 4: SynFile - --- Begin Function login ---
2021.01.06 20:24:29 4: SynFile - Credentials read from RAM: fhem ********
2021.01.06 20:24:29 4: SynFile - HTTP-Call login will be done with httptimeout-Value: 60 s
2021.01.06 20:24:29 4: SynFile - Call-Out now: https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid"
2021.01.06 20:24:30 5: SynFile - JSON decoded: $VAR1 = {
          'error' => {
                       'code' => 400
                     },
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        };

2021.01.06 20:24:30 3: SynFile - Login of User fhem unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 20:24:30 4: SynFile - --- Begin Function login ---
2021.01.06 20:24:30 4: SynFile - Credentials read from RAM: fhem ********
2021.01.06 20:24:30 4: SynFile - HTTP-Call login will be done with httptimeout-Value: 60 s
2021.01.06 20:24:30 4: SynFile - Call-Out now: https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid"
2021.01.06 20:24:30 5: SynFile - JSON decoded: $VAR1 = {
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
          'error' => {
                       'code' => 400
                     }
        };

2021.01.06 20:24:30 3: SynFile - Login of User fhem unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 20:24:30 4: SynFile - --- Begin Function login ---
2021.01.06 20:24:30 4: SynFile - Credentials read from RAM: fhem ********
2021.01.06 20:24:30 4: SynFile - HTTP-Call login will be done with httptimeout-Value: 60 s
2021.01.06 20:24:30 4: SynFile - Call-Out now: https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid"
2021.01.06 20:24:31 5: SynFile - JSON decoded: $VAR1 = {
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
          'error' => {
                       'code' => 400
                     }
        };

2021.01.06 20:24:31 3: SynFile - Login of User fhem unsuccessful. Code: 400 - No such account or incorrect password - try again
2021.01.06 20:24:31 4: SynFile - --- Begin Function login ---
2021.01.06 20:24:31 4: SynFile - Credentials read from RAM: fhem ********
2021.01.06 20:24:31 2: SynFile - ERROR - Login or privilege of user fhem unsuccessful
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

DS_Starter

Ja, sieht soweit "gut" aus, d.h. normal. Die Synology akzeptiert die Credentials nicht.

Setze dir das Attr showPassInLog = 1 und checke den Wert für passwd in dem Call

Zitat
Call-Out now: [url="https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid""]https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid"[/url]

Ich gehe davon aus, dass "fhem" ein gültiger Syno-User ist mit entsprechenden Rechten für die Applikation und Verzeichnisse.
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

Newbee

fhem ist ein User mit den entsprechenden Berechtigungen auf File Station sowie ein Verzeichnis.

Wenn ich im Browser den Call eingebe bekomme ich folgende Rückmeldung {"error":{"code":400},"success":false}

Auf der DS sehe ich im Protokoll das der Zugriff erfolreich war.

Wenn ich nun eine erneute Abfrage fileStationInfo via Fhem mache, bekomme ich folgendes.


2021.01.06 20:56:25 4: SynFile - ####################################################
2021.01.06 20:56:25 4: SynFile - ### start Synology File operation fileStationInfo   
2021.01.06 20:56:25 4: SynFile - ####################################################
2021.01.06 20:56:25 4: SynFile - API hash values already set - ignore get apisites
2021.01.06 20:56:25 3: SynFile - no session ID found - get new one
2021.01.06 20:56:25 4: SynFile - --- Begin Function login ---
2021.01.06 20:56:25 4: SynFile - Credentials read from RAM: fhem *****
2021.01.06 20:56:25 4: SynFile - HTTP-Call login will be done with httptimeout-Value: 60 s
2021.01.06 20:56:25 4: SynFile - Call-Out now: https://192.168.178.87:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=fhem&passwd=*****&format="sid"
2021.01.06 20:56:26 5: SynFile - JSON decoded: $VAR1 = {
          'error' => {
                       'code' => 400
                     },
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        };


DS meldet im Protokoll wieder Zugriff erfolgreich ...  :o
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

DS_Starter

ZitatDS meldet im Protokoll wieder Zugriff erfolgreich ...

Nein, Browser und Modul melden das gleiche:


{"error":{"code":400},"success":false}

ist identisch zu

          'error' => {
                       'code' => 400
                     },
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        };



success ist ein boolean Wert und dem Fall false.
Ein erfolgreicher login sieht so aus:


2021.01.06 21:07:40.814 5: SynFile - JSON decoded: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'sid' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
            }
}
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

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

carlos

Hallo,
Seit dem neuen Jahr(ist aber wohl nicht der Grund) funktioniert mein SSfile device leider nicht mehr.
es kommt folgender Fehler:

malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/50_SSFile.pm line 1276.


ich musste dann die definition von Hand aus der config nehmen, weil mein FHEM immer abstürzte.
Wenn ich es jetzt neu anlegen will, kommt der Fehler.
Ich hatte es laut Wiki angelegt, um mein backup damit zu machen.
Auf meiner Diskstation hat sich nichts geändert.
Woran liegts?

Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

DS_Starter

#28
Moin Carlos,

in deinem FHEM gibt es ein File /FHEM/FhemUtils/Uploads_SSFile_<Name des Devices>.
Der Inhalt ist offensichtlich nicht so wie er sein sollte. Lösche es mal bitte komplett und lege dein Device dann an.

Aber ich muß die Stelle ändern und einen solchen Fehler abfangen. FHEM darf deswegen nicht abstürzen.
Ich schaue mir das heute Abend genauer an.

Edit: Benne das File besser irgendwie um. Dann können wir später mal reinschauen was da eigentlich drin steht oder du hängst es hier einfach mal an.

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

carlos

Danke das hat geholfen.
Das file war leer, 0B groß.
Löschen hat geholfen.
Mir ist die Platte voll gelaufen, das hat wohl dazu geführt, dass ein leere file angelegt wurde.
Danke und Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly