:: fischer-net.de

Wer ist Online

Aktuell sind 85 Gäste und keine Mitglieder online

Tagcloud

Im Artikel FHEM Modul IPCAM holt Bilder habe ich im August 2012 mein neues Modul IPCAM vorgestellt. Dieses Modul habe ich nun etwas überarbeitet und um neue Funktionen erweitert.

Dieser Artikel beschreibt die neuen Funktionen des Moduls IPCAM etwas näher. Bei den hier aufgeführten Befehlen beziehe ich mich auf IP-Kameras von INSTAR, die ich zum Teil im Einsatz habe. Siehe dazu auch den Artikel Surveillance - Video-Hardware, wobei ich dort die Kameras mit Pan / Tilt Funktionen nicht aufgezählt habe. Dies können z.B. die Modelle IN-3005, IN-3010, IN-3011, IN-4009, IN-4010, IN-4011 sowie IN-6011 von INSTAR.

 

HTTP Basic Authentication URL

Ein FHEM Anwender kam mit der Bitte auf mich zu, eine Basic Authentication in dem Modul IPCAM zu realisieren. Idealerweise lieferte er gleich den passenden Patch mit. Nach einer kurzen Prüfung habe ich diese Funktion soweit in das Modul IPCAM übernommen.

Man hat nun die Möglichkeit sich an einer beliebigen Quelle via http://user:pass[at]foo.bar anzumelden. Dazu muss das Attribut basicauth für das jeweilige IPCAM Device in FHEM gesetzt sein:

attr ipcam basicauth myUsername:myPassword

Da es nicht sinnvoll erscheint diese Informationen im Klartext in der FHEM Konfiguration abzulegen (dieses Attribut ist dann auch für alle Anwender in der WebGUI sichtbar), ist es auch wie bereits zuvor möglich, diese Credentials in einer separaten Datei abzulegen. Siehe dazu auch den obigen Artikel, bzw. die Dokumentation zu IPCAM. Wählt man diesen (empfohlenen) Weg, dann muß das Attribut die entsprechenden Platzhalter beinhalten:

attr ipcam basicauth {USERNAME}:{PASSWORD}

Verwendet man das Attribut basicauth, so sollte man darauf achten, das in dem Attribut path die Credentials nicht mehr auftauchen sollten. Nimmt man das Beispiel aus dem Eingangs erwähnten Artikel, würde sonst die URI wie folgt aussehen:

http://foo:bar[at]192.168.1.205/snapshot.cgi?user=foo&pwd=bar

Das wäre nicht sinnvoll. Also bitte vorher prüfen, was die Kamera möchte: basicauth oder username, password als Parameter.

 

Steuerung der Kamera

War es bisher mit dem Modul IPCAM nur möglich Bilder zu holen, so kann ab die Kamera nun auch gesteuert werden. Dazu habe ich IPCAM um einige set Befehle erweitert. Diese Befehle setzen voraus, das die Kamera diese Funktionen auch unterstützt.

 

Pan, Tilt und sonstige Positionierung

Über die set-Funtktionen pan, tilt und pos kann die Kamera (sofern unterstützt) in eine beliebige Position gefahren werden. Dabei unterstützt pan die Richtungsangaben left und right und tilt die Richtungsangaben up und down. Optional kann noch eine Schrittweite angegeben werden:

set ipcam pan left 1

Darüber hinaus können bis zu 15 vordefinierte Positionen definiert und angefahren werden. Zusätzlich zu diesen Positionen gibt es auch noch die "Home" Position. Diese sollte die Kamera in die Ausgangsstellung positionieren:

set ipcam pos 3
set ipcam pos home

Da sich bei den meisten Kameras der Pfad zum Holen von Bildern (z.B. snpashot.cgi) von dem Pfad zur Positionierung (z.B. decoder_control.cgi) unterscheidet, kann ein abweichender Pfad für die Positionierung über das Attribut pathPanTilt gesetzt werden:

attr ipcam pathPanTilt decoder_control.cgi?

bzw.

attr ipcam pathPanTilt decoder_control.cgi?user={USERNAME}&pwd={PASSWORD}

sofern eine Anmeldung notwendig ist. Auch hier gilt wieder zu beachten: Wurde die Eingangs beschriebene HTTP Authentification via basicauth gesetzt, so sollten an dieser Stelle keine Credentials im Pfad gesetzt werden.

Die je Kameratyp unterschiedlichen Befehle für die set-Funktionen pan, tilt, pos sowie die Schrittweite werden über entsprechende Attribute vorgegeben. Diese Attribute haben in der Regel die gleiche Bezeichnung wie der set-Befehl, zusätzlich mit dem Präfix cmd. Hier ein paar Beispiele für oben erwähnte INSTAR Kameras:

attr ipcam cmdTiltUp command=0
attr ipcam cmdTiltDown command=2
attr ipcam cmdPanLeft command=4
attr ipcam cmdPanRight command=6
attr ipcam cmdStep onstep

Benutzerdefinierte Positionen, sowie die 'Home' Position werden wie folgt gesetzt:

attr ipcam cmdPosHome command=25
attr ipcam cmdPos01 command=31
attr ipcam cmdPos02 command=33

 

Benutzerdefinierte Befehle

Das Modul IPCAM unterstützt auch benutzerdefinierte Befehle. Hierzu wurde die set-Funktion cmd implementiert. Auch hier ist es wieder möglich, bis zu 15 freiwählbare Kamerabefehle zu definieren:

attr ipcam cmd01 led_mode=0
attr ipcam cmd02 resolution=8

Da auch hier der Pfad zum Setzen der Befehle in der Regel von dem Positionierungspfad sowie dem Snapshotpfad abweicht, gibt es zusätzlich das Attribut pathCmd. Ist dieses gesetzt, so wird der Pfad den Befehlen vorangestellt:

attr ipcam3 pathCmd set_misc.cgi

 

Rohbefehl senden 

Reichen die obigen set-Funktionen für die Positionierungen sowie benutzerdefinierten Befehle nicht aus oder weichen die möglichen Kamerabefehle komplett von diesen Funktionen ab, so kann die set-Funktion raw genutzt werden.

Damit ist es möglich jede beliebige Zeichenkette an die Kamera zu senden. Auch hier gilt wieder: die Schlüsselwörter {USERNAME} und {PASSWORD} werden automatisch ersetzt, sofern das Attribut credentials gesetzt ist. Beispiel:

set ipcam raw misc_cmd.cgi?foo=bar

 

Zusammenfassung

Durch die neuen set-Funktionen habe ich das Modul IPCAM zu einer (hoffentlich) vollständigen und universellen Kamerasteuerung erweitert. So kann z.B. eine Kamera aus FHEM heraus zu einer definierten Position geschwenkt werden und in dieser Position Bilder "schiessen", wenn ein Bewegungsmelder auslöst. Im Anschluß kann die Kamera über den pos home Befehl in die Ausgangstellung gefahren werden.

Nicht zu vergessen: Mit dem Modul IPCAM können nicht nur Bilder von einer Netzwerk-Kamera geholt werden, sondern auch von einer beliebigen WebSite. So können z.B. regelmäßig Wetterkarten geholt werden. Der Phantasie sind hier keine Grenzen gesetzt.

Ich hoffe, "der Eine oder die Andere" findet für die neuen Funktionen eine Verwendung. Das erweiterte Modul IPCAM wird ab dem 02.02.2013 über den FHEM internen Update-Prozess verteilt.

Viel Spaß damit...

Bewertung insgesamt (0)

0 von 5 Sternen
Kommentar hinzufügen
  • Gast - R. Strößenreuther

    Zunächst: Herzlichen Dank für das IPCAM-Modul. Es löst einige Probleme mit Motion Detection bei meinen Edimax-Cams. Supersache !!<br />Hier noch ein Hinweis zum Thema basicauth, was zumindest Anfänger wie mich aus der Spur geworfen hat: nachdem eine direkte Eingabe von Ip+Port+snapshot.jpg+user+pwd im Browser ein Bild von der Cam geliefert hat, habe ich das auch so komplett in den String hinter attr path ... übernommen; das führt aber zu einem "wrong or unknown format" in IPCAM_guessFileFormat. Erst eine Trennung über attr basicauth user:pwd und auf attr path snapshot.jpg verkürztem String führt zum Erfolg. Es gibt in der o.g. Webseite zu IPCAM zwar einen Hinweis in der Art, aber es ist halt nicht deutlich, dass der komplette String wie im Browser dann bei identischer Form in FHEM zum Problem wird (warum auch immer). Vielleicht dazu etwas mehr in der Webseite / FHEM-doc schreiben, wäre hilfreich.<br />Nochmal danke für das tolle IPCAM Modul.<br />MfG - rstr

  • Gast - R. Strößenreuther

    Sorry,Workaround aus vorherigem Posting reicht allein doch nicht aus ! Die Edimax-Cams wollen vorher per Browser direkt eine Authentifizierung - erst danach klappt die Kombo aus basicauth + path snapshot.jpg + get Image. Ohne das kriegt die IPCAM_guessFileFormat statt eines jpg-Streams einen HTML-String über fehlendes Login von den Edimax-Cams zurück, was natürlich zu unknown Format in Folge führt. Warum die Variante path snapshot.jpg?user=..&pwd=... nicht dasselbe tut wie ein im Browser direkt eingetipptes snapshot.jpg?user=..&pwd=... ist mir noch ein Rätsel - ich sehe mir mal an, was FHEM/IPCAM.pm an die Cam bei einem path.... tatsächlich weiterreicht.

  • Gast - Erik Donner

    Halle zusammen,<br />Hab das gleiche Problem mit meiner y-Cam.<br />Habt ihr schon fortschritte erziehen können hinsichtlich der authentisierung ?<br />Selbst wenn ich in der Cam die authentisierung ausschalte, die der Fehler auf ;-(<br />Für Ratschläge wäre ich dankbar.<br />Gruß<br />Erik

  • Gast - Bernd

    Hallo zusammen,
    ich bekomme bei meiner Wanscam die gleichen Probleme mit der Authentifizierung. Die URL im Browser aufzurufen, bringt mir direkt das Bild. Per wget bekomme ich es auch heruntergeladen. Nur über das IPCam - Modul bekomme ich ein unsupported file format.

    Gibt es schon Neuigkeiten zu dem Problem?

    Danke.

    Gruß,
    Bernd

  • Gast - Dr. T. Demuth

    Hallo zusammen.
    Mir geht es genauso. Ich erhalte keine Besserung durch Nutzung von basicauth.
    Gibt es alternative Hilfslösungen?

    td

  • Gast - Udo

    gibt es denn jemanden bei dem es geht
    meine Bilder werden in *.svg gespeichert
    können aber nicht geöffnet werden

  • Gast - Andre

    Hallo!

    Vorab, ein super Modul! Was noch fehlt: Wenn Sceenshots gemacht werden mit timestamps, dass die neuesten immer als REading 1,2,3 ... abrufbar sind. Somit könnte man z.b. immer wenn es klingelt 2,3 screens machen und diese später in Fhem Tablet UI anzeigen lassen. Das ist mit dem Modul leider nicht möglich. Dies würde nur mit Snaps OHNE Timestamp gehen aber dann würden die zuerst geschossenen ja beim 2. Klingeln direkt überschrieben werden

Haus-Automatisierung bei conrad.de
Egal ob Stehlampe, Schrankbeleuchtung, Rollladen oder auch Heizlüfter: Mit Conrad.de steuern Sie die unterschiedlichsten Verbraucher effektiv und bequem vom Sessel aus - zu enorm günstigen Preisen! Hier gehts zu den Produkten...

Powered by ...

 

 

reichelt elektronik – Elektronik und PC-Technik