49_SSCam: Fragen, Hinweise, Neuigkeiten und mehr rund um dieses Modul

Begonnen von DS_Starter, 14 Dezember 2015, 16:19:08

Vorheriges Thema - Nächstes Thema

DS_Starter

Die Funktionalität ist noch etwas ausgebaut und nach contrib geladen.
Es gibt nun ein Reading "CapPIR". Steht dieses auf "true", wird der Befehl "pirSensor" im Set-Zweig zur Verfügung gestellt.

@Fredi, lade es nochmal bitte und probiere es aus. Nach dem reload müsste ein "get ... caminfo" erfolgen bzw. falls du ein regelmäßiges Abrufintervall mit dem Attr "pollcaminfoall" eingestellt hast, gibt es dieses Reading nach dem nächsten Abruf. Dann solltest du auch diesen Set-Befehl finden.
Falls du mehrere Cams hast und eine Cam hat diesen Sensor nicht, dann sollte es diesen Eintrag auch nicht geben.
Die commandref ist auch ergänzt.

Gibt es eigentlich in der SVS bezüglich des PIR noch andere Einstellmöglichkeit außer ein/aus ?

LG,
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

Fredi69

Zitat von: DS_Starter am 02 September 2018, 13:50:01
Die Funktionalität ist noch etwas ausgebaut und nach contrib geladen.
Es gibt nun ein Reading "CapPIR". Steht dieses auf "true", wird der Befehl "pirSensor" im Set-Zweig zur Verfügung gestellt.

@Fredi, lade es nochmal bitte und probiere es aus. Nach dem reload müsste ein "get ... caminfo" erfolgen bzw. falls du ein regelmäßiges Abrufintervall mit dem Attr "pollcaminfoall" eingestellt hast, gibt es dieses Reading nach dem nächsten Abruf. Dann solltest du auch diesen Set-Befehl finden.
Falls du mehrere Cams hast und eine Cam hat diesen Sensor nicht, dann sollte es diesen Eintrag auch nicht geben.
Die commandref ist auch ergänzt.

Gibt es eigentlich in der SVS bezüglich des PIR noch andere Einstellmöglichkeit außer ein/aus ?

Super und herzlichen Dank, passt alles!
Die eine Kamera mit PIR hat den Set Befehl, die andere ohne hat den Set Befehl nicht.
Die Einstellmöglichkeiten findest Du im Screenshot.
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

DS_Starter

Sehr gut.
Dann werde ich die Version einchecken, ist dann morgen früh im normalen Update.
Danke für deine Tests und Infos !

liebe 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

Fredi69

Zitat von: DS_Starter am 02 September 2018, 19:19:53
Sehr gut.
Dann werde ich die Version einchecken, ist dann morgen früh im normalen Update.
Danke für deine Tests und Infos !

liebe Grüße
Heiko
Das macht man doch gerne wenn man solch einen tollen Service bekommt, vielen lieben Dank nochmals!
Fredi
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

DS_Starter

Guten Abend,

für euch zur Info.
Heute kam die neue finale SVS Version 8.2.0-5761 heraus.
Ich habe das Update auf Synology 415+ durchgeführt konnte keine Probleme mit der aktuellen Modulversion feststellen.

LG,
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

oli82


m0urs

Seit dem letzten Update (ob von Surveillance Station oder von FHEM kann ich nicht genau sagen) bekomme ich im Log öfters folgende Meldungen:

2018.09.19 13:28:17 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.19 13:28:17 2: SS_Wohnzimmer - ERROR - Login or privilege of user fhem unsuccessful

Irgendwie scheint aber trotzdem alles zu funktionieren.

Was könnte das sein?

DS_Starter

#1057
Zitat
Irgendwie scheint aber trotzdem alles zu funktionieren.

Was könnte das sein?

Zunächst erstmal ist es nichts schlimmes.

Die 1. Möglichkeit:
Diese Meldung ist eine Reaktion des Moduls auf eine Antwort der SVS, dass die Userberechtigungen nicht stimmen ausreichen würden.
Im Modul ist es dann so gelöst, dass in diesem Fall ein erneuter Login-Versuch unternommen wird. Dieser ist dann offensichtlich erfolgreich bzw. wird erfolgreich quittiert. Deshalb funktioniert auch alles soweit.
Es werden per default 3 Versuche unternommen. Du kannst aber das Attribut "loginRetries" verwenden um diese Anzahl zu verändern.
(HAbe gerade gesehn dass ich die Commandref dafür anpassen muss)

Die 2. Möglichkeit:
Es wird eine Funktion gegenüber der Syno aufgerufen, für die der User tatsächlich keine Rechte besitzt.
Das wäre sehr wahrscheinlich wenn du eine Session mit der SVS benutzt und dort für das Userprofil granulare Berechtigungen vergeben hast.
Die Funktion die schiefgeht brauchst du aber nicht in deinem Anwendungsszenario und deshalb stört es dich auch nicht (außer die Meldung an sich).

Es wird wahrscheinlich etwas schwierig sein herauszufinden wieso deine Syno diese Meldung immer mal zurückgibt. Du kannst zum Beispiel probieren ob sich das Verhalten ändert wenn du die Art der Session änderst (Attribut "session").
Außerdem könnte man sehen bei welchem Aufruf die Meldung kommt, wenn du für längere Zeit verbose 4 für das Device einstellst.
Es gibt auch noch das Attribut "noQuotesForSID" welches du dir setzen kannst. Das habe ich implementiert weil bei manchen SVS-Versionen immer mal wieder vorkommt dass die API etwas "empfindlich" reagiert.

Das wären Ideen, die ich beisteuern könnte.

Edit: Als weitere Möglichkeit kommt in Frage, dass die Session-ID nicht mehr gültig ist und deswegen eine neue ID geholt werden muss. Das ist eigetnlich nur der Fall wenn der verbundene User  abgemeldet wird. Es gibt ein Widget auf der DSM-Oberfläche in dem verbundene Nutzer angezeigt werden. Meldet man einen SVS-User darüber ab, kommt die gleiche Fehlermitteilung in FHEM, wobei keine Einschränkung in der Funktion gegeben ist weil, wie schon geschrieben, automatisch eine neue ID geholt wird.

LG,
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

m0urs

Hallo Heiko,

hier mal ein Logauszug. Ich denke, es ist so, dass die Authentifizierung nicht gleich beim ersten Mal klappt, aber dann doch beim wiederholten Mal funktioniert, oder wie interpretierst Du das Log? Deswegen scheint es ja dann doch auch zu funktionieren. Nur: Das kam bislang nicht in dieser Form vor. Erst nachdem ich nach meinem Urlaub Updates auf Synology- und FHEM-Seite gemach hatte.

2018.09.20 09:16:59 4: SS_Wohnzimmer - ####################################################
2018.09.20 09:16:59 4: SS_Wohnzimmer - ###    start cam operation Disable
2018.09.20 09:16:59 4: SS_Wohnzimmer - ####################################################
2018.09.20 09:16:59 4: SS_Wohnzimmer - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 09:16:59 4: SS_Wohnzimmer - API hashvalues already set - ignore get apisites
2018.09.20 09:16:59 4: SS_Wohnzimmer - --- Begin Function SSCam_getcamid nonblocking ---
2018.09.20 09:16:59 4: SS_Wohnzimmer - CAMID already set - ignore get camid
2018.09.20 09:16:59 4: SS_Wohnzimmer - --- Begin Function Disable nonblocking ---
2018.09.20 09:16:59 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="xxxxxxxxxxxxxxxxxxx"
2018.09.20 09:17:00 2: SS_AZ_Michael - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.20 09:17:00 4: SS_AZ_Michael - --- Begin Function SSCam_login ---
2018.09.20 09:17:00 4: SS_AZ_Michael - Credentials read from RAM: <user> ********
2018.09.20 09:17:00 4: SS_AZ_Michael - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 09:17:00 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.20 09:17:00 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 09:17:00 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 09:17:00 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 09:17:01 4: SS_AZ_Michael - Login of User fhem successful - SID: xxxxxxxxxxxxxxxxxxxxx

DS_Starter

#1059
Hallo Michael,

deine Interpretation ist vollkommen richtig.
FHEM können wir im Prinzip als Verursacher ausschließen. Wenn du verbose 5 einstellst sehen wir zusätzlich noch die Antworten der Syno auf die Requests. Das Modul reagiert darauf mit der Fehlertoleranz wie beschrieben und den Ausschriften im Log.
Warum die Syno nun so reagiert steht auf einem anderen Blatt.

Kannst du folgende Gesichtspunkte beleuchten:

- Unterschied im Verhalten bei Verwendung unterschiedlicher Sessions DSM / Surveillance
- Verwendung eines anderen Nutzers , speziell für den Zugriff mit dem Modul
- allgemeine Lastsituation der Syno nach dem Update. Auslastung Volume z.B. weil die Indizierung vollkommen neu aufgebaut werden muss. CPU natürlich ...

LG
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

m0urs

Zitat von: DS_Starter am 20 September 2018, 12:46:28
- Unterschied im Verhalten bei Verwendung unterschiedlicher Sessions DSM / Surveillance

Das würde ich gerne erst noch mal aufschieben, vielleicht finden wir ja auch so was raus ;-)

Zitat von: DS_Starter am 20 September 2018, 12:46:28
- Verwendung eines anderen Nutzers , speziell für den Zugriff mit dem Modul

Wenn alles nix nützt kann ich das noch mal testen. Aber der User hat sich ja nicht geändert und bisher lief es ja. Der User ist ein Surveillance-User und hat Manager-Rechte.

Zitat von: DS_Starter am 20 September 2018, 12:46:28
- allgemeine Lastsituation der Syno nach dem Update. Auslastung Volume z.B. weil die Indizierung vollkommen neu aufgebaut werden muss. CPU natürlich ...

Das NAS dümpelt so um die 3% CPU Last Sollte also kein Problem sein.

Hier noch mal ein Logauszug mit Verbose 5. Vielleicht fällt Dir ja noch was auf.

2018.09.20 14:09:09 4: SS_CAM - ####################################################
2018.09.20 14:09:09 4: SS_CAM - ###    start cam operation sethomemode         
2018.09.20 14:09:09 4: SS_CAM - ####################################################
2018.09.20 14:09:09 4: SS_CAM - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:09 4: SS_CAM - API hashvalues already set - ignore get apisites
2018.09.20 14:09:09 4: SS_CAM - --- Begin Function sethomemode nonblocking ---
2018.09.20 14:09:09 5: SS_CAM - HTTP-Call will be done with httptimeout-Value: 4 s
2018.09.20 14:09:09 4: SS_CAM - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?on=true&api=SYNO.SurveillanceStation.HomeMode&method=Switch&version=1&_sid="B2WCh6SmzI9Hs1531MIN735300"
2018.09.20 14:09:09 4: SS_Wohnzimmer - Disable Camera Wohnzimmer
2018.09.20 14:09:09 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:09 4: SS_Wohnzimmer - ###    start cam operation Disable         
2018.09.20 14:09:09 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:09 4: SS_Wohnzimmer - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:09 4: SS_Wohnzimmer - API hashvalues already set - ignore get apisites
2018.09.20 14:09:09 3: SS_Wohnzimmer - no session ID found - get new one
2018.09.20 14:09:09 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 14:09:09 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 14:09:09 5: SS_Wohnzimmer - HTTP-Call login will be done with httptimeout-Value: 4 s
2018.09.20 14:09:09 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 14:09:11 5: SS_CAM - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2018.09.20 14:09:11 3: SS_CAM - HomeMode was set to "on"
2018.09.20 14:09:11 4: SS_CAM - ####################################################
2018.09.20 14:09:11 4: SS_CAM - ###    start cam operation gethomemodestate         
2018.09.20 14:09:11 4: SS_CAM - ####################################################
2018.09.20 14:09:11 4: SS_CAM - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:11 4: SS_CAM - API hashvalues already set - ignore get apisites
2018.09.20 14:09:11 4: SS_CAM - --- Begin Function gethomemodestate nonblocking ---
2018.09.20 14:09:11 5: SS_CAM - HTTP-Call will be done with httptimeout-Value: 4 s
2018.09.20 14:09:11 4: SS_CAM - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&method=GetInfo&version=1&_sid="B2WCh6SmzI9Hs1531MIN735300"
2018.09.20 14:09:12 5: SS_Wohnzimmer - JSON decoded: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
              'sid' => '2Cu7GOTefitoU1531MIN735300'
            }
}

2018.09.20 14:09:12 4: SS_Wohnzimmer - Login of User <user> successful - SID: 2Cu7GOTefitoU1531MIN735300
2018.09.20 14:09:12 4: SS_Wohnzimmer - --- Begin Function SSCam_getcamid nonblocking ---
2018.09.20 14:09:12 4: SS_Wohnzimmer - CAMID already set - ignore get camid
2018.09.20 14:09:12 4: SS_Wohnzimmer - --- Begin Function Disable nonblocking ---
2018.09.20 14:09:12 5: SS_Wohnzimmer - HTTP-Call will be done with httptimeout-Value: 94 s
2018.09.20 14:09:12 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="2Cu7GOTefitoU1531MIN735300"
2018.09.20 14:09:12 5: SS_CAM - JSON returned: {
  'data' => {
              'rec_schedule' => '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
              'io_modules' => '',
              'mode_schedule_next_time' => -1,
              'rec_schedule_on' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
              'mode_schedule_on' => $VAR1->{'data'}{'rec_schedule_on'},
              'cameras' => '-1',
              'onetime_enable_time' => 0,
              'actrules' => '',
              'mode_schedule' => '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
              'notify_event_list' => [
                                       {
                                         'eventGroupType' => 2,
                                         'eventType' => 3,
                                         'filter' => 1
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 1,
                                         'eventType' => 4
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 5,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'eventType' => 6,
                                         'filter' => 0,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 7,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'eventType' => 10,
                                         'filter' => 0
                                       },
                                       {
                                         'eventType' => 11,
                                         'filter' => 1,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'eventType' => 12,
                                         'filter' => 0,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 0,
                                         'eventType' => 14
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 1,
                                         'eventType' => 15
                                       },
                                       {
                                         'eventGroupType' => 1,
                                         'filter' => 1,
                                         'eventType' => 28
                                       },
                                       {
                                         'filter' => 1,
                                         'eventType' => 29,
                                         'eventGroupType' => 1
                                       },
                                       {
                                         'filter' => 1,
                                         'eventType' => 32,
                                         'eventGroupType' => 1
                                       },
                                       {
                                         'eventType' => 33,
                                         'filter' => 1,
                                         'eventGroupType' => 1
                                       },
                                       {
                                         'eventGroupType' => 1,
                                         'eventType' => 34,
                                         'filter' => 1
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 35,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'eventType' => 36,
                                         'filter' => 0,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'eventGroupType' => 8,
                                         'filter' => 0,
                                         'eventType' => 37
                                       },
                                       {
                                         'eventType' => 38,
                                         'filter' => 0,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 39,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 40,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 41,
                                         'eventGroupType' => 8
                                       },
                                       {
                                         'eventGroupType' => 8,
                                         'eventType' => 42,
                                         'filter' => 0
                                       },
                                       {
                                         'eventGroupType' => 8,
                                         'eventType' => 43,
                                         'filter' => 0
                                       },
                                       {
                                         'eventGroupType' => 8,
                                         'eventType' => 44,
                                         'filter' => 0
                                       },
                                       {
                                         'filter' => 1,
                                         'eventType' => 45,
                                         'eventGroupType' => 1
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 0,
                                         'eventType' => 61
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'eventType' => 62,
                                         'filter' => 0
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 0,
                                         'eventType' => 63
                                       },
                                       {
                                         'eventType' => 64,
                                         'filter' => 0,
                                         'eventGroupType' => 2
                                       },
                                       {
                                         'eventGroupType' => 2,
                                         'filter' => 0,
                                         'eventType' => 65
                                       },
                                       {
                                         'filter' => 0,
                                         'eventType' => 66,
                                         'eventGroupType' => 2
                                       }
                                     ],
              'onetime_disable_on' => $VAR1->{'data'}{'rec_schedule_on'},
              'wifi_ssid' => '',
              'custom1_det' => 1,
              'notify_on' => $VAR1->{'data'}{'rec_schedule_on'},
              'on' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
              'reason' => 1,
              'streaming_on' => $VAR1->{'data'}{'on'},
              'geo_radius' => 100,
              'geo_delay_time' => 180,
              'custom2_di' => 1,
              'actrule_on' => $VAR1->{'data'}{'rec_schedule_on'},
              'onetime_disable_time' => 0,
              'custom2_det' => 1,
              'stream_profile' => '0,0,0,0,0,0',
              'geo_lat' => '50.130543',
              'custom1_di' => 1,
              'onetime_enable_on' => $VAR1->{'data'}{'rec_schedule_on'},
              'geo_lng' => '8.844996'
            },
  'success' => $VAR1->{'data'}{'on'}
}

2018.09.20 14:09:12 5: SS_Wohnzimmer - JSON returned: {
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'error' => {
               'code' => 105
             }
}

2018.09.20 14:09:12 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.20 14:09:12 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 14:09:12 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 14:09:12 5: SS_Wohnzimmer - HTTP-Call login will be done with httptimeout-Value: 4 s
2018.09.20 14:09:12 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 14:09:14 5: SS_Wohnzimmer - JSON decoded: {
  'data' => {
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
              'sid' => 'SjBTf9kAf02q61531MIN735300'
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2018.09.20 14:09:14 4: SS_Wohnzimmer - Login of User <user> successful - SID: SjBTf9kAf02q61531MIN735300
2018.09.20 14:09:14 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:14 4: SS_Wohnzimmer - ###    start cam operation Disable         
2018.09.20 14:09:14 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:14 4: SS_Wohnzimmer - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:14 4: SS_Wohnzimmer - API hashvalues already set - ignore get apisites
2018.09.20 14:09:14 4: SS_Wohnzimmer - --- Begin Function SSCam_getcamid nonblocking ---
2018.09.20 14:09:14 4: SS_Wohnzimmer - CAMID already set - ignore get camid
2018.09.20 14:09:14 4: SS_Wohnzimmer - --- Begin Function Disable nonblocking ---
2018.09.20 14:09:14 5: SS_Wohnzimmer - HTTP-Call will be done with httptimeout-Value: 94 s
2018.09.20 14:09:14 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="SjBTf9kAf02q61531MIN735300"
2018.09.20 14:09:14 5: SS_Wohnzimmer - JSON returned: {
  'error' => {
               'code' => 105
             },
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
}

2018.09.20 14:09:14 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.20 14:09:14 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 14:09:14 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 14:09:14 5: SS_Wohnzimmer - HTTP-Call login will be done with httptimeout-Value: 4 s
2018.09.20 14:09:14 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 14:09:17 5: SS_Wohnzimmer - JSON decoded: {
  'data' => {
              'sid' => 'JMYV2eDPGeNrA1531MIN735300',
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2018.09.20 14:09:17 4: SS_Wohnzimmer - Login of User <user> successful - SID: JMYV2eDPGeNrA1531MIN735300
2018.09.20 14:09:17 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:17 4: SS_Wohnzimmer - ###    start cam operation Disable         
2018.09.20 14:09:17 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:17 4: SS_Wohnzimmer - API hashvalues already set - ignore get apisites
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function SSCam_getcamid nonblocking ---
2018.09.20 14:09:17 4: SS_Wohnzimmer - CAMID already set - ignore get camid
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function Disable nonblocking ---
2018.09.20 14:09:17 5: SS_Wohnzimmer - HTTP-Call will be done with httptimeout-Value: 94 s
2018.09.20 14:09:17 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="JMYV2eDPGeNrA1531MIN735300"
2018.09.20 14:09:17 5: SS_Wohnzimmer - JSON returned: {
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'error' => {
               'code' => 105
             }
}

2018.09.20 14:09:17 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 14:09:17 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 14:09:17 2: SS_Wohnzimmer - ERROR - Login or privilege of user <user> unsuccessful


Prinzipiell scheint es ja, wie gesagt, alles zu funktionieren. Bei Fehlern im Log möchte ich aber immer gerne verstehen, was da so abgeht. Ach ja, der Parameter "noQuotesForSID" hatte nix genutzt.

m0urs

Kann es sein, dass das Modul glaubt noch eine gültige SID zu haben und die Surveillance-Station aber denkt, die ist abgelaufen?

DS_Starter

Zitat
Kann es sein, dass das Modul glaubt noch eine gültige SID zu haben und die Surveillance-Station aber denkt, die ist abgelaufen?

Im Prinzip ja, aber dein Log spricht eine etwas andere Sprache.

Wenn du dir nur mal diesen einen Ablauf anschaust:


2018.09.20 14:09:14 4: SS_Wohnzimmer - --- Begin Function SSCam_login ---
2018.09.20 14:09:14 4: SS_Wohnzimmer - Credentials read from RAM: <user> ********
2018.09.20 14:09:14 5: SS_Wohnzimmer - HTTP-Call login will be done with httptimeout-Value: 4 s
2018.09.20 14:09:14 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/auth.cgi?api=SYNO.API.Auth&version=6&method=Login&account=<user>&passwd=*****&session=SurveillanceStation&format="sid"
2018.09.20 14:09:17 5: SS_Wohnzimmer - JSON decoded: {
  'data' => {
              'sid' => 'JMYV2eDPGeNrA1531MIN735300',
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2018.09.20 14:09:17 4: SS_Wohnzimmer - Login of User <user> successful - SID: JMYV2eDPGeNrA1531MIN735300
2018.09.20 14:09:17 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:17 4: SS_Wohnzimmer - ###    start cam operation Disable         
2018.09.20 14:09:17 4: SS_Wohnzimmer - ####################################################
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function SSCam_getapisites nonblocking ---
2018.09.20 14:09:17 4: SS_Wohnzimmer - API hashvalues already set - ignore get apisites
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function SSCam_getcamid nonblocking ---
2018.09.20 14:09:17 4: SS_Wohnzimmer - CAMID already set - ignore get camid
2018.09.20 14:09:17 4: SS_Wohnzimmer - --- Begin Function Disable nonblocking ---
2018.09.20 14:09:17 5: SS_Wohnzimmer - HTTP-Call will be done with httptimeout-Value: 94 s
2018.09.20 14:09:17 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="JMYV2eDPGeNrA1531MIN735300"
2018.09.20 14:09:17 5: SS_Wohnzimmer - JSON returned: {
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'error' => {
               'code' => 105
             }
}

2018.09.20 14:09:17 2: SS_Wohnzimmer - ERROR - 105 - Insufficient user privilege in operation Disable -> try new login


Das heißt 14:09:17 war der Login erfolgreich und lieferte die Session-ID "JMYV2eDPGeNrA1531MIN735300" zurück.


2018.09.20 14:09:17 4: SS_Wohnzimmer - Login of User <user> successful - SID: JMYV2eDPGeNrA1531MIN735300


In derselben Sekunde wurde genau mit dieser Session ID die Funktion "Disable" aufgerufen:


2018.09.20 14:09:17 4: SS_Wohnzimmer - Call-Out now: http://192.x.x.x:35000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&version=9&method="Disable"&idList="4"&_sid="JMYV2eDPGeNrA1531MIN735300"
2018.09.20 14:09:17 5: SS_Wohnzimmer - JSON returned: {
  'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'error' => {
               'code' => 105
             }
}


Doch nun ist die API der Meinung diese Session hat zuwenig Rechte für die Operation. Error 105 ist "Insufficient user privilege".
Das Modul reagiert darauf und holt sich eine neue SID und das passiert solange bis es funktioniert oder die Anzahl "loginRetries" abgelaufen ist.
In anderen Fällen (gleich am Anfang) klappt es ja sofort mit der vorhandenen SID.

Was ganz profanes ... hast du nach dem Syno Update die Syno nochmal rebootet oder zumindest die SVS gestoppt und restartet ?
Wenn nicht würde ich es tun.

Weiterhin kannst du auch für jedes deiner SSCam-Devices einen eigenen User anlegen. Ich benutze auch einen für alle. Auf der DSM-Oberfläche sieht man dann das dieser User mehrfach angemeldet ist. Funktioniert auch problemlos, aber möglicherweise ist deine Syno an der Stelle anderer Meinung.


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

m0urs

Zitat
Was ganz profanes ... hast du nach dem Syno Update die Syno nochmal rebootet oder zumindest die SVS gestoppt und restartet ?
Wenn nicht würde ich es tun.

Ja, das ist passiert.

Zitat
Weiterhin kannst du auch für jedes deiner SSCam-Devices einen eigenen User anlegen. Ich benutze auch einen für alle. Auf der DSM-Oberfläche sieht man dann das dieser User mehrfach angemeldet ist. Funktioniert auch problemlos, aber möglicherweise ist deine Syno an der Stelle anderer Meinung.

Ok, das teste ich dann mal morgen und melde mich mit dem Ergebnis. Danke soweit schon mal.

m0urs

Denke ich hab das Problem mit den Berechtigungsfehlermeldungen gefunden. Ich hatte für den User ein eigenes Berechtigungsprofil vom Typ "Manager" eingerichtet. Aber dort war die Berechtigung "Edit Camera" nicht gesetzt. Keine Ahnung ob es die Berechtigung früher nicht gab, oder ob man die nicht benötigt hatte. Jedenfalls habe ich dem Profil dieses Recht gegeben und seit dieser Zeit gab es bisher jedenfalls keine Fehlermeldungen mehr :-)