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

OliS.

Zitat von: oli82 am 06 Januar 2016, 09:37:17
Schade.
Ich ging davon aus, dass durch die API Funktion auch der Status der Kamera permanent übergeben wird. also auch, wenn z.b. eine WLan Cam getrennt wurde usw.
Dann muss ich das anders lösen ;)

Danke trotzdem für die schnelle Hilfe und Klarstellung.

Ich hab das bisher mit dem Modul "mailcheck" gelöst. Die SS verschickt ja bei einigen Ereignissen, wie bsw. Kamera getrennt, eine Mail. Über mailcheck kann man dann beim Eintreffen einer Mail mit einem bestimmten Betreff in FHEM Aktionen auslösen. Ist zwar auch nur eine Krücke, aber funktionierte bisher ganz gut.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

DS_Starter

ZitatIch ging davon aus, dass durch die API Funktion auch der Status der Kamera permanent übergeben wird. also auch, wenn z.b. eine WLan Cam getrennt wurde

Also DIESER Status wird übertragen wenn man das Polling aktiviert. Es ist der Wert von "Availability", siehe auch http://fhem.de/commandref_DE.html#SSCamreadings.

Nur wird nicht der Status geändert wenn die KAMERA eine Bewegungserkennung signalisiert, das stand nicht im Fokus dieser Lösung.
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

#62
Guten Abend zusammen,

inzwischen habe ich die Funktion zur Flexibilisierung der Aufnahmezeit umgesetzt. (#51)
Allerdings habe ich mich doch entschlossen zum Starten bei "on" zu bleiben statt "on-for-timer". Es war mir einfach zu heiß ungewollt eine Endlosaufnahme zu starten die die Platte der DS zumüllt. Aber diese Funktion gibt es nun dennoch, nur etwas anders gelöst.

Hier sind die Neuerungen zusammengefasst:

- die rectime im define-String (letzte Stelle) wird nicht mehr ausgewertet und kann / soll gelöscht werden
- bei Restart des Systems nach dem SSCam-Update wird zunächst eine Default-Recordtime von 15 s der Kamera zugewiesen. Gleiches gilt
   bei der Neuanlage einer Kamera.
- über ein neues Attribut "rectime" kann der Nutzer den Standardwert der Aufnahmedauer jeder Kamera frei anpassen.
- der Wert "0" für "rectime" führt zu einer Endlosaufnahme die durch "set <name> off" gestoppt werden muß. Ein Logeintrag mit entsprechenden     
   Hinweis auf diesen Umstand wird geschrieben.
- mit dem Befehl "set <name> on [rectime]" wird die Aufnahmedauer temporär festgelegt und überschreibt einmalig sowohl den Defaultwert als
   auch das Attribut "rectime". Auch hier führt "set <name> on 0" zu einer Daueraufnahme
- wird das Attribut "rectime" gelöscht greift der Default-Wert (15s) für die Aufnahmedauer

Die neue Version hänge ich wieder hier an damit ihr sie vorab testen könnt. Nur die Dokumentation muß ich noch überarbeiten/anpassen.

Danach werde ich mich der Änderung der Credential-Speicherung zuwenden und komme zu dem Thema bestimmt auf dich zu marvin78....

Wünsche euch viel Spaß beim Test und Einsatz .....


   
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

OliS.

Hallo Heiko,

hab's kurz angetestet. Läuft auf den ersten Blick alles wie beschrieben bei mir. Danke für Deine Arbeit.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

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

dott.olivero

Wowww, nach einem solchen Modul hatte ich vor ca. 2 Monaten lange gesucht und mir dann mit den APIs und der leider nicht aktuellen Dokumentation selbst eine Lösung gebastelt.
Diese habe ich soeben unter Synology Surveillance Station: Aufnahmen und Kamerasteuerung beschrieben.

Vielen Dank für das neue Modul, DS_STARTER!

Bei der Verwendung dieses Moduls erhalte ich die Fehlermeldung:
ERROR - Login of User surveillance_user unsuccessful. Errorcode: 402 - Permission denied

Das ist merkwürdig, da der gleiche User mit meiner Bastellösung, die ja die gleiche API nutzt, Berechtigung hat.
Ich habe auch den "_" aus dem Kameranamen entfernt - keine Abhilfe.
Ich habe mir dann mal den Source Code angesehen. Die Zeile 915 der letzten Version bzw. 907 der im Feed verfügbaren Version habe ich geändert (Anführungszeichen sid gelöscht - dürfte aber egal sein und '&session=SurveillanceStation' hinzugefügt.
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&format=\"sid\"";

nach
$url = "http://$serveraddr:$serverport/webapi/$apiauthpath?api=$apiauth&version=$apiauthmaxver&method=Login&account=$username&passwd=$password&format=sid&session=SurveillanceStation"; 
Und schon gehts  :)

Hardware: Synology DS214play (auf jener läuft auch FHEM)
Firmware: DSM 5.2-5644 Update 1
Surveillance Station: 7.1-4110

Eine Idee, woran das liegen könnte?

Hier noch der Auszug aus dem Log mit Verbose 5:
2016.01.18 13:56:13 4: ss_terrazza - Path of SYNO.API.Auth selected: auth.cgi
2016.01.18 13:56:13 4: ss_terrazza - MaxVersion of SYNO.API.Auth selected: 4
2016.01.18 13:56:13 4: ss_terrazza - Path of SYNO.SurveillanceStation.ExternalRecording selected: entry.cgi
2016.01.18 13:56:13 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.ExternalRecording selected: 2
2016.01.18 13:56:13 4: ss_terrazza - Path of SYNO.SurveillanceStation.Camera selected: entry.cgi
2016.01.18 13:56:13 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.Camera (optimized): 7
2016.01.18 13:56:13 4: ss_terrazza - Path of SYNO.SurveillanceStation.SnapShot selected: entry.cgi
2016.01.18 13:56:13 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.SnapShot: 1
2016.01.18 13:56:13 4: ss_terrazza - Path of SYNO.SurveillanceStation.PTZ selected: entry.cgi
2016.01.18 13:56:13 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.PTZ: 4
2016.01.18 13:56:13 4: ss_terrazza - --- End Function getapisites nonblocking ---
2016.01.18 13:56:13 4: ss_terrazza - --- Begin Function serverlogin nonblocking ---
2016.01.18 13:56:13 4: ss_terrazza - URL-Call: http://192.168.1.101:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=4&method=Login&account=surveillance_user&passwd=passwort1234&format="sid"
2016.01.18 13:56:13 1: ss_terrazza - ERROR - Login of User surveillance_user unsuccessful. Errorcode: 402 - Permission denied
2016.01.18 13:56:13 4: ss_terrazza - --- End Function serverlogin nonblocking with error ---
2016.01.18 13:56:14 4: ss_terrazza - Retrieval PTZ-ListPatrols of IPCAM_HAUSTUERE starts now
2016.01.18 13:56:14 4: ss_terrazza - --- Begin Function getapisites nonblocking ---
2016.01.18 13:56:14 4: ss_terrazza - URL-Call: http://192.168.1.101: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
2016.01.18 13:56:14 4: ss_terrazza - JSON returned: $VAR1 = {
          'data' => {
                      'SYNO.SurveillanceStation.Camera' => {
                                                             'path' => '_______________________________________________________entry.cgi',
                                                             'requestFormat' => 'JSON',
                                                             'minVersion' => 1,
                                                             'maxVersion' => 8
                                                           },
                      'SYNO.SurveillanceStation.ExternalRecording' => {
                                                                        'path' => '_______________________________________________________entry.cgi',
                                                                        'requestFormat' => 'JSON',
                                                                        'minVersion' => 1,
                                                                        'maxVersion' => 2
                                                                      },
                      'SYNO.API.Auth' => {
                                           'minVersion' => 1,
                                           'maxVersion' => 4,
                                           'path' => 'auth.cgi'
                                         },
                      'SYNO.SurveillanceStation.SnapShot' => {
                                                               'minVersion' => 1,
                                                               'maxVersion' => 1,
                                                               'path' => '_______________________________________________________entry.cgi',
                                                               'requestFormat' => 'JSON'
                                                             },
                      'SYNO.SurveillanceStation.PTZ' => {
                                                          'minVersion' => 1,
                                                          'maxVersion' => 4,
                                                          'requestFormat' => 'JSON',
                                                          'path' => '_______________________________________________________entry.cgi'
                                                        }
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2016.01.18 13:56:14 4: ss_terrazza - Path of SYNO.API.Auth selected: auth.cgi
2016.01.18 13:56:14 4: ss_terrazza - MaxVersion of SYNO.API.Auth selected: 4
2016.01.18 13:56:14 4: ss_terrazza - Path of SYNO.SurveillanceStation.ExternalRecording selected: entry.cgi
2016.01.18 13:56:14 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.ExternalRecording selected: 2
2016.01.18 13:56:14 4: ss_terrazza - Path of SYNO.SurveillanceStation.Camera selected: entry.cgi
2016.01.18 13:56:14 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.Camera (optimized): 7
2016.01.18 13:56:14 4: ss_terrazza - Path of SYNO.SurveillanceStation.SnapShot selected: entry.cgi
2016.01.18 13:56:14 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.SnapShot: 1
2016.01.18 13:56:14 4: ss_terrazza - Path of SYNO.SurveillanceStation.PTZ selected: entry.cgi
2016.01.18 13:56:14 4: ss_terrazza - MaxVersion of SYNO.SurveillanceStation.PTZ: 4
2016.01.18 13:56:14 4: ss_terrazza - --- End Function getapisites nonblocking ---
2016.01.18 13:56:14 4: ss_terrazza - --- Begin Function serverlogin nonblocking ---
2016.01.18 13:56:14 4: ss_terrazza - URL-Call: http://192.168.1.101:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=4&method=Login&account=surveillance_user&passwd=passwort1234&format="sid"
2016.01.18 13:56:14 1: ss_terrazza - ERROR - Login of User surveillance_user unsuccessful. Errorcode: 402 - Permission denied
2016.01.18 13:56:14 4: ss_terrazza - --- End Function serverlogin nonblocking with error ---

eldrik

Hi,

in deinem eigenen Thread gibst du die Info, dass du lediglich einen Benutzer verwendest, der nur betrachten darf.

Ich meine mich zu erinnern, dass der Benutzer für SsCam die generelle Admin Berechtigung braucht?!

Edit: Jupp so steht es auch in der Commandref zu dem Modul!

Greetz
Eldrik

DS_Starter

Hallo dott.olivero, hallo zusammen,

ist schon witzig wie das Leben manchmal so spielt .... mit deinem Thread, vielleicht magst du ja dort noch eine Ergänzung mit einem Link hierher machen, da können sich vielleicht noch ein paar Leute Arbeit sparen ;)

Also danke für die Info. Gemeinsam mit den Mitstreitern hier im Forum arbeite ich stetig an einer Verbesserung und Erweiterung des Moduls und jede Hilfe und Anregung ist gerne willkommen.
Vielleicht möchtest du dich ebenfalls noch mit einbringen.
An diversen Sachen wie PTZ-Steuerung arbeite ich schon gedanklich, aber habe mir eine ToDo-Liste mit Prios gemacht. Es sind dann erst ein paar andere Sachen vorher dran. Und die Zeit spielt auch eine Rolle.....

Aber zu der Sache mit der "sid".

Das ist schon echt eigenartig, denn genau zu diesem Thema und dem Fehler "105 - Insufficient Privileges" den ich in der Anfangszeit oft hatte, kontaktierte ich letztes Jahr den Syno- Entwicklungssupport.
Daraus resultierte dann auch die Empfehlung zur Problemlösung die sid in Anführungszeichen zu setzen. Man wird die API-Doku in der nächsten Version entsprechend anpassen hieß es.
Die " " sind die wichtigen Bestandteile in den HTTP-Strings.  Das betrifft übrigens auch andere Aufrufstellen im Modul.

Auch ist die Verwendung der API-Aufrufe in der Doku nicht einheitlich, mal mit und mal ohne Anführungszeichen, wahrscheinlich implementieren an der API unterschiedliche Entwickler.  ;)

Du kannst "Session=SurveillanceStation" weglassen, es ist optional. Per Default erfolgt so das Login in das DSM, wobei der Zugriff auf SVS dann ebenfalls gegeben ist.

Mittlerweile, ich habe es gerade getestet, funktioniert bei mir der Aufruf sowohl mit sid als auch mit "sid"
Ich habe ebenfalls  die SVS Version 7.1-4110, das Update kam ja erst vor Kurzem. Eventuell hängt es damit zusammen obwohl das nicht erklärt weshalb es bei mir beiden Schreibweisen klappt und bei dir nicht.

Ich habe euch mal die aktuelleste Version hier angehängt in der ich die Anführungszeichen an der bezeichneten Stelle entfernt habe.

Bitte testet mal ob es bei euch (die bis jetzt auch keine Login-Probleme hatten)  ebenfalls noch funktioniert. Dann kann ich die Anführungszeichen generell an dieser Stelle entfernen und einchecken.

Und Eldrik  hat Recht .... der Nutzer sollte Admin-Rechte haben.

viele 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

dott.olivero

Hi Heiko,

Zitatmagst du ja dort noch eine Ergänzung mit einem Link hierher machen
den Link auf SSCAM hatte ich schon eingefügt  :)

ZitatDu kannst "Session=SurveillanceStation" weglassen, es ist optional. Per Default erfolgt so das Login in das DSM, wobei der Zugriff auf SVS dann ebenfalls gegeben ist.
Ah, okay, daher. Liegt nicht an den Quotes von sid oder "sid". Mein surveillance_user hat keinen Zugriff auf DSM (und soll ihn auch nicht bekommen).
Mit Deiner neuen Version kommt wieder der Login-Fehler. Ergänze ich allerdings 49_SSCam.pm > Zeile 911 um &session=SurveillanceStation, dann funktionierts auch mit dem Login (User mit Privileg "Betrachter für alle Objekte"), da ja dann in die Surveillance Station eingeloggt wird und nicht in DSM :). Liegt also an meinem User mit nicht zugeteilten Adminrechten (grundsätzlich habe ich gerne so wenig Rechte wie möglich, so viele wie ...) und nochmals grundsätzlich reichen allerdings ja auch Betrachterrechte.

Start funktioniert. Allerdings läuft die Aufzeichnung nicht die konfigurierten 90 Sek, sondern ca. 15-20s. Ich checke das parallel mit dem Tablet und sehe den roten Punkt an- und ausgehen. Ist das nur bei mir so?

Hier mal die Config:
define ss_terrazza SSCam 192.168.1.101 5000 surveillance_user passwort1234 IPCAM_TERRAZZA 90
attr ss_terrazza pollcaminfoall 0


Liebe Grüße
- Oliver

P.S.:
ZitatVielleicht möchtest du dich ebenfalls noch mit einbringen
Immer gerne. Ich bin nur kein guter Programmierer...

dott.olivero

Zitat von: eldrik am 18 Januar 2016, 18:39:23
Ich meine mich zu erinnern, dass der Benutzer für SsCam die generelle Admin Berechtigung braucht?!

Ja, Eldrik, danke für den Hinweis. Das hatte ich gesehen. Mit der eigenen Bastellösung habe ich festgestellt, dass keine Adminrechte benötigt werden wenn die Auth-API sich nur in die Surveillance Station einloggt und nicht in die DSM.

DS_Starter

#70
Hallo Oliver,

Zitat....und nochmals grundsätzlich reichen allerdings ja auch Betrachterrechte.

Naja, kommt sicherlich darauf an welche Funktionen  das Modul letztlich ausführen soll. Deaktivieren von Kameras sollte ein User mit Betrachterrechten zum Beispiel nicht ausführen können.

Wir können aber ingesamt auf das Thema gern nochmal zurückkommen wenn ein höherer "Fertigungsstand" des Moduls erreicht ist. Momentan bin ich mit der Synology-Entwicklung im Dialog um das Versenden von Mails (optional mit  Snapshots) zu  realisieren wenn eine Aufnahme angetriggert wird. Sowas gibt es in der SVS Web API nicht out of the Box  (wird im DSM realisiert) und vielleicht braucht es dann immer noch ein Login in das DSM.
Deswegen erst einmal nicht "Session=SurveillanceStation" , ist ein bisschen proaktiv.

Aber schön dass es jetzt funktioniert. Bezüglich der Aufnahmedauer berücksichtige bitte dass es dafür seit gestern ein Attribut "rectime" gibt wo das eingestellt wird !

viele Grüße
Heiko

EDIT: Du kannst dem Nutzer im DSM ja auch nur die Admin-Berechtigung für die SVS geben und den Zugriff auf Filesysteme und andere Anwendungen entziehen. So hab ich das zur Zeit eingerichtet.
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

Hallo zusammen,

ich hatte die Zeit heute noch genutzt um den festen HTTP-Timeoutwert (alt 10 Sekunden) durch ein Attribut abzulösen.
Mit dem morgigen Update kommt die Änderung mit:

HTTP-Timeout setzen

Der Standardwert für den HTTP-Timeout (API-Aufrufe) beträgt 4 Sekunden.
Durch Setzen des  Attributes "httptimeout" > 0 kann dieser Wert bei Bedarf entsprechend den technischen Gegebenheiten angepasst werden.

Falls also jemand Schwierigkeiten mit dem Standardwert hat, bitte daran denken ihn entsprechend anzupassen.

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

Guten Tag miteinander,

angeregt durch die Fehlersuche gestern Abend und eine Nacht darüber schlafen werde ich wohl mit der anstehenden Überarbeitung der Credential-Ablage auch eine Wahlmöglichkeit des Login entweder in das DSM oder die SVS mit vorsehen. Dadurch steht dem Nutzer beides zur Verfügung, er kann je nach seinen beabsichtigten Funktionen die Methode wählen,  und das Modul ist auf kommende Funktionalitäten ebenfalls vorbereitet.
Ich stelle eine Version hier zur Verfügung wenn ich dazu gekommen bin.
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

OliS.

Zitat von: DS_Starter am 18 Januar 2016, 18:45:05
Bitte testet mal ob es bei euch (die bis jetzt auch keine Login-Probleme hatten)  ebenfalls noch funktioniert. Dann kann ich die Anführungszeichen generell an dieser Stelle entfernen und einchecken.

Hallo Heiko,

läuft bei mir ohne Probleme. Ich habe allerdings SS Version 7.1-4080. Ein Update wird mir nicht angezeigt. Könnte daran liegen, dass bei meinem DSM ein Update fällig wäre. Ist das für Dich wichtig, dass die SS aktuell ist? Dann würde ich die Tage mal das DSM Update installieren.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

DS_Starter

Nabend Oli,

super .... danke.  Ich denke Synology hält nicht auf allen seinen DS-Fabrikaten die Version der Pakete genau gleich. Die 7.1-4080 ist dann wahrscheinlich die für deine Architektur aktuelle SVS.
Das sollte schon passen. Hoffentlich hält Syno die API Implementierung auf seinen Auslieferungen wenigstens gleich  ;)
Was hast du gleich für eine Synology ?

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