Neues Modul IPCAM holt Bilder

2,174 views
Skip to first unread message

Martin Fischer

unread,
Aug 11, 2012, 6:46:01 PM8/11/12
to fhem-...@googlegroups.com
Ich habe mich gestern mal an ein neues Modul gemacht, das vorangig Netzwerk-
Kameras in FHEM einbindet.

Über das Modul ist es möglich Ereignis- oder Zeitgesteuert Bilder von IP-
Kameras sowie eine Grafik (Wetterkarte, WebCams, Börsengrafiken, etc.) von
einer beliebigen Website zu holen.

Das Modul liegt im SVN und wird ab dem 12.08. Vormittags über updatefhem
verteilt.

Im folgenden ein Auszug aus der commandref. Ein weiterführendes Beispiel inkl.
dem Versand der "Aufnahmen" via eMail ist auf meiner WebSite nachzulesen:

http://www.fischer-net.de/hausautomation/fhem/

Viel Spaß damit...

Gruß Martin

#############################

IPCAM


Define
define <name> IPCAM <ip[:port]>

Defines a network camera device to trigger snapshots on events.

Network cameras (IP cameras) usually have a build-in function to
create snapshot images. This module enables the event- or time-controlled
recording of these images.
In addition, this module allows the recording of many image formats
like JPEG, PNG, GIF, TIFF, BMP, ICO, PPM, XPM, XBM and SVG. The only
requirement is that the recorded image must be accessible via a URL.
So it is also possible to record images of e.g. a public Weather
Camera from the internet or any picture of a website.

Examples:

A local ip-cam takes 5 snapshots with 10 seconds delay per call:
define ipcam IPCAM 192.168.1.205
attr ipcam delay 10
attr ipcam path snapshot.cgi?user=foo&pwd=bar
attr ipcam snapshots 5
attr ipcam storage /srv/share/surveillance/snapshots

A notify on a motiondetection of a specified device:
define MOTION.not.01 notify GH.ga.SEC.MD.01:.*on.* get ipcam image

Send an eMail after snapshots are taken:
define MOTION.not.02 notify ipcam:.*snapshots.* {
myEmailFuntion("ipcam") }

A public web-cam takes only 1 snapshot per call:
define schloss IPCAM http://www2.braunschweig.de
attr schloss path webcam/schloss.jpg
attr schloss storage /srv/share/surveillance/snapshots

An at-Job takes every hour a snapshot:
define snapshot_schloss at +*00:01:00 get schloss image

dou...@gmx.de

unread,
Aug 12, 2012, 1:08:20 AM8/12/12
to fhem-...@googlegroups.com


Super Sache! 
Danke schön!! Sehe ich das richtig, das das (auch) für die Instar-Cams gedacht ist? Habe zwei von den Dingern hier auf dem Gelände.
Muss ich auch beizeiten mal ausprobieren... aber noch soo viele Dinge vorher... (Loggen, Plotten, Heizungsregelung ... puh..)

VG
Ralf

Maz

unread,
Aug 12, 2012, 6:05:40 AM8/12/12
to fhem-...@googlegroups.com
Hi Martin,

eine sehr gute Sache.
Eine Anmerkung:
Es wäre doch ausreichend als Parameter bei der Device-Definition den kompletten URL anzugeben, oder spricht etwas dagegen?
Dann benötigt man kein attribut "path".

vg
Maz

Martin Fischer

unread,
Aug 12, 2012, 2:10:23 PM8/12/12
to fhem-...@googlegroups.com
Hiya Ralf,

Am Samstag, 11. August 2012, 22:08:20 schrieb dou...@m1n1.de:
> Super Sache!

schön ;-)

> Danke schön!! Sehe ich das richtig, das das (auch) für die Instar-Cams
> gedacht ist? Habe zwei von den Dingern hier auf dem Gelände.

jepp.. das ist auch für die instar-cams.. auch ich habe hier mehrere im
einsatz.. aber wie geschrieben: es sollte eigentlich mit jeder anderen cam,
sowie jedem via url erreichbarem image gehen...

> Muss ich auch beizeiten mal ausprobieren... aber noch soo viele Dinge
> vorher... (Loggen, Plotten, Heizungsregelung ... puh..)

glaub ich dir... auch bei mir kommen nach mehr als 4 jahren immer wieder neue
dinge dazu.. es wird auf alle fälle nicht langweilig ;-)

gruss martin

Martin Fischer

unread,
Aug 12, 2012, 2:21:08 PM8/12/12
to fhem-...@googlegroups.com
Am Sonntag, 12. August 2012, 03:05:40 schrieb Maz:
> [...]
> eine sehr gute Sache.

das freut mich..

> Eine Anmerkung:
> Es wäre doch ausreichend als Parameter bei der Device-Definition den
> kompletten URL anzugeben, oder spricht etwas dagegen?
> Dann benötigt man kein attribut "path".

du sagst es: es _wäre_ möglich gewesen aber ich wollte es nicht ;-)

vor der veröffentlichung gab es sogar noch ein "query" attribut.. ja, ich
weiss: manchmal kann ich auch pedantisch sein ;-)

also mal im ernst:

a) der übersichtshalber wollte ich in der konfig keine "ellenlangen" angaben
im define..
b) das auslagern der credentials (anmeldedaten innerhalb des query-teils)
wollte ich möglich machen, so dass username und passwort nicht in der config
stehen..

und letztlich

c) weiss ich noch nicht, in wie weit das modul noch ausbaubar ist, so dass
ggf. andere funktionen bzw. spezielle cams eine andere behandlung benötigen..

daher hatte ich die trennung der URI (so wie es tatsächlich definiert ist) wie
folgt vorgesehen..
schema://authority/path?query

um es nicht zu kompliziert zu machen, habe ich es schon vereinfacht, path und
query zu "path" zusammengefasst...

soviel zum hintergrund...

zu c) gibt es allerdings noch eine anmerkung:
wenn die credentials ausgelagert werden, stehen sie zur zeit noch im klartext
im logfile :-(

hier muss ich nochmal mit boris sprechen (oder ich passe es bei gelegenheit
selber an), dass das modul GetFileFromURL auch einen "quiet" modus
unterstützt..

gruss martin

Dr. Boris Neubert

unread,
Aug 12, 2012, 2:36:39 PM8/12/12
to fhem-...@googlegroups.com
ja, das brauchen wir. Die private Google-Kalender-URL wird nämlich auch
protokolliert.

Grüße
Boris

Martin Fischer

unread,
Aug 12, 2012, 2:54:57 PM8/12/12
to fhem-...@googlegroups.com
Am Sonntag, 12. August 2012, 20:36:39 schrieb Dr. Boris Neubert:
> [...]
> > hier muss ich nochmal mit boris sprechen (oder ich passe es bei
> > gelegenheit
> > selber an), dass das modul GetFileFromURL auch einen "quiet" modus
> > unterstützt..
>
> ja, das brauchen wir. Die private Google-Kalender-URL wird nämlich auch
> protokolliert.

machst du oder soll ich? bei mir dauert es dann aber etwas länger...

gruss

Dr. Boris Neubert

unread,
Aug 12, 2012, 3:50:44 PM8/12/12
to fhem-...@googlegroups.com




Martin Fischer <m_fi...@gmx.de> schrieb:

>Am Sonntag, 12. August 2012, 20:36:39 schrieb Dr. Boris Neubert:
>> [...]
>> > hier muss ich nochmal mit boris sprechen (oder ich passe es bei
>> > gelegenheit
>> > selber an), dass das modul GetFileFromURL auch einen "quiet" modus
>> > unterstützt.

ich kümmere mich darum
bn

Martin Fischer

unread,
Aug 12, 2012, 4:14:40 PM8/12/12
to fhem-...@googlegroups.com
Am Sonntag, 12. August 2012, 21:50:44 schrieb Dr. Boris Neubert:
> [...]
> ich kümmere mich darum

prima, danke...

Dr. Boris Neubert

unread,
Aug 14, 2012, 3:03:40 PM8/14/12
to fhem-...@googlegroups.com
# $Id: HttpUtils.pm 1801 2012-08-14 19:02:14Z borisneubert $
added sub GetFileFromURLQuiet() which does not show URL in logs

Hilft bei Calendar nicht, da die URL im Klartext in den internen
Einstellungen des Device abgelegt ist.

Grüße
Boris

Martin Fischer

unread,
Aug 15, 2012, 4:30:06 PM8/15/12
to fhem-...@googlegroups.com
Am Dienstag, 14. August 2012, 21:03:40 schrieb Dr. Boris Neubert:
> [...]
> # $Id: HttpUtils.pm 1801 2012-08-14 19:02:14Z borisneubert $
> added sub GetFileFromURLQuiet() which does not show URL in logs
>
> Hilft bei Calendar nicht, da die URL im Klartext in den internen
> Einstellungen des Device abgelegt ist.

super.. ärgerlich mit Calendar aber im modul IPCAM läufts.. ;-)

gruss..

gmb

unread,
Dec 1, 2012, 1:04:30 AM12/1/12
to fhem-...@googlegroups.com
Bitte beachten:

Die Definition für das Holen eines Bildes von einer Webseite lautet nicht, wie bisher beschrieben, z.B.:
 
define schloss IPCAM http://www2.braunschweig.de 

sondern:

define schloss IPCAM www2.braunschweig.de

Siehe dazu:


Gruß
Gerhard
Reply all
Reply to author
Forward
0 new messages