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

oli82

Habe das so umgesetzt:

define di_doorbell DOIF ([doorbell_dummy] eq "on") (set DoorCam snap)
define di_doorcam DOIF ([DoorCam:?LastSnapFilename]) (set iPhone image /opt/snapshots/[DoorCam:LastSnapFilename] Es steht jemand an der Tür) (set doorbell_dummy off)
attr di_doorcam wait 0,5


Die Bewegungserkennung der DS löst ein Event aus, auf das Fhem reagiert, ein Bild macht und sobald dieses gespeichert wurde, es per yowsup versendet.
Leider klappt das nicht immer in Echtzeit und ich habe einen leichten Versatz in der erkannten Bewegung und dem Bild. Liegt aber leider an der Bewegungserkennung. Mit einem Bewegungsmelder ging das besser ;)

DS_Starter

#196
Hallo zusammen,

mit der angehängten weiter entwickelten Version können nun auch LiveViews der Kameras aktiviert werden.

Mit "set ... runView [ image] [link]"  wird er gestartet und mit "set .... stopView" beendet. Mit der Option "image" wird das Livebild integriert dargestellt. Die Option "link" stellt einen entsprechenden Link zum Liveview bereit.
Aktualiert bitte euren Browser wenn ihr nach der Funktionsausführung noch nichts seht.

Es gibt ein Atrribut "htmlattr"  mit dem man das Verhalten der Liveviews beeinflussen kann. So führt das Setzen des Attributes auf "target=_blank width="500" height="300"" dazu,  dass im Falle von "set ... runView link"  der erzeugte Link beim Anklicken in einem neuen Fenster geöffnet wird und im Fall von "set ... runView image" in der entsprechenden Größe dargestellt wird.

Ich habe noch keine Beschreibung für die Commandref erstellt, das kommt noch.

Freue mich auf eure Rückmeldung wenn ihr die Version testen möchtet.

viele Grüße
Heiko
Proxmox+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

Guten Morgen Heiko.

Habe die neue Version mal eingespielt.
Leider bekomme ich kein Reading mit dem passenden Link oder ein Image.
Hier mal mein die Device Info:
Internals:
   CAMID      1
   CAMNAME    Doorcam
   CHANGED
   CREDENTIALS Set
   DEF        Doorcam 192.168.100.110 5000
   NAME       DoorCam
   NR         234
   OPMODE     getmotionenum
   SERVERADDR 192.168.100.110
   SERVERPORT 5000
   STATE      off
   TYPE       SSCam
   Helper:
     ACTIVE     off
     APIAUTH    SYNO.API.Auth
     APIAUTHMAXVER 4
     APIAUTHPATH auth.cgi
     APICAM     SYNO.SurveillanceStation.Camera
     APICAMEVENT SYNO.SurveillanceStation.Camera.Event
     APICAMEVENTMAXVER 1
     APICAMEVENTPATH entry.cgi
     APICAMMAXVER 8
     APICAMPATH entry.cgi
     APIEVENT   SYNO.SurveillanceStation.Event
     APIEVENTMAXVER 5
     APIEVENTPATH entry.cgi
     APIEXTREC  SYNO.SurveillanceStation.ExternalRecording
     APIEXTRECMAXVER 2
     APIEXTRECPATH entry.cgi
     APIINFO    SYNO.API.Info
     APIPTZ     SYNO.SurveillanceStation.PTZ
     APIPTZMAXVER 4
     APIPTZPATH entry.cgi
     APISNAPSHOT SYNO.SurveillanceStation.SnapShot
     APISVSINFO SYNO.SurveillanceStation.Info
     APISVSINFOMAXVER 5
     APISVSINFOPATH entry.cgi
     APITAKESNAPMAXVER 1
     APITAKESNAPPATH entry.cgi
     APIVIDEOSTM SYNO.SurveillanceStation.VideoStreaming
     APIVIDEOSTMMAXVER 1
     APIVIDEOSTMPATH entry.cgi
     CREDENTIALS ]qmreVqPc4I9Tl2>
     OLDVALPOLLNOLOGGING 0
     RECTIME_DEF 15
     WLTYPE     link
     Svsversion:
       BUILD      4122
       MAJOR      7
       MINOR      1
   Readings:
     2016-02-23 08:36:42   Availability    enabled
     2016-02-23 08:36:39   CamEventNum     288
     2016-02-23 08:36:42   CamExposureControl Unknown
     2016-02-23 08:36:42   CamExposureMode Auto
     2016-02-23 08:36:42   CamIP           192.168.1xx.xxx
     2016-02-23 08:36:42   CamLiveMode     Liveview from DS
     2016-02-23 08:36:42   CamModel        DCS-2330L
     2016-02-23 08:36:46   CamMotDetSc     SVS
     2016-02-23 08:36:42   CamPort         80
     2016-02-23 08:36:42   CamPreRecTime   5
     2016-02-23 08:36:42   CamPtSpeed      3
     2016-02-23 08:36:42   CamRecShare     surveillance
     2016-02-23 08:36:42   CamRecVolume    volume1
     2016-02-23 08:36:42   CamVendor       D-Link
     2016-02-23 08:36:42   CamVideoFlip    1
     2016-02-23 08:36:42   CamVideoMirror  1
     2016-02-23 08:36:42   CamblPresetSpeed 0
     2016-02-23 08:36:43   CapAudioOut     0
     2016-02-23 08:36:43   CapChangeSpeed  0
     2016-02-23 08:36:43   CapPTZAbs       0
     2016-02-23 08:36:43   CapPTZAutoFocus 0
     2016-02-23 08:36:43   CapPTZDirections 0
     2016-02-23 08:36:43   CapPTZFocus     false
     2016-02-23 08:36:43   CapPTZHome      0
     2016-02-23 08:36:43   CapPTZIris      false
     2016-02-23 08:36:43   CapPTZPan       false
     2016-02-23 08:36:43   CapPTZTilt      false
     2016-02-23 08:36:43   CapPTZZoom      false
     2016-02-23 08:36:42   DeviceType      Camera
     2016-02-23 08:36:46   Error           none
     2016-02-23 08:36:46   Errorcode       none
     2016-02-22 20:34:23   LastSnapFilename Doorcam-20160222-2034210683.jpg
     2016-02-22 20:34:21   LastSnapId      522
     2016-02-23 08:36:42   LastUpdateTime  23.02.2016 / 08:36:42
     2016-02-23 08:32:48   PollState       Inactive
     2016-02-23 08:36:42   Record          Stop
     2016-02-23 08:33:05   SVSlicenseNumber 2
     2016-02-23 08:33:05   SVSuserPriv     Admin
     2016-02-23 08:33:05   SVSversion      7.1-4122
     2016-02-23 08:36:42   UsedSpaceMB     1.602
     2016-02-23 08:36:42   VideoFolder     /volume1/surveillance/Doorcam
     2016-02-23 08:36:44   state           off
Attributes:
   event-on-change-reading Record,Error,Errorcode,LastSnapFilename,Availability
   icon       it_camera
   room       06_Cam
   webCmd     on:off:snap:enable:disable

DS_Starter

Morgen Oli,

ja stimmt. Da fehlt der {HELPER}{LINK}. Das ist ja komisch. Schaue ich mir heute Abend nochmal an.
Vielleicht könntest du noch ein Logauszug mit verbose =4 machen wenn du die Funktion set .. runView ausführt.
Ist dann sicher hilfreich.

Grüsse und schönen Tag.
Heiko
Proxmox+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

Danke.
Hier der Log:
2016.02.23 09:57:12 4: DoorCam - Start Liveview of Camera Doorcam
2016.02.23 09:57:12 4: DoorCam - --- Begin Function getapisites nonblocking ---
2016.02.23 09:57:12 4: DoorCam - Call-Out now: http://192.168.1xx.xxx:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.SurveillanceStation.ExternalRecording,SYNO.SurveillanceStation.Camera,SYNO.SurveillanceStation.SnapShot,SYNO.SurveillanceStation.PTZ,SYNO.SurveillanceStation.Info,SYNO.SurveillanceStation.Camera.Event,SYNO.SurveillanceStation.Event,SYNO.SurveillanceStation.VideoStreaming
2016.02.23 09:57:12 4: DoorCam - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'SYNO.SurveillanceStation.ExternalRecording' => {
                                                                'requestFormat' => 'JSON',
                                                                'maxVersion' => 2,
                                                                'path' => '_______________________________________________________entry.cgi',
                                                                'minVersion' => 1
                                                              },
              'SYNO.SurveillanceStation.PTZ' => {
                                                  'requestFormat' => 'JSON',
                                                  'maxVersion' => 4,
                                                  'path' => '_______________________________________________________entry.cgi',
                                                  'minVersion' => 1
                                                },
              'SYNO.SurveillanceStation.Camera.Event' => {
                                                           'requestFormat' => 'JSON',
                                                           'maxVersion' => 1,
                                                           'path' => '_______________________________________________________entry.cgi',
                                                           'minVersion' => 1
                                                         },
              'SYNO.SurveillanceStation.VideoStreaming' => {
                                                             'requestFormat' => 'JSON',
                                                             'maxVersion' => 1,
                                                             'path' => '_______________________________________________________entry.cgi',
                                                             'minVersion' => 1
                                                           },
              'SYNO.SurveillanceStation.SnapShot' => {
                                                       'requestFormat' => 'JSON',
                                                       'maxVersion' => 1,
                                                       'path' => '_______________________________________________________entry.cgi',
                                                       'minVersion' => 1
                                                     },
              'SYNO.API.Auth' => {
                                   'maxVersion' => 4,
                                   'path' => 'auth.cgi',
                                   'minVersion' => 1
                                 },
              'SYNO.SurveillanceStation.Camera' => {
                                                     'requestFormat' => 'JSON',
                                                     'maxVersion' => 8,
                                                     'path' => '_______________________________________________________entry.cgi',
                                                     'minVersion' => 1
                                                   },
              'SYNO.SurveillanceStation.Info' => {
                                                   'requestFormat' => 'JSON',
                                                   'maxVersion' => 5,
                                                   'path' => '_______________________________________________________entry.cgi',
                                                   'minVersion' => 1
                                                 },
              'SYNO.SurveillanceStation.Event' => {
                                                    'requestFormat' => 'JSON',
                                                    'maxVersion' => 5,
                                                    'path' => '_______________________________________________________entry.cgi',
                                                    'minVersion' => 1
                                                  }
            }
}

2016.02.23 09:57:12 4: DoorCam - Path of SYNO.API.Auth selected: auth.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.API.Auth selected: 4
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.ExternalRecording selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.ExternalRecording selected: 2
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.Camera selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.Camera: 8
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.SnapShot selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.SnapShot: 1
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.PTZ selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.PTZ: 4
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.Info selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.Info: 5
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.Camera.Event selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.Camera.Event: 1
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.Event selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.Event: 5
2016.02.23 09:57:12 4: DoorCam - Path of SYNO.SurveillanceStation.VideoStreaming selected: entry.cgi
2016.02.23 09:57:12 4: DoorCam - MaxVersion of SYNO.SurveillanceStation.VideoStreaming: 1
2016.02.23 09:57:12 4: DoorCam - --- End Function getapisites nonblocking ---
2016.02.23 09:57:12 4: DoorCam - --- Begin Function serverlogin nonblocking ---
2016.02.23 09:57:12 4: DoorCam - Credentials read from RAM: USER PASSWORD
2016.02.23 09:57:12 4: DoorCam - Call-Out now: http://192.168.1xx.xxx:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=4&method=Login&account=USER&passwd=PASSWORD&format="sid"
2016.02.23 09:57:13 4: DoorCam - Credentials read from RAM: USER PASSWORD
2016.02.23 09:57:13 4: DoorCam - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'sid' => 'Gjvj0zhJonhm.D4L5N03852',
              'is_portal_port' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
            }
}

2016.02.23 09:57:13 4: DoorCam - Login of User USER successful - SID: Gjvj0zhJonhm.D4L5N03852
2016.02.23 09:57:13 4: DoorCam - --- End Function serverlogin nonblocking ---
2016.02.23 09:57:13 4: DoorCam - --- Begin Function getcamid nonblocking ---
2016.02.23 09:57:13 4: DoorCam - Call-Out now: http://192.168.1xx.xxx:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&version=8&method=List&basic=true&streamInfo=true&camStm=true&_sid="Gjvj0zhJonhm.D4L5N03852"
2016.02.23 09:57:13 4: DoorCam - Detection Camid successful - Doorcam ID: 1
2016.02.23 09:57:13 4: DoorCam - --- End Function getcamid nonblocking ---
2016.02.23 09:57:13 4: DoorCam - --- Begin Function cam: runliveview nonblocking ---
2016.02.23 09:57:13 4: DoorCam - Set Livestream-URL: http://192.168.1xx.xxx:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.VideoStreaming&version=1&method=Stream&cameraId=1&format=mjpeg&_sid=Gjvj0zhJonhm.D4L5N03852
2016.02.23 09:57:13 3: DoorCam - Liveview URL of Camera Doorcam was set for FHEMWEB
2016.02.23 09:57:13 4: DoorCam - --- End Function cam: runliveview nonblocking ---
2016.02.23 09:57:26 4: DoorCam - Stop Liveview of Camera Doorcam now
2016.02.23 09:57:26 4: DoorCam - --- Begin Function logout nonblocking ---
2016.02.23 09:57:26 4: DoorCam - Credentials read from RAM: USER PASSWORD
2016.02.23 09:57:26 4: DoorCam - URL-Call: http://192.168.1xx.xxx:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=4&method=Logout&_sid=Gjvj0zhJonhm.D4L5N03852
2016.02.23 09:57:26 4: DoorCam - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2016.02.23 09:57:26 4: DoorCam - Session of User USER has ended - SID: Gjvj0zhJonhm.D4L5N03852 has been deleted
2016.02.23 09:57:26 4: DoorCam - --- End Function logout nonblocking ---

OliS.

Wow, schöne Funktion! Läuft bei mir wie am Schnürchen. Danke.

Oli
PVE auf MiniPC (N100) mit FHEM, Zigbee2MQTT, Homebridge, DeConz

DS_Starter

ZitatLäuft bei mir wie am Schnürchen.

Danke für das Feedback Oli ... super  :)
Proxmox+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

#202
Hallo Oli82,

habe mir dein Log angeschaut. Sieht ganz normal aus und zeigt auch keine Fehler.
Ich habe das Modul nochmal ein wenig verändert und hier angehängt. (ersetze auch das File unter #196)

Sobald man "set .... runView" gestartet hat, auf jeden Fall einmal den Browser aktualisieren falls man noch nichts sieht. Dann sollte das Bild (der Link) erscheinen.
Wenn ihr die Cams in einem Raum habt und "runView" und "stopView" mit zu den Web-cmds hinzufügt, könnt ihr so die Liveviews bequem starten. Dabei wird das image (der Link) statt des state-Icons angezeigt sofern "runView" gestartet ist. In diesem Modus klappt auch die Browseraktualisierung, wenn longpoll=1 gesetzt ist, d.h. das Bild erscheint sobald "runView" ausgeführt wird .

Oli, wenn das nicht auf Anhieb klappt, einfach nach "runView" mal den Browser aktualisieren.

Gruß
Heiko
Proxmox+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

Guten Morgen Heiko.
Nun klappt es auch bei mir.
Was nun natürlich noch super wäre, wäre die Möglichkeit, die URL zu Manipulieren und den Link als Reading zu erhalten.
So könnte man den Link mit einer externen URL (Dyndns, etc) per Email/Push/Whatsapp versenden und extern aufrufen.
(ja, ich weiss... kleiner Finger, ganze Hand usw. ;) )

DS_Starter

ZitatNun klappt es auch bei mir.

Schön ..  :)

Den Link noch als Reading zur Verfügung zu stellen sollte machbar sein. Versuche ich heute Abend noch mit reinzubauen .

Schönen Tag und viele Grüße
Heiko
Proxmox+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

#205
Hallo zusammen, hallo oli,

hier nun die Version mit einem ergänzten Reading für den Streaminglink (LiveStreamUrl).
Eventuell wäre es nicht verkehrt den Hoastnamen und den Port wegzulassen. Damit könnte man den Link  sehr einfach um einen externen Hostnamen und einen von 5000 abweichenden Port ergänzen und versenden.
Bitte gebt eure Meinung einfach mal dazu ab.

viele Grüße
Heiko
Proxmox+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

OliS.

Guten Morgen und danke für das Update!

Löppt!

Einen schönen Tag.

Oli
PVE auf MiniPC (N100) mit FHEM, Zigbee2MQTT, Homebridge, DeConz

oli82

Auch von dem zweiten Oli ein guten Morgen und ebenfalls danke.

Version funktioniert bei mir auf Anhieb.
Persönlich wünsche ich mit einer der beiden Varianten:
Entweder URL ab /webapi/entry.cgi?... als Reading
oder
attr URLext als Parameter, der dann die IP:Port des Readings ersetzt.
IP und Port definiert man ja bereits für das Modul selbst.

DS_Starter

#208
Hallo miteinander,

ich habe  das Attribut "livestreamprefix" eingebaut. 

Wenn es nicht gesetzt ist, wird auch für "LiveStreamUrl" die interne Serveradresse:Port verwendet. Das kann z.B. sinnvoll sein wenn man (so wie ich) für den externen Zugriff eine VPN-Verbindung benutzt und durch einen eigenen DNS-Server der Servername bzw. die verwendete interne IP sich nicht ändert.

Wird "livestreamprefix" gesetzt auf :

http(s)://<Servername>:<Port>

werden in "LiveStreamUrl" die entsprechenden Angaben überschrieben. So kann man auch eine HTTPS-Verbindung nutzen oder ein Portmapping bequem nutzen. Das ist gerade bei externen Zugriffen sicherlich nicht verkehrt.
Proxmox+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

Guten Morgen und danke für die schnelle Umsetzung.

Werde ich heute gleich mal testen!