FHEM Forum
FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Martin Fischer am 01 Februar 2013, 20:30:37
-
Hallo @all,
auf Anregung und einem Patch von marc habe ich das Modul IPCAM um eine HTTP Basic Authentication erweitert. Und weil ich gerade dabei war, habe ich dem Modul noch neue set-Funktionen spendiert.
Mit den neuen set-Funktionen kann nun eine Kamera auch gesteuert werden. Neben diversen pan/tilt Funktionen, können bis zu 15 vordefinierte Positionen angefahren werden. Darüber hinaus kann man sich bis zu 15 frei wählbare Kamerabefehle definieren und einfach abrufen. Und wem das noch nicht reicht, der kann auch "raw" Befehle an die Kamera senden.
Das überarbeitet Modul wird ab morgen via update verteilt. Wer es nicht abwarten kann, der kann es ab sofort aus dem SVN installieren. Weitere Informationen sind der commandref.html zu entnehmen.
Eine ausführliche Beschreibung der Funktionen habe ich auf meiner Homepage im Artikel FHEM Modul IPCAM überarbeitet (http://www.fischer-net.de/hausautomation/fhem/62-fhem-modul-ipcam-ueberarbeitet.html) zusammen gefasst.
Viel Spaß damit...
Gruss Martin
-
habs gerade schon auf deiner Seite gelesen ;)
Super genial vielen Dank für noch so ein tolles Modul.
Bin derzeit dabei den iSpy Server Pfad der Kamera in Fhem zu bringen mal schauen ob das klappt ;)
-
> Super genial vielen Dank für noch so ein tolles Modul.
büdde schön ;-)
-
Hallo Martin !
Super, dass Du das übernommen hast, vielen Dank !
Gruß, Marc
-
> Super, dass Du das übernommen hast, vielen Dank !
gern. sofern sowas sinnvoll ist, warum sollte man es dann verweigern. ausserdem hattest du ja schon die paar zeilen mit dem patch für basicauth beigesteuert. fehlte nur noch die doku ;-)
gruss und viel spass damit...
-
Hallo Martin,
deinen Modul IPCAM finde ich klasse, und konnte ohne weiteres implementieren (INSTAR 4009).
Da ich verschiedene Positionen anfahre würde ich gerne auch Zoom anwenden.
Wäre möglich bei Gelegenheit das Modul um folgendes:
attr ipcam cmdZoomIn command=95
attr ipcam cmdZoomOut command=94
zu erweitern?
Gruß Gerhard
-
Hi Martin,
erstmal Danke für das IPCAM Modul
ich verwende es mit einer ZAVIO P5110 Pan/Tilt Webcam. Diese CAM gibts auch unter anderen Namen bei diversen Versendern (relativ) günstig.
Falls es noch jemand jemand brauchen kann, die Attributes für diese CAM:
basicauth {USERNAME}:{PASSWORD}
cmdPanLeft move=left&interval=150000
cmdPanRight move=right&interval=150000
cmdPos01 gotoserverpresetname=Aussen
cmdPosHome move=home
cmdTiltDown move=down&interval=150000
cmdTiltUp move=up&interval=150000
credentials ./credentials.cfg
path jpg/image.jpg
pathCmd cgi-bin/operator/ptzset?
pathPanTilt cgi-bin/operator/ptzset?
storage ./www/webcam
timestamp 1
l.g. erwin
-
Hallo Erwin,
> ich verwende es mit einer ZAVIO P5110 Pan/Tilt Webcam. Diese CAM gibts auch
> unter anderen Namen bei diversen Versendern (relativ) günstig.
>
> Falls es noch jemand jemand brauchen kann, die Attributes für diese CAM:
Prima, danke! Vielleicht kann das ja der Eine oder Andere als Vorlage nutzen.
Gruß Martin
-
Moin Martin,
ich hab leider grosse Probleme mit meiner Instar IN-3010
Besonders nach dem letzten Update des WebUI bekomme ich immer die Fehlermeldung im Log:
get CasaCam image
....
2013.04.20 09:42:23 1: IPCAM CasaCam Wrong or not supported image format: unknown
2013.04.20 09:42:49 1: IPCAM CasaCam Wrong or not supported image format: unknown
2013.04.20 09:43:21 1: IPCAM CasaCam Wrong or not supported image format: unknown
(siehe Anhang / see attachement)
Mit dem kommando in der Adresszeile meines Browsers bekomme ich ein Bild, und die das Kommando "get image" funktioniert MANCHMAL.
Was mache ich falsch?
VG
Ralf
-
Hallo zusammen, ich hätte da gerne mal wieder ein Problem...
habe meine IP-Cam (Instar 3010) "eingehängt" mit
define IPC_Benni IPCAM 10.15.30.110
attr IPC_Benni storage ./snapshots
attr IPC_Benni path snapshot.cgi?user=xxx&pwd=xxxx
attr IPC_Benni cmdTiltUp command=0
attr IPC_Benni cmdTiltDown command=2
attr IPC_Benni cmdPanLeft command=4
attr IPC_Benni cmdPanRight command=6
attr IPC_Benni cmdStep onstep
attr IPC_Benni room Kinderzimmer
Leider habe ich folgende Problemchen:
- Fhem macht mir keinen snapshot. Wenn ich das mit
get IPC_Benni image
auslöse, sagt mir Fhem:
2013.06.03 21:11:00 1: IPCAM IPC_Benni Wrong or not supported image format: can't open source image: No such file or directory
Wenn ich im Browser direkt auf die 10.15.30.110/snapshot.cgi?user=xxx&pwd=xxxx gehe, bekomme ich aber sehr wohl ein Standbild angezeigt.
- Auch Pan/Tilt mag er mir nicht nehmen. Ich habe das wie auf fischer-net.de "eingerichtet", aber leider passiert nix bei den entsprechenden Befehlen. Nichtmal im Log finde ich etwas.
Was mache ich denn diesmal falsch?
Beste Grüße
Der Fragenonkel doc
-
hallo,
hat von euch das Problem jemand gelöst ?
bekomme folgenden Eintrag in die Log:
IPCAM Cam1 Wrong or not supported image format: can't open source image: No such file or directory
Config ist:
define Cam1 IPCAM 192.168.3.10:81
attr Cam1 path /snapshot.cgi?user=xxxxx&pwd=xxxxx ( mit und ohne / am Anfang )
attr Cam1 storage ./www/snapshots
die Liveansicht funktioniert: )
define LiveCam1 weblink iframe http://192.168.3.10:81/snapshot.cgi?user=xxxxx&pwd=xxxxx
attr LiveCam1 htmlattr width="640" height="480" frameborder="0" marginheight="0"
Danke für Eure Hilfe
Andreas
-
Jetzt habe ich mich durch jede Menge Seiten auf http://www.fischer-net.de geklickt, aber leider das Modul nicht gefunden.
Wo kann ich das IPCAM Modul herunterladen?
-
Hallo!
Hätte da auch mal eine kurze frage, bei http://192.168.178.158:80/snapshot.cgi?user=xxxxx&pwd=xxxxx
bekomme ich immer nur ein standbild und kein Livebild
Ist das normal so? Ist das von Ip-cam unterschiedlich?
Mfg Steffen
-
Hi Steffen,
ja ist normal. "snapshot.cgi" sagt ja schon "Schnappschuss". Du musst die CGI- Befehle deiner Kamera besorgen (Hersteller / Webseite). Da steht dann auch drin, wie du das Livebild bekommst.
Gruß
Frank
-
@MBPower
Du hast das Modul. Gehört zur Grundausrüstung 8)
Ich empfehle, mal einen Blick in die Commandref zu werfen. Da steht alles wichtige drinnen.
-
Hallo Leute,
versuche verzweifelt meine IPcam zum laufen zu bekommen und scheitere wie viele vor mir an dem Fehler
IPCAM Wrong or not supported image format
Habe mal alles mit debugstatements versehen und das loglevel hochgedreht,
es liegt offensichtlich daran dass $snapshot = GetFileFromURLQuiet($camURI);
nix zurückliefert "empty answer received".
verflixte httpUtils mal wieder ;)
Falls der Fehler bei einem von euch auftritt schlage ich vor get von LWP::Simple zu verwenden:
$snapshot = get($camURI);
dann läuft alles wunderbar! Muss man ggf auf den Fritzboxen noch installieren...
-
Hallo,
habe den gleichen Fehler..... :(.....
Nach dem Anpassen, wie oben beschrieben....stürzt FHEM beim Versuch einen Snapshot zumachen total ab....
Gibt es da schon ein Lösung....
Ach ja....wenn die den Link für die IPCAM direkt in den in Fierfox eingebe, bekomme ich das Bild.....
Gruß,
Joachim
-
Hallo Joachim,
ist LWP::Simple installiert?
Evtl per cpan nachinstallieren oder händisch auf den den Fritzboxen.
Ansonsten, was sagt das log?
-
Hallo,
habe es gerade nochmal versucht.....jetzt gings....
LWP::Simple war installiert....
..ich befürchte, das ich beim 1.Versuch das "get" groß geschrieben hatte.. :(..
Vielen Dank,
gruß,
Joachim
-
Mal eine blöde Frage, wo genau muss ich "$snapshot = get($camURI)" integrieren ?
-
Im Modulcode, aber nur wenns Originalmodul wirklich nicht geht ::)
-
Hallo,
stehe auf dem Schlauch:
Bei mir tritt das genannte Problem mit GetFileFromURLQuiet auf.
Per cpan LWP::Simple installiert.
Bei Aufruf von "get Kamera image" stürzt fhem ab: "Undefined subroutine &main::get called at /opt/fhem/FHEM/49_IPCAM.pm line 381."
Warum findet fhem "get" nicht? Kann oder muß ich den Aufruf näher qualifizieren?
Gruß
td
-
aus dem Bauch raus würde ich mal vorschlagen du baust noch ein "use LWP::Simple;" ein.
-
Danke für den Hinweis. fhem stürzt nicht ab und findet "get", aber leider tritt weiterhin auf:
"IPCAM KameraEinfahrt Wrong or not supported image format: unknown"
Die Kamera ist eine FOSCAM 9805W.
Gruß
td
-
Gibts für das Problem inzwischen eine Lösung? Bei mir ist das selbe --> Foscam 9803P.
Komme einfach nicht weiter! :-(
-
... schlage ich vor get von LWP::Simple zu verwenden:
$snapshot = get($camURI);
dann läuft alles wunderbar! Muss man ggf auf den Fritzboxen noch installieren...
-
Habe ich getan, und zwar folgendermaßen:
Zunächst mittels
cpan install LWP::Simple
die Installation auf dem RPi2 durchgeführt.
Dann habe ich
use LWP::Simple
im Code des IPCAM-Moduls oben eingefügt und dann weiter unten das
$snapshot = GetFileFromURLQuiet($camURI);
durch ein "#" auskommentiert und dafür dann
$snapshot = get($camURI);
eingetragen!
Danach RPi2 neugestartet, aber das Ergebnis bleibt das gleiche!
-
Logge mal $camURI und $snapshot ...
-
Logge mal $camURI und $snapshot ...
Wie mache ich das?
-
Log 1, "IPCAM $name URI: $camURI";
Log 1, "IPCAM $name Snapshot: $snapshot";
-
Log 1, "IPCAM $name URI: $camURI";
Log 1, "IPCAM $name Snapshot: $snapshot";
Prima, danke!!!!
Wenn du mir noch verrätst, wo ich das eintragen muss und wo ich dann den log davon finde sollte ich es hinbekommen! Von der Syntax her würde ich vermuten, es muss ins Modul rein? Ganz ans Ende? Und die Logeinträge finde ich dann im Fhem.log?
-
direkt nach
$snapshot = get($camURI);
Wir wollen doch debuggen ob die url vom Bild richtig war und ob get was getan hat....
Logeinträge im Fhem.log
-
direkt nach
$snapshot = get($camURI);
Wir wollen doch debuggen ob die url vom Bild richtig war und ob get was getan hat....
Logeinträge im Fhem.log
Ok alles klar, vielen Dank!!! :-)
Mache ich direkt heute Nachmittag wenn ich daheim bin und poste hier das Ergebnis der Logeinträge!
-
Sooooooo, hier die Logeinträge:
2015.07.13 17:34:06.817 1: PERL WARNING: Subroutine IPCAM_Initialize redefined at ./FHEM/49_IPCAM.pm line 50.
2015.07.13 17:34:06.819 1: PERL WARNING: Subroutine IPCAM_Define redefined at ./FHEM/49_IPCAM.pm line 70.
2015.07.13 17:34:06.820 1: PERL WARNING: Subroutine IPCAM_Undef redefined at ./FHEM/49_IPCAM.pm line 93.
2015.07.13 17:34:06.830 1: PERL WARNING: Subroutine IPCAM_Set redefined at ./FHEM/49_IPCAM.pm line 104.
2015.07.13 17:34:06.837 1: PERL WARNING: Subroutine IPCAM_Get redefined at ./FHEM/49_IPCAM.pm line 244.
2015.07.13 17:34:06.847 1: PERL WARNING: Subroutine IPCAM_getSnapshot redefined at ./FHEM/49_IPCAM.pm line 321.
2015.07.13 17:34:06.852 1: PERL WARNING: Subroutine IPCAM_guessFileFormat redefined at ./FHEM/49_IPCAM.pm line 447.
2015.07.13 17:34:29.001 1: IPCAM Kamera_Hauseingang URI: http://admin:xxx@192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx
2015.07.13 17:34:29.002 1: IPCAM Kamera_Hauseingang Snapshot: <html><body><img src="../snapPic/Snap_20150713-173441.jpg"/></body></html>
2015.07.13 17:34:29.003 1: IPCAM Kamera_Hauseingang Wrong or not supported image format: unknown
Hinweis: Ich habe das korrekte Passwort hier durch xxx ersetzt.
-
Ich würde das Kennwort trotzdem ändern, hat nämlich jeder in seiner Benachrichtigungsemail erhalten.
Dein Problem ist dass http://admin:xxx@192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx eine Webseite zurückliefert, keine absolute url auf ein image. Dh du kannst entweder eine bessere "magic" URI finden oder dir aus dem Snapshot eine zusammenparsen. Ich würde ersteren Ansatz verfolgen.
-
Dh du kannst entweder eine bessere "magic" URI finden
Was bedeutet das denn und wie mach ich das? Bin total ahnunglos! :-(
-
Zeige mal ein bisschen Eigeninitiative und schau mal hier durch http://foscam.us/forum/post43654.html#p43654
-
Zeige mal ein bisschen Eigeninitiative und schau mal hier durch http://foscam.us/forum/post43654.html#p43654
Ok, ich werde mich mal durcharbeiten! Aber was ich nicht verstehe: Laut den CGI Befehlen (s. Anhang) sollte doch genau das snapPicture2 eine jpg Datei zurückliefern?!?
-
snapPicture2 wäre schon das richtige, wir bekommen aber irgendwie das Ergebnis von snapPicture zurück.
Lass evtl. mal die benutzernamen und pw am ende weg.
-
Dann geht garnichts, er erfordert auf jeden Fall User und PW.
Also aus dem von dir geposteten Artikel habe ich jetzt folgenden Ausdruck - an meine Cam angepasst - erzeugt:
<img src="http://192.168.188.90:88/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=blendax3&t=" onload='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 1000)' onerror='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 5000)' alt='' />
Nur wo muss das dann hin? Und müsste ich dann ein jpg angezeigt bekommen, wenn ich den Ausdruck in die Browserzeile eingebe?
-
Naja da ist halt leider ein Javascript mit drin, das können wir unter Perl nicht ausführen...
wir brauchen einen Pfad der ein jpeg ausspuckt...
-
Tja keine Ahnung wie das gehn soll!
Aber müsste der Ausdruck nicht in der Browserzeile funktionieren? Da kommt aber kein Bild!
-
Hmmm, dann muss ich wohl ne andere Kamera kaufen........:(
Läuft das IPCAM Modul mit den Instar HD IP Kameras?
-
Also hier läuft das Modul auch prima mit den Foscam HD-Cams (9821W V2). Ich habe jetzt den Thread nicht gelesen und weiß nicht, was dein Problem ist aber sowohl bei Instar HD Cams, als auch Foscam HD Kameras habe ich mit den Snapshots kein Problem.
-
Das Problem ist, dass der CGI Befehl eine html Seite zurückliefert und keine direkte URL auf den SNapshot! Damit kommt das Modul wohl nicht klar!
Kannst du vllt mal ein list deiner foscam posten?
-
Dann müsste ich zu viel zensieren. ;) Aber folgender path funktioniert:
cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PWD
Wichtig ist snapPicture2. Das liefert ein JPEG.
-
Genau das habe ich ja auch, aber es liefert scheinbar kein JPG!!!! :(
-
Firmware aktuell?
-
Jo die Firmware und auch die Application Firmware sind auf dem neusten Stand!
Im Log steht immer folgendes:
2015.07.13 22:00:48.629 1: IPCAM Kamera_Hauseingang URI: http://192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=gast&pwd=test
2015.07.13 22:00:48.637 1: IPCAM Kamera_Hauseingang Snapshot: <html><body><img src="../snapPic/Snap_20150713-220101.jpg"/></body></html>
2015.07.13 22:00:48.639 1: IPCAM Kamera_Hauseingang Wrong or not supported image format: unknown
-
Ich würde an deiner stelle mal den FOSCAM support damit beglücken. Die sollen ganz ordentlich sein.
-
Also hier läuft das Modul auch prima mit den Foscam HD-Cams (9821W V2). Ich habe jetzt den Thread nicht gelesen und weiß nicht, was dein Problem ist aber sowohl bei Instar HD Cams, als auch Foscam HD Kameras habe ich mit den Snapshots kein Problem.
Marvin, bitte verrätst du uns, welche INSTAR HD du verwendet hast? Bei mir steht auch eine Neuanschaffung an...
Vielen Dank!
-
Instar habe ich wieder abgeschafft. Die Außenkam und auch zwei gleiche Austauschgeräte hatten jeweils nach einer Nacht draußen tief unter dem Dach, sehr viel Feuchtigkeit (eine Pfütze) zwischen Linse und Glas. Scheint ein generelles Problem zu sein. Ich bin auf, leider etwas teurere, Vivotek Kameras umgestiegen. Von der Qualität her nicht vergleichbar mit Foscam oder Instar. Eine andere Liga. Und sie lassen sich auch prima mit dem IPCAM Modul steuern. Nur die Fotos hole ich mir mittlerweile mit einer eigenen Sub, da IPCAM nicht Non-Blocking ist.
-
Hallo,
könntest Du diese sub evtl mal erklären? Die Blockade von fhem ist mir auch schon aufgefallen.
Meine IN-5907 ist bisher dicht und funktioniert gut.
schöne Grüße
Jo
-
Von der Kamera habe ich 3 Stück zurück gesendet, die alle das gleiche Problem hatten. Vielleicht eine Serie, es führt aber dazu, dass ich die Marke meide ;)
Hier sind 3 subs, die man am besten in eine eigene myUtils packt (ein Teil davon ist aber aus dem IPCAM Modul "geklaut". Dabei geht es um den Filetype):
## Kamera Bilder holen
sub getCamPicSave($;$$) {
my ($dv,$snaps,$delay) = @_;
my @devs=();
if ($dv eq "all") {
@devs=devspec2array("TYPE=IPCAM");
}
else {
@devs=split(",",$dv);
}
foreach my $dev (@devs) {
my $ip=InternalVal($dev,"AUTHORITY","-");
my $auth=AttrVal($dev,"basicauth","-");
my $path=AttrVal($dev,"path","-");
my $storage=AttrVal($dev,"storage","-");
my $camDevice=AttrVal($dev,"camDevice","-");
$snaps=AttrVal($dev,"snapshots",0) unless defined($snaps);
$delay=AttrVal($dev,"delay",2) unless defined($delay);
if ($ip ne "-" && $path ne "-" && $storage ne "-" && $camDevice ne "-" && Value($camDevice) eq "present") {
my $camURI="http://".$ip."/".$path;
my $seqWait=0;
my $seqDelay=$delay;
my $count=0;
for (my $i=0;$i<$snaps;$i++) {
$count=$i+1;
my $param = {
url => $camURI,
timeout => 7,
storage => $storage,
dev => $dev,
count => $count,
callback => \&StoreCamFile,
};
InternalTimer(gettimeofday()+$seqWait, "HttpUtils_NonblockingGet", $param, 0);
$seqWait = $seqWait + $seqDelay;
}
}
else {
my $error="CamPic-Error(s): ";
$error.="Device ($dev) not available. " if ($ip eq "-");
$error.="Device ($dev) has no path attribut. " if ($path eq "-");
$error.="Device ($dev) has no camDevice attribut. " if ($camDevice eq "-");
$error.="Could not fetch picture. Cam-Device ($dev) not present. " if (Value($camDevice) ne "present");
Log 3, $error;
fhem("setreading $dev lastError $error");
}
}
return undef;
}
sub StoreCamFile($$$)
{
my ($hash, $err, $data) = @_;
my $dev = $hash->{dev};
my $dev_hash=$defs{$dev};
readingsBeginUpdate($dev_hash);
if ($err) {
Log 3,"CamPic-Error: Image could not be fetched";
readingsBulkUpdate( $dev_hash, 'lastError', $err );
}
else {
my @imageTypes = qw(JPEG PNG GIF TIFF BMP ICO PPM XPM XBM SVG);
my $imageFormat = camPicGuessFileFormat(\$data);
if( ! grep { $_ eq "$imageFormat"} @imageTypes) {
Log 3, "CamPic-Error: Wrong File-Format";
readingsBulkUpdate( $dev_hash, 'lastError', 'CamPic-Error: Wrong File-Format' );
}
else {
my $storage = $hash->{storage};
my $count = $hash->{count};
my $dateTime = TimeNow();
my $timestamp = $dateTime;
$timestamp =~ s/ /_/g;
$timestamp =~ s/(:|-)//g;
$imageFormat = "JPG" if($imageFormat eq "JPEG");
my $filename=$dev."_".$timestamp.".".lc($imageFormat);
open(FH, ">$storage/$filename");
print FH $data;
close(FH);
readingsBulkUpdate( $dev_hash, 'snapshot'.$count, $filename );
readingsBulkUpdate( $dev_hash, 'last', $filename );
readingsBulkUpdate( $dev_hash, 'snapshots', $count );
}
}
readingsEndUpdate( $dev_hash, 1 );
}
sub camPicGuessFileFormat($) {
my ($src) = shift;
my $header;
my $srcHeader;
open(my $s, "<", $src) || return "can't open source image: $!";
$src = $s;
my $reading = read($src, $srcHeader, 64);
return "error while reading source image: $!" if(!$reading);
local($_) = $srcHeader;
return "JPEG" if /^\xFF\xD8/;
return "PNG" if /^\x89PNG\x0d\x0a\x1a\x0a/;
return "GIF" if /^GIF8[79]a/;
return "TIFF" if /^MM\x00\x2a/;
return "TIFF" if /^II\x2a\x00/;
return "BMP" if /^BM/;
return "ICO" if /^\000\000\001\000/;
return "PPM" if /^P[1-6]/;
return "XPM" if /(^\/\* XPM \*\/)|(static\s+char\s+\*\w+\[\]\s*=\s*{\s*"\d+)/;
return "XBM" if /^(?:\/\*.*\*\/\n)?#define\s/;
return "SVG" if /^(<\?xml|[\012\015\t ]*<svg\b)/;
return "unknown";
}
Hier wird auf die Konfiguration (Pfade) eines IPCAM Devices zugegriffen (DEVICENAME).
Aufgerufen wird sie per
{getCamPicSave("DEVICENAME", "ANZAHLSNAPS", "DELAY")}
Damit werden non-blocking ANZAHLSNAPS Bilder im Abstand von DELAY Sekunden geholt und die Readings im entsprechenden IPCAM-Device aktualisiert. Gibt man ANZAHLSNAPS und DELAY nicht an, wird das jeweils aus dem IPCAM Device geholt. Das ist alles nicht sehr elegant und schnell hin gebaut aber es funktioniert.
-
Das werde ich auf jeden Fall mal bei mir testen. Vielen Dank!
Was mich an der Instar stört, ist die fixe Video-Aufzeichnungsdauer. 30 oder 40 Sekunden wären hier und da manchmal besser.
schöne Grüße
Jo
-
Hier sind 3 subs, die man am besten in eine eigene myUtils packt (ein Teil davon ist aber aus dem IPCAM Modul "geklaut". Dabei geht es um den Filetype):
Vielen Dank dafür!
Habe es gleich mal ausprobiert, hat aber nicht auf Anhieb geklappt. Der Grund dafür ist das Attribut camDevice, dass es so bei mir nicht gibt. Hast Du da noch irgendwie PRESENCE mit eingebunden?
Ich habe für mich die entsprechenden Abfragen rausgenommen, dann klappt es, also anstatt
if ($ip ne "-" && $path ne "-" && $storage ne "-" && $camDevice ne "-" && Value($camDevice) eq "present") {
nur
if ($ip ne "-" && $path ne "-" && $storage ne "-") {
-
Ah stimmt sorry. Ich habe mir noch ein userattr camDevice in die IPCAM Devices gepackt. Dort trage ich ein emtsprechendes PRESENCE Device ein, sodass vor dem Fotos machen nachgeschaut werden kann, ob die Kamera überhaupt verfügbar ist und die Anfragen nicht ins leere laufen. Meine Innenkameras sind nämlich nur an, wenn wir weg sind oder Nachts.
Das kommt davon, wenn man den Quick and Dirty Quellcode nicht kommentiert ;)
Diese Zeile in meinem Code ist falsch:
my $camDevice=AttrVal($dev,"camDevice",0);
Es müsste lauten
my $camDevice=AttrVal($dev,"camDevice","-");
Dann klappt es auch mit komplettem Filter. Ich habe das oben geändert.
-
my $camDevice=AttrVal($dev,"camDevice","-");
Dann klappt es auch mit komplettem Filter. Ich habe das oben geändert.
Aber auch dann klappt es nur, wenn man das userattr camDevice überhaupt verwendet. Ansonsten bekommt man auch eine Fehlermeldung. Halt nur eine etwas aussagekräftigere...
-
Hm. Es mag sein, dass wenn es gar nicht vorhanden ist, dass es dann nicht funktioniert. AttrVal funktioniert also etwas anders, als ich dachte, das macht aber auch durchaus Sinn. Verwendet werden muss es aber nicht.
-
Hallo,
sehr seltsam, bei mir klappt der code mit einer Foscam aber bei meiner INSTAR wird ein falsches image Format als Fehler ausgegeben. Verstehe ich gerade nicht, weil das IPCAM_Modul mit dieser Kamera auch funktioniert und der code eigentlich identisch ist (zumindest die entsprechenden Zeilen). Allerdings versuche ich das gerade noch zu prüfen.
schöne Grüße
Jo
-
Dann müsste ich zu viel zensieren. ;) Aber folgender path funktioniert:
cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PWD
Wichtig ist snapPicture2. Das liefert ein JPEG.
Danke, jetzt klappts auch bei meiner Foscam9826 HD-IPcam ;-)
Gruß, Stefan
-
Hallo,
sehr seltsam, bei mir klappt der code mit einer Foscam aber bei meiner INSTAR wird ein falsches image Format als Fehler ausgegeben. Verstehe ich gerade nicht, weil das IPCAM_Modul mit dieser Kamera auch funktioniert und der code eigentlich identisch ist (zumindest die entsprechenden Zeilen). Allerdings versuche ich das gerade noch zu prüfen.
schöne Grüße
Jo
Poste hier doch mal ein list deiner IPCAM Devices (Instar und Foscam). Ich habe eine kleine Vermutung.
-
Die lists der beiden Kameras:
INSTAR (geht nicht)
Internals:
AUTHORITY 192.xxx.xxx.xxx:80
CFGFN ./FHEM/000_Kameras.cfg
DEF 192.xxx.xxx.xxx:80
NAME CAM01
NR 2460
SEQ 0
STATE last: 2015-08-25 19:51:27
TYPE IPCAM
Readings:
2015-08-25 19:51:27 last CAM01_snapshot.jpg
2015-08-25 18:34:27 lastError CamPic-Error: Wrong File-Format
2015-08-25 19:51:22 snapshot1 CAM01_20150825_195122.jpg
2015-08-25 19:51:23 snapshot2 CAM01_20150825_195123.jpg
2015-08-25 19:51:25 snapshot3 CAM01_20150825_195125.jpg
2015-08-25 19:51:27 snapshot4 CAM01_20150825_195127.jpg
2015-08-25 19:51:27 snapshots 4
Attributes:
basicauth {USERNAME}:{PASSWORD}
cmd01 cmd=setinfrared&-infraredstat=close
cmd02 cmd=setinfrared&-infraredstat=auto
credentials /opt/fhem/FHEM/000_CAM01_config.cfg
delay 2
path tmpfs/snap.jpg?user={USERNAME}&pwd={PASSWORD}
pathCmd cgi-bin/hi3510/param.cgi
room Kameras
snapshots 4
storage ./www/snapshots
timestamp 1
FOSCAM (geht):
Internals:
AUTHORITY 192.xxx.xxx.xxx:88
CFGFN ./FHEM/000_Kameras.cfg
DEF 192.xxx.xxx.xxx:88
NAME CAM02
NR 2467
SEQ 0
STATE Defined
TYPE IPCAM
Readings:
2015-08-25 18:30:44 last CAM02_20150825_183044.jpg
2015-08-25 18:30:42 snapshot1 CAM02_20150825_183042.jpg
2015-08-25 18:30:44 snapshot2 CAM02_20150825_183044.jpg
2015-08-25 18:18:42 snapshot3 CAM02_20150825_181842.jpg
2015-08-25 18:18:44 snapshot4 CAM02_20150825_181844.jpg
2015-08-25 18:18:47 snapshot5 CAM02_20150825_181847.jpg
2015-08-25 18:18:50 snapshot6 CAM02_20150825_181850.jpg
2015-08-25 18:30:44 snapshots 2
Attributes:
cmd01 cmd=openInfraLed&usr=USER&pwd=PASSWORD
cmd02 cmd=closeInfraLed&usr=USER&pwd=PASSWORD
cmd03 cmd=setInfraLedConfig&mode=0&usr=USER&pwd=PASSWORD
cmd04 cmd=setInfraLedConfig&mode=1&usr=USER&pwd=PASSWORD
cmd05 cmd=ptzGotoPresetPoint&name=1&usr=USER&pwd=PASSWORD
cmd06 cmd=ptzGotoPresetPoint&name=2&usr=USER&pwd=PASSWORD
cmd07 cmd=ptzGotoPresetPoint&name=3&usr=USER&pwd=PASSWORD
delay 1
path cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PASSWORD
pathCmd cgi-bin/CGIProxy.fcgi
room Kameras
snapshots 6
storage ./www/snapshots
timestamp 1
Bei der Foscam habe ich username und password fest eingegeben und nicht über "credentials" ausgelagert (hier durch "USER" und "PASSWORD" ersetzt). Das scheint neben dem Port der einzige Unterschied zu sein. Ach, und bei STATE erscheint etwas anderes.
schöne Grüße
Jo
-
Es ist das basicauth. Das ist zwar in der sub ganz rudimentär vorbereitet aber nicht umgesetzt.
Bitte beachten: ich habe hier kein für jeden funktionierendes Modul gepostet sondern auf Nachfrage nur eine sub, die ich verwende und die für mich funktioniert und als Workaround dient, bis jemand das Modul IPCAM endlich auf Non-Blocking umbaut.
-
Hat eigentlich jemand auch das Problem, dass keine IPCAM-Aktionen mehr ausgeführt werden, wenn die Verbindung zur Kamera mal kurz weg war (lange vor der Zeit des Events)
Im Log steht dann folgendes:
2015.08.25 10:39:19 3: TuerklingelReceiver return value: Device needs to be reachable to send a message to screen.
2015.08.25 10:39:19 1: IPCAM Kamera_Haustuer Wrong or not supported image format: unknown
Die Kamera ist zu der Zeit aber wieder Problemlos erreichbar.
-
Ok, die Vermutung hatte ich auch. Werde es mal raus nehmen. Danke für deine Unterstützung! Schon klar, dass das kein offizielles Modul ist ^-^
schöne Grüße
Jo
-
Instar habe ich wieder abgeschafft. Die Außenkam und auch zwei gleiche Austauschgeräte hatten jeweils nach einer Nacht draußen tief unter dem Dach, sehr viel Feuchtigkeit (eine Pfütze) zwischen Linse und Glas. Scheint ein generelles Problem zu sein. Ich bin auf, leider etwas teurere, Vivotek Kameras umgestiegen. Von der Qualität her nicht vergleichbar mit Foscam oder Instar. Eine andere Liga. Und sie lassen sich auch prima mit dem IPCAM Modul steuern. Nur die Fotos hole ich mir mittlerweile mit einer eigenen Sub, da IPCAM nicht Non-Blocking ist.
Danke für die Tipps! Dann also doch Vivotek. Wetterblastung ist doch bei mir eher sehr hoch.
Bzgl. des non-blocking wäre einfch cool, wenn die subs Eingang in das IPCAM finden würden, vielleicht hat Martin mal wieder etwas Zeit für das Modul ;)
-
Ich habe mir IPCAM diesbezüglich schon angeschaut. Man müsste ein wenig anders umbauen. Ich habe aktuell keinerlei Zeit, mich damit zu beschäftigen, sonst würde ich versuchen, einen Patch anzubieten. Ich möchte das aber auch nicht einfach so machen. Es gibt hier einen Thread, in dem ich frage, wie es mit den Plänen zu IPCAM aussieht. Dieser ist jedoch unbeantwortet geblieben.
-
Vielen Dank nochmal, bei mir klappt es jetzt mit beiden Kameras :)
schöne Grüße
Jo
-
Hallo
Hab auch vier Kameras installiert.
Bei Abwesenheit schalte ich 3 ein.
Das Modul finde ich sehr gut.
Es wäre gut wenn sich das Modul pro Angemeldete Kamera einfach ausschalten liese.
Wenn ich eine Kamera vor der Haustüre habe, kann die sicherlich immer laufen.
Aber im Wohnbereich eher nicht.
Das ist nur als Anregung gedacht.
-
Hallo,
ich bin noch sehr neu im Thema FHEM, habe aber doch schon einiges geschafft. Nur jetzt stehe ich total auf dem Schlauch und muss euch mal nerven.
Ich habe meine Wansview mit dem IPCAM Modul soweit erfolgreich eingebunden.
Ich lasse mir den Videostream in einem "Room" anzeigen (per Weblink iframe).
Mit dem IPCAM-Modul kann ich die Kamera mit hilfe der Set-Befehle auch steuern.
Nur wie bringe ich es jetzt fertig, Steuerelemente (Icons) für die Kamera zu erstellen und diese im Raum anzeigen zu lassen?
Also nehmen wir an, ich habe einen Raum "Cam", dort ist der Videostream als Weblink (iframe) hinterlegt.
Jetzt hätte ich gerne unter dem Livestream 4 Buttons, welche auf Klick den entsprechenden Steuerbefehl (set) ausführen.
Nur wie?
-
Das sollte mit einer remoteControl kein Problem sein. Eventuell auch mit readingsGroup.
-
Sorry, ich bräuchte etwas "DAU-freundlichere" Antworten :)
Die Begriffe sagen mir zwar etwas, aber einfach nur so wüsste ich jetzt überhaupt nicht, was ich damit machen soll.
Ich habe gelesen man könnte es auch mit webcmd und notify machen ... aber auch hier, keine Ahnung wie..mir fehlt da einfach der Anfang.
Wenn mir jemand mal ein kleines Beispiel aufschreiben könnte, das wäre toll!
Im Endeffekt sollen 4 Buttons dargestellt werden (Pfeil link,rechts,hoch,runter).
Beim klick auf den entsprechenden Pfeil so über das IPCAM-Modul der entsprechende Befehl gesendet werden.
-
Du musst im Grunde einfach nur die commandref, das Wiki und das Forum nach den Stichworten durchsuchen, die ich dir gegeben habe. Dann findest du, was du brauchst (ja, auch Beispiele). Ein wenig selber denken ist nicht so schlecht, denn dabei lernt man etwas. Von mir bekommst du nur Hilfe zur Selbsthilfe. Das kannst du annehmen oder auf jemand anderen warten. Das erste geht schneller.
-
Selber denken kann ich schon, ich suche schon seit Tagen nach einer Lösung. Und ja, ich habe auch in der Commandref und im Forum gesucht. Und auch Beispiele gefunden.
Das bringt mir nur alles nichts, wenn ich einfach die Grundlagen (wie bekomme ich Buttons hin, welche ein Modul ansteuern etc.) aufgrund von Verständnisschwierigkeiten nicht hinbekomme.
Ich hätte hier nicht gefragt, wenn ich es mit Selbstrecherche hinbekommen hätte...
Vielleicht hilft mir ja jemand anderes.
-
Ich hätte hier nicht gefragt, wenn ich es mit Selbstrecherche hinbekommen hätte...
Das Stichwort remotecontrol ist doch schon gefallen. Im Wiki gibt es dazu einen ausführlichen Artikel nebst Codebeispielen.
http://www.fhemwiki.de/wiki/Remotecontrol
-
Ja, das hatte ich schon versucht, leider klappt es damit bisher auch nicht.
Versucht hatte ich das Beispiel aus dem Wiki.
Ausgangssituation:
-IPCAM Cam1 angelegt
- als Attribut unter anderem: cmdPanLeft | command=6&onestep=0 (damit würde die Cam nach links schwenken)
^^ Es funktioniert, wenn ich im Cam1-Modul oben mit der Befehlsschaltfläche "set" "pan" "left" auswähle / eingebe. Die Kamera schwenkt nach links.
Ich habe nach dem Wiki eine Remotecontrol angelegt, 4 Buttons wie folgt:
cmdPanLeft:REWIND,cmdPanRight:FF,cmdTiltUp:VOLUP,cmdTiltDown:VOLDOWN
Dazu ein Notify:
define notify_Cam1_Test notify Cam1_Test set Cam1 $EVENT
Drücke ich auf der Remotecontrol die Taste "links", sehe ich oben, dass der befehl "cmdPanLeft" gesendet wird - aber es passiert nichts.
Habe ich irgendwo einen Denkfehler?
-
Ah. Eine konkrete Frage. Geht doch ;)
Mache mal ein list aller beteiligten Devices und poste jeweils das Ergebnis in Codetags.
-
Gerne, ich hoffe das hilft:
Internals:
AUTHORITY 192.168.178.26
CFGFN
DEF 192.168.178.26
NAME Cam1
NR 815
SEQ 0
STATE Defined
TYPE IPCAM
Attributes:
basicauth foo:bar
cmd01 command=6&onestep=0
cmdPanLeft command=6&onestep=0
cmdPanRight command=4&onestep=0
cmdTiltDown command=0&onestep=0
cmdTiltUp command=2&onestep=0
path videostream.cgi
pathPanTilt decoder_control.cgi?
room Cam
Internals:
CFGFN
NAME Cam1_Test
NR 950
STATE cmd01
TYPE remotecontrol
Readings:
2015-10-06 12:58:00 state cmd01
Attributes:
rc_iconpath icons/remotecontrol
rc_iconprefix black_btn_
room Cam
row00 cmd01:REWIND,cmdPanRight:FF,cmdTiltUp:VOLUP,cmdTiltDown:VOLDOWN
Internals:
CFGFN
DEF Cam1_Test set Cam1 $EVENT
NAME notify_Cam1_Test
NOTIFYDEV Cam1_Test
NR 963
NTFY_ORDER 50-notify_Cam1_Test
REGEXP Cam1_Test
STATE 2015-10-06 12:58:00
TYPE notify
Readings:
2015-10-06 12:18:37 state active
Attributes:
room Cam
-
Du hast es oben selbst geschrieben
^^ Es funktioniert, wenn ich im Cam1-Modul oben mit der Befehlsschaltfläche "set" "pan" "left" auswähle / eingebe. Die Kamera schwenkt nach links
Der Befehl heißt schlicht nicht
set Cam1 cmdPanLeft
sondern
set Cam1 pan left
Und so musst du auch deine RemoteControl konfigurieren.
Das meinte ich mit "commandref lesen". Es steht drin.
-
Ok, alles klar. Ich habs hinbekommen.
row00 pan left:REWIND [...]
Damit funktioniert es. Freue mich sehr, vielen Dank für die Hilfe.
Manchmal braucht es halt Denkanstöße oder einen Schubs in die richtige Richtung.
Danke nochmal.
-
Sollte folgendes nicht funktionieren
attr Cam1_Test row00 pan left:REWIND
"erfinde" einfach selber einen Befehlf und übersetze im im notify (am besten mit einer eigenen sub in einer myUtils).
Beispiel:
attr Cam1_Test row00 set Cam1 left:REWIND
als Button in der RC.
Das notify (kann dann für alle Events gelten):
define notify_Cam1_Test notify Cam1_Test {myCamRemote($EVENT)}
Und dann die sub in der myUtils:
sub myCamRemote($) {
my ($EVENT)=@_;
if ($EVENT eq "left") {
fhem("set Cam1 pan left");
}
return undef;
}
Das bitte als Anregung sehen. Denkanstöße gab's hier schon genug. Leider hast du noch nicht weiter gedacht. Versuche die Dinge zu verstehen und nicht einfach nur nach zu machen.
-
Ich verstehe was Du sagen willst.
Ich habe gerade festgestellt, dass es eigentlich mehr Zufall ist, dass die Kommandos funktionieren.
Also mit "set pan left" wird halt offenbar ein direkter Befehl in der Kamera bzw. im Modul ausgeführt, ich dachte die ganze Zeit, der Befehl liest dann das entsprechende cmd-Attribut aus. Ist aber natürlich nicht so.
Eigentlich wollte ich die Befehle bzw. URLs aus den Attributen verwenden, weil ich damit auch bestimmte Positionen anfahren kann. Müsste ja eigentlich auch irgendwie gehen.
Muss ich mal weitertesten.
-
Probiere mal folgendes:
attr Cam1_Test row00 /pan left:REWIND/
Ich bin nicht sicher, ob das funktioniert.
Es ist aber auch nichts falsch daran, eine sub zu verwenden. Im Gegenteil. Das bietet einem flexible Erweiterungsmöglichkeiten.
-
Hallo,
wäre es vielleicht möglich, die Anzahl der custom commands im IPCAM-Modul von 15 auf mindestens 30 anzuheben? Vom code her sehe ich (als Nicht-Programmierexperte) keine Schwierigkeiten - spricht irgendwas dagegen? Mit 15 komme ich leider nicht aus :-\
schöne Grüße
Jo
-
Hallo Marvin, ich versuche gerade deine getsnap Non Blocking Sub zu übernehmen allerdings hat er bei mir ein Problem mit dem cgi jpeg das meine D-Link Cam erzeugt:
image/jpeg.cgi
Er schmeisst mir immer den Fehler das dass File Format nicht korrekt sei:
lastError | CamPic-Error: Wrong File-Format
Hat da jemand Rat wie ich den Code anpassen könnte?
-
Dann versuche doch mal den Check auf Filetype auszukommentieren.
-
Jetzt bin ich schon einen Schritt weiter es wird eine datei erzeugt allerdings mit der Dateiendung unknown?
Wie muss ich das denn für die cgi endung anpassen das mir dort ein JPG erzeugt wird.
Mein Code sieht nun so aus:
## Kamera Bilder holen
sub getCamPicSave($;$$) {
my ($dv,$snaps,$delay) = @_;
my @devs=();
if ($dv eq "all") {
@devs=devspec2array("TYPE=IPCAM");
}
else {
@devs=split(",",$dv);
}
foreach my $dev (@devs) {
my $ip=InternalVal($dev,"AUTHORITY","-");
my $auth=AttrVal($dev,"basicauth","-");
my $path=AttrVal($dev,"path","-");
my $storage=AttrVal($dev,"storage","-");
my $camDevice=AttrVal($dev,"camDevice","-");
$snaps=AttrVal($dev,"snapshots",0) unless defined($snaps);
$delay=AttrVal($dev,"delay",2) unless defined($delay);
if ($ip ne "-" && $path ne "-" && $storage ne "-") {
my $camURI="http://".$ip."/".$path;
my $seqWait=0;
my $seqDelay=$delay;
my $count=0;
for (my $i=0;$i<$snaps;$i++) {
$count=$i+1;
my $param = {
url => $camURI,
timeout => 7,
storage => $storage,
dev => $dev,
count => $count,
callback => \&StoreCamFile,
};
InternalTimer(gettimeofday()+$seqWait, "HttpUtils_NonblockingGet", $param, 0);
$seqWait = $seqWait + $seqDelay;
}
}
else {
my $error="CamPic-Error(s): ";
$error.="Device ($dev) not available. " if ($ip eq "-");
$error.="Device ($dev) has no path attribut. " if ($path eq "-");
$error.="Device ($dev) has no camDevice attribut. " if ($camDevice eq "-");
$error.="Could not fetch picture. Cam-Device ($dev) not present. " if (Value($camDevice) ne "present");
Log 3, $error;
fhem("setreading $dev lastError $error");
}
}
return undef;
}
sub StoreCamFile($$$)
{
my ($hash, $err, $data) = @_;
my $dev = $hash->{dev};
my $dev_hash=$defs{$dev};
readingsBeginUpdate($dev_hash);
{ {
my $imageFormat = camPicGuessFileFormat(\$data);
my $storage = $hash->{storage};
my $count = $hash->{count};
my $dateTime = TimeNow();
my $timestamp = $dateTime;
$timestamp =~ s/ /_/g;
$timestamp =~ s/(:|-)//g;
$imageFormat = "JPG" if($imageFormat eq "JPEG");
my $filename=$dev."_".$timestamp.".".lc($imageFormat);
open(FH, ">$storage/$filename");
print FH $data;
close(FH);
readingsBulkUpdate( $dev_hash, 'snapshot'.$count, $filename );
readingsBulkUpdate( $dev_hash, 'last', $filename );
readingsBulkUpdate( $dev_hash, 'snapshots', $count );
}
}
readingsEndUpdate( $dev_hash, 1 );
}
sub camPicGuessFileFormat($) {
my ($src) = shift;
my $header;
my $srcHeader;
open(my $s, "<", $src) || return "can't open source image: $!";
$src = $s;
my $reading = read($src, $srcHeader, 64);
return "error while reading source image: $!" if(!$reading);
local($_) = $srcHeader;
return "JPEG" if /^\xFF\xD8/;
return "PNG" if /^\x89PNG\x0d\x0a\x1a\x0a/;
return "GIF" if /^GIF8[79]a/;
return "TIFF" if /^MM\x00\x2a/;
return "TIFF" if /^II\x2a\x00/;
return "BMP" if /^BM/;
return "ICO" if /^\000\000\001\000/;
return "PPM" if /^P[1-6]/;
return "XPM" if /(^\/\* XPM \*\/)|(static\s+char\s+\*\w+\[\]\s*=\s*{\s*"\d+)/;
return "XBM" if /^(?:\/\*.*\*\/\n)?#define\s/;
return "SVG" if /^(<\?xml|[\012\015\t ]*<svg\b)/;
return "unknown";
}
Erzeugt bei mir folgende Datei:
IPCam_20151020_153101.unknown
Wenn ich hier unknown durch jpg ersetze ist das Bild auch nicht funktional sowie die dateigrösse macht mich auch stutzig von 94byte die Bilder die das IPCam Device von sich aus holt sind ca. 22-25kb groß.
Der path zu meiner D-Link DCS-942L ist:
image/jpeg.cgi
stocher leider irgendwie im trüben, danke für die Tipps. :)
-
Ein recht verbreitetes Problem scheint zu sein, dass manche Kameras kein jpg sondern eine html-Seite zurückgeben. Dann gibt es ebenfalls diese Meldung.
schöne Grüße
Jo
-
Viele Kameras haben 2 Funktionen, ein Bild zu liefern. Eine liefert ein HTML und eine ein JPEG.
-
Ja es ist das Problem der HTML Seite die durch das CGI erzeugt wird allerdings finde ich im Backend meiner Cam keine möglichkeit das anzufassen ich kann praktisch nur die Qualität für das jpeg bestimmen weitere Einstellungen werden dort nicht geboten.
Auf der HTML Seite ist das Bild in einem IMG Tag eingebunden mit folgender src:
http://<ip>/image/jpeg.cgi
Gibt es dafür noch eine Alternative, ich habe probiert den Code mit dem normalen IPCam modul zu vergleichen aber das ist gerade noch eine Nummer zu hoch für mich mit der Hoffnung der Sache weiter auf die Spur zu kommen da ich mit einem get IPCam image ein Bild bekomme.
Frage mich halt was dort an der Stelle unterschiedlich läuft...
-
Ich habe ja geschrieben, dass meine subs nicht überall funktionieren werden. Man müsste schauen, was GetFileFromURLQuiet und darin HttpUtils_BlockingGet anders macht, als die NonBlocking Variante.
-
Ich habe mir die Subs angesehen allerdings wie bereits erwähnt ist das momentan noch eine Nummer zu hoch, ich habe probiert die subs im HTTPUtils zu verändern mit dem Resultat das FHEM nach einem Neustart nicht mehr durchstartet. Da lass ich also erstmal lieber noch die finger von. :)
sub
HttpUtils_NonblockingGet($)
{
my ($hash) = @_;
$hash->{hu_blocking} = 0;
my ($isFile, $fErr, $fContent) = HttpUtils_File($hash);
return $hash->{callback}($hash, $fErr, $fContent) if($isFile);
my $err = HttpUtils_Connect($hash);
$hash->{callback}($hash, $err, "") if($err);
}
#################
# Parameters same as HttpUtils_NonblockingGet up to callback
# Returns (err,data)
sub
HttpUtils_BlockingGet($)
{
my ($hash) = @_;
$hash->{hu_blocking} = 1;
my ($isFile, $fErr, $fContent) = HttpUtils_File($hash);
return ($fErr, $fContent) if($isFile);
my $err = HttpUtils_Connect($hash);
return ($err, undef) if($err);
my ($buf, $ret) = ("", "");
$hash->{conn}->timeout($hash->{timeout});
for(;;) {
my ($rout, $rin) = ('', '');
vec($rin, $hash->{conn}->fileno(), 1) = 1;
my $nfound = select($rout=$rin, undef, undef, $hash->{timeout});
if($nfound <= 0) {
undef $hash->{conn};
return ("$hash->{displayurl}: Select timeout/error: $!", undef);
}
my $len = sysread($hash->{conn},$buf,65536);
last if(!defined($len) || $len <= 0);
$ret .= $buf;
last if(HttpUtils_DataComplete($ret));
}
return HttpUtils_ParseAnswer($hash, $ret);
}
Meine Fähigkeiten sind hier momentan noch begrenzt, aber was mir auffällt das sich die sub`s ab den returns jeweils unterscheiden und die nonblocking sub natürlich viel kürzer ist, jedoch erschliessen sich mir die funktionalen unterschiede nicht da ich es einfach nicht verstehe was da passiert. :)
-
Hi
habe eine Wansview NCB 545W IP cam , habe sie auch ins Fhem eingebunden bekomme auch ein Live Bild .... kann mir jemand sage wie ich die Steuerung der Cam realisieren kann.
hab was gelesen das man die cgi befehle braucht , leider finde ich im Netz keine bzw. Was von einer anderen Cam selber Marke
cgi in camera file cgi used in webui
backup_params.cgi
camera_control.cgi camera_control.cgi
check_user2.cgi
check_user.cgi check_user.cgi
comm_write.cgi
decoder_control.cgi decoder_control.cgi
erase_allparams.cgi
get_camera_params.cgi get_camera_params.cgi
get_factory_ddns.cgi
get_forbidden.cgi
get_log.cgi get_log.cgi
get_misc.cgi get_misc.cgi
get_p2p.cgi
get_params.cgi get_params.cgi
get_realip.cgi get_realip.cgi
get_smarteye.cgi get_smarteye.cgi
get_status.cgi get_status.cgi
get_wifi_scan_result.cgi get_wifi_scan_result.cgi
reboot.cgi reboot.cgi
restore_factory.cgi restore_factory.cgi
restore_factory_ddns.cgi
restore_params.cgi
set_alarm.cgi
set_alias.cgi
set_datetime.cgi set_datetime.cgi
set_ddns.cgi set_ddns.cgi
set_decoder.cgi set_decoder.cgi
set_devices.cgi set_devices.cgi
set_factory_ddns.cgi
set_forbidden.cgi
set_ftp.cgi set_ftp.cgi
set_mac.cgi
set_mail.cgi set_mail.cgi
set_misc.cgi set_misc.cgi
set_msn.cgi
set_network.cgi set_network.cgi
set_p2p.cgi
set_pppoe.cgi set_pppoe.cgi
set_smarteye.cgi set_smarteye.cgi
set_smarteye_factory_params.cgi set_smarteye_factory_params.cgi
set_upnp.cgi set_upnp.cgi
set_users.cgi set_users.cgi
set_wifi.cgi set_wifi.cgi
snapshot.cgi snapshot.cgi
test_ftp.cgi test_ftp.cgi
test_mail.cgi test_mail.cgi
upgrade_firmware.cgi upgrade_firmware.cgi
upgrade_htmls.cgi upgrade_htmls.cgi
video.cgi
videostream.cgi videostream.cgi
wifi_scan.cgi wifi_scan.cgi
kann mir jemand weiter Helfen
Danke ;-)
gruß
Andy
-
Hallo @All,
ich habe da ein Problem beim holen der Bilder mittels
get <Dev> image
Ich habe zwei IP-WLAN Cams. Die Konfig sieht so aus:
Cam1:
define IPCamTreppenhaus IPCAM 192.168.0.158:81
attr IPCamTreppenhaus delay 0
attr IPCamTreppenhaus event-on-update-reading snapshots
attr IPCamTreppenhaus path snapshot.cgi?loginuse=admin&loginpas=&user=admin&pwd=&
attr IPCamTreppenhaus snapshots 10
attr IPCamTreppenhaus storage /opt/fhem/IPCom
attr IPCamTreppenhaus timestamp 1
Cam2:
define IPCamKueche IPCAM 192.168.0.100:8080
attr IPCamKueche delay 0
attr IPCamKueche event-on-update-reading snapshots
attr IPCamKueche path shot.jpg
attr IPCamKueche snapshots 10
attr IPCamKueche storage /opt/fhem/IPCom
attr IPCamKueche timestamp 1
Die Cams sollen nun bei einem Notify quasi parallel die eingestellten 10 Bilder holen. Das Resultat ist aber das es in Summe nicht 20 Bilder sind. Die Anzahl variiert hier bei. Es sind auch nicht immer gleich viele pro Kamera.
Die Antwortzeiten je Kamera, getestet mittels wget liegen unter 1s.
-
Hallo,
ich habe mir an der Haustüre eine günstige Wansview NCM628D02 Kamera installiert.
Im Flur ist ein All in One PC (MSI Wind Top AE1900) mit Windows 7 Home Premium an der Wand.
Die Verbindung zum Lan läuft über die interne Wlankarte.
Als Browser nutze ich Chrome im Kiosk Modus.
Soweit funktioniert alles perfekt bis auf den Umstand das die Kamera nach einer gewissen Zeit nur noch ein Standbild anzeigt. Ich muss dann erst die Webseite neu laden, dann geht es wieder für eine gewisse Zeit.
Das ist natürlich blöd wenn man mal im vorbei gehen, oder wenn es klingelt, kurz drauf schauen möchte.
Energiespareinstellungen für das Wlan sind alle aus und die Icons für Schalter, Licht und Fensterkontakte werden auch weiterhin zuverlässig aktualisiert. Nur eben die Kamera nicht.
Lediglich die Festplatte und der Bildschirm wird nach 15Min abgeschaltet.
Ich vermute ja das der Fehler in den Einstellungen von Windows liegt, finde aber keinen Ansatz dazu. Evtl. das abschalten von Bildschirm? Den möchte ich aber aus Stromspargründen ungern durchlaufen lassen.
Alternativ wäre eine Notfall Lösung wenn man auf das Kamerabild oder einen Button darunter klicken könnte um nur die Kamera auf die schnelle zu aktualisieren. Wäre sowas denn möglich?
DEF iframe http://192.168.178.38/cgi-bin/hi3510/mjpegstream.cgi?-chn=12&-usr=admin&-pwd=xxxxxxx
LINK http://192.168.178.38/cgi-bin/hi3510/mjpegstream.cgi?-chn=12&-usr=admin&-pwd=passat35
NAME IP_Camera_Anzeige
NR 133
STATE initialized
TYPE weblink
WLTYPE iframe
Attributes
fp_Erdgeschoss 10,1050,0,
fp_Obergeschoss 10,1050,0,
fp_Terminal 3,730,1,
htmlattr width="640" height="360"
room I_Kamera
-
Ich vermute ja das der Fehler in den Einstellungen von Windows liegt, finde aber keinen Ansatz dazu. Evtl. das abschalten von Bildschirm? Den möchte ich aber aus Stromspargründen ungern durchlaufen lassen.
zum testen würde ich den bidschirm mal laufen lassen.
-
Danke, habe den Fehler evtl. gefunden. Der Mini PCI Anschluss hat nochmal eine eigene Energieeinstellung, nachdem ich diese auch abgeschaltet habe scheint es (bis jetzt) zu funktionieren.
-
Ich versuche hier nochmal eine Lösung für das Problem "Wrong or not supported image format: unknown" zusammen zu fassen und hoffe, dass es Verzweifelten hilft :)
Zunächst gilt es festzustellen, ob das Problem mit der hier beschriebenen Lösung umgangen werden kann. Da das Modul 49_IPCAM hierfür keine Debug-Option hat, muss es von Hand erweitert werden. Dies wurde weiter oben im Thread bereits angeregt.
Also im fhem/FHEM-Verzeichnis die Datei 49_IPCAM.pm öffnen und folgende Stelle suchen (Zeile 380)
...
$timestamp =~ s/(:|-)//g;
$snapshot = GetFileFromURLQuiet($camURI);
$imageFormat = IPCAM_guessFileFormat(\$snapshot);
my @imageTypes = qw(JPEG PNG GIF TIFF BMP ICO PPM XPM XBM SVG);
...
Dort die beiden beiden Debug-Ausgaben einfügen:
...
$timestamp =~ s/(:|-)//g;
$snapshot = GetFileFromURLQuiet($camURI);
Log 1, "IPCAM $name URI: $camURI";
Log 1, "IPCAM $name Snapshot: $snapshot";
$imageFormat = IPCAM_guessFileFormat(\$snapshot);
my @imageTypes = qw(JPEG PNG GIF TIFF BMP ICO PPM XPM XBM SVG);
...
Jetzt in FHEM ein "reload 49_IPCAM" eingeben und mit "get camname image" einen neuen snapshot anfordern. Im Log findet Ihr nun die Ausgaben, die wir benötigen. Interessant ist die zweite Zeile, den hier erwartet das Modul eigentlich das Kamerabild. Steht hier ein solcher oder ähnlicher Text, dann findet Ihr weiter unten eine Lösung dazu. Ansonsten die beiden oben eingefügten Zeilen wieder entfernen, da der Bildinhalt im Log nicht schön ist.
2015.07.13 22:00:48.629 1: IPCAM Kamera1 URI: http://192.168.1.1:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=guest&pwd=guest
2015.07.13 22:00:48.637 1: IPCAM Kamera1 Snapshot: <html><body><img src="../snapPic/Snap_20150713-220101.jpg"/></body></html>
2015.07.13 22:00:48.639 1: IPCAM Kamera1 Wrong or not supported image format: unknown
Die Lösung ist nun den Link anzupassen und erneut an die Funktion GetFileFromURLQuiet zu senden. Dazu schneiden wir den relevanten Teil aus dem String heraus, indem wir Startpunkt und die Länge ermitteln.
1 2
01234567890123456789012345
<html><body><img src="../snapPic/Snap_20150713-220101.jpg"/></body></html>
1 2 3
12345678901234567890123456789012
Hier also ab Position 25 mit einer Länge von 32 Zeichen. Nun erweitern wir die 49_IPCAM.pm um folgende Kommandos.
...
$timestamp =~ s/(:|-)//g;
$snapshot = GetFileFromURLQuiet($camURI);
Log 1, "IPCAM $name URI: $camURI";
Log 1, "IPCAM $name Snapshot: $snapshot";
$snapshot="http://$camAuth/".substr($snapshot,25,32);
Log 1, "IPCAM $name SnapshotNeu: $snapshot";
$snapshot = GetFileFromURLQuiet($snapshot);
$imageFormat = IPCAM_guessFileFormat(\$snapshot);
my @imageTypes = qw(JPEG PNG GIF TIFF BMP ICO PPM XPM XBM SVG);
...
Nun wieder reload und get image und dann solltet ihr in der Debug-Ausgabe eine korrekt formatiere URL sehen. Damit sollte das Modul jetzt arbeiten können. Der Nachteil ist, dass nun unterschiedliche Kameras nicht mehr laufen. Daher wäre es prima die Funktion als Option im Modul einzubauen.
Viele Grüße,
Thomas
-
Hallo zusammen,
bie mir läuft die Edimax IC-3115W mit dem Modul.
define IC3115W IPCAM 192.x.x.x
attr IC3115W basicauth user:geheim
attr IC3115W path snapshot.jpg
Wer eine andere Edimax-Cam hat, kann sich den paramter für path hier raussuchen: https://www.ispyconnect.com/man.aspx?n=Edimax (https://www.ispyconnect.com/man.aspx?n=Edimax) raussuchen.
Ich hätte auch noch einen Wunsch für das Modul. Könnte man als Kommando auch das Bild (get IC3115W image) machen lassen, zB.:
attr IC3115W webCmd image
So könnte man im Frontend das speichern eines Bildes antriggern durch klick auf das webCmd.
greets,
coh3r3nt
-
docb ich hatte das gleiche Problem. Mit
attr Cam1 pathPanTilt decoder_control.cgi?
ging es auch mit der Instar 3010 und 3011
hier meine ganze Definition:
define Cam1 IPCAM IP:PORT
attr Cam1 basicauth user:pass
attr Cam1 cmdPanLeft command=4
attr Cam1 cmdPanRight command=6
attr Cam1 cmdPos01 command=31
attr Cam1 cmdPos02 command=33
attr Cam1 cmdPos03 command=35
attr Cam1 cmdPos04 command=37
attr Cam1 cmdPos05 command=39
attr Cam1 cmdPos06 command=41
attr Cam1 cmdStep onstep
attr Cam1 cmdTiltDown command=2
attr Cam1 cmdTiltUp command=0
attr Cam1 pathPanTilt decoder_control.cgi?
attr Cam1 delay 0
attr Cam1 group Kamera
attr Cam1 icon it_camera
attr Cam1 path snapshot.cgi
attr Cam1 room Security
attr Cam1 snapshots 1
attr Cam1 storage /opt/fhem/www/snapshots/cam1
-
Hallo, mich würde interessieren wie ihr euch die snapshot's (hier als jpg) anzeigen lasst? Direkt in der fhem GUI mittels weblink oder wie macht ihr das?
P.S. ein
weblink image /opt/snapshot/ipcam_snapshot.jpg
Internals:
DEF image /opt/snapshot/ipcam_snapshot.jpg
LINK /opt/snapshot/ipcam_snapshot.jpg
NAME Bilder
NR 2009
STATE initialized
TYPE weblink
WLTYPE image
Attributes:
DbLogExclude .*
htmlattr width="720" height="480"
room Flur
funktioniert leider nicht obwohl unter /opt/snapshot die Bilder zu finden sind und Benutzer/Gruppe von /opt/snapshot fhem.dialout ist und Schreib-Lesezugriff besteht
VG
Frank
-
Dein Pfad stimmt auch? Was genau funktioniert nicht? Gibt es Fehler? Ich würde die snapshots relativ zum fhem Pfad speichern.
Ich mache sowas (um es dynamisch zu halten):
sub last_pics($;$$$)
{
my ($cam,$w,$c) = @_;
my $c=6 if (!defined($c));
my $w=450 if (!defined($w));
my ($s, $i, $j, $o);
$s="<tr><td>";
for ($i=1; $i<=$c; $i++)
{
$o=$i-1;
$j = $i."p";
$s .=" <script>
\$(function() {
\$( '#pic_".$j."_dialog' ).dialog({
autoOpen: false,
closeOnEscape: true,
width: 820,
});
\$( '#pic_".$j."_link' ).click(function() {
\$( '#pic_".$j."_dialog' ).dialog( 'open' );
return false;
});
});
</script>";
if ($o % 2==0) {$s .= "</td></tr><tr><td>";}
elsif ($o!=0) {$s .= "</td><td>";}
$s .="<a id='pic_".$j."_link' href='#'><img src='/fhem/";
$s .= qx(ls -1t ./www/snapshots/$cam/* | sed -n $j);
$s .= "' width='$w' /></a>";
$s .= "<div id='pic_".$j."_dialog' title='Pic'><img src='/fhem/";
$s .= qx(ls -1t ./www/snapshots/$cam/* | sed -n $j);
$s .= "' width='800' /></div>";
}
$s.= "</td></tr>";
$s = "<table>".$s."</table>";
return $s;
}
Das ganze aus dem Weblink (htmlCode) mit dem IPCAM-Devicenamen als Parameter (+ möglicherweise Anzahl der letzten Fortos und Breite) aufrufen und man hat eine kleine Galerie.
-
@marvin78
Habe es über HTTPSRV gelöst, funktioniert top. Zugriff dann über weblink image ...
https://forum.fhem.de/index.php/topic,54819.0.html
aufrufen und man hat eine kleine Galerie.
gefällt mir :)
VG
Frank
-
Irgendwie bekomme ich die Foscam FI8918W nicht dazu gespeicherte Positionen anzufahren. Habe mir auf der Foscam Seite mal die cgi Befehle zu Gemüte geführt und damit müsste es eigentlich funktionieren.
Hier mal ein list:
Internals:
AUTHORITY 192.168.2.64:88
DEF 192.168.2.64:88
NAME ipcam
NR 2008
SEQ 0
STATE last: 2016-06-27 18:41:46
TYPE IPCAM
Readings:
2016-06-27 18:41:46 last ipcam_snapshot.jpg
2016-06-27 18:41:38 snapshot1 ipcam_snapshot_1.jpg
2016-06-27 18:41:39 snapshot2 ipcam_snapshot_2.jpg
2016-06-27 18:41:40 snapshot3 ipcam_snapshot_3.jpg
2016-06-27 18:41:41 snapshot4 ipcam_snapshot_4.jpg
2016-06-27 18:41:42 snapshot5 ipcam_snapshot_5.jpg
2016-06-27 18:41:43 snapshot6 ipcam_snapshot_6.jpg
2016-06-27 18:41:44 snapshot7 ipcam_snapshot_7.jpg
2016-06-27 18:41:45 snapshot8 ipcam_snapshot_8.jpg
2016-06-27 18:41:46 snapshot9 ipcam_snapshot_9.jpg
2016-06-27 18:41:46 snapshots 9
Attributes:
DbLogExclude .*
cmdPos01 command=39&user=xxxxxx&pwd=xxxxxxxx
cmdPos02 command=41&user=xxxxxx&pwd=xxxxxxxx
delay 1
path cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxxxxxx&pwd=xxxxxxxx
pathPanTilt decoder_control.cgi?
room Flur,Kamera
snapshots 9
storage ./www
oder müsste in pathPanTilt der komplette Pfad?
Das funktioniert leider auch nicht:
Internals:
AUTHORITY 192.168.2.64:88
DEF 192.168.2.64:88
NAME ipcam
NR 2008
SEQ 0
STATE Defined
TYPE IPCAM
Readings:
2016-06-28 08:29:14 last ipcam_snapshot.jpg
2016-06-28 08:29:06 snapshot1 ipcam_snapshot_1.jpg
2016-06-28 08:29:07 snapshot2 ipcam_snapshot_2.jpg
2016-06-28 08:29:08 snapshot3 ipcam_snapshot_3.jpg
2016-06-28 08:29:09 snapshot4 ipcam_snapshot_4.jpg
2016-06-28 08:29:10 snapshot5 ipcam_snapshot_5.jpg
2016-06-28 08:29:11 snapshot6 ipcam_snapshot_6.jpg
2016-06-28 08:29:12 snapshot7 ipcam_snapshot_7.jpg
2016-06-28 08:29:13 snapshot8 ipcam_snapshot_8.jpg
2016-06-28 08:29:14 snapshot9 ipcam_snapshot_9.jpg
2016-06-28 08:29:14 snapshots 9
Attributes:
DbLogExclude .*
cmdPos01 command=39
cmdPos02 command=41
cmdPos03 command=31
delay 1
path cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxxxxxx&pwd=xxxxxxx
pathPanTilt decoder_control.cgi?usr=xxxxxxxx&pwd=xxxxxxxx
room Kamera,Wohnzimmer
snapshots 9
storage ./www
Hat jemand eine Tipp?
VG
Frank
-
Ich geb es auf :(
Habe jetzt etliche Möglichkeiten durchgespielt, die Foscam lässt sich nicht dazu überreden sich zu bewegen. Snapshot's funktionieren ohne Probleme nur decoder_control.cgi? bekomme ich nicht hin.
Die cgi Befehle habe ich von hier: http://www.foscam.es/descarga/ipcam_cgi_sdk.pdf
VG
Frank
-
Hallo Frank.
Ich habe das bei meiner Ipc10 so eingetragen
decoder_control.cgi?user={USERNAME}&pwd={PASSWORD}
Das Password und Username werden aus einer Datei gelesen.
In deinem List führst du den Befehl ohne diese Angaben aus?!
Habe das einmal eingerichtet seit dem nichts mehr verändert.
Viel Glück
Gerd
-
Ich habe es mit basicauth (wie du es verwendest) und auch mit usr,pwd probiert. Leider funktioniert beides nicht. Wenn ich basicauth einrichte funktioniert die snapshot funktion auch nicht mehr. Die Camera ist eine Foscam FI8918w, im Netz geistern auch wiedersprüchlich Angaben zu den cgi Befehlen rum, diese habe ich mittlerweile alle durch probiert.
P.S. User:Password sind da mit drin:
pathPanTilt decoder_control.cgi?usr=xxxxxxxx&pwd=xxxxxxxx
VG
Frank
-
Ich habe jetzt auch mal 2 IPcams installiert.
Was mir dabei aufgefallen ist:
Mit einem get imagewerden zwei identische snapshots erzeugt
<webcamname>_snaphot.jpg
<webcamname>_snaphot_1.jpg
Warum ? Einer würde doch ausreichen.
-
Ich wollte meine IPCams einmal auf SSL-Verschlüsselung umstellen (hinter Apache Reverse Proxy, mit Let's Encrypt-Zertifikat).
Leider lädt IPCam kein Bild mehr, im Log steht nur:
2016.07.19 19:35:26 1: IPCAM Kamername Wrong or not supported image format: unknown
URL im Browser funktioniert, ohne SSL funktioniert es, somit muss es an SSL liegen.
Hat irgendjeman IPCAM mit SSL-geschützten Kameras am laufen?
Viele Grüße,
Heiko
-
Hallo
Möchte gern meine Hootoo HT IP211 HDP ins modul mit einbinden um scapshots zu erzeugen
der Log gibt dieses aus
IPCAM hootoocam URI: http://192.168.178.49:1024/cgi-bin/hi3510/param.cgi?cmd=snap&
2016.07.25 20:18:43 1: IPCAM hootoocam Snapshot: "
2016.07.25 20:18:43 1: IPCAM hootoocam Wrong or not supported image format: unknown
2016.07.25 20:19:18 1: IPCAM hootoocam URI: http://192.168.178.49:1024/cgi-bin/hi3510/param.cgi?cmd=snap&
2016.07.25 20:19:18 1: IPCAM hootoocam Snapshot: var path="/tmpfs/snap_tmpfs/20160725/IMG001/IMG_chn0_TIMER_MNG_20160725201917_006.jpg"
2016.07.25 20:19:18 1: IPCAM hootoocam Wrong or not supported image format: unknown
Modul um debug erweitert hier im Thread erklärt
http://192.168.178.49:1024/cgi-bin/hi3510/param.cgi?cmd=snap& erzeugt ein bild
list hootoocam
Internals:
AUTHORITY 192.168.178.49:1024
DEF 192.168.178.49:1024
NAME hootoocam
NR 675
SEQ 0
STATE Defined
TYPE IPCAM
Readings:
2016-07-22 14:52:41 snapshots 0
Attributes:
event-on-change-reading snapshots
icon it_camera
path cgi-bin/hi3510/param.cgi?cmd=snap&
room Status
snapshots 2
storage /opt/fhem/FHEM
timestamp 1
verbose 5
Wahrscheinlich "var path="/tmpfs/snap_tmpfs/20160725/IMG001/IMG_chn0_TIMER_MNG_20160725201917_006.jpg" " nicht lesbar für IPCAM
aber wie kann man das richtig formatieren?
Andre
-
Sieht nach Linux/Unix aus.
Was kommt denn raus, wenn du dich auf der Shell anmeldest und
ls -la /tmpfs/snap_tmpfs/20160725/IMG001/IMG_chn0_TIMER_MNG_20160725201917_006.jpg
machst, bzw.
file /tmpfs/snap_tmpfs/20160725/IMG001/IMG_chn0_TIMER_MNG_20160725201917_006.jpg
-
Habs zwischenzeitlich hinbekommen Ipcam läuft jetzt mit
meiner hootoo
-
URL im Browser funktioniert, ohne SSL funktioniert es, somit muss es an SSL liegen.
Hat irgendjeman IPCAM mit SSL-geschützten Kameras am laufen?
Viele Grüße,
Heiko
Hallo Heiko.
Ich habe zwar keine SSL/IPCAM aber dreh mal dein verbose (Device & global wenn du Sicher gehen willst) auf 4.
Das Modul IPCAM nutzt unter der Haube HttpUtils::CustomGetFileFromURL welches ab "verbose level 4" Fehlermeldungen ins Log schreiben sollte.
Möglicherweise bräuchtest du das SSL Argument "SSL_verify_mode => 0", weil der code sonst lets encrypt als CA abweist. Ist aber nur Spekulation, erst das Log anschauen.
-
Hallo,
Ist es auch möglich mehrere Bilder speichern zu lassen?
Ich nutze das Modul um ein Bild zu speichern wenn jemand klingelt.
Wenn jedoch mehrere Leute über den Tag verteilt klingeln, wird das erste Bild überschrieben und ich sehen immer nur das letzte Event(Person die klingelt)
Kann man das Modul evtl so erweitern, dass nach jedem Event(get Image) eine neue Datei angelegt wird und nach einer definierten Anzahl wieder das erste Bild überschrieben wird?
Ich stelle mir das so vor:
1. mal klingeln > speichere Bild 1
2. mal klingeln > speichere Bild 2
...
...
5. mal klingeln > speichere Bild 1
MfG
-
Ist es auch möglich mehrere Bilder speichern zu lassen?
Wenn Du das Attribut timestamp auf 1 setzt, werden die Dateien mit einem Timestamp anstelle einer Nummer versehen und dadurch auch nicht mehr überschrieben.
Um das Löschen alter Bilder musst Du Dich dann allerdings selbst kümmern. Eine Lösung wie Du Sie Dir vorstellst, dass IPCAM automatisch immer die letzten x Aufnahmen aufbewahrt, ist in dieser Form nicht vorgesehen. Aber man könnte ja beispielsweise mit einem Skript täglich oder wöchentlich alle Bilder älter als x Tage löschen lassen.
-
Das mit dem täglichen löschen der Aufnahmen stellt kein Problem dar.
Aber wie überrede ich tabletUi immer nur die letzen 5 Aufnahmen anzeigen zu lassen?
Mit freundlichen Grüßen
-
Indem Du immer die letzte Aufnahme weg kopierst und mit einer Nummer versiehst. Gleichzeitig benennst Du die älteren Aufnahmen entsprechend um. 10, 9, 8...
Kannst Du als sh Skript auslagern.
schöne Grüße
Jo
-
Hast du evtl eine Starthilfe für mich?
Bin nicht so der Linux Profi.
Mit freundlichen Grüßen
-
Hallo,
Du kannst diese sub in die 99_myUtils.pm kopieren:
sub GetLastPics($$)
{
my ($cam,$shot) = @_;
my $cmd="";
my $old="";
my $new="";
my $j=0;
my $path='./www/snapshots/';
my $pic=$path.ReadingsVal($cam,'snapshot'.$shot,'');
$cmd=chr(34).'rm '.$path.'last/'.$cam.'_10.jpg'.chr(34);
fhem("$cmd");
for(my $i=9;$i>0;$i--) {
$j=$i+1;
$old=$path.'last/'.$cam.'_'.$i.'.jpg';
$new=$path.'last/'.$cam.'_'.$j.'.jpg';
$cmd=chr(34).'cp '.$old.' '.$new.chr(34);
fhem("$cmd");
}
$cmd=chr(34).'cp '.$pic.' '.$path.'last/'.$cam.'_1.jpg'.chr(34);
fhem("$cmd");
}
Diese Funktion kopiert neue Bilder in einen Ordner und benennt sie um in CAMxy_1, CAMxy_2 usw.
Da nicht immer das erste der geschossenen Bilder das "Gute" ist, kann man mit $shot auch das zweite usw. wählen (=2).
Die Bilder werden dann immer umbenannt, sobald ein neues dazu kommt. In FTUI musst Du dann nur die 10 (oder entsprechend weniger) Bilder anzeigen.
Nicht wirklich hübsch, aber funktional ::)
schöne Grüße
Jo
-
Danke.
Ich werde mich gleich mal ransetzen und es über die Woche ausprobieren.
Mit freundlichen Grüßen
-
Hallo Jojo11,
Muss ich noch Ergänzungen machen?
Habe das Script in die 99_myUtils eingefügt und ein paar Bilder mit "get Ipcam Image" gemacht, es werden jedoch keine Bilder gespeichert im angegebenen Pfad.
Ich habe es mit dem "Timestamp" Attribut versucht und ohne.
Internals:
AUTHORITY 192.168.1.38
DEF 192.168.1.38
NAME CamAuffahrt
NR 35
SEQ 0
STATE letztes Bild: 2016-10-15 18:49:11
TYPE IPCAM
Helper:
Dblog:
Last:
Logdb:
TIME 1476550153.25252
VALUE CamAuffahrt_snapshot.jpg
Snapshots:
Logdb:
TIME 1476550153.25252
VALUE 1
Readings:
2016-10-15 18:49:13 last CamAuffahrt_snapshot.jpg
2016-10-15 18:49:11 snapshot1 CamAuffahrt_snapshot_1.jpg
2016-10-15 18:49:13 snapshots 1
Attributes:
basicauth admin:*******
delay 0
group Kamera
icon it_camera
path Streaming/channels/201/picture
room Cams
storage ./www/snapshots/CamAuffahrt
-
Hallo,
vor Allem musst Du es mal aufrufen, sonst kann es ja nichts machen :o
Testen z.B., indem Du es mit
{GetLastPics("CamAuffahrt", 1)}
aufrufst.
IPCAM gibt mir die letzten Bilder als Readings "snapshot1", "snapshot2", "snapshot3", ... aus. Die Werte sind dann "CAM01_20161015_192138.jpg", ... (s. Anhang).
Ggf. musst Du das bei Dir anpassen. Meine Version von IPCAM ist etwas älter - falls da in letzter Zeit was geändert wurde. Mir reichte die Anzahl der Kommandos nicht, weshalb ich es angepasst habe.
Aber als Starthilfe sollte es reichen ;)
schöne Grüße
Jo
-
Hallo,
ich lasse meine Tür durch eine Mobotix S15 Kamera überwachen. Ich kann mir URL, sowohl den Live Stream aufrufen, als auch einfach nur ein gerade geschossenes Bild. Livestream ist erst mal nebensächlich.
Ich bekomme über den Browser mit folgender URL ganz normal ein Live Bild:
http://192.168.178.225/record/current.jpg
Meine Definition sieht nun wie folgt aus:
Internals:
AUTHORITY 192.168.178.225
CFGFN
DEF 192.168.178.225
NAME mobotix
NR 3985
SEQ 0
STATE last: 2016-10-29 17:23:49
TYPE IPCAM
Readings:
2016-10-29 17:23:49 last mobotix_snapshot.jpg
2016-10-29 17:23:49 snapshot1 mobotix_snapshot_1.jpg
2016-10-29 17:23:49 snapshots 1
Attributes:
path record/current.jpg
room Geräte
storage ./www/snapshots
Kann ich irgendwie kontrollieren, ob da auch ein Bild gemacht wurde und wie dieses Bild aussieht ?
Kann ich das irgendwie aufrufen oder mir irgendwie anzeigen lassen ?
Ich bin mir auch unsicher ob mein Path richtig ist ?
Also muss es heißen /record/current.jpg oder record/current.jpg
Grüße,
Visionsurfer
-
Hi,
ich habe es rausgefunden. Damit kann ich das Bild öffnen:
http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg
Ich hab dann noch mal mit dem GET Befehl ein neues Image angefordert und schon was das Bild aktuell. Scheint also zu funktionieren. Sehr gut. Vielen Dank.
Ich denke so kann ich erst mal weiter machen.
Grüße,
Visionsurfer
-
Hallo coh3r3nt,
ich habe ebenfalls die Edimax IC-3115W im Einsatz.
Dank Deines Hinweises auf die Seite https://www.ispyconnect.com/man.aspx?n=Edimax (https://www.ispyconnect.com/man.aspx?n=Edimax) bin ich nicht nur auf die Lösung meines Problems (Bilder von der Cam generell einzulesen), sondern auch auf die Lösung Deines Wunsches gekommen.
Der Trick ist, die Account-Daten vor die IP-Adresse zu setzen, also
define IC3115W IPCAM [user]:[password]@192.168.xxx.yyy
In diesem Fall müssen für die Strings [user] und [password] die Account-Daten entsprechend ersetzt werden.
Das funktioniert auch, wenn man die Account-Daten über das separate Credencial-File (mittels attr credencials) einsetzt:
define IC3115W IPCAM {USERNAME}:{PASSWORD}@192.168.xxx.yyy
attrib IC3115W credencials /opt/fhem/ipcam.conf
In beiden Fällen braucht dann das Attribut basicauth nicht gesetzt werden.
Und das Wichtigste zum Schluss:
get IC3115W image
funktioniert auch. Zumindest bei mir...
-
Hallo zusammen,
ich implementiere gerade Überwachungskameras in FHEM und möchte mit FHEM auch die Bewegungserkennung ein- und ausschalten.
Anhand des Howto´s (https://213.252.140.23/index.php/topic,54028.msg462414.html#msg462414) von pitman habe ich es geschafft, die Bewegungserkennung meiner Hikvision-Kameras mittels CURL-Aufruf aus der FHEM-Befehlszeile zu aktivieren/deaktivieren.
Leider funktioniert die nachfolgenden Befehl mit cmd01 und cmd02 allerdings nicht:
cmd01:{ qx(curl -T Motion_Detection_an.xml http://user:pwd\@IP/ISAPI/Smart/fielddetection) }
cmd02:{ qx(curl -T Motion_Detection_aus.xml http://user:pwd\@IP/ISAPI/Smart/fielddetection) }
Hat jemand eine Idee wie man die Befehle im IPCAM-Modul verwenden kann?
Vielen Dank und viele Grüße
Thorsten
-
Meine alten Smartphones werden mit der "IP Webcam" App zu Überwachungszwecken weiter benutzt.
Nicht immer, aber dann doch irgendwann bekomme ich diesen bekannten Fehler im Logfile
IPCAM MyIPCam Wrong or not supported image format: error while reading source image:
Bei mir hat dann immer ein kompletter Raspi System reboot geholfen.
Das kann's aber auch nicht im entscheidenen Augenblick sein
Die simple Lösung ist bei mir: Der Default Timeout Wert ist einfach zu klein. Fhem als Client wartet einfach zu kurz, während die Webcam noch gar nicht fertig ist, das Bild zu liefern.
Auf die Lösung bin ich über den Post "IPCAM mit Axis Kamera liefert Wrong or not supported image format" https://forum.fhem.de/index.php/topic,55584.msg471865.html#msg471865 (https://forum.fhem.de/index.php/topic,55584.msg471865.html#msg471865) gekommen.
Da wird die Zeile erwähnt, wo mit dem GetFileFromURLQuiet() Aufruf im Modul 49_IPCAM das Bild geholt wird.
Und die zusätzliche Logausgabe von Log 1, "IPCAM $name Snapshot: $snapshot";
war immer leer, anstatt des Bildes
Das Fhem Wiki gibt Auskunft, das man noch optionale Parameter setzen kann.
https://wiki.fhem.de/wiki/HttpUtils#GetFileFromURLQuiet
Nachdem ich nun folgendes nutze, bekomme ich immer zuverlässig ein Bild$snapshot = GetFileFromURLQuiet($camURI, 10, "", 1, 5);
Der Negativ Gegentest mit 1 Sek Timeout zeigt dann wiederum wie erwartet immer den Fehler
$snapshot = GetFileFromURLQuiet($camURI, 1, "", 1, 5);
-
Hallo,
Du kannst diese sub in die 99_myUtils.pm kopieren:
sub GetLastPics($$)
{
my ($cam,$shot) = @_;
my $cmd="";
my $old="";
my $new="";
my $j=0;
my $path='./www/snapshots/';
my $pic=$path.ReadingsVal($cam,'snapshot'.$shot,'');
$cmd=chr(34).'rm '.$path.'last/'.$cam.'_10.jpg'.chr(34);
fhem("$cmd");
for(my $i=9;$i>0;$i--) {
$j=$i+1;
$old=$path.'last/'.$cam.'_'.$i.'.jpg';
$new=$path.'last/'.$cam.'_'.$j.'.jpg';
$cmd=chr(34).'cp '.$old.' '.$new.chr(34);
fhem("$cmd");
}
$cmd=chr(34).'cp '.$pic.' '.$path.'last/'.$cam.'_1.jpg'.chr(34);
fhem("$cmd");
}
Diese Funktion kopiert neue Bilder in einen Ordner und benennt sie um in CAMxy_1, CAMxy_2 usw.
Da nicht immer das erste der geschossenen Bilder das "Gute" ist, kann man mit $shot auch das zweite usw. wählen (=2).
Die Bilder werden dann immer umbenannt, sobald ein neues dazu kommt. In FTUI musst Du dann nur die 10 (oder entsprechend weniger) Bilder anzeigen.
Nicht wirklich hübsch, aber funktional ::)
schöne Grüße
Jo
Hallo zusammen, hierzu benötige ich auch eure Hilfe. IPCAM zeichnet bei mir 2 Snapshots auf wenn es an der Tür klingelt. In FTUI kann ich mit Zeit und Datum des Klingelns anzeigen lassen, dazu würde ich gerne die 2 Snaps einblenden. Das soll z.B. für die letzten 5 Klingelaktionen also bei 10 Screens passieren. Leider lässt sich das mit IPCAM Readings nicht darsellen da nur die letzte SNAP-Aktion als Reading aufgezeichnet wird. Setze ich Timestamps habe ich zwar die Screens aber kann wegen unterschiedlicher Namen sie nicht fest einbinden.
Eigentlich hatten wir in einem anderen Thread eine Lösung mit einer SUB, welche die Dateinamen durchsuchte und dann per -F8 nur den Dateinamen ausgab. Die SUB wurde alle 5 min aufgerufen und die readings in ein dummy geschrieben. Das ging allerdings nicht mehr, weil, warum auch immer, bei manchen Snaps das Verzeihnis unter -f8 bei manchen unter -f7 auftauchte.
Ich denke oben verlinkte SUB könnte die Lsöung sein, da somit feste Daeinamen mit dem IMAGE-Widget aufgerufen werden. Mangels meiner PERL-KEntnisse raffe ich jedoch nicht, wie ich diese abändern und/oder richtig in Fhem dann einbinden kann. Meine Screens liegen in www/tablet/image/Kamera .... Bin über jede Hilfe dankbar! DANKE
-
Habe jetzt die Funktion mit meinen Ordner angepasst.
Wenn ich Sie aufrufe {...("Draussen", 1)} bekomme ich im Log:
rm: das Entfernen von „./www/tablet/images/Kamera/last/Draussen_10.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_9.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_8.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_7.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_6.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_5.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_4.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_3.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_2.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: der Aufruf von stat für „./www/tablet/images/Kamera/last/Draussen_1.jpg“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
cp: Verzeichnis „./www/tablet/images/Kamera/“ wurde ausgelassen
Irgendwie raff ich die Funktion der SUB wohl noch nicht
-
Hallo ich habe ein Problem
Wenn ich das
192.168.2.101:86/web/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=1
I'm Browser eingebe, Fährt die Kamera eine definierte Position an. Aber ich bekomme es nicht hin über dein Modul die Position anzufahren.
Kannst du mir sagen wie ich die Attribute setzen muss?
-
Feature Request: Timestamp als {timestamp} Variable
Ich kämpfe gerade mit der neuen Webcam der AllianzArena:
Über folgende Website werden die Bilder im 10 Sekunden-Takt aktualisiert: https://allianz-arena.com/de/die-arena/webcams/esplanade (https://allianz-arena.com/de/die-arena/webcams/esplanade)
Das konkrete Bild gibt es über folgende URL: https://allianz-arena.com/static-content-upload/webcam/esplanade-webcam-image-01.jpg (https://allianz-arena.com/static-content-upload/webcam/esplanade-webcam-image-01.jpg)
Aber Achtung: Die Gemeinheit ist, dass sich das Bild unter der zweiten URL nach dem ersten Aufruf nicht aktualisiert wird. Es wird nur ein neues Bild gezogen, wenn die URL sich ändert. Erreicht wird das in der Website (erste URL), in dem via JS ein sich ändernder Suffix angehängt wird. Der JS Code hänngt hier ein Datum an, tatsächlich reicht es aber aus, wenn "irgendeine" neue URL generiert wird, also sinngemäß https://allianz-arena.com/static-content-upload/webcam/esplanade-webcam-image-01.jpg?_2017-03-08_08-23 (https://allianz-arena.com/static-content-upload/webcam/esplanade-webcam-image-01.jpg?_2017-03-08_08-23)
Was mir hier unglaublich helfen würde wäre ein Platzhalter analog zu {USERNAME} und {PASSWORD}, der sich irgendwie ändert. Sinnvoll wäre hier ein {TIMESTAMP}, der Datum und Uhrzeit enthält, also etwas in der Art: {TIMESTAMP} => "2017-03-08_08-23"
Wäre das mit vertretbarem Aufwand realiserbar?
Viele Grüße,
weini
-
So, ich habe mir jetzt mal selbst geholfen:
Anbei ein Patch für IPCAM. Es wird zusätzlich der Platzhalter {TIMESTAMP} eingeführt, der das aktuelle Datum im Format "YYYY-MM-TT_HH-MI-SS" zurückliefert. Die Ersetzung im Attribut "path" wird aktuell nur bei einem "GET IMAGE" durchgeführt.
Ich würde mich sehr freuen, wenn der Patch in die nächste Version wandert. Nützlich ist das nur für öffentliche Webcams, die beim Abruf der Bilder etwas "zickig" sind. Es schadet aber nichts und die Änderung im Modul ist minimal.
-
Hallo zusammen,
seit einiger Zeit setze ich das ipcam-modul erfolgreich ein. Beim Auslösen eines Kontaksensors verschicke ich ein Bild per Telegram. Das klappt alles wunderbar. Leider bekomme ich nicht immer das letzte aufgenommene Bild, sondern das vorletzte.
Meine Frage: wie bekomme ich es hin, dass immer da letzte Bild aus meinem Ordner "snapshots" versendet wird?
hier mein notify:
#Notify für Bildversand von Telegram
define testdoor notify Tuerstatus:on set cam pos 1;;get cam image;;set my_bot sendPhoto /opt/fhem/SonosSpeak/snapshots/cam_snapshot.jpg
attr testdoor room Notify
und hier meine Kameradefinition:
# IP CAM
define cam IPCAM 192.168.1.xx
attr cam basicauth meinusername:meinpasswort
attr cam cmdPanLeft command=4
attr cam cmdPanRight command=6
attr cam cmdPos01 command=31
attr cam cmdPos02 command=33
attr cam cmdPos03 command=35
attr cam cmdPos04 command=37
attr cam cmdStep onstep
attr cam cmdTiltDown command=2
attr cam cmdTiltUp command=0
attr cam delay 5
attr cam genericDeviceType security
attr cam icon it_camera
attr cam path snapshot.cgi?user=meinusername&pwd=meinpasswort
attr cam pathPanTilt decoder_control.cgi?
attr cam room Homekit,Wohnzimmer
attr cam snapshots 2
attr cam storage /opt/fhem/SonosSpeak/snapshots
attr cam timestamp 0
vielleicht kann mir jemand weiterhelfen - das wäre ein tolles Ostergeschenk.
Danke ,
wolf
-
Ich mache es mit DOIF und warte 2 sek von dem Moment wo das Bild gemacht wird zu dem Zeitpunkt an dem ich es sende
-
Ich mache es mit DOIF und warte 2 sek von dem Moment wo das Bild gemacht wird zu dem Zeitpunkt an dem ich es sende
Mhh, ja, das würde natürlich gehen, aber gibt es denn keine Möglichkeit, die neueste Datei eines Verzeichnisses zu bestimmen und diese zu verwenden?
Gesendet von iPhone mit Tapatalk Pro
-
I'm Prinzip ist es ja so wie du es definiert hast die neueste datei. Aber fhem führt den sende Befehl schneller aus als das neue Bild gespeichert ist. Das Problem hatte ich auch und habe deshalb ein wait 2 vor dem senden gesetzt damit ist die Datei auf jeden Fall aktuell
-
Kann ich bestätigen. Es dauert einfach, bis das Bild gespeichert wurde.
Du könntest das Versenden durch ein separates Notify machen, das auf die Aktualisierung des Readings last in Deinem IPCam-Modul triggert.
Dann hast Du die Gewissheit, erst zu Versenden, wenn ein neues Bild aufgenommen wurde.
-
frohe Ostern zusammen,
das mit dem notify auf "last" probiere ich mal. vielen Dank für den Tip
wolf
-
Ich versuche hier nochmal eine Lösung für das Problem "Wrong or not supported image format: unknown" zusammen zu fassen und hoffe, dass es Verzweifelten hilft :)
Danke, mir hat es geholfen. Ich habe festgestellt, dass bei der Angabe der URL nicht http:// davor stehen darf und der Pfad nicht mit einem Slash beginnen kann (bei mir stand dann im Aufruf http://http://url//snapshot.cgi). Vielleicht könnte man den Entwickler bitten, bei der Fehlermeldung gleich die URL aufzuzeigen, dann sieht man den Fehler sofort? Oder in der commandref...
-
so langsam wird es was..
leider kann meine Foscam C1 kein MJPG stream, ganze Netz rauf und runter
Ich hab die cam so definiert:
Internals:
AUTHORITY 192.168.10.32:88
CHANGED
DEF 192.168.10.32:88
NAME CAM
NR 32
SEQ 0
STATE Defined
TYPE IPCAM
Readings:
2017-06-28 17:32:48 snapshots 0
Attributes:
delay 10
icon it_camera
path cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=pi&pwd=passwort
room CAM
snapshots 2
storage /opt/fhem/www/snapshots/cam
verbose 5
wenn ich nun ein get image mache kommt kurz später das im Log:
IPCAM CAM Can't write /opt/fhem/www/snapshots/cam/CAM_snapshot.jpg: Keine Berechtigung
mit diesem hier bekomme ich ein aktuelles Bild im fhem Fenster 8)
define GartenCam weblink htmlCode <img src="http://192.168.10.32:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=pi&pwd=passwort">
attr GartenCam room Garten
den Ordner /snapshots/cam habe ich als user pi mittels
mkdir snapshots
mkdir cam
und dann Rechtevergabe
sudo chmod 755 snapshots
sudo chmod 755 cam
pi ist sowohl der user von camera als auch vom pi
wenn ich beide Ordner nun auf
777 setze kann ich ein Bild speichern, aber ob das sinnvoll ist ??
wie kann man dann die Bilder anzeigen, bei doorpi reicht ein einfacher Klick auf den Link
-
den Ordner /snapshots/cam habe ich als user pi mittels
mkdir snapshots
mkdir cam
und dann Rechtevergabe
sudo chmod 755 snapshots
sudo chmod 755 cam
pi ist sowohl der user von camera als auch vom pi
FHEM und damit auch das Modul IPCAM wird üblicherweise vom Benutzer fhem ausgeführt. Der sollte also Besitzer dieser Ordner sein.
Das kannnst Du mit chown nachträglich ändern. Die Zugriffsrechte sollten wie bei den übergeordneten sein (etwa /opt/fhem/www/), denn die gehören auch fhem.
Damit sollte sich das Berechtigungsproblem lösen lassen.
-
so nun hab ich also schon wieder 30 Minuten versucht mit google rauszufinden wie man nun dem Ordner die passenden Rechte gibt.
Ich bin normalerweise als pi am raspi angemeldet, wenn ich nun mit Winscp oder putty die Rechte vergebe ist der Besitzer p und nicht fhem
bei Windows wäre das für mich ein Klacks
Sorry
im Einsteiger Pdf und in der commandref bisher nichts gefunden
-
Such mal nach Linux chown ;)
-
also
chown -R fhem:fhem /snapshots/cam
?!
die Syntax wieder nicht verstanden..
oder sonst was
mit Winscp als root eingewählt dann ging es, einfahc nachgesheen wie die übergeordneten Ordner eingestellt waren ....
-
Hallo
Ich hoffe mir kan hier jemand helfen.
Ich habe meine D-imk dcs933l ins FHEM integriert:
define CAM1 weblink iframe http://xxx:XXX@192.168.0.120/video/mjpg
attr CAM1 htmlattr width="180" height="180"
attr CAM1 room Camera
(xxx=benutzername; XXX=passwort)
Kriege aber kein bild angezeigt
das habe ich von der Home seite von Dlink:
Um ein LiveBild oder einen LiveStream von einer Kamera zu erhalten kann man folgende URLs verwenden:
JPEG:
http(s)://benutzername:passwort@ip_der_kamera/image/jpeg.cgi
MJPEG:
http(s)://benutzername:passwort@ip_der_kamera/video/mjpg.cgi
Anmerkung: Ein direkter Aufruf der URL im Browser funktioniert nur unter Firefox und Chrome.
in jeder Browster kriege ich das video angezeigt
was mache ich falsch?
-
Hallo Skenik,
vielleicht fehlt ja auch nur das ".cgi" am Schluss des Links. Manchmal funktioniert das Bild auch nicht im Frame.
Gruß
qlaus
-
"cgi" steht am Ende
-
Gibt es andere Möglichkeiten die Camera ins fhem einzubinden süßer "weblink"?
-
Hallo, mich beschäftigt iMo die Frage wie ich mehr als nur einen snapshot abholen kann. Die Kamera macht z.B. 5 snapshots, mittels weblink kann ich mir nun ein Foto zur Anzeige abholen. Mir fehlt ein Lösungsansatz um alle 5 snapshots zu holen und als Mosaik darzustellen.
Hat jemand einen Tipp?
VG
Frank
-
Hallo Zusammen.
Ich habe mir eine IP-Kamera von CTronics gekauft.
http://www.ctronicssecuritycameras.com/shop/wifi-720p-ip-camera/150-wide-viewip-cameractronics-wifi-wireless-security-camera-surveillance-dome-camera-vandalproofaudiohd-720pnight-visionmotion-detectemail-alertpcphonetabletcms-remote16g-sd-includ/
(Bei Amazon für 80€ https://www.amazon.de/gp/product/B0744JNLLX/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)
Bisher funktioniert alles ganz gut mit der App des Herstellers und mit iSpy.
Ich würde gerne die IP-Kamera in FHEM einbinden, sodass ich wie bei euch ein Bild zugeschickt bekomme.
Das Kamerabild in iSpy erhalte ich über folgenden Link:
IPKamera mit Wizard
Ich habe festgestellt, dass ich ein Bild bekomme, wenn ich statt Ctronics -- HiSilicon RTSP(TCP) DVR als Hersteller auswähle.
rtsp://admin.admin@192.168.xxx.xxx:554/11 (Dieser Link funktioniert auch im VLC-Player)
(Zur Sicherheit verwende ich HIER die Default Passwörter und die gekürzte IP.)
Kann mir jemand weiterhelfen?
Meine Config sieht derzeit so aus:
define IPKAMERA IPCAM 192.168.xxx.xxx:554/11
attr IPKAMERA delay 0
attr IPKAMERA group Kamera
attr IPKAMERA icon it_camera
attr IPKAMERA path rtsp://username:passwort@192.168.xxx.xxx:554/11
attr IPKAMERA room IP Kamera
attr IPKAMERA snapshots 1
attr IPKAMERA storage /opt/fhem/www/snapshots/cam1
-
rtsp://admin.admin@192.168.xxx.xxx:554/11 (Dieser Link funktioniert auch im VLC-Player)
RTSP ist ein Streaming-Protokoll. Darüber überträgt die Kamera Video und Audio.
Für IPCAM benötigst Du aber Snapshots, also Einzelbildaufnahmen.
Du musst als einen Link finden, unter dem Du jeweils ein Einzelbild abrufen kannst.
-
Hallo,
ich versuche über das Modul ipcam meine Instar 5907HD zu steuern. Leider ohne Erfolg.
Ich habe diesen und viele weitere Beiträge bereits mehrfach gelesen. Auch diese Seite
https://www.fischer-net.de/hausautomation/fhem/62-fhem-modul-ipcam-ueberarbeitet.html
mehrfach gelesen. Mir erschließt sich nicht wie ich diese Befehle https://wiki.instar.de/1080p_Series_CGI_List/
in das Modul eintagen muss.
Vielleicht kann mir bitte jemand behilflich sein oder seine Einstellungen zeigen?
defmod ipcam_Hof IPCAM 192.xxx.xxx.xxx:xxxx
attr ipcam_Hof basicauth {USERNAME}:{PASSWORD}
attr ipcam_Hof cmd01 param.cgi?cmd=setinfrared&-infraredstat=auto
attr ipcam_Hof credentials /opt/fhem/ipcam.conf
attr ipcam_Hof path snapshot.cgi?user={USERNAME}&pwd={PASSWORD}
attr ipcam_Hof pathCmd param.cgi?cmd=getinfrared
attr ipcam_Hof room Alarme
attr ipcam_Hof snapshots 1
attr ipcam_Hof storage /opt/fhem/ipcam
Vielen Dank im Voraus.
-
Hallo dk3572,
Ich habe eine INSTAR 8015 Full HD, hier meine Einstellungen:
defmod Cam1 IPCAM 192.xxx.xxx.xxx:80
attr Cam1 basicauth {USERNAME}:{PASSWORD}
attr Cam1 cmd01 cmd=setinfrared&-infraredstat=auto
attr Cam1 cmd03 cmd=setinfrared&-infraredstat=close
attr Cam1 cmd04 cmd=setioattr&-io_enable=1&-io_flag=1
attr Cam1 cmd05 cmd=setioattr&-io_enable=0&-io_flag=0
attr Cam1 cmd06 cmd=setmdalarm&-aname=type&-switch=on
attr Cam1 cmd07 cmd=setmdalarm&-aname=type&-switch=off
attr Cam1 cmd08 cmd=setmdattr&-name=1&-enable=1
attr Cam1 cmd09 cmd=setmdattr&-name=1&-enable=0
attr Cam1 cmdPanLeft -act=left
attr Cam1 cmdPos01 -act=goto&-number=0
attr Cam1 cmdPos02 -act=goto&-number=1
attr Cam1 cmdPos03 -act=goto&-number=2
attr Cam1 cmdPos04 -act=goto&-number=3
attr Cam1 cmdPos05 -act=goto&-number=4
attr Cam1 credentials /opt/fhem/IPcam_credentials.cfg
attr Cam1 delay 2
attr Cam1 path /tmpfs/snap.jpg
attr Cam1 pathCmd param.cgi
attr Cam1 pathPanTilt param.cgi?cmd=preset
attr Cam1 storage ./www/snapshots
Da deine Cam eine 720p Kamera ist solltest du diese Befehle verwenden:
https://wiki.instar.de/720p_Series_CGI_List/ (https://wiki.instar.de/720p_Series_CGI_List/)
Leider ist das mit dem Modul etwas undurchsichtig, wie sich die Befehle aus den Attributen pathPanTilt/pathCmd und path zusammensetzen.
Erst einen Blick in den Sourcecode brachte etwas Licht ins dunkle.
"cmd"-Befehle werden Intern so zusammengefügt:
<pathCmd>?<cmd>
schaut man sich jetzt den INSTART Befehl für die Infrarot LEDs an:
param.cgi?cmd=setinfrared&-infraredstat=auto
sieht man , wie die Attribute gesetzt werden müssen.
Da <pathCmd> und <cmdXX> im Modul mit einen "?"-Zeichen verbunden werden, sehen die Attribute wie folgt aus:
attr <name> pathCmd param.cgi
attr <name> cmd01 cmd=setinfrared&-infraredstat=auto
Die Befehle "set <name> pos" werten Intern so verschaltet:
<pathPanTilt>&<cmdPosXX>
Der INSTAR Befehl um einen Position anzufahren lautet:
param.cgi?cmd=preset&-act=goto&-number=0
Da <pathPanTilt> und <cmdPosXX> im Modul mit einen "&"-Zeichen verbunden werden, müssen die Attribute so gesetzt werden:
attr <name> pathPanTilt param.cgi?cmd=preset
attr <name> cmdPos01 -act=goto&-number=0
Der INSTAR Befehl um nach rechts zu schwenken lautet:
ptzctrl.cgi?-step=&-act=left
hier müssten dann die Attribute wie folgt gesetzt werden:
attr <name> pathPanTilt ptzctrl.cgi?-step=
attr <name> cmdPanLeft -act=left
Da für die "pan","tilt" und "pos" immer der Pfad "pathPanTilt" verwendet wird, muss man sich also entscheiden auf welchen Wert man "pathPanTilt" setzt.
Schön wäre hier ein extra Attribut "pathPos".
Ich steuere meine INSTAR ausschließlich über den raw Befehl, denn dann können die Befehle einfach so benutzt werden, wie sie auf der INSTAR-WIKI Seite stehen und man muss sich keine Gedanken über die Zusammensetzung der Attribute machen.
z.B
set <name> raw param.cgi?cmd=setinfrared&-infraredstat=auto
Hoffe das hilft dir etwas.
Gruß Schlimbo
-
Hallo Schlimbo,
vielen Dank für die ausführliche Hilfe!
Das mit den 720p ist mir auch bereits aufgefallen.
Habe alles wie von dir beschrieben umgesetzt, funktioniert aber immer noch nicht.
Bekomme diese Warnung:
PERL WARNING: Possible unintended interpolation of @IS in string at (eval 151402) line 5
Habe es gelöst. Lag an dem "@" in meinem Passwort. Passwort geändert, funzt!
Vielen Dank noch mal für deine sehr detaillierte Hilfe!
Gruß Dieter
-
Hallo zusammen,
ich wollte heute eine DCS-5000L von D-Link einbinden, klappt auch alles mit dem Modul, bis auf dass die Nachtsicht-Infrarot-LEDs leider nur per POST und nicht per GET Request gesteuert werden können.
Ich habe dazu die Attribute cmdPostXX, analog cmdXX, und den Set-Befehl cmdPost eingebaut.
Heißt ein set cmdPost 1 führt dann entsprechend das Gleiche als POST-Request aus, wie set cmd 1, nur dass der Pfad aus dem Attribut pathCmdPost kommt und die Werte im Attribute cmdPost01 stehen.
Außerdem war nötig, dass die POST-Requests einen Referer-Header haben, dazu habe ich dann noch das Attribut cmdPostReferer hinzugefügt.
Falls das jemand was nützt, hier sind die Änderungen: https://github.com/berrnd/fhem-mirror/compare/master...berrnd:feature-IPCAM-postrequests (https://github.com/berrnd/fhem-mirror/compare/master...berrnd:feature-IPCAM-postrequests)
(Ich bin in Perl leider immer noch absolut nicht Zuhause, also seid dahingehend gerne nachsichtig... :D)
Die Definition meiner Kamera sieht dann aktuell so aus
defmod Flur.Kamera IPCAM camera-flur
attr Flur.Kamera userattr streamurl
attr Flur.Kamera basicauth xx:xx
attr Flur.Kamera cmdPanLeft PanSingleMoveDegree=15&TiltSingleMoveDegree=15&PanTiltSingleMove=3
attr Flur.Kamera cmdPanRight PanSingleMoveDegree=15&TiltSingleMoveDegree=15&PanTiltSingleMove=5
attr Flur.Kamera cmdPos01 PanTiltPresetPositionMove=1
attr Flur.Kamera cmdPos02 PanTiltPresetPositionMove=2
attr Flur.Kamera cmdPos03 PanTiltPresetPositionMove=3
attr Flur.Kamera cmdPos04 PanTiltPresetPositionMove=4
attr Flur.Kamera cmdPos05 PanTiltPresetPositionMove=5
attr Flur.Kamera cmdPos06 PanTiltPresetPositionMove=6
attr Flur.Kamera cmdPos07 PanTiltPresetPositionMove=7
attr Flur.Kamera cmdPosHome PanTiltPresetPositionMove=7
attr Flur.Kamera cmdPost01 IRLed=0
attr Flur.Kamera cmdPost02 IRLed=1
attr Flur.Kamera cmdPostReferer http://camera-flur
attr Flur.Kamera cmdTiltDown PanSingleMoveDegree=15&TiltSingleMoveDegree=15&PanTiltSingleMove=7
attr Flur.Kamera cmdTiltUp PanSingleMoveDegree=15&TiltSingleMoveDegree=15&PanTiltSingleMove=1
attr Flur.Kamera group Kameras
attr Flur.Kamera path image/jpeg.cgi
attr Flur.Kamera pathCmdPost setControlDayNight
attr Flur.Kamera pathPanTilt pantiltcontrol.cgi?
attr Flur.Kamera room Flur
attr Flur.Kamera storage ./www/snapshots
attr Flur.Kamera streamurl http://xx:xx@camera-flur/video.cgi
Was ich auch noch ganz nützlich fände, wären Aliasnamen für die gespeicherten Positionen, evtl. bekomme ich das bei Gelegenheit ja auch noch hin...
Grüße,
Bernd
-
Der INSTAR Befehl um nach rechts zu schwenken lautet:
ptzctrl.cgi?-step=&-act=left
Dann darf ich aber cmdStep nicht setzen oder?
Wenn ich das aber nicht setze, kann ich set cam1 pan left 1 nicht absetzen. Hier kommt der Fehler, dass cmdStep nicht gesetzt ist.
Ich habe eine IN-6014HD.
Die Befehle von der Seite https://www.instar.de/faq_cgi_hd klappen auch.
http://192.168.2.9/cgi-bin/hi3510/ptzctrl.cgi?-step=1&-act=left
definiert ist das Device wie folgt:
defmod cam1 IPCAM 192.168.2.9
attr cam1 alias Kamera 1
attr cam1 basicauth admin:qwertz
attr cam1 cmd01 cmd=setimageattr&-flip=on
attr cam1 cmd02 cmd=setimageattr&-flip=off
attr cam1 cmd03 cmd=setinfrared&-infraredstat=open
attr cam1 cmdPanLeft -act=left
attr cam1 cmdPanRight right
attr cam1 cmdStep -step
attr cam1 cmdTiltDown down
attr cam1 cmdTiltUp up
attr cam1 loglevel 6
attr cam1 path snap.jpg
attr cam1 pathCmd param.cgi?
attr cam1 pathPanTilt cgi-bin/hi3510/ptzctrl.cgi?
attr cam1 room Kameras
attr cam1 storage ./www/snapshots
attr cam1 webCmd pan left:pan right
Wenn ich den Befehl "set cam1 pan left" absetze passiert nix.
passiert nix:
Wenn ich attr cam1 pathPanTilt cgi-bin/hi3510/ptzctrl.cgi?-step=
passiert auch nix.
Wie wäre denn ein Beispiel, damit die Befehl https://www.instar.de/faq_cgi_hd richtig als URL in IPCAM umgesetzt werden.
Mit einem LOG kann ich leider nicht dienen. Trotz loglevel im IPCAM-Modul = 6 und in global = 4 ist das einzige was geloggt wird:
Was geht
GET cam1 image
und
set cam1 cmd01
D.h. irgendwie wird die URL für Pan und Til nicht sauber zusammengebaut.
-
So folgendes klappt jetzt:
defmod cam1 IPCAM 192.168.2.9
attr cam1 alias Kamera 1
attr cam1 basicauth admin:qwertz
attr cam1 cmd01 cmd=setimageattr&-flip=on
attr cam1 cmd02 cmd=setimageattr&-flip=off
attr cam1 cmd03 cmd=setinfrared&-infraredstat=open
attr cam1 cmdPanLeft -act=left
attr cam1 cmdPanRight -act=right
attr cam1 cmdTiltDown -act=down
attr cam1 cmdTiltUp -act=up
attr cam1 delay 2
attr cam1 loglevel 6
attr cam1 path snap.jpg
attr cam1 pathCmd param.cgi?
attr cam1 pathPanTilt ptzctrl.cgi?-step=0
attr cam1 room Kameras
attr cam1 storage ./www/snapshots
attr cam1 webCmd pan left:pan right:tilt up:tilt down:raw ptzctrl.cgi%3F-step%3D0%26-act%3Dstop
Schöne wäre, wenn man den webCmd für STOP noch sinnvoller definieren könnte. Leider geht das nur via RAW, da ich für cmd-Befehle schon param.cgi verwende.
Auch klappt es nicht via cmdIcon hier Icons zuzuweisen.
-
Was ich auch noch ganz nützlich fände, wären Aliasnamen für die gespeicherten Positionen, evtl. bekomme ich das bei Gelegenheit ja auch noch hin...
Das habe ich nun gebastelt - falls es wer nützlich findet: https://github.com/berrnd/fhem-mirror/compare/master...berrnd:feature-IPCAM-posaliases (https://github.com/berrnd/fhem-mirror/compare/master...berrnd:feature-IPCAM-posaliases)
(Die Anpassungen erfolgten unabhängig voneinander, als Basis hier habe ich wieder das aktuelle IPCAM Modul genommen.)
Man kann damit nun z. B. einen Alias für Position 1 definieren
attr Flur.Kamera cmdPos01Alias garderobe
und die dann einfach ansteuern
set Flur.Kamera pos garderobe
wobei ganz normal das Kommando aus cmdPos01 verwendet wird.
Der Vollständigkeit halber habe ich das auch für cmdXX ergänzt.
Grüße,
Bernd
-
Hallo,
ich sehe immer mal wieder folgenden Eintrag im LOG:
PERL WARNING: Use of uninitialized value $camret in concatenation (.) or string at ./FHEM/49_IPCAM.pm line 234
Hat jemand eine Idee, wo das herkommen könnte?
Gruß
Blueberry63
-
Von deiner IP Kamera konnte kein Bild geholt werden.
Die Ausgabe Use of uninitialized value $camret
kommt aus der IPCAM_Set()
Ich habe mir das Modul an den beiden Stellen erweitert, das es überprüft ob das Bild holen auch erfolgreich war.
Wenn die jeweilige Variable durch das jeweilige GetFileFromURLQuiet() Leer geblieben ist, dann gibt's eine etwas besser lesbare Warnung
my $camret = GetFileFromURLQuiet($camURI, 10, "", 1, 5);
$camret = "" unless defined $camret;
if($camret eq '') {
Log 1, "IPCAM $name IPCAM_Set() got not image in time!";
##Log 5, "IPCAM $name camURI was: $camURI"; # ACHTUNG! Diese Zeile nur im Notfall oder wenn neue IPcam in Betrieb genommen wird. URL enthält sensible Daten, wie z.B. auch User & Passwort !!!!
return "Error IPCAM $name got not image in time!";
}
Log 5, "ipcam return:$camret";
}
return undef;
$snapshot = GetFileFromURLQuiet($camURI, 10, "", 1, 5);
$snapshot = "" unless defined $snapshot;
if($snapshot eq '') {
Log 1, "IPCAM $name IPCAM_getSnapshot() got not image in time!";
##Log 5, "IPCAM $name camURI was: $camURI"; # ACHTUNG! Diese Zeile nur im Notfall oder wenn neue IPcam in Betrieb genommen wird. URL enthält sensible Daten, wie z.B. auch User & Passwort !!!!
return "Error IPCAM $name got not image in time!";
}
$imageFormat = IPCAM_guessFileFormat(\$snapshot);
-
Hallo zusammen,
sitze hier gerade auch an den ersten Versuchen mit meiner HooToo.
@ Patrik.S.
Mir scheint wohl nur der richtige Pfad zu fehlen.
Kannst Du mir den, besser alles dazu, mitteilen?
Gruß an alle
-
Hallo
Das Modul abändern wie folgt
In IPCAM Zeile 380 unter
$timestamp =~ s/(:|-)//g;
$snapshot = GetFileFromURLQuiet($camURI);
dies zusätzlich einfügen
$snapshot="http://$camAuth/".substr($snapshot,12,74);
Log 1, "IPCAM $name SnapshotNeu: $snapshot";
$snapshot = GetFileFromURLQuiet($snapshot);
Definiert ist das Modul so
define hootoocam IPCAM 192.168.178.49:1024
attr hootoocam path cgi-bin/hi3510/param.cgi?cmd=snap&
attr hootoocam room Status
attr hootoocam storage ./www/snapshots
attr hootoocam icon it_camera
attr hootoocam event-on-change-reading snapshots
bei mir
-
Hallo zusammen,
bie mir läuft die Edimax IC-3115W mit dem Modul.
define IC3115W IPCAM 192.x.x.x
attr IC3115W basicauth user:geheim
attr IC3115W path snapshot.jpg
Wer eine andere Edimax-Cam hat, kann sich den paramter für path hier raussuchen: https://www.ispyconnect.com/man.aspx?n=Edimax (https://www.ispyconnect.com/man.aspx?n=Edimax) raussuchen.
Ich hätte auch noch einen Wunsch für das Modul. Könnte man als Kommando auch das Bild (get IC3115W image) machen lassen, zB.:
attr IC3115W webCmd image
So könnte man im Frontend das speichern eines Bildes antriggern durch klick auf das webCmd.
greets,
coh3r3nt
Hallo zusammen,
ich versuche gerade wie oben beschrieben meine Edimax IC-9110w zu implementieren. Allerdings schmiert mir dann immer mein Fhem ab und im Log steht die folgende Meldung.
IPCAM cam_garten Wrong or not supported image format: error while reading source image:
Ich habe aus dem Link oben beide Path Einstellungen probiert. Immer mit dem gleichen Problem.
attr path mjpg/video.mjpg
attr path mjpg/1/video.mjpg
Habe das auch schon so versucht zu definieren:
define CamGarten IPCAM user:passwort@192.x.x.x
Könnt ihr mir hierbei weiter helfen?
-
Könnt ihr mir hierbei weiter helfen?
Für IPCAM benötigst Du Snapshots, also Einzelbildaufnahmen (PEG, PNG, GIF, TIFF, BMP, ICO, PPM, XPM, XBM oder SVG).
MJPG ist ein Videoformat, damit kann IPCAM nichts anfangen.
Du müsstest einen Link finden, unter dem Du jeweils ein Einzelbild Deiner Kamera abrufen kannst.
-
Du müsstest einen Link finden, unter dem Du jeweils ein Einzelbild Deiner Kamera abrufen kannst.
OK, danke dir schon mal! Wenn ich manuell ein Einzelbild auf der Kamera erstelle finde ich es unter diesem Link.
http://192.168.***.***/storage/IPCamera_Manual/2018_04_06/snapshot-001/2018-04-06-09-28-16-Snapshot.jpg
Allerdings ist mir nicht ganz klar wie, oder was ich davon einfügen soll, da die Bilder auch immer in einem Ordner mit dem jeweiligen Datum des Tages abgelegt werden.
-
HI!
Ich habe meine DAHUA IPC-HDW4431C-A erfolgreich eingebunden. Leider bekomme ich hin und wieder keine Bilder zugesendet bzw es werde keine gemacht. Aber nicht immer! Dann bekomme ich im Log einen Error:
2018.04.09 12:33:31.161 1: IPCAM CAMHof Wrong or not supported image format: error while reading source image:
aber wie gesagt nicht immer... Hat jeman dine Idee woran es liegen könnte?
HIer ein List der Cam:
Internals:
AUTHORITY 192.168.xxx.xxx
DEF 192.168.xxx.xxx
NAME CAMHof
NR 134
SEQ 0
STATE last: 2018-04-05 22:23:52
TYPE IPCAM
READINGS:
2018-04-05 22:23:52 last CAMHof_snapshot.jpg
2018-04-05 22:23:52 snapshot1 CAMHof_snapshot_1.jpg
2018-04-05 22:23:52 snapshots 1
Attributes:
basicauth xxxxxxx:xxxxxxx
delay 0
path cgi-bin/snapshot.cgi?chn=[0]
room CAMS
snapshots 1
storage ./www/snapshots
verbose 3
und hier ein Auszug vom Log:
[code]2018.04.09 07:07:47.059 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 07:07:47.099 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 07:07:47.139 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 09:31:52.146 1: RMDIR: ./restoreDir/save/2018-04-06
2018.04.09 09:51:29.794 2: CULHat2: CUL_TCM97001 Unknown device CUL_TCM97001_0, please define it
2018.04.09 12:32:05.394 1: IPCAM CAMHof Wrong or not supported image format: error while reading source image:
2018.04.09 12:33:08.596 3: CULHat2 IT: EingangsTuer closed->on
2018.04.09 12:33:08.637 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:08.733 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:08.739 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:08.753 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:08.794 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:08.834 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:09.196 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:09.276 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:09.600 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:09.641 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:09.680 3: CULHat2 IT: EingangsTuer open->on
2018.04.09 12:33:26.008 2: DOIFKlingel: off eq "on" and absent eq "absent": Unknown command off, try help.
2018.04.09 12:33:31.161 1: IPCAM CAMHof Wrong or not supported image format: error while reading source image:
2018.04.09 12:33:31.170 3: CULHat2 IT: EingangsTuer open->off
2018.04.09 12:33:31.195 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 12:33:31.208 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 12:33:31.220 3: CULHat2 IT: EingangsTuer closed->off
2018.04.09 12:33:35.692 3: CULHat2 IT: EingangsTuer closed->on
2018.04.09 12:33:38.498 3: CULHat2 IT: EingangsTuer open->off
[/code]
-
Was noch sehr komisch ist, das das Modul immer 2 Bilder macht! egal ob ich attr snapshots 1 mache oder nicht eingebe... der Name lautet dann genauso wie das eine Bild nur mit _1.jpg
Kann man das irgendwie abstellen? Er soll nur ien Bild machen...
-
Was noch sehr komisch ist, das das Modul immer 2 Bilder macht! egal ob ich attr snapshots 1 mache oder nicht eingebe... der Name lautet dann genauso wie das eine Bild nur mit _1.jpg
Kann man das irgendwie abstellen? Er soll nur ien Bild machen...
Das letzte Bild wird immer nochmal zusätzlich ohne Nummer gespeichert, damit man immer einen festen Pfad zur letzten Aufnahme hat. Das macht es einfacher, wenn man beispielsweise ein Bild per Messenger oder E-Mail verschicken möchte. Abschalten kann man das m.W.n. nicht, aber es stört doch auch nicht wirklich, oder?
Du könntest auf Timestamp statt Index in den Dateinamen umstellen, dann wird das nicht mehr gemacht. Allerdings werden alte Aufnahmen dann nicht überschrieben und Du musst Dich selbst darum kümmern, dass die ganzen Aufnahmen regelmäßig gelöscht werden.
-
Hmm... Meine Vermutung ist das WENN Fhem das Bild Senden möchte ABER es noch nicht komplett gespeichert wurde WEIL er ja unbedingt 2 davon machen muss und jedes ca 300 bis 500KB hat, er diesen Error macht weil es nunmal noch nicht komplett gespriechert ist.
Könnte man das erstellen den zweiten Bilden unterdrücken würde es vielleicht weniger bis gar nicht pasieren...
Könnte ich da richtig liegen oder eher nicht?
Das mit dem Timestamp ist eine Gute Idee... Man kann doch FHEM irgendwie beibringen das er bitte jeden Tag den Ordner (snapshots) checken soll und Dateien die älter sind als 1 Tag löschen soll... wäre sowas machbar?
-
Das mit dem Timestamp ist eine Gute Idee... Man kann doch FHEM irgendwie beibringen das er bitte jeden Tag den Ordner (snapshots) checken soll und Dateien die älter sind als 1 Tag löschen soll... wäre sowas machbar?
Ich habe dafür eine Funktion in 99_myUtils.pm, die täglich einmal ausgeführt wird. Müsstest Du Dir anpassen, insbesondere $purge_dir und das Reading am Schluss (oder weglassen).
### Löscht im angegebenen Ordner ($purge_dir) alle Dateien älter als übergebene Zahl Tage
### Aufruf: {purge_logpics 30}
### Schreibt die Anzahl der gelöschten Dateien in ein fest verdrahtetes Reading zurück
sub purge_logpics($) {
my $days = shift;
my $purge_dir = "/opt/fhem/log/pics";
# purge backups older than AGE in days
my @file_list;
my @find_dirs = ($purge_dir); # directories to search
my $now = time(); # get current time
my $seconds_per_day = 60*60*24; # seconds in a day
my $AGE = $days*$seconds_per_day; # age in seconds
my $filecnt = 0; # counter for deleted files
find ( sub {
my $file = $File::Find::name;
if ( -f $file ) {
push (@file_list, $file);
}
}, @find_dirs);
for my $file (@file_list) {
my @stats = stat($file);
if ($now-$stats[9] > $AGE) {
unlink $file;
$filecnt = $filecnt +1;
}
}
fhem("setreading DI_Systemwartung last_purge_logpics $filecnt"); # Anzahl der gelöschten Dateien in Reading schreiben
return 1; # 1 als Returnwert, damit ein aufrufendes DOIF keinen "Fehler"" registriert
}
-
HI!
Cool! Habe es dann mal angepasst.... Ich muss doch nix anderes als den Ordner anpassen oder? Wo wird denn angegeben wie alt die Dateien max werden dürfen?
Und dieser Code muss nur in die 99_myutils.pm und neustart, sonst nix?
### Löscht im angegebenen Ordner ($purge_dir) alle Dateien älter als übergebene Zahl Tage
### Aufruf: {purge_logpics 30}
### Schreibt die Anzahl der gelöschten Dateien in ein fest verdrahtetes Reading zurück
sub purge_logpics($) {
my $days = shift;
my $purge_dir = "/opt/fhem/www/snapshots";
# purge backups older than AGE in days
my @file_list;
my @find_dirs = ($purge_dir); # directories to search
my $now = time(); # get current time
my $seconds_per_day = 60*60*24; # seconds in a day
my $AGE = $days*$seconds_per_day; # age in seconds
my $filecnt = 0; # counter for deleted files
find ( sub {
my $file = $File::Find::name;
if ( -f $file ) {
push (@file_list, $file);
}
}, @find_dirs);
for my $file (@file_list) {
my @stats = stat($file);
if ($now-$stats[9] > $AGE) {
unlink $file;
$filecnt = $filecnt +1;
}
}
fhem("setreading DI_Systemwartung last_purge_logpics $filecnt"); # Anzahl der gelöschten Dateien in Reading schreiben
return 1; # 1 als Returnwert, damit ein aufrufendes DOIF keinen "Fehler"" registriert
}
-
Cool! Habe es dann mal angepasst.... Ich muss doch nix anderes als den Ordner anpassen oder? Wo wird denn angegeben wie alt die Dateien max werden dürfen?
Und dieser Code muss nur in die 99_myutils.pm und neustart, sonst nix?
Das ist eine Perl-Funktion. Aufrufen kannst Du Sie mit {purge_logpics 30}, wobei die Zahl angibt, wieviele Tage Dateien maximal alt sein dürfen, um NICHT gelöscht zu werden. Mit {purge_logpics 30} werden also alle Dateien gelöscht, die älter als 30 Tage sind.
Damit das ganze läuft, brauchst Du noch ein AT oder DOIF o. ä., das diese Funktion einmal täglich (oder wöchentlich usw.) aufruft.
Im einfachsten Fall also
define DI_Systemwartung DOIF ([00:01])({purge_logpics 7;; 0})
(Das mit dem ;;0 ist nur, damit das DOIF keine Fehlermeldung ins Log schreibt.)
Außerdem muss Du die vorletzte Zeile (fhem("setreading DI_Systemwartung ...) entweder anpassen oder löschen. Die schreibt bei mir die Anzahl der gelöschte Dateien als Reading in das aufrufende DOIF. Ist aber nur Statistik und kann weggelassen werden.
-
Gibt es auch die möglichkeit eine Video aufzeichnung zu starten ?
Ich möchte per Knopfdruck ( Dashbutton ) gerne PTZ drehen ( das geht ja einfach ) und eine Aufzeichnug starten. Das ganze beim 2. Klick wieder andere Position udn Aufzeichnung stoppen.
Ich denke Fotos sind möglich aber ein ganzes Video / Stream ?
-
Hallo,
ich habe das Problem, dass die Snapshots meiner Instar 5905HD mit dem IPCAM Modul zwar problemlos erzeugt und abgelegt werden, aber die Bilder dann scheinbar defekt sind (s. Anhang).
Es gibt auch keinerlei Fehlermeldung seitens FHEM. Wenn ich den Snapshot Link im Browser öffne, erhalte ich das korrekte Bild der Kamera.
Hat jemand eine Ahnung woran das liegen könnte?
Beste Grüße
Hans
P.S. Auch wenn ich das Bild einer beliebigen öffentlichen Webcam über das Modul abrufe, zeigen sich die Bildfehler. Es scheint also kein Problem mit der Kamera, sondern mit dem Modul zu sein.
-
Die Fehlermeldung :
2018.04.09 12:32:05.394 1: IPCAM CAMHof Wrong or not supported image format: error while reading source image:
kommt bei mir immer dann, wenn die Rechte fehlen.
Kamera : dahua hdbw4431r-zs
Das Snapshot-Kommando
http://10.0.0.30/cgi-bin/snapshot.cgi?chn=[0]
funktioniert, will aber immer user/pass
Das hier aendert daran nichts :
http://user:pass@10.0.0.30/cgi-bin/snapshot.cgi?chn=[0]
Mein Fehler :
Mam muss sich halt die Referenz richtig durchlesen und basic auth und credentials korrekt setzen.
-
Hallo!
Ich würde gerne meine IP-Kamera "SV3C PoE IP Kamera 1080P" über das IP-Cam Modul anbinden.
Leider passiert mit dem Befehl "get image" garnichts.
Bei "get snapshots" bekomme ich "Cam1 snapshots => 0" als Rückmeldung
Mein define schaut so aus:
define Cam1 IPCAM 192.168.178.200
attr Cam1 delay 5
attr Cam1 icon it_camera
attr Cam1 loglevel 6
attr Cam1 path web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
attr Cam1 room Kamera
attr Cam1 snapshots 3
attr Cam1 storage ./www/snapshots
attr Cam1 timestamp 1
Gebe ich den Befehl http://192.168.178.200/web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
direkt im Browser ein, bekomme ich problemlos ein Standbild angezeigt. Ganz ohne Benutzeranmelung oder neueFenster wo man etwas anklicken muss.
Das funktioniert im Browser am Notebook aber auch auf dem Browser des Raspberrys auf dem Fhem läuft.
Muss der Befehl evtl auf die Attribute "path" und "pathCmd" aufgeteilt werden?
Der hohe Log-Level bringt mir auch keine Hilfe.
Hat jemand eine Idee? ::)
Danke schonmal!
Gruß, Christian
-
Hallo!
Ich würde gerne meine IP-Kamera "SV3C PoE IP Kamera 1080P" über das IP-Cam Modul anbinden.
Leider passiert mit dem Befehl "get image" garnichts.
Bei "get snapshots" bekomme ich "Cam1 snapshots => 0" als Rückmeldung
Mein define schaut so aus:
define Cam1 IPCAM 192.168.178.200
attr Cam1 delay 5
attr Cam1 icon it_camera
attr Cam1 loglevel 6
attr Cam1 path http://192.168.178.200/web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
attr Cam1 room Kamera
attr Cam1 snapshots 3
attr Cam1 storage ./www/snapshots
attr Cam1 timestamp 1
Gebe ich den Befehl http://192.168.178.200/web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
direkt im Browser ein, bekomme ich problemlos ein Standbild angezeigt. Ganz ohne Benutzeranmelung oder neueFenster wo man etwas anklicken muss.
Das funktioniert im Browser am Notebook aber auch auf dem Browser des Raspberrys auf dem Fhem läuft.
Muss der Befehl evtl auf die Attribute "path" und "pathCmd" aufgeteilt werden?
Der hohe Log-Level bringt mir auch keine Hilfe.
Hat jemand eine Idee? ::)
Danke schonmal!
Gruß, Christian
Hallo dbox2user
ich würde bei path mal die IP Adresse und den Anfangs Slash weg lassen
also >> path web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
dann sind die Chancen besser.
Schöne Grüße
-
Wow, das war ja eine Blitzantwort! ;)
Sorry, das passiert beim vielen rumprobieren.
Genauso wie du es schreibst hatte ich es probiert und hab es jetzt natürlich wieder eingestellt.
Leider genau das gleiche Verhalten.
Meinem Post ändere ich gleich entsprechend.
Vielleicht noch eine andere Idee?
-
Wow, das war ja eine Blitzantwort! ;)
Sorry, das passiert beim vielen rumprobieren.
Genauso wie du es schreibst hatte ich es probiert und hab es jetzt natürlich wieder eingestellt.
Leider genau das gleiche Verhalten.
Meinem Post ändere ich gleich entsprechend.
Vielleicht noch eine andere Idee?
Hallo nochmal
und im Browser geht der Kamera Zugriff ohne Eingabe des Benutzer und Passwort???
(oder wurde das einmal eingegeben und steckt schon in einem cookie/ Zwischenspeicher)
Das Attribut basicauth [Benutzer]:[Password] könnte dann eine weitere mögliche Lösung sein.
Viel Glück
-
Guten Morgen!
Ja, der Link zum Snapshot und auch zu den Videostreams funktionieren ohne Anmeldedaten. (Ich weiß, das ist bei dieser Cam nicht so schön, da jeder im Netzwerk einfach zugreifen kann)
Die Anmeldedaten braucht man nur für die das Kamera-Web-Interface, um Einstellungen zu ändern.
AUf dem Fhem-Raspberry ging der Link zum Snapshot ohne Probleme im Browser. Auf diesem Raspberry hatte ich jedoch NIE das Web-Interface des Kamera geöffnet. Es funktioniert also definitiv ohne Benutzeranmeldung.
Versuchsweise habe ich jetzt doch mal das "basicauth" Attribut mit {USERNAME}:{PASSWORD} befüttert, aber auch hier leider keine Besserung.
Achja... im Logfile sehe ich nur diese eine Meldung ...auch ohne das "basicauth" Attribut.
2018.09.03 06:19:10 1: IPCAM Cam1 Wrong or not supported image format: unknown
Das Bild aus dem Browser ist definitv im jpg-Format. Das zeigt mir der Browser unter Medieninformation an.
-
Achja... im Logfile sehe ich nur diese eine Meldung ...auch ohne das "basicauth" Attribut.
2018.09.03 06:19:10 1: IPCAM Cam1 Wrong or not supported image format: unknown
Hat der fhem Schreibrecht im angegebenen Pfad?
-
Hi!
Nachdem der Pfad ./www/snapshots ein Unterordner vom Fhem ist, gehe ich eigentlich davon aus, dass der User Fhem Schreibrechte haben sollte, oder?
Wie lautet wieder der Befehl für die Kommandozeile um das entsprechend zu testen?
Davon abgesehen sollte doch ein " get image" nur ein Bild abrufen, aber noch nicht speichern, oder?
Gruß,
Christian
-
Nachdem der Pfad ./www/snapshots ein Unterordner vom Fhem ist, gehe ich eigentlich davon aus, dass der User Fhem Schreibrechte haben sollte, oder?
Wie lautet wieder der Befehl für die Kommandozeile um das entsprechend zu testen?
Der Ordner gehört erstmal dem Benutzer, der ihn erstellt hat. Wenn Du ihn mit root erstellt hast, gehört er root. Dann müsstest Du den Besitzer ändern bzw. die Schreibrechte anpassen.
ls -l <Ordnerpfad>
verrät Dir alles, was Du über den Ordner wissen musst.
Davon abgesehen sollte doch ein " get image" nur ein Bild abrufen, aber noch nicht speichern, oder?
Wo soll es das denn hin abrufen?
get image
speichert ein oder mehrere Bilder gemäß den im Device definierten Vorgaben.
-
Ich habe die Berechtigung mal nachgeschaut. Der Besitzer ist 'Fhem" . Daran liegt es also leider auch nicht. ???
Ausser meinen eingestellten Attribute fehlen mir keine wichtigen Attribute, oder?
Gruss Christian
-
Ausser meinen eingestellten Attribute fehlen mir keine wichtigen Attribute, oder?
attr Cam1 storage ./www/snapshots
Ich bin mir nicht sicher, ob das so passt. Je nach Art der Installation hat der fhem-User kein Home-Verzeichnis bzw. es ist nicht da, wo Du es vermutest.
cat /etc/passwd | grep ^fhem: | awk -F: '{print $6}'
verrät Dir das Home-Verzeichnis von fhem.
Oder im Zweifelsfall gibst Du bei storage eben den absoluten Pfad an, also abhängig von Deiner Installation beispielsweise
attr Cam1 storage /opt/fhem/www/snapshots
-
erstmal Danke an Brockmann für Deine Mühen! :)
Leider gibts keine neuen / gute Nachrichten. :(
Der Befehl cat /etc/passwd | grep ^fhem: | awk -F: '{print $6}'
brachte mir als Antwort /opt/fhem
Trotzdem habe ich jetzt als storage Verzeichnis direkt /opt/fhem/www/snapshots
eingetragen, aber auch damit gibt es keine Änderung.
Mein einziges Reading ist immernoch 2018-09-02 20:32:01 snapshots 0
So langsam bin ich ratlos ... :o
-
Hi Leute!
Nachdem es nun funzt möchte ich das natürlich nicht für mich behalten und hoffe das es vielleicht mal einen anderen elfen kann! ;D
Nun zur Lösung....
Ausschlaggebend zur Lösung war folgender Beitrag: https://forum.fhem.de/index.php?topic=47551.0 (https://forum.fhem.de/index.php?topic=47551.0)
Bei "Path" funktioniert es nun mit web/cgi-bin/hi3510/snap.cgi?&-getstream&-sn
anstatt dem bisherigem web/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=2
Hier noch mein define falls es jemanden hilft:
define Cam2 IPCAM 192.168.178.220
attr Cam2 delay 5
attr Cam2 icon it_camera
attr Cam2 path web/cgi-bin/hi3510/snap.cgi?&-getstream&-sn
attr Cam2 room Kamera
attr Cam2 snapshots 3
attr Cam2 storage /opt/fhem/www/snapshots
attr Cam2 timestamp 1
Vielen Danke nochmal vorallem an Brockmann für seine Mühen!
Gruß Chrstian
-
Hi, ich habe das selbe Thema, habe eine SV3C 1080P POE SV-B01POE-1080P-L und wenn ich das einzelbild abrufe mit
cgi-bin/hi3510/snap.cgi?&-getstream&-sn
dann ist aber die Bildauflösung nur 640x360 also das Bild vom Substream.
Wie schafft man es da das Hauptbild zu bekommen mit 1920x1080 ?
-
Hi, ich habe das selbe Thema, habe eine SV3C 1080P POE SV-B01POE-1080P-L und wenn ich das einzelbild abrufe mit cgi-bin/hi3510/snap.cgi?&-getstream&-sn
dann ist aber die Bildauflösung nur 640x360 also das Bild vom Substream.
Wie schafft man es da das Hauptbild zu bekommen mit 1920x1080 ?
Hallo laserrichi.
Ich habe von SV3C die WLAN-Kamera (SV-B01W-960P-HX). Meine Snapshots greife ich so ab:
attr MyCam path web/cgi-bin/hi3510/snap.jpg
Damit bekomme ich die volle Auflösung (.jpg scheint auch ein Script zu sein, neuer Zugriff = neues Snap). Vielleicht klappt das bei Deinem Modell auch so. Immerhin sind die Dokus + URLs quasi gleich.
Viele Grüße
rob
-
Hi, ich habe das selbe Thema, habe eine SV3C 1080P POE SV-B01POE-1080P-L und wenn ich das einzelbild abrufe mit cgi-bin/hi3510/snap.cgi?&-getstream&-sn
dann ist aber die Bildauflösung nur 640x360 also das Bild vom Substream.
Wie schafft man es da das Hauptbild zu bekommen mit 1920x1080 ?
Hi!
Ich habe nochmal nachgeschaut, bei mir wird das Bild in 1920x1080 abgespeichert.
Bist Du sicher, dass dein Hauptstream in der Kamera auch wirklich auf 1920x1080 eingestellt ist?
Grüße,
Christian
-
Hi,
ja bei der POE und nicht WLAN Kamera geht das leider so nicht. Da unterscheiden diese sich wohl in der Software.
Der Hauptstream ist auf 1920 eingestellt. Dieser läuft als Videostream auch in der richtigen Auflösung auch auf der VU Box.
Habe schon den Hersteller wegen der cgi doku angeschrieben, warte da noch auf Antwort.
Ansonsten wäre es cool wenn das IPCAM Modul aus dem HTML Code den Imagepfad extrahieren könnte ;-) dann könnte man das mit
http://IP-ADRESSE/web/cgi-bin/hi3510/snap.cgi?&-getpic
einfach nehmen
-
Hi,
ja bei der POE und nicht WLAN Kamera geht das leider so nicht. Da unterscheiden diese sich wohl in der Software.
Hi.
Schade eigentlich. Einen Versuch hätte ich noch, denn die SV3C haben anscheinend jede Menge undokumentierte URLs:
Haupt:
http://<ip>/web/cgi-bin/hi3510/snap.cgi?&-getstream-chn=1
Sub
http://<ip>/web/cgi-bin/hi3510/snap.cgi?&-getstream-chn=2
Das klappt bei meiner ebenfalls und lt. Tante Google wohl öfter bei OMVIF-Cams zu finden. Ein letzter Strohhalm :D
Viel Erfolg und beste Grüße
rob
-
Hallo rob, ja es gibt viele Varianten wie man da was bekommt. Deine Variante liefert auch nicht das Bild blank.
Gibt aber wirklich viel zu experimentieren, auch klappt nicht überall die Angabe -chn= was für Channel steht. Bei mir ist Channel 0 der Hauptstream, und 1-3 der sub, und 4 wieder der Hauptstream.
das hier:
http://<ip>/cgi-bin/hi3510/param.cgi?cmd=snap&-getpic&-chn=0
liefert mir:
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<img src="../../../tmpfs/snap_tmpfs/20181031/IMG001/IMG_chn0_TIMER_MNG_20181031184044_027.jpg">
</body></html>
und http://<ip>/cgi-bin/hi3510/snap.cgi?&-getpic&-chn=0
liefert
<body>
<img src="../../../tmpfs/snap_tmpfs/20181031/IMG001/IMG_chn0_TIMER_MNG_20181031184401_031.jpg">
</body>
-
Sn nachdem ich nach den Anleitungen alles einrichten konnte, nur eine kleine Frage. Ist das Modul noch blocking?
-
Hallo, bin gerade auf der suche nach einer "ersten" Kamera. "Erste" bedeutet, hab noch nie eine Kamera in FHEM integriert. Meine Anforderungen habe ich im "Beginnerforum" formuliert. Von dort hat man mich hierher verwiessen. Zuerst war ich mit IPCAM SSCAM unterwegs. Ich scheue es aber, hierfür eine NAS zu kaufen.
Zuerst mal die Kamer: gerne hätte ich von euch eine Empfehlung für die Verwendung in IPCAM (kopiert aus meinem "Einsteiger-Block)
1. Aussen, wetterfest
2. Keine Kamera für eine Alarmanlage, Bewegungsmelder, möchte Livestreams und LiveBilder von Remote über FHEM auf Anforderungen anschauen.
3. Keine spezielle Nachtanforderungen
4. Netzwerk (LAN) und auch Strom (falls notwendig) ist da.
5. Schwenken und Zoomen ist sehr gern gesehen, aber nicht zwingend.
6. Sollte benutzerfreundlich in FHEM integrierbar sein, ich bin leider kein Programmierer.
7. Raspberry 3 Performance // angebunden an Fritzbox und guter Internetperformance
Ich bin nicht der Programmierer und suche deshalb die Kamera auch nach der Möglichkeit aus, dies einfach in FHEM/IPCAM zu integrieren.
Die Wiki habe ich schon gelesen. Die dort aufgeführten Kameras sind hauptsächlich Indoor und auch leider älter und nicht mehr verfügbar.
Danke, Danke, Danke
-
gerne hätte ich von euch eine Empfehlung für die Verwendung in IPCAM (kopiert aus meinem "Einsteiger-Block)
Ich habe seit ein paar Jahren 3 * die 5907 von Instar https://www.instar.de/ip-aussenkameras-sicherheitskamera-netzwerkkamera-wlan-kamera-poe-ueberwachungskamera-smarthome-onvif/in-5907hd-serie-video-kamera-ip-kamera-ip-cam-netzwerkkamera-sicherheitskamera-cctv-bewegungserkennung.html (https://www.instar.de/ip-aussenkameras-sicherheitskamera-netzwerkkamera-wlan-kamera-poe-ueberwachungskamera-smarthome-onvif/in-5907hd-serie-video-kamera-ip-kamera-ip-cam-netzwerkkamera-sicherheitskamera-cctv-bewegungserkennung.html) im Außeneinsatz und bin sehr zufrieden. Ich habe die 3 über LAN angschlossen. Bei Bewegung schreiben die Cams Videos per FTP auf's NAS. Bei Bedarf (und beim Klingeln) gibt es Bilder per Telegram.
Wenn ich jetzt kaufen müßte, dann wären eher die neueren Full HD Modell von Instar meine Wahl - die 5907'er machen 'nur' die 720'er Auflösung.
Die Nachtsicht passt - die Infrarot LEDs leuchten gut aus. Einzig einen Tele-Umbausatz vermisse ich, denn eine Kamera ist vom Standort zu weit weg... Die FHEM Einbindung per IPCAM geht einfach.
Peter
-
Bei Bewegung schreiben die Cams Videos per FTP auf's NAS. Bei Bedarf (und beim Klingeln) gibt es Bilder per Telegram.
Er will doch keinen NAS.
-
Er will doch keinen NAS.
Das habe ich gelesen, bei mir machen sie es... Die Instar's haben allerings auch eine int. Karte, auf der Bilder/Videos abgelegt werden können. Dann geht's auch ohne NAS. Das hätte ich gleich erwähnen sollen 8)
Peter
-
Hallo PSI69 und Paul,
das NAS selbst ist nicht mein Problem, ich habe ein NAS (Buffalo Link Station LX-WSXLA5E). Das kann ich auch dazu verwenden. Ich wollte mir nur nicht zusätzlich jetzt ein NAS von Synology kaufen, zusätzlich zu der Kamera, als Einsteiger.
Danke für den Tip zu Instar.
Wenn ich meine Wünsche so mit den Instar Kameras spiegele, so gibt es da die IN-9010 Full HD WiFi schwarz (https://www.instar.de/ip-aussenkameras-sicherheitskamera-netzwerkkamera-wlan-kamera-poe-ueberwachungskamera-smarthome-onvif/in-9010-full-hd-wifi-black.html)
Wenn ich auf Schwenken verzichte, so habe ich noch zur Auswahl: IN-5907HD WLAN schwarz. https://www.instar.de/ip-aussenkameras-sicherheitskamera-netzwerkkamera-wlan-kamera-poe-ueberwachungskamera-smarthome-onvif/in-5907hd-serie-video-kamera-ip-kamera-ip-cam-netzwerkkamera-sicherheitskamera-cctv-bewegungserkennung/in-5907hd-black.html
So wie ich euch verstanden habe, ist die Integration der 5907hd in FHEM ein machbares Thema und ich kann dann
Bilder über Mail oder Bot verschicken, Livebilder anschauen,Videos und Bilder regelmässig auf dem NAS ablegen und über FHEM wieder anschauen. (deckt meine Anforderungen ab)
Die schwenkbare Kamera IN-9010 reizt mich etwas. Ist die Integration in FHEM ähnlich oder identisch? und da sind dann noch die 120€ Mehrpreis.
Merci für die Ratschläge schon mal.
-
Hallo,
ich habe mich heute nochmals bei Instar erkundigt. Die https://www.instar.de/ip-aussenkameras-sicherheitskamera-netzwerkkamera-wlan-kamera-poe-ueberwachungskamera-smarthome-onvif/in-9010-full-hd-wifi-black.html ist verfügbar und auch das Ziel meiner Wahl. Hat jemand von euch schon Erfahrung mit der Anbindung dieser Kamera zu FHEM? Alarmfunktion ist nicht mein Interesse. Livebilder, Livevideo, Schwenken, Outdoor, Anbindung an FHEM für Anwender, nicht Programmierer.
-
Also mit IP Kameras ist das immer so eine Sache. Ich habe schon einige Kameras ausprobiert, und ONFIV bedeutet nicht gleich das alles gleich ist und so funktioniert wie man sich das vorstellt.
Mit dem IPCAM Modul in Fhem hat bei mir eine FOSCAM FI9900P sehr gut funktioniert. Glaube davon gibt es auch eine Dome Kamera mit PTZ Funktion was für dich vermutlich das richtige wäre.
Was ich als sehr wichtig finde, das eine saubere Dokumentation vorhanden ist über die ganzen Befehle. CGI aufrufe für die funktionen usw.. da du ja z.b. mit PTZ in dem IPCAM Modul das auch definieren musst. Da ist FOSCAM absolut vorbildlich und ich denke das ist so das beste was am Markt ist, zu INSTAR kann ich nichts sagen, ist da vieleicht auch so, hatte davon noch keine. Am besten nachsehen ob es für dein ausgesuchtes Model auch die Doku gibt.
Ich hatte eine INKOVIDEO da ich dachte teuer = gut, aber wurde eins besseren belehrt, die Snapshots waren nicht in FullHD und auch nicht wirklich zu gebrauchen, dokumentation= 0. Mit IPCAM Modul geht die auch nicht.
Aber man kann auch beim Chinesen gute Erfahrungen sammeln, ich habe eine SV3C FullHD Kamera mit POE, macht alles was sie soll, chinese ist kooperativ, aber mit dem IPCAM Modul geht es nicht, ich nutze daher ein Shell Script das mir Einzelfotos macht, die ich dann in der Fhem oberfläche mit einbaue, es ist aber genau das was du nicht möchtest "Bastelarbeit"
Um eine gewisse Programierarbeit sei es in IPCAM Modul oder aufwändig mittels Shell Scripte wirst du nicht drumherum kommen.
Von Cloud Lösungen rate ich aber ab. Da kannst du dich gleich Nackt in die Innenstadt stellen ;-)
-
Hallo laserrichi,
danke für deine ausführlichen Anmerkungen. Ich habe deine DOME Kamera von Foscam gefunden. Ich denke, du meinst die https://www.bueromarkt-ag.de/ip-kamera_foscam_fi9928p_dome_wlan_outdoor,p-fi9928p.html?,l-google-adw,pd-b2b&gclid=CjwKCAiA4t_iBRApEiwAn-vt-5FKK8Y4dx41QfinETvpMqiUFlf8AUSuVkB3QHkgPlO1dyDlP5yh5hoC4ZUQAvD_BwE. Die Foscam ist 100 € bei Böttcher persigünstiger, als die vergleichbare Instar.
Die meintest du doch. Korrekt?
-
Jo hab jetzt nicht weiter danach gesucht, gibts auch noch flache Dome Kameras. Aber grundsätzlich gibts dafür die CGI Doku:
https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf (https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf)
Wie du die Bewegung in Fhem mit IPCAM dann einbindest weis ich nicht, aber lt. doku geht das eben durch das einbinden mit den Befehlen, die man ja in der CGI Doku findet.
Kannst ja bei INSTAR auch mal anfragen ob es sowas gibt.
Einwas stört mich aber auch noch an der Foscam. Für die Browser Betrachtung hat man ein Plugin, das wird dir in ein paar Jahren zum verhängnis, wenn die Browser das dann nicht mehr unterstützen usw.
Aber so lange es Updates gibt ist alles gut :-)
-
Hallo laserrichi, hab heute noch eine Anfrage an INSTAR geschickt. Mal sehen, was die schreiben.
-
fast hätte ich das wichtigste vergessen, es reicht natürlich nicht die Doku, sondern was liefert die Kamera zurück.
Die FOSCAM liefert beim Aufruf des snapshots mittels http://<IP-ADRESS>:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture&usr=admin&pwd=deinpasswort
direkt das Bild als jpeg was IPCAM dann direkt an einem Speicherort ablegen kann.
Meine SV3C Kamera liefert einen html code zurück mit Pfadangabe wo es in der Kamera liegt: http://192.168.1.14/cgi-bin/hi3510/snap.cgi?
und liefert dir das: var path="/tmpfs/snap_tmpfs/20190204/IMG001/IMG_chn0_TIMER_MNG_20190204221147_031.jpg"
Was bedeutet das IPCAM kein Bild findet und es auch nicht speichern kann, ich habe daher alles mit einem Shell script gemacht.
Glaub das hab ich hier irgendwo schon mal geschrieben
Wenn die INSTAR direkt ein Bild liefert dann geht das mit dem Modul
-
Hallo, danke, werd mich gleich nochmals an Instar wenden.
Bezüglich der CGI Listen hat sich Instar gemeldet.
Da gibt es folgenden Link: https://wiki.instar.de/Erweitert/CGI_Befehle/[/code]
CGI Befehle Instar https://wiki.instar.de/Erweitert/CGI_Befehle/
Ich kann es nicht beurteilen, ob dies gut ist und genügend.
Instar sagt, dass die IN-8015FullHD kompatibel mit der IN-9010FullHD ist. Aber wer betreibt erfolgreich eine IN-8015FullHD in FHEM? Ich melde mich nochmals nach Rückfrage bezüglich des snapshots.
Danke erstmals 8).
-
grade nachgeschaut:
http://IP-Address:Port/tmpfs/snap.jpg?usr=admin&pwd=instar
da hast in der Doku deinen Snapshot. Wenn da jetzt das jpg nackt gesendet wird ist das super.
Pan & Tilt
http://IP-Address:Port/ptzctrl.cgi?-step=&-act=up
Move Up
http://IP-Address:Port/ptzctrl.cgi?-step=&-act=right
Move Right
http://IP-Address:Port/ptzctrl.cgi?-step=&-act=down
Move Down
http://IP-Address:Port/ptzctrl.cgi?-step=&-act=left
Move Left
http://IP-Address:Port/ptzctrl.cgi?-step=&-act=stop
Stop
-
Aber wer betreibt erfolgreich eine IN-8015FullHD in FHEM?
Siehe Antwort #153 in diesem Thread.
Ich übrigens auch, habs von da kopiert.
-
Hallo, hab die INSTAR 9010 gekauft, installiert und über die Apps von Instar am Laufen (ist aber noch da :) ).
Gemäss eurer tollen Vorarbeit habe ich jetzt mal IPCAM definiert, attr versehen und versucht den Inhalt zu verstehen. Braucht sicherlich noch etwas Zeit. Einige Beispiele durchspielen möchte ich.
Jetzt wollte ich ein erstes Bild abholen und hab mir folgenden Befehl überlegt: set K.Sim raw tmpfs/snap.jpg?usr=admin&pwd=xxxx
. Scheint auch 1:1 durchgekommen zu sein: 2019-02-08 22:09:06 IPCAM K.Sim raw tmpfs/snap.jpg?usr=admin&pwd=xxxx.
Wenn ich es richtig verstanden habe, so sollte ich jetzt ein File mit Namen snap.jpg im Directory /tmpfs haben.
Fehlermeldung habe ich keine bekommen.
Durchsuche ich der RPI nach "snap" mit Filezilla, so finde ich kein entsprechendes File und auch den Pfad tmpfs/ finde ich nicht. Müsste ich zuerst im directory /FHEM ein directory mit /tmpfs erzeugen. Und wie kann ich mir das Bild dann in FHEM anschauen?
attr hab ich noch in Richtung storage:attr K.Sim path /tmpfs/snap.jpg
attr K.Sim storage ./www/snapshots
Mein erstes Ziel ist es morgens und abends ein Bild zu machen und über Bot zu verschicken.
-
Wenn ich es richtig verstanden habe, so sollte ich jetzt ein File mit Namen snap.jpg im Directory /tmpfs haben
Nö,/Topfs ist das Verzeichnis deiner Cam.
Das Bild sollte unter /www/Snapshot sein.
-
Hallo, danke für die Antwort,
hab gerade mal nachgeschaut. Unterr /home/pi/www finde ich weder /Snapshot noch ein Bild.
Kann es sein, dass ich das directory erst einrichten muss?
Was bedeutet Topfs ist das Verzeichnis deiner Cam
.
Mit dem Befehl 2019-02-08 22:09:06 IPCAM K.Sim raw tmpfs/snap.jpg?usr=admin&pwd=xxxx.
und den Attributen attr K.Sim path /tmpfs/snap.jpg
attr K.Sim storage ./www/snapshots
erwarte ich doch ein unterschiedliches Verhalten..
-
Hallo, danke für die Antwort,
hab gerade mal nachgeschaut. Unterr /home/pi/www finde ich weder /Snapshot noch ein Bild.
Hallo UweUwe
alles was nicht "umgebogen" wird landet wenn es aus FHEM heraus gestartet wird wohl erst mal im Verzeichnis (absoluter Pfad)
/opt/fhem/www/snapshots
oder - für die die sich auskennen heißt das im Zusammenhang mit FHEM
./www/snapshots/...
weil man ja schon in diesem Verzeichnis steht!
Viel Spass
NewRasPi
-
Hallo NewRasPi,
ich das Verzeichnis /opt/fhem/www/snapshots
eingerichtet. Es war noch nicht da. Hab ihm alle Rechte gegeben.
Dann nochmals den Befehl
set K.Sim raw tmpfs/snap.jpg?usr=admin&pwd=xxxxx
abgesetzt.
Ichs sehe im Eventmonitor, dass der Befehl richtig abgesetzt wird. Aber in dem directory auf dem Pi tut sich nicht.
Zum Verständnis. Bis auch fdie Kamera bisher erst mit der INSTAR APP gegangen. Kamera ist FHEM mässig jungfräulich. User und Passwort sind aber ok.
Danke für die Unterstützung, hast du noch einen Tip..
-
Hallo NewRasPi,
ich das Verzeichnis /opt/fhem/www/snapshots
eingerichtet. Es war noch nicht da. Hab ihm alle Rechte gegeben.
Hallo UweUwe
ich (bin auch immer noch Anfänger) hätte ja behauptet, bei einer Standart Installation ist dieses Verzeichnis vorhanden!!!
Als Besitzer: fhem und als Gruppe: dialout könnte noch wichtig sein.
Überprüfen kannst Du das mit: ls -l /opt/fhem/www
sieht dann bei mir so aus:
drwxrwxrwx 2 fhem dialout 4096 Okt 1 2015 snapshots
Ein list von Deinem IPCam Device bringt vielleicht einen weiteren Ansatz zur Fehlersuche.
Schöne Grüße
NewRasPi
-
Also, von vorne:
pi@raspberrypi:~/www $ ls -l /opt/fhem/www
total 36
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 codemirror
drwxrwxrwx 3 fhem dialout 4096 Nov 27 11:45 frontend
drwxrwxrwx 2 fhem dialout 12288 Jan 26 09:56 gplot
drwxr-xr-x 3 fhem dialout 4096 Dec 16 17:46 hausautomatisierung-com
drwxrwxrwx 7 fhem dialout 4096 Jan 19 07:10 images
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 jscolor
drwxrwxrwx 3 fhem dialout 4096 Jan 23 08:33 pgm2
da gibt es kein "snapshots".
durch ein Wechsel in das doch vorhandene "snapshots" gibt es dann: pi@raspberrypi:~/www/snapshots $ ls -la
total 8
drwxrwxrwx 2 pi pi 4096 Feb 9 14:18 .
drwxrwxrwx 11 fhem dialout 4096 Feb 9 14:18 ..
die Rechte sind identisch mit deinen. Ein list auf die Kamera ergibt Internals:
AUTHORITY 192.168.10.72:80
CFGFN
DEF 192.168.10.72:80
FUUID 5c5de04c-f33f-64ff-646a-f67245de4cc1cd43
NAME K.Sim
NR 2956
SEQ 0
STATE Defined
TYPE IPCAM
Attributes:
DbLogExclude .*
basicauth admin:xxxx
cmd01 cmd=setinfrared&-infraredstat=auto
cmd03 cmd=setinfrared&-infraredstat=close
cmd04 cmd=setioattr&-io_enable=1&-io_flag=1
cmd05 cmd=setioattr&-io_enable=0&-io_flag=0
cmd06 cmd=setmdalarm&-aname=type&-switch=on
cmd07 cmd=setmdalarm&-aname=type&-switch=off
cmd08 cmd=setmdattr&-name=1&-enable=1
cmdPanLeft -act=left
cmdPos01 -act=goto&-number=0
cmdPos02 -act=goto&-number=1
cmdPos03 -act=goto&-number=2
cmdPos04 -act=goto&-number=3
cmdPos05 -act=goto&-number=4
credentials /opt/fhem/IPcam_credentials.cfg
delay 2
icon it_camera
path /tmpfs/snap.jpg
pathCmd param.cgi
pathPanTilt param.cgi?cmd=preset
room DRAUSSEN
snapshots 1
storage ./www/snapshot
Danke für deine Unterstützung. Merci
-
Also, von vorne:
pi@raspberrypi:~/www $ ls -l /opt/fhem/www
total 36
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 codemirror
drwxrwxrwx 3 fhem dialout 4096 Nov 27 11:45 frontend
drwxrwxrwx 2 fhem dialout 12288 Jan 26 09:56 gplot
drwxr-xr-x 3 fhem dialout 4096 Dec 16 17:46 hausautomatisierung-com
drwxrwxrwx 7 fhem dialout 4096 Jan 19 07:10 images
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 jscolor
drwxrwxrwx 3 fhem dialout 4096 Jan 23 08:33 pgm2
da gibt es kein "snapshots".
durch ein Wechsel in das doch vorhandene "snapshots" gibt es dann: pi@raspberrypi:~/www/snapshots $ ls -la
total 8
drwxrwxrwx 2 pi pi 4096 Feb 9 14:18 .
drwxrwxrwx 11 fhem dialout 4096 Feb 9 14:18 ..
die Rechte sind identisch mit deinen. Ein list auf die Kamera ergibt Internals:
AUTHORITY 192.168.10.72:80
CFGFN
DEF 192.168.10.72:80
FUUID 5c5de04c-f33f-64ff-646a-f67245de4cc1cd43
NAME K.Sim
NR 2956
SEQ 0
STATE Defined
TYPE IPCAM
Attributes:
DbLogExclude .*
basicauth admin:xxxx
cmd01 cmd=setinfrared&-infraredstat=auto
cmd03 cmd=setinfrared&-infraredstat=close
cmd04 cmd=setioattr&-io_enable=1&-io_flag=1
cmd05 cmd=setioattr&-io_enable=0&-io_flag=0
cmd06 cmd=setmdalarm&-aname=type&-switch=on
cmd07 cmd=setmdalarm&-aname=type&-switch=off
cmd08 cmd=setmdattr&-name=1&-enable=1
cmdPanLeft -act=left
cmdPos01 -act=goto&-number=0
cmdPos02 -act=goto&-number=1
cmdPos03 -act=goto&-number=2
cmdPos04 -act=goto&-number=3
cmdPos05 -act=goto&-number=4
credentials /opt/fhem/IPcam_credentials.cfg
delay 2
icon it_camera
path /tmpfs/snap.jpg
pathCmd param.cgi
pathPanTilt param.cgi?cmd=preset
room DRAUSSEN
snapshots 1
storage ./www/snapshot
Danke für deine Unterstützung. Merci
Hallo UweUwe
zuerst mal ist Dir ein Tippfehler beim angeben des Pfad passiert! da fehlt das "s" am Ende von storage /www/snapshots
Warum Du im Verzeichnis das Directory snapshots nicht findest kann ich Dir nicht erklären.
Da musst Du von Hand Änderungen gemacht haben. Vielleicht kann da ein Profi mehr dazu sagen.
Ich würde es jetzt neu anlegen und die Rechte noch mal neu vergeben.
Mit dem Programm MC kann man das super einfach anlegen und auch die Rechte und Besitzer anpassen, wenn man nicht
schon im Linux so weit fortgeschritten ist.
sudo apt-get install mc -y
Mit "sudo mc" hat man dann eine grafische Oberfläche. Mir fällt es damit einfacher, den Überblick zu behalten.
Schöne Grüße
-
Hi, danke für die Unterstützung.
Der Tip-Fehler, war ein Past und Copy des "List". Internals:
AUTHORITY 192.168.10.72:80
CFGFN
DEF 192.168.10.72:80
FUUID 5c5de04c-f33f-64ff-646a-f67245de4cc1cd43
NAME K.Sim
NR 2956
SEQ 0
STATE Defined
TYPE IPCAM
Attributes:
DbLogExclude .*
basicauth admin:xxxx
cmd01 cmd=setinfrared&-infraredstat=auto
cmd03 cmd=setinfrared&-infraredstat=close
cmd04 cmd=setioattr&-io_enable=1&-io_flag=1
cmd05 cmd=setioattr&-io_enable=0&-io_flag=0
cmd06 cmd=setmdalarm&-aname=type&-switch=on
cmd07 cmd=setmdalarm&-aname=type&-switch=off
cmd08 cmd=setmdattr&-name=1&-enable=1
cmdPanLeft -act=left
cmdPos01 -act=goto&-number=0
cmdPos02 -act=goto&-number=1
cmdPos03 -act=goto&-number=2
cmdPos04 -act=goto&-number=3
cmdPos05 -act=goto&-number=4
credentials /opt/fhem/IPcam_credentials.cfg
delay 2
icon it_camera
path /tmpfs/snap.jpg
pathCmd param.cgi
pathPanTilt param.cgi?cmd=preset
room DRAUSSEN
snapshots 1
storage ./www/snapshots
War :'( leider korrekt eingetragen.
Das Verzeichnis snapshots war angelegt, ich hatte ein pi@raspberrypi:~/www/snapshots $ ls -la
total 8
drwxrwxrwx 2 pi pi 4096 Feb 9 14:18 .
drwxrwxrwx 11 fhem dialout 4096 Feb 9 14:18 ..
mitgeschickt. Auch aus /www sieht man die directories pi@raspberrypi:~/www $ dir -la
total 52
drwxrwxrwx 11 fhem dialout 4096 Feb 9 14:18 .
drwxr-xr-x 22 pi pi 4096 Dec 31 16:35 ..
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 codemirror
drwxrwxrwx 3 fhem dialout 4096 Nov 27 11:45 frontend
drwxrwxrwx 2 fhem dialout 12288 Dec 22 21:41 gplot
drwxr-xr-x 3 fhem dialout 4096 Dec 16 17:46 hausautomatisierung-com
drwxrwxrwx 7 fhem dialout 4096 Dec 16 17:46 images
drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 jscolor
drwxrwxrwx 3 fhem dialout 4096 Dec 17 13:23 pgm2
drwxrwxrwx 2 pi pi 4096 Feb 8 21:56 Snapshot
drwxrwxrwx 2 pi pi 4096 Feb 9 14:18 snapshots
MC hab ich gleich mal angelegt. Merci.
-
Hi, danke für die Unterstützung.
....
....
drwxrwxrwx 2 pi pi 4096 Feb 8 21:56 Snapshot
drwxrwxrwx 2 pi pi 4096 Feb 9 14:18 snapshots
MC hab ich gleich mal angelegt. Merci.
Hallo UweUwe
hier wird ein FHEM Befehl nie was rein speichern!
Bei Linux wird die Rechte Verwaltung sehr genau genommen. Dein Verzeichnis /www/snapshots gehört dem Benutzer: pi und der Gruppe: pi
Grüße
-
Hallo, vielen Dank für deine Antworten : 8) 8) 8)
ich hab jetzt alles umgestellt. Gemäss des attributes:
attr K.Sim storage ./www/snapshots
erwarte ich in ./www/snapshots das snap.jpg.
Als Befehl benutze ich set K.Sim raw tmpfs/snap.jpg?usr=admin&pwd=xxxx
. Es kommt bisher noch nichts in snapshots an:
snapshot gehört zwischenzeitlich fhem und hat alle Rechte:fhem@raspberrypi:~/www$ dir -ls
total 40
4 drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 codemirror
4 drwxrwxrwx 3 fhem dialout 4096 Nov 27 11:45 frontend
12 drwxrwxrwx 2 fhem dialout 12288 Jan 26 09:56 gplot
4 drwxr-xr-x 3 fhem dialout 4096 Dec 16 17:46 hausautomatisierung-com
4 drwxrwxrwx 7 fhem dialout 4096 Jan 19 07:10 images
4 drwxrwxrwx 2 fhem dialout 4096 Nov 27 11:45 jscolor
4 drwxrwxrwx 3 fhem dialout 4096 Jan 23 08:33 pgm2
4 drwxrwxrwx 2 fhem dialout 4096 Feb 9 17:28 snapshots
. Was mich noch wundert ist dieses attr:attr K.Sim path /tmpfs/snap.jpg
Ist dies der Pfad in der Kamera?
Hast du noch ne Idee? Vielen Dank
-
Hi an alle:
Eine Ergänzung möchte ich noch machen. Ich hab den Direktbefehl für den snapshot für die Kamera ausgetestet mit dem Befehl:
http://192.168.10.72:80/tmpfs/snap.jpg?usr=admin&pwd=xxxx
mit positivem Ergebnis. Der Snapshot ist ausgelöst worden und die Datei /tmpfs/snap.jpg wird auf dem Explorer angezeigt. Damit vermute ich, dass das Bild mit dem Befehl noch nicht auf den Raspberry transferiert worden ist. Für mich stellt sich die Frage , wie bekomme ich die Datei auf den Raspberry und von dort über den Bot raus als Telegramm.
Über Tips freue ich mich sehr. ..
-
Hallo,
das in dem letzten Blog beschriebene war das Problem. Der Befehl http://192.168.10.72:80/tmpfs/snap.jpg?usr=admin&pwd=xxxx
macht auf der Kamera das Bild und legt das Bild dort ab. Mit get K.Sim image
holt man die Bilder ab auf den Raspberry. Danke für die Unterstützung.
Merci.. Pst.. Da gibt es sicherlich noch weitere Fragen...
-
Hallo, ich würde mich über eine Beratung sehr freuen:
Ich möchte mir nach Eingabe eines Keywortes jeweils ein aktuelles Bild von 2 Kameras (identische Kameras, mit IPCAM angebunden) mit teleBot zuschicken lassen. Klingt einfacher.
1. Snapshot machen
2. Bild über die vpn von der Kamera auf den Raspberry
3. Bild verschicken.
Die Schwierigkeit liegt im Netzwerk: die Kameras sind in 2 unterschiedlichen Netzwerken, die über VPN verbunden sind.(192.168.10.xxx und 192.168.20.xxx) In beiden Netzen gibt es jeweils ein FHEM System.
fhem2fhem ist nicht installiert.
Was spricht dagegen, beide Kameras in dem lokalen FHEM-System zu definieren, in dem der Telebot zur Übertragung bereitsteht.
Das lokale Bild machen, copy in Raspberry, wegschicken, ok. Und dann das Image von der "entfernten Kamera" über die vpn auf den lokalen Raspberry übertragen, mit get Kamera image und anschliessend wegschicken.
Kann IPCAM über VPN Kameras verwalten?
Kann man mit 2 unterschiedlichen FHEM Systemes jeweils mit IPCAM auf eine Kamera zugreifen? Eigentlich würde ich die 2. Kamera auch gern in das entfernte FHEM System integrieren.
-
wem zuschicken? Dir? Dem anderen RPi? Ich weiß nicht, ob zwei Bots miteinander „reden“ können. Und was ist mit shell kommandos (ich weiß aber nicht, wie man mit shell einen tunnel aufbaut)?
-
Hallo, danke für die Antwort,
sorry, meine Angaben sind nicht genau genug:
FHEM A System: Telebot A, Kamera A (IP 192.168.10.99), Raspberry A Fritzbox A (192.168.10.xx)
FHEM B System: Kamera B (IP 192.168.20.99), Fritzbox B (192.168.20.xx)
Fritzbox A ist mit Fritzbox B per VPN verbunden.
Ziel: Kamera 1 ist an Raspberry 1 konfiguriert (kein Thema)
Kamera 2 ist an Raspberry 1 konfiguriert (??, anderes Netz, funktioniert IPCAM über VPN)
Snapshot Kamera 1 machen (kein Thema)
Snapshot Kamera 2 machen (VPN?)
"get Bild image" von Kamera 1 (kein Thema)
"get Bild image" von Kamera 2 (über VPN ?) von Kamera B im fremden Netz auf Raspberry A
Versenden von 2 Bildern mit dem Telebot A auf Raspberry A (kein Thema an mich)
Sollte jetzt etwas genauer sein. Danke nochmals der Nachfrage.
-
Hallo, danke für die Antwort,
sorry, meine Angaben sind nicht genau genug:
FHEM A System: Telebot A, Kamera A (IP 192.168.10.99), Raspberry A Fritzbox A (192.168.10.xx)
FHEM B System: Kamera B (IP 192.168.20.99), Fritzbox B (192.168.20.xx)
Fritzbox A ist mit Fritzbox B per VPN verbunden.
Ziel: Kamera 1 ist an Raspberry 1 konfiguriert (kein Thema)
Kamera 2 ist an Raspberry 1 konfiguriert (??, anderes Netz, funktioniert IPCAM über VPN)
Snapshot Kamera 1 machen (kein Thema)
Snapshot Kamera 2 machen (VPN?)
"get Bild image" von Kamera 1 (kein Thema)
"get Bild image" von Kamera 2 (über VPN ?) von Kamera B im fremden Netz auf Raspberry A
Versenden von 2 Bildern mit dem Telebot A auf Raspberry A (kein Thema an mich)
Sollte jetzt etwas genauer sein. Danke nochmals der Nachfrage.
Hallo UweUwe
mein erster Gedanke wäre eigentlich beim Raspberry 2 den Pfad im Storage auf den ersten Raspberry zu legen. //192.168.10.99/opt/fhem/www/snapshots/
Aber in diesem Thread steht, das das leider nicht geht.
https://forum.fhem.de/index.php?topic=37318.0
Hier ist aber beschrieben wie man es mit einem Script lösen kann.
Super wäre natürlich, wenn sich die Modulentwickler mal der Sache annehmen könnten und vielleicht die Begrenzung auf den eigenen Raspi Pfad aufbohren könnten.
Ein FTP Verzeichnis als möglicher Speicherort wäre bestimmt auch eine willkommene Erweiterung.
Für Anfänger ist das mit zusätzlichen Scripten ganz schön schwierig.
Viel Erfolg
-
Hallo NewRaspPi,
sorry, hatte gerade erfolglos versucht die Kamera 1 draussen hardwaremässig zu installieren. Leider fehlt ein Teil bei der Deckenhalterung.
Danke mit dem Tip https://forum.fhem.de/index.php?topic=37318.0.
Aktuell bin ich noch auf einem anderen Pferd.
Wenn ich die Kamera 2 mit IPCAM auf dem Raspberry 1 installiert bekomme (über die VPN), so sollte es völlig transparent sein. Was spricht gegen einen Befehl defmod K.HN IPCAM 192.168.20.99:80 ## aus einem Netzwerk 192.168.10.xxx mit VPN zu 192.168.20.xxx
. Die Kamera 2 kennt ja den Raspberry 2 nicht, alle Befehle kommen erstmal vom Raspberry 1. Ob ich dann zusätzlich noch eine Installation der Kamera 2 auf dem Raspberry 2 machen kann, das wäre noch ne Frage.
Dies alles ist aber abhängig, wie der Entwickler von IPCAM hier die Realisierung bei VPN gemacht hat. Er ist zuverlässig 8) 8) und wird sich bei uns melden.
Danke nochmals. Schönen Sonntag erstmal , man schreibt sich 8) 8)
-
Hallo,
hab zwischenzeitlich 2 Kameras installiert und bekomme auch Bilder von beiden Kameras mit dem BOT zugeschickt. In ein notify hab ich folgende Befehle für die lokale Kamera (K.HN) eingebaut.
fhem("set K.HN raw tmpfs/snap.jpg?usr=admin&pwd=password");
fhem("get K.HN image");
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.HN_snapshot.jpg ");
Ich bekomme nicht das aktuelle Bild, sondern das vorherige Bild. Auch mit 2 x sleep a 10 sec dazwischen.
Sobald ich den letzten Befehl einfach aufdopple, bekomme ich das aktuelle und das vorherige Bild.
fhem("set K.HN raw tmpfs/snap.jpg?usr=admin&pwd=password");
fhem("get K.HN image");
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.HN_snapshot.jpg ");
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.HN_snapshot.jpg ");
Kann ja nicht die Lösung sein? Hat jemand ne Idee?
Die Anmeldung einer Kamera über eine VPN (ich habe lokal sehr weit entferne Netze per LAN-VPN zwischen zwei Fritzboxen über das öffentliche Netz verbunden).
P.S. Das Problem oben taucht aber mit der lokalen Kamera und der entfernten Kamera gleich auf, unabhängig vom sleep.
Sobald ich mir mit einem notify von beiden Kameras ein Bild schicken lasse und folgenden Ablauf wähle:
-- Entferntes Bild machen
-- Entferntes Bild transferieren auf RPI
-- Lokales Bild machen
-- Lokales Bild transferieren auf RPI
-- Lokales Bild verschicken
-- Entferntes Bild verschicken.
Bekomme ich das vorherige Bild der lokalen und das aktuelle Bild der entfernten Kamera.
-
Probier es mal so:
-- Entferntes Bild machen
-- Entferntes Bild transferieren auf RPI
-- Lokales Bild machen
-- Lokales Bild transferieren auf RPI
-- Entferntes Bild verschicken
-- Lokales Bild verschicken
Es gab irgendwo hier schon das Problem, dass das senden schneller als das Schreiben der Datei war.
-
Ich bekomme nicht das aktuelle Bild, sondern das vorherige Bild.
Hatte das Problem auch, meine Lösung:
Ich löse ein snapshot bei der Kamera durch "get Cam image“ aus.
Das Versenden des Bildes aber löse ich erst aus wenn sich das Reading "snapshots" am IPCAM device ändert:
defmod sendSnapshot notify Cam.snapshots.* set myTelegramBot sendImage www/snapshots/Cam_snapshot.jpg
-
Vielen Dank für die Antwort,
darf ich noch etwas nachfragen:
du sagst also die Lösung ist, wenn ich meinen aktuellen Befehl:
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.HN_snapshot.jpg ");
gegen defmod sendSnapshot notify K.HN.snapshots.* set teleBot sendImage www/snapshots/K.HN_snapshot.jpg
ändere.
Da wär ich nie draufgekommen. Da fällt mir auf, dass ich dann ein notify innnerhalb eines notify habe. Funktioniert das?
Folgende Situation hat sich heute nachmittag noch bei mir bestätigt, vielleicht hast du dafür auch ne Erklärung:
Ich habe ja 2 identische Kameras an einem FHEM System auf einem RPI angeschlossen.
1 x Kamera in lokalem Netzwerk des RPI (lokale Kamera)
1x Kamera über VPN an das RPI Netzwerk angeschlossen (entfernte Kamera)
Folgende Aktionen führe ich nacheinander durch (mit den üblichen Befehlen)
1. Mache Bild mit "entfernter Kamera"
2. Hole Bild von entfernter Kamera auf RPI
3. Mache Bild mit "lokaler Kamera"
4. Hole Bild von lokaler Kamera auf RPI
5. Verschicke Bild der lokalen Kamera von RPI
6. Verschicke Bild der entfernter Kamera von RPI
Ergebnis: aktuelles Bild der "entfernten Kamera" und altes Bild der "lokalen Kamera".
-
Hallo Schlimbo,
tolle Lösung, hab es gerade in mein grosses notify für die beiden Kameras eingebaut. Bekomme jetzt die aktuellen Bilder von jeder Kamera. Ein kleineres Thema ist da noch.
Eine der beiden Kameras schickt 2 Bilder direkt nacheinander, nachdem ich das notify eingebaut hatte. Komisch. Mal sehen, woran dies liegt.
-
Hab mal getestet, das grosse Thema Aktualität ist weg. Es sind die aktuellen Bilder.
Das notify bewirkt bei mir noch einen Nebeneffekt, den ich mir nicht erklären kann:
Über eine Anfage vom Bot schicke ich, gesteuert durch ein notify entweder das Bild der Kamera A, Kamera B oder Kamera A und B.
Das Ergebnis ist, dass ich Anfrage A: Nur Kamera A Ergebnis: 2 Bilder (identischer Zeitstempel, heisst nichts)
Anfrage B: Nur Kamera B Ergebnis : 2 Bilder (identsicher Zeitstempel, heisst nichts)
Anfrage C gleichzeitige Anfrage A und B: Ergebis 3 Bilder: 2 Bilder der Kamera, die im DEF vorne steht und ein Bild der 2. Kamera.
im Detail nochmals
Anfrage A defmod sendSnapshot notify K.HN.snapshots.* set teleBot sendImage www/snapshots/K.HN_snapshot.jpg 2 Bilder
Anfage B defmod sendSnapshot notify K.XX.snapshots.* set teleBot sendImage www/snapshots/K.XX_snapshot.jpg 2 Bilder
Anfage C defmod sendSnapshot notify K.HN.snapshots.* set teleBot sendImage www/snapshots/K.HN_snapshot.jpg 2 Bilder
defmod sendSnapshot notify K.XX.snapshots.* set teleBot sendImage www/snapshots/K.XX_snapshot.jpg 1 Bild
Hab schon vermutet, ob es an der identischen Namensgebung "sendSnapshot" liegt? hab schon geändert, keine Änderung im Ergebnis. Irgendwie bekommt der Event K.XX.snapshots.* und oder K.HN.snapshots.* noch einen trigger.
-
du sagst also die Lösung ist, wenn ich meinen aktuellen Befehl:
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.HN_snapshot.jpg ");
gegen defmod sendSnapshot notify K.HN.snapshots.* set teleBot sendImage www/snapshots/K.HN_snapshot.jpg
ändere.
Da wär ich nie draufgekommen. Da fällt mir auf, dass ich dann ein notify innnerhalb eines notify habe. Funktioniert das
Nein, das "defmod sendSnapshot notify" war von mir nicht so gedacht, dass es den alten Befehl ersetzt und jedes Mal ausgeführt wird, mein Code sollte einmalig in die FHEM Kommandozeile eingegeben werden, danach triggert es immer auf einen neuen snapshot und sendet diesen.
Deine Anforderung für ein aktuelles Bild heißt dann nur noch:
fhem("get K.HN image")
-
Hallo, ja das Ergebnis ist prächtig, nur ein Bild und das Aktuelle.
Für alle, die auch vor dem Thema stehen, anbei noch die Zusammenfassung:
Ausgangssituation:
Ziel ein Snapshot auf Anforderung entweder von einer oder von beiden Kameras per teleBot abholen.
2 Kameras sind an ein FHEM System angeschlossen. 2x Instar IN-9010FULLHD
Physikalisch sitzt eine Kamera in dem lokalen Netz des Raspberry und eine Kamera ist über eine VPN (Fritzbox zu Fritzbox) angeschlossen.
Mit den üblichen Befehlen:
fhem("set K.xx raw tmpfs/snap.jpg?usr=admin&pwd=password");
fhem("get K.xx image");
fhem("set teleBot sendImage @#xxxxx ./www/snapshots/K.xx_snapshot.jpg ");
bekommt man nicht das aktuell von der Kamera aufgenomme Bild, sondern das zuvor aufgenomme Bild.
Von "Schlimbo" 8) kam der Hinweis, dass man einmalig in der Kommandozeile den folgenden Befehl absetzt. Kommt dann ein neues Bild an, und nur dann, dann schickt der teleBot dieses Bild weiter: defmod sendSnapshot notify K.xx.snapshots.* set teleBot sendImage www/snapshots/K.xx_snapshot.jpg
damit reduziert sich das Holen und Verschicken eines Bildes auf folgende Befehlsfolge:
fhem("set K.K1 raw tmpfs/snap.jpg?usr=user&pwd=password");
fhem("get K.K1 image");
Das Verschicken des Bildes geschieht durch den oben beschriebenen defmod Befehl implizit. Hat man nun, wie in meinem Fall, 2 Kameras, so benötigt man 2 notifies :defmod sendSnapshotK1 notify K.K1.snapshots.* set teleBot sendImage www/snapshots/K.K1_snapshot.jpg
defmod sendSnapshotK2 notify K.K2.snapshots.* set teleBot sendImage www/snapshots/K.K2_snapshot.jpg
jeweils 1 x in der Kommandozeile abgesetzt.
Das Abholen von Bildern von beiden Kameras geschieht jetzt über:
fhem("set K.K1 raw tmpfs/snap.jpg?usr=user&pwd=passw");
fhem("get K.K1 image");
fhem("set K.K1 raw tmpfs/snap.jpg?usr=user&pwd=passw");
fhem("get K.K2 image");
Ohne den Hinweis von Schlimpo hätte dies nicht klappt.. 8) 8) 8) Merci
-
Hallo,
kann mir bitte jemand erklären, wie der set Befehl in fhem aussehen muss, damit ich meine Instar IN-5905HD von Sommer- auf Winterzeit umstellen kann?
Das funktioniert schon mal nicht:
set ipcam_Garten raw param.cgi?cmd=setservertime&-dstmode=on
Hiermit kann ich den Status auf An setzen, aber die Zeit wird nicht aktualisiert:
cmd=setntpattr&-ntpenable=1&-ntpserver=0.de.pool.ntp.org&-ntpinterval=1&cmd=setservertime&-timezone=Europe/Amsterdam&cmd=set_instar_admin&-index=50&-value=on
Danke und VG
Dieter
-
Hallo,
kann mir bitte jemand erklären, wie der set Befehl in fhem aussehen muss, damit ich meine Instar IN-5905HD von Sommer- auf Winterzeit umstellen kann?
Das funktioniert schon mal nicht:
set ipcam_Garten raw param.cgi?cmd=setservertime&-dstmode=on
Hiermit kann ich den Status auf An setzen, aber die Zeit wird nicht aktualisiert:
cmd=setntpattr&-ntpenable=1&-ntpserver=0.de.pool.ntp.org&-ntpinterval=1&cmd=setservertime&-timezone=Europe/Amsterdam&cmd=set_instar_admin&-index=50&-value=on
Danke und VG
Dieter
Keiner eine Idee? ???
-
Bei mir hat es auf jeden Fall Mal so funktioniert, wie du geschrieben hast :
set ipcam_Garten raw param.cgi?cmd=setservertime&-dstmode=on
Habe es aber gerade noch mal bei meiner IN-8015 Full HD getestet und musste feststellen dass es jetzt auch nicht mehr funktioniert.
Der Schalter "Sommerzeit berücksichtigen" ändert sich zwar in der Weboberfläche, aber die Uhrzeit bleibt gleich.
Ist wohl ein Thema für den Support
-
Moin Zusammen,
ich habe ein Problem mit dem IPCAM Modul.
Ich habe eine Instar Webcam eingebunden, diese funktioniert auch gut.
Ich hole täglich mit einem DOIF ein Bild und verschicke es per Telegram.
Nun passiert es seit ein paar Wochen immer wieder, dass get image nicht funktioniert.
Im Log steht dann:
2019.04.29 08:29:35 1: IPCAM WebcamInstar Wrong or not supported image format: error while reading source image:
Nach einem Restart geht es wieder für eine gewisse Zeit. Woran kann das liegen. Das image format ändert sich ja durch einen FHEM restart nicht,
somit muss der Fehler irgendwo in FHEM liegen. Hat jemand eine Idee?
Danke Euch
-
2019.04.29 08:29:35 1: IPCAM WebcamInstar Wrong or not supported image format: error while reading source image:
Nach einem Restart geht es wieder für eine gewisse Zeit. Woran kann das liegen. Das image format ändert sich ja durch einen FHEM restart nicht,
somit muss der Fehler irgendwo in FHEM liegen. Hat jemand eine Idee?
Das Modul braucht etwas Zeit, um das Bild zu holen und als Datei zu speichern. Wenn die Bilddatei noch nicht fertig ist, kann es zu dem beschriebenen Fehler kommen.
Deshalb am Besten zwischen Bild machen und Bild versenden einige Sekunden Pause einlegen.
Alternativ trennst Du Bild erstellen und Bild versenden. Dann kannst Du auf das vom Modul beim Erstellen erzeugte Event triggern und bist sicher, dass die Bilddatei dann auch schon fertig gespeichert wurde.
-
Moin, Danke für die Antwort. Das ist aber bekannt und ich warte auch schon ein paar Sek.
Der Fehler tritt aber bereits beim get image auf und nicht erst beim versenden.
Habe es gerade noch einmal manuell versucht. Wieder der Fehler.
2019.04.30 08:56:24 1: IPCAM WebcamInstar Wrong or not supported image format: error while reading source image:
Letztes Bild ist von gestern Morgen, nach dem letzten FHEM Restart und ebenfalls manuellem get image.
Hier ein List der Kamera:
Internals:
AUTHORITY 192.168.178.92:90
DEF 192.168.178.92:90
FUUID 5c472d23-f33f-2776-865e-cd0feb4985082cc1
NAME WebcamInstar
NR 250
SEQ 0
STATE last: 2019-04-29 08:38:35
TYPE IPCAM
READINGS:
2019-04-29 08:38:36 last WebcamInstar_snapshot.jpg
2019-04-29 08:38:35 snapshot1 WebcamInstar_snapshot_1.jpg
2019-04-29 08:38:36 snapshots 0
Attributes:
DbLogExclude .*
icon it_camera
path tmpfs/snap.jpg?usr=xxx&pwd=yyy
room 8_Webcams
snapshots 1
storage ./www/snapshots
-
Der Fehler tritt aber bereits beim get image auf und nicht erst beim versenden.
Traditionell ist es ein Zugriffsproblem. An den Rechten kann es aber kaum liegen, wenn es nur zeitweise nicht klappt.
Speicherplatz ist auch kein Problem, nehme ich mal an?
Gibt es eventuell sporadische Netzwerkprobleme?
Ansonsten... :-[
-
Gibt es eventuell sporadische Netzwerkprobleme?
Habe ich auch schon gedacht, aber der Stream der Kamera ist eigentlich immer sofort verfügbar.
Habe ansonsten auch nichts geändert in den letzten Wochen.
-
Hast Du mal probiert, in der 49_IPCAM.pm ein Delay einzufügen, wie hier beschrieben:
https://forum.fhem.de/index.php/topic,10772.msg558326/topicseen.html#msg558326
Wäre zwar nicht Update-fest, aber wenn es funktioniert, weiß man zumindest, woran es liegt...
-
Hast Du mal probiert, in der 49_IPCAM.pm ein Delay einzufügen, wie hier beschrieben:
https://forum.fhem.de/index.php/topic,10772.msg558326/topicseen.html#msg558326
der Link tut es leider nicht...
-
der Link tut es leider nicht...
Bei mir tut er es.
Ist in diesem Thread Seite 9, Beitrag #127 von "Patrik S."
-
Ich versuche nochmals meine IPCAM in FHEM zu integrieren. Mit weblink funktioniert es:
image http://192.168.178.44/snapshot.cgi?user=ich&pwd=123$456
Mit IPCAM bekomme ich wenn ich ein "get image" mache den Fehler
IPCAM interactive_webcam2 Wrong or not supported image format: error while reading source image:
Meine Definition ist wie folgt:
Internals:
AUTHORITY http://192.168.178.44
DEF http://192.168.178.44
NAME interactive_webcam2
NR 1622
SEQ 0
STATE Defined
TYPE IPCAM
READINGS:
2019-02-01 17:34:42 snapshots 0
Attributes:
basicauth ich:123$456
delay 3
path snapshot.cgi
room ACHTUNG
snapshots 3
storage /media/usb0/log
verbose 5
Ich füge eine Bilddatei der Kamera unverändert im Anhang bei.
Die letzte Hoffnung ist, dass die path-Angabe noch irgendwie anzupassen ist, denn für manche Kameras stehen im Wiki auch "eigenartige" Einträge.
Meine Kamera ist die LogiLink WC0043.
Allerletzte Möglichkeit: Kamera auf den Elektroschrott und eine neue kaufen - welche Outdoor-Kamera funktioniert zuverlässig ?
Einen lieben Gruß
Jürgen
-
Ich versuche nochmals meine IPCAM in FHEM zu integrieren. Mit weblink funktioniert es:
Was hast Du denn schon probiert? Die Fehlermeldung kommt alleine hier im Thread zigmal vor, oft auch mit Lösungen.
Häufig sind es Probleme mit den Zugriffsrechten. Hat FHEM in dem festgelegten Pfad die nötigen Schreibrechte?
-
Was hast Du denn schon probiert? Die Fehlermeldung kommt alleine hier im Thread zigmal vor, oft auch mit Lösungen.
Ich habe ganz viele Lösungsmöglichkeiten mal ausprobiert!
Häufig sind es Probleme mit den Zugriffsrechten. Hat FHEM in dem festgelegten Pfad die nötigen Schreibrechte?
Ok, ich weiß zwar nicht, was FHEM da schreiben soll, aber das wäre noch ein Ansatz, den ich noch nicht probiert habe.
-
Hier
storage /media/usb0/log
sollte Fhem schreiben dürfen.
-
Ganz sicher, da schreibt FHEM schon ganz viel hinein! :)!
-
Ich versuche nochmals meine IPCAM in FHEM zu integrieren. Mit weblink funktioniert es:
image http://192.168.178.44/snapshot.cgi?user=ich&pwd=123$456
Mit IPCAM bekomme ich wenn ich ein "get image" mache den Fehler
IPCAM interactive_webcam2 Wrong or not supported image format: error while reading source image:
Meine Definition ist wie folgt:
Internals:
AUTHORITY http://192.168.178.44
DEF http://192.168.178.44
NAME interactive_webcam2
NR 1622
SEQ 0
STATE Defined
TYPE IPCAM
READINGS:
2019-02-01 17:34:42 snapshots 0
Attributes:
basicauth ich:123$456
delay 3
path snapshot.cgi
room ACHTUNG
snapshots 3
storage /media/usb0/log
verbose 5
Ich füge eine Bilddatei der Kamera unverändert im Anhang bei.
Die letzte Hoffnung ist, dass die path-Angabe noch irgendwie anzupassen ist, denn für manche Kameras stehen im Wiki auch "eigenartige" Einträge.
Meine Kamera ist die LogiLink WC0043.
Allerletzte Möglichkeit: Kamera auf den Elektroschrott und eine neue kaufen - welche Outdoor-Kamera funktioniert zuverlässig ?
Einen lieben Gruß
Jürgen
Hallo Jürgen,
hast du mal versucht das Passwort zu ändern und kein Sonderzeichen (schon gar kein $) zu verwenden?
-
Probiere mal basicauth weg zu lassen und als path
snapshot.cgi?user=ich&pwd=123$456
So funktioniert es bei mir.
Nachtrag:
In der commandref ist es sogar so erklärt.
basicauth funktioniert nur bei
user:passwd@pfad
ansonsten ist der string als pfad anzugeben
-
mal ne blöde frage, weil ich das bei mir ja auch hatte. Bist du dir sicher das wirklich ein .jpg zurückgeliefert wird ?
Oder wird hier eine html zurückgeliefert in der dann der absolute pfad in der Kamera dann steht.
Im Browser selbst bekommst du das nicht mit, es wird ja das richtige Bild angezeigt.
Checken kannst du das z.b. im Browser wenn du dann mit rechter Maustaste mal den seitenquelltext ansiehst.
-
Bei mir werden die Bilder als jpg im storage-pfad abgelegt.
-
mal ne blöde frage, weil ich das bei mir ja auch hatte. Bist du dir sicher das wirklich ein .jpg zurückgeliefert wird ?
Oder wird hier eine html zurückgeliefert in der dann der absolute pfad in der Kamera dann steht.
Im Browser selbst bekommst du das nicht mit, es wird ja das richtige Bild angezeigt.
Checken kannst du das z.b. im Browser wenn du dann mit rechter Maustaste mal den seitenquelltext ansiehst.
Ja, das Bild ist ein jpg.
Probiere mal basicauth weg zu lassen und als path
snapshot.cgi?user=ich&pwd=123$456
So funktioniert es bei mir.
Nachtrag:
In der commandref ist es sogar so erklärt.
basicauth funktioniert nur bei
user:passwd@pfad
ansonsten ist der string als pfad anzugeben
Funktioniert beides nicht.
Hallo Jürgen,
hast du mal versucht das Passwort zu ändern und kein Sonderzeichen (schon gar kein $) zu verwenden?
Das war's!!!!!
Ich habe zwar nicht das hier angegebene Passwort, aber es enthält Sonderzeichen - diese entfernt - alles ist gut.
DANKE!
-
Gibt es eigentlich inzwischen die Möglichkeit das letzte Video herunterzuladen und dann z.B. per Telegram schicken zu lassen?
Also nicht nur Snapshots, sondern das letzte Video?
Wäre ja toll.
-
Hi Jungs,
ich arbeite gerade das IPCAM Modul ein und betreibe damit eine Instar9008. Zunächst möchte ich erstmal sagen das ich das Modul sehr geil finde! Vielen Dank das ihr euch die Mühe gemacht habt um es zu schreiben.
Für eine Erweiterung speziell für die InstarXXX würde ich es geil finden wenn es eine Möglichkeit gibt den direkten CGI Output von z.B. den Alarm Attributen eingeben zu können ohne diesen Aufwendig um zu wandeln. Ich könnte mir auch vorstellen die aktuellen Daten einfach in ein CMDxx zu übernehmen.
Beispiel für Alarm Attribute
http://IP/param.cgi?cmd=getmdattr
var m1_enable="1"; var m1_x="375"; var m1_y="210"; var m1_w="255"; var m1_h="141"; var m1_sensitivity="70"; var m1_threshold="0"; var m2_enable="1"; var m2_x="375"; var m2_y="207"; var m2_w="253"; var m2_h="144"; var m2_sensitivity="75"; var m2_threshold="0"; var m3_enable="1"; var m3_x="375"; var m3_y="207"; var m3_w="253"; var m3_h="141"; var m3_sensitivity="65"; var m3_threshold="0"; var m4_enable="1"; var m4_x="372"; var m4_y="205"; var m4_w="258"; var m4_h="144"; var m4_sensitivity="65"; var m4_threshold="0";
VG Danny
-
Hi,
anbei mein noch lokal angepasstes IPCAM-Modul für Instar-HD-CAMs.
alle Infos dazu unter: https://forum.fhem.de/index.php?topic=100493 (https://forum.fhem.de/index.php?topic=100493)
viele Grüße
Sebastian
-
ich hab über einen zweiten Raspberry eine Kamera laufen mit "Motion". Motion bietet einen Livestream an und ein Kommando für ein Snapshot der dann gemacht und lokal gespeichert wird. Leider wird dieser nicht als Bild-Antwort im Browser zurückgegeben.
Die Frage: Wie kann ich diesen Snapshot jetzt in mein FHEM bringen? Wie gesagt, beides läuft nicht auf dem gleichen Raspberry und ich kann nur das machen der Snapshots auslösen aber sie liegen nicht auf dem Raspberry wo sie hingehören...
-
Du musst das Bild lokal auf dem motion-RPi speichern und dann auf den FHEM-RPi kopieren, und zwar in das Verzeichnis /opt/FHEM/... Dort kannst du es dann aufrufen. Ich mache das so mit pikrellcam, ist so ähnlich wie Motion.
-
Und wie kopiere ich das am geschicktesten und automatisch rüber? Würde mir auch reichen wenn der FHEM-Pi das Bild bei Bedarf „holt“ und zB per Telegram versendet.
-
mit einem cronjob (crontab -e). Ich sehe gerade, dass das bei mir nicht nötig ist. Pikrellcam speichert die Bilder in einem Pfad, auf den ich zugreifen kann. Die Fotos kann ich mir dann entweder direkt in FHEM anschauen oder, wenn ich weg bin, lasse ich sie mir mit telegram zuschicken.
-
Hallo Zusammen,
ich wollte fragen ob schon jemand die Steinel L 600 Cam https://www.steinel.de/de/private-anwender/leuchten-strahler/aussenleuchten/l-600-cam-052997.html (https://www.steinel.de/de/private-anwender/leuchten-strahler/aussenleuchten/l-600-cam-052997.html)
mit FHEM verbunden hat?
Danke und Gruß
-
Hallo,
einmal zurück in die Steinzeit:
Foscam VNT6656G6A40 (FI8919W clone) kann man die Bewegungserkennung mit "set_alarm.cgi?user=xxxxx&pwd=xxxxxx&motion_armed=0" deaktivieren und mit "set_alarm.cgi?user=xxxx&pwd=xxxxxxx&motion_armed=1&motion_sensitivity=4" aktivieren". Ich habe es nur mit set raw ... hinbekommen. Es geht aber auch mit einem GetfFileFromURL.
Foscam FI9831W: deaktivieren "cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=xxxxxx&pwd=xxxxxxx" und mit "cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=xxxxx&pwd=xxxxxx" aktivieren. set raw und GetFileFromURL wie vor
Ich habe alle übrigen Parameter weggelassen. Sie wurden nicht angetastet.
Nachtrag: Das mit den übrigen Parametern war nicht richtig. Bei der FI9831W muss man doch alle Parameter neu setzen, wenn man Bewegungsmelder wieder aktiviert (wurde auch bereits so irgendwo beschrieben. Die Daten dazu bekommt man einfach durch ein "<ip>:<port>/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=xxxx&pwd=xxxxx" im Browser genannt und man kann dann mit "<ip>:<port>/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1
&linkage=2&snapInterval=1&sensitivity=2& schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=0&area1=0&area2=0&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area8=1023&area9=1023&usr=xxxxx&pwd=xxxxx" wieder alles setzen.
LG Peter
-
Hallo Sebastian,
die heutige Version 49_IPCAM.pm funktioniert auch bei mir mit 9008, 9020 und 8003.
Ich kann aber die 4 Bereiche nicht von einander unterscheiden - bei reading AlarmAreaBez kommt immer nur
das letzte Wert von AlarmAreaDescription.
Weiß Du ein Rat?
Gruß
Martin
-
Ich kann aber die 4 Bereiche nicht von einander unterscheiden - bei reading AlarmAreaBez kommt immer nur
das letzte Wert von AlarmAreaDescription.
Weiß Du ein Rat?
Hallo Martin,
hab das gleich Problem. Heute Morgen habe ich den Aufruf in FHEM eingegeben. Dort gehts, von extern geht es leider nicht :(
FHEMWEB leitet das &action=x nicht wie das alarm weiter.
Ich schau mal, was man machen kann.
VG
Sebastian
-
bin dem Ganzen auf die Spur gekommen:
die Zaubervariable heißt use vars qw(%FW_webArgs);.
Damit kann man auf alle Argumente des HTTP-GET-Aufrufts der Kamera zugreifen.
Das Update liegt wieder unter https://forum.fhem.de/index.php/topic,100493.0.html (https://forum.fhem.de/index.php/topic,100493.0.html).
Habe Martin Fischer gefragt, ob es in Ordnung ist, wenn ich das Modul weiter pflege und sein OK bekommen.
Nun habe ich in meiner Version des IPCAM-Moduls fleißig auf nonblocking umgestellt.
Kennt sich jemand damit aus, ob es evtl.Kompatibilitätsprobleme gegenüber den alten blocking-Aufrufen geben kann?
VG
Sebastian
-
Hallo Sebastian,
super, jetzt geht es auch mit 9008 (die 8003 und 9020 teste ich morgen)
Nebeneffekt ist, dass die Cam kurz danach den Wert "0" sendet.
Dieser überschreibt bei mir die readings (0, none, none)
Ich habe schon mit dem "alten" IPCAM einen "dauerhaften" Alarm (mit einem dummy) realisiert.
Diese Lösung ist bei mir immer noch im Einsatz - ich quittiere die Alarme händisch.
Ein Versuch den Alarmbereich in den dummy zu schreiben scheitert dann aber.
Danke für Deine Weiterentwicklung von IPCAMl.
Gruß
Martin
Update:
Asche auf mein Haupt - ich habe tatsächlich notify übersehen.
Alles im lot
-
Danke fürs Testen, Martin.
Leider werde ich aus deinem nicht mehr vorhandenen Problem nicht ganz schlau.
Sendet die CAM noch immer eine 0 oder war das dein notify?
VG
Sebastian
-
Hallo Sebastian,
es war setreading in notify.
Weitere Test ergaben:
-> 8003 funktioniert so wie sie soll.
-> 9020 -> noch nicht so ganz -> &aktion-Werte werden noch nicht übergeben.
Ich teste weiter.
Gruß
Martin
Update 14:20
auch die 9020 -> funktioniert so wie sie soll
-
Hallo und ein frohes neues Jahr!
Ich möchte meine Hausautomation auch um eine Kameraüberwachung erweitern.
Ich stelle mir folgendes Umsetzung vor:
Die Kamera sollte per WLAN verbunden sein um Umbaumaßnahmen zu vermeiden.
Die Ausrichtung brauch aus der Ferne nicht veränderbar zu sein.
Als Erstes möchte ich gerne das die Kamera bei Bewegung Bilder oder ein kurzes Video im Netzwerk abspeichert (per FTP, SMB oder NFS). Eine Cloudanbindung möchte ich nicht!
Als Zweites möchte ich gerne das der Stream direkt im Browser (Fully Browser) anzeigbar ist sodass ich wenn jemand klingelt das Kamerabild auf dem TabletUI aufpoppen lassen kann.
Ich hoffe auf eine Produktempfehlung.
Danke und Gruß
Daniel
-
Als Erstes möchte ich gerne das die Kamera bei Bewegung Bilder oder ein kurzes Video im Netzwerk abspeichert (per FTP, SMB oder NFS). Eine Cloudanbindung möchte ich nicht!
Das hat an sich nichts mit Fhem zu tun und kann mit so ziemlich jeder Überwachungskamera und den nötigen Zubehör bewerkstelligt werden.
In diesem Fall würde ich zu einem NAS (Synology/QNAP) greifen und diese die Arbeit machen lassen. Das ist auf dauer die Stabilste und beste Methode. Ich persönlich würde auf Wlan verzichten. Eine POE Cam ist frei von WLan Problemen und benötigt auch keinen Stromanschluss, lediglich ein POE Switch ist von Nöten. Gute POE Cams z.B. wären Hikvision oder Dahua, gibt aber auch gute günstigere bei Aliexpress...
Als Zweites möchte ich gerne das der Stream direkt im Browser (Fully Browser) anzeigbar ist sodass ich wenn jemand klingelt das Kamerabild auf dem TabletUI aufpoppen lassen kann.
Da kommen wir zum eigentlichen Problem!
Es ist nicht einfach/fast unmöglich einen RTSP Stream der Camera auf den Tabletscreen zu zaubern. Das Problem ist das die meisten Cams nur noch einen RTSP haben und KEINEN MJPEG der von den Browsern (Chrome/Fully...) auf den Tablets unterstützt wird.
Die Tablets unterstützen demnach keinen RTSP Stream in den verfügbaren Browsern.
Ich habe eine Methode gerade am laufen die ganz gut funktioniert:
Ein Android Mediaplayer am Netzwerk angeschlossen, TinyCam Pro installiert und dort den Webserver aktiviert. Somit Streamt mir TinyCam einen MJPEG Stream von meinen eingebundenen Cams insNetzwerk.
Diesen MJPEG Stream kann man dann problemlos in FTUI einbinden und damit allen Unfug betreiben was Fhem/FTUI bietet.
Dann gibt es neulich eine neue mir noch unbekannte Variante die aber für mich sehr kompliziert klingt weil ich davon zu wenig Ahnung habe...
https://forum.fhem.de/index.php/topic,48735.msg1004275.html#msg1004275 (https://forum.fhem.de/index.php/topic,48735.msg1004275.html#msg1004275)
-
Es ist nicht einfach/fast unmöglich einen RTSP Stream der Camera auf den Tabletscreen zu zaubern. Das Problem ist das die meisten Cams nur noch einen RTSP haben und KEINEN MJPEG der von den Browsern (Chrome/Fully...) auf den Tablets unterstützt wird.
Ich bringe den Live-Stream verschiedener Instar-Kameras ohne Umwege problemlos in FTUI auf Fully zum Laufen:
<div data-type="image" data-url="http://192.168.aaa.bb:80/videostream.cgi?user=xxxx&pwd=yyyy"></div>
Diese Grundvariante habe ich dann noch etwas verfeinert, indem die url aus einem Reading bezogen und damit der Stream ausgeschaltet wird, wenn das Bild gar nicht eingeblendet ist. Das spart spürbar Bandbreite. Ich empfehle auch Kabel statt WLAN.
Mit der Speicherung von Bildern/Videos habe ich mich noch nicht beschäftigt, aber da scheint es ja bewährte Lösungen zu geben (die allerdings wohl auch am Budget zehren).
P.S. Ich bin nicht mehr und nicht weniger als (durchaus zufriedener, zahlender) Kunde von Instar. Das Leben ist zu kurz, um sich mit in interessantem Deutsch geschriebenen, wenn überhaupt vorhandenen Dokumentationen gewisser Kameras zu beschäftigen. Aufwendige Work-arounds für nicht vorhandene Features sind nicht so mein Hobby.
-
Hallo Zusammen
ich habe das Kamera Modul ESP32Cam und möchte es mit dem IPCAM Modul verwenden.
Als Firmware habe ich
https://www.fambach.net/esp32-cam-modul/
Arduino ESP32 CamWebServer der Funktioniert auch.
Jetzt möchte ich aber den Stream oder ein Capture Bild in FHEM haben.
Wie kann ich mit diesem CamModul ein Bild speichern. Das Attribut path gibt es bei der CAM nicht wirklich.
Hat jemand eine Idee, ich stehe etwas auf dem Schlauch bzw. auf der Leitung.
Das Funktioniert nicht. Es wird kein Bild gespeichert. : get ESP32Cam image
define ESP32Cam IPCAM http://192.168.0.48:81/stream
attr ESP32Cam delay 5
attr ESP32Cam icon it_camera
attr ESP32Cam path ?
attr ESP32Cam room Kamera
attr ESP32Cam snapshots 2
attr ESP32Cam storage /opt/fhem/www/snapshots/esp32cam
attr ESP32Cam timestamp 1
attr ESP32Cam verbose 3
Das zeigt zumindest das Bild in einem iframe an
define LiveCam1 weblink iframe http://192.168.0.48/capture
setuuid LiveCam1 5c5583f4-f33f-db58-afbd-85841f375f97502e
attr LiveCam1 htmlattr width="320" height="240" frameborder="0" marginheight="0"
attr LiveCam1 room Kamera
So wird der Stream im iframe angezeigt
define LiveCam1 weblink iframe http://192.168.0.48:81/stream
setuuid LiveCam1 5c5583f4-f33f-db58-afbd-85841f375f97502e
attr LiveCam1 htmlattr width="320" height="240" frameborder="0" marginheight="0"
attr LiveCam1 room Kamera
-
attr ESP32Cam path /capture
oder
attr ESP32Cam path /stream
-
Hallo zusammen
das habe ich jetzt auch versucht aber ohne erfolg
define ESP32Cam IPCAM http://192.168.0.48
setuuid ESP32Cam 5c5583f4-f33f-db58-2db8-9a854c0db14d5615
attr ESP32Cam delay 5
attr ESP32Cam icon it_camera
attr ESP32Cam path /capture
attr ESP32Cam room Kamera
attr ESP32Cam snapshots 2
attr ESP32Cam storage /opt/fhem/www/snapshots/esp32cam
attr ESP32Cam timestamp 1
attr ESP32Cam verbose 5
Im Logfile kommt nun
IPCAM ESP32Cam Wrong or not supported image format: error while reading source image:
Nach Codeänderung
$snapshot = GetFileFromURLQuiet($camURI, 10, "", 1, 5);
if ($snapshot eq "" ) {
Log 3, "IPCAM Snapshot of $name is emtpy!";
}
2020.04.25 22:27:41 3: IPCAM Snapshot of ESP32Cam is emtpy!
2020.04.25 22:27:41 1: IPCAM ESP32Cam Wrong or not supported image format: error while reading source image:
LG
Stefan
-
laut Doku deiner Cam musst du im den Port 81 ansprechen.
Das bedeutet define ESP32Cam IPCAM http://192.168.0.48:81
und dann attr ESP32Cam path /capture
Mit freundlichen Grüßen
-
Hi
das habe ich schon versucht, hat aber auch nicht funktioniert
Wenn ich es richtig verstehe, läuft nur der Stream über Port 81.
Diese Configuration für den iframe funktioniert ja.
define LiveCam1 weblink iframe http://192.168.0.48/capture
define LiveCam2 weblink iframe http://192.168.0.48:81/stream
LG
Stefan
-
Hallo zusammen
Durch Erweiterung der Logausgabe im IPCAM Modul habe ich den richtigen Pfad herausgefunden und jetzt funktioniert es.
Danke schön.
define ESP32Cam IPCAM 192.168.0.48
attr ESP32Cam delay 5
attr ESP32Cam icon it_camera
attr ESP32Cam path capture
attr ESP32Cam room Kamera
attr ESP32Cam snapshots 5
attr ESP32Cam storage /opt/fhem/www/snapshots/esp32cam
attr ESP32Cam timestamp 1
attr ESP32Cam verbose 5
2020.04.26 10:34:49 3: IPCAM Path : http://192.168.0.48/capture
LG
Stefan
-
Hallo zusammen,
ich habe mein Kamera im Garten eingerichtet, was soweit auch funktioniert. Allerdings werden die Bilder immer als SVGs gespeichert und diese kann ich nicht öffnen, zumindest diese nicht. Ich weiß nicht wie ich z.B. auf jpg komme.
defmod cam_garten IPCAM 192.168.136.53
attr cam_garten alias cam_garten
attr cam_garten path mjpg/video.mjpg?user=bla&pwd=bla
attr cam_garten room Garten
attr cam_garten snapshots 1
attr cam_garten storage ./www/snapshot
Internals:
AUTHORITY 192.168.136.53
DEF 192.168.136.53
FUUID 5cbf7455-f33f-283d-36b2-cf19a7809f4423db
FVERSION 49_IPCAM.pm:0.185050/2019-02-05
NAME cam_garten
NR 885
SEQ 0
STATE last: 2020-04-28 22:59:13
TYPE IPCAM
READINGS:
2020-04-28 22:59:13 last cam_garten_snapshot.svg
2020-04-28 22:59:13 snapshot1 cam_garten_snapshot_1.svg
2020-04-28 22:59:13 snapshots 1
Attributes:
alias cam_garten
path mjpg/video.mjpg?user=asdad&pwd=adasad
room Garten
snapshots 1
storage ./www/snapshot
-
Ein wenig mehr Infos um welche Cam es sich handelt wären hilfreich.
-
Ein wenig mehr Infos um welche Cam es sich handelt wären hilfreich.
Hi,
das ist die Edimax IC-9110W.
Danke für die Hilfe.
-
Hast du es mal mit
snapshot.jpg?account=[USERNAME]&password=[PASSWORD
Probiert?
-
Hast du es mal mit
snapshot.jpg?account=[USERNAME]&password=[PASSWORD
Probiert?
Ja, habe das gerade einmal ausprobiert. Es kommen leider weiter SVGs.
Internals:
AUTHORITY 192.168.136.53
DEF 192.168.136.53
FUUID 5cbf7455-f33f-283d-36b2-cf19a7809f4423db
FVERSION 49_IPCAM.pm:0.185050/2019-02-05
NAME cam_garten
NR 885
SEQ 0
STATE last: 2020-04-30 12:12:51
TYPE IPCAM
READINGS:
2020-04-30 12:12:51 last cam_garten_snapshot.svg
2020-04-30 12:12:51 snapshot1 cam_garten_snapshot_1.svg
2020-04-30 12:12:51 snapshots 1
Attributes:
alias cam_garten
path snapshot.jpg?account=asdasd&pwd=adsad
room Garten
snapshots 1
storage ./www/snapshot
-
Und so?
snapshot.jpg
Was passiert wenn du die Adresse
192.168.136.53/snapshot.jpg
Im Browser aufrufst?
Oder mal so probieren
user:password@192.168.136.53/snapshot.jpg
http://IPADDRESS/snapshot.cgi
http://IPADDRESS/jpg/image.jpg
-
Was passiert wenn du die Adresse
192.168.136.53/snapshot.jpg
Im Browser aufrufst?
Dann zeigt er mir ein Bild im Format jpg im Browser an.
Alle Varianten habe ich jetzt einmal getestet, aber es wird immer nur ein SVG abgelegt.
-
Wenn du nicht nach Passwort oder Benutzer gefragt wirst dann würde ich es mal so probieren
attr cam_garten path snapshot.jpg
-
Hi,
also so wie es scheint liegt es an der Anmeldung. Der link im Browser ging, da dieser die Zugangsdaten gespeichert hatte.
Die Eingabe des Links im Browser mit den Zugangsdaten hat dann einfach nicht funktioniert. Ich habe das noch mal mit basicauth probiert, was jetzt funktioniert. Ich hatte basicauth immer nur mit geschweiften Klammern probiert.
defmod cam_garten IPCAM 192.168.136.53:80
attr cam_garten alias cam_garten
attr cam_garten basicauth sdfsdf:sfdfsd
attr cam_garten path snapshot.jpg
attr cam_garten room Garten
attr cam_garten snapshots 1
attr cam_garten storage ./www/snapshot
Jetzt stehe ich vor dem Problem die Kamera als iframe über Weblink einzubinden. Der will die Zugangsdaten im Link nicht nehmen.
-
bin dem Ganzen auf die Spur gekommen:
die Zaubervariable heißt use vars qw(%FW_webArgs);.
Damit kann man auf alle Argumente des HTTP-GET-Aufrufts der Kamera zugreifen.
Das Update liegt wieder unter https://forum.fhem.de/index.php/topic,100493.0.html (https://forum.fhem.de/index.php/topic,100493.0.html).
Habe Martin Fischer gefragt, ob es in Ordnung ist, wenn ich das Modul weiter pflege und sein OK bekommen.
Nun habe ich in meiner Version des IPCAM-Moduls fleißig auf nonblocking umgestellt.
Kennt sich jemand damit aus, ob es evtl.Kompatibilitätsprobleme gegenüber den alten blocking-Aufrufen geben kann?
VG
Sebastian
Hi Sebastian,
zunächst einmal vielen Dank für's erweitern.
Ich probiere aktuell die Helligkeit meiner Cam auszulesen, scheitere aber sowohl mit der "alten", als auch mit deiner Version.
Ich nutze eine INstar 9008 Cam und habe folgende config:
Internals:
AUTHORITY IP:PORT
DEF IP:PORT
FUUID 5efadc4a-f33f-daf3-8545-4a9c00279797abd3
HttpRequest set
NAME eg_ga_cam1
NR 605
SEQ 0
STATE initialized
TYPE IPCAM
READINGS:
2020-06-30 08:31:38 state initialized
Attributes:
basicauth {USERNAME}:{PASSWORD}
checkInterval 600
cmd01 cmd=getsaradcstate&-usr={USERNAME}&-pwd={PASSWORD}
credentials /opt/fhem/FHEM/ipcam.conf
path /tmpfs/snap.jpg
pathCmd param.cgi?
room Garten
snapshots 1
storage /tmp
timestamp 1
Einen Snapshot kann ich ziehen => credentials config muss stimmen
cmd=getsaradcstate gibt bei http request den entsprechenden Wert zurück...
Hast Du eine Idee?
Danke & Gruß,
Tobi
-
Hi,
ich habe eine Foscam FI9900EP IP Kamera bei mir in FHEM integriert und es klappt auch Snapshots zu machen und unter dem im Attribut storage angegebenen Pfad abzuspeichern.
Hinweis am Rande zu der Thematik oben svg/jpg.
Bei der Foscam muss man bei path CGIProxy.fcgi?cmd=snapPicture2&usr=xxxx&pwd=yyyy
eingeben. Dann bekommt man ein jpg Bild.
Gibt man stattdessen path CGIProxy.fcgi?cmd=snapPicture&usr=xxxx&pwd=yyyy
ein, so erhält man ein svg.
Also bei Bedarf an jpg Bildern bei snapPicture2 auf die 2 achten.
Vielleicht ist das bei der Edimax IC-9110W von holzwurm83 ja ähnlich.
Jetzt zu meinem Problem.
Wie geschrieben kriege ich mit dem oben genannten Befehl Bilder von der Kamera.
Was ich nicht hin bekomme ist Daten auszulesen oder zu zoomen etc.
Nach meinem Verständnis müsste das doch über unter den Attributen cmd<x> mit dort hinterlegten Angaben möglich sein - klappt aber irgendwie nicht.
Versucht habe ich:
cmd01 CGIProxy.fcgi?cmd=zoomIn&+cmd=snapPicture2&usr=xxxx&pwd=yyyy
cmd02 CGIProxy.fcgi?cmd=zoomOut&usr=xxxx&pwd=yyyy
cmd03 192.168.178.9:88/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=xxxx&pwd=yyyy
Es klappt weder ohne Pfadangabe noch mit und auch nicht mit IP und Port Angabe.
Was mache ich falsch - wer hat einen Tipp?
Danke im Voraus.
Noch etwas.
Irgendwie hat das device vom Typ IPCAM kein Log-File.
Wie kriege ich das nachträglich aktiviert?
-
Noch etwas.
Irgendwie hat das device vom Typ IPCAM kein Log-File.
Wie kriege ich das nachträglich aktiviert?
https://wiki.fhem.de/wiki/FileLog
Gruß, Joachim
-
Danke für den Hinweis mit dem Logfile - hat geklappt.
Nur leider bekomme ich selbst mit verbose 5 nur minimalen Output.
2020-09-10_13:42:16 WebCam_Gartenhaus last: WebCam_Gartenhaus_snapshot.jpg
2020-09-10_13:42:16 WebCam_Gartenhaus snapshots: 1
2020-09-10_13:45:02 WebCam_Gartenhaus cmd 1
2020-09-10_13:52:54 WebCam_Gartenhaus raw CGIProxy.fcgi?cmd=snapPicture2&usr=tester&pwd=tester1
2020-09-10_13:57:05 WebCam_Gartenhaus cmd 1
2020-09-10_13:59:02 WebCam_Gartenhaus raw image
2020-09-10_13:59:40 WebCam_Gartenhaus raw get WebCam_Gartenhaus image
2020-09-10_14:12:16 WebCam_Gartenhaus last: WebCam_Gartenhaus_snapshot.jpg
2020-09-10_14:12:16 WebCam_Gartenhaus snapshots: 1
Damit kann ich keinerlei Fehler erkennen - obwohl weder der CGI Befehl noch der raw Befehl funktioniert haben.
Listing des Log-Devices:
Internals:
CFGFN
DEF ./log/WebCamLogfile.log WebCam_Gartenhaus
FD 92
FUUID 5f59e855-f33f-5fc3-572e-e9ad2476dbef1e56
NAME WebCamLogfile
NOTIFYDEV WebCam_Gartenhaus
NR 45437
NTFY_ORDER 50-WebCamLogfile
REGEXP WebCam_Gartenhaus
STATE active
TYPE FileLog
currentlogfile ./log/WebCamLogfile.log
logfile ./log/WebCamLogfile.log
READINGS:
2020-09-11 09:50:10 linesInTheFile 110
Attributes:
addStateEvent 1
Das eigentliche Problem oder die primäre Frage waren allerdings:
Kann mir jemand weiterhelfen, wie ich die CGI Befehle der Foscam in FHEM einbinden und nutzen kann ?
So wie ich es versucht habe mit den cmd Attributen - siehe unten - funktioniert es jedenfalls nicht :-(
Listing der Webcam:
Internals:
AUTHORITY 192.168.178.9:88
CFGFN
DEF 192.168.178.9:88
FUUID 5f5801fb-f33f-5fc3-4447-c6c5077df6f0b32b
NAME WebCam_Gartenhaus
NR 30883
SEQ 0
STATE last: 2020-09-11 09:50:09
TYPE IPCAM
READINGS:
2020-09-11 09:50:10 last WebCam_Gartenhaus_snapshot.jpg
2020-09-11 09:50:09 snapshot1 WebCam_Gartenhaus_snapshot_1.jpg
2020-09-11 09:50:10 snapshots 1
Attributes:
alias Webcam am Gartenhaus
cmd01 CGIProxy.fcgi?usr=tester&pwd=tester1&cmd=snapPicture2
cmd02 CGIProxy.fcgi?cmd=getSnapConfig&usr=tester&pwd=tester1
cmd03 CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=tester&pwd=tester1
cmd15 CGIProxy.fcgi?cmd=snapPicture2&usr=tester&pwd=tester1
icon it_camera
path CGIProxy.fcgi?cmd=snapPicture2&usr=tester&pwd=tester1
pathCmd CGIProxy.fcgi?usr=tester&pwd=tester1
pathPanTilt CGIProxy.fcgi?usr=tester&pwd=tester1
room Garten
storage /opt/fhem/www/snapshots
verbose 5
Bin für jeden Tipp dankbar.
-
Hallo
Ich habe seit einigen Tagen ein Problem mit einer Hikvision Kamera.
defmod HikVisionEingang IPCAM xx.xx.xx.xx
attr HikVisionEingang basicauth XXX:XXX
attr HikVisionEingang icon it_camera
attr HikVisionEingang path /ISAPI/Streaming/channels/1/picture
attr HikVisionEingang room IpCams
attr HikVisionEingang storage www/snapshots/HikVisionEingang
Wenn ich auf den Button "get Hikvision image" drücke bekomme ich ein Jpeg in meinen Ordner gespeichert.
Dies kann ich auch in kurzen Abständen hintereinander machen ohne Probleme.
Ich habe aber ein Doif laufen und wenn es dort aufgerufen wird dann bekomme ich fast immer ein .svg mit dem Hinweis "Device Busy".
Und somit auch immer ein altes Bild.
([TUERGLOCKE:"^4.PRESS_SHORT: "] or [TUERGLOCKE:"^4.PRESS_LONG: "]) (get HikVisionEingang image) (set pushover msg "Es hat geläutet" sound=tugboat priority=0) (set NVR_SA_4 on-for-timer 40) (set NVR_SA_1 on-for-timer 2) (set pushover msg "Wer steht da vor der Tür?" sound=none priority=0 attachment="www/snapshots/HikVisionEingang/HikVisionEingang_snapshot.jpg")
Eine Idee wo da der Unterschied ist?
LG Thomas
-
Hast du erst jetzt, also seit ein paar Tagen, Probleme mit dem DOIF (also ging das schon mal) oder nur "seit dem DOIF" Probleme mit/über DOIF?
(also DOIF ging noch nie, manuell schon)
Wenn nur/erst das DOIF nicht geht: evtl. ist das Bild bei "get Picture" halt noch nicht (fertig) im Ordner.
Weil beim DOIF erfolgt ja "get Picture" und "send Picture" sofort hintereinander (oder quasi gleichzeitig).
Oder hast du wait eingebaut, dann wäre es toll gewesen mehr vom DOIF zu zeigen...
Was passiert, wenn du "get Picture" und "send Picture" direkt "zusammen" (also wie im DOIF) in Fhem-Web eingibst (also "auf einen Rutsch" NICHT hintereinander "eintippen/eingeben")...
Oder einfach mal beim DOIF mit wait das Senden verzögern...
Evtl. wird auch das DOIF zu oft hintereinander getriggert? Das DOIF reagiert ja auf sehr viel per ODER...
Mal im Eventmonitor geschaut was/wieviel da an "passenden" Events kommen, wenn du den "Knopf drückst"?
Weil wie geschrieben: eine autom. Programmierung ist halt deutlich schneller als du jemals tippen/drücken kannst (selbst drücken durch dich per Weboberfläche ist deutlich langsamer als wenn 3,4,5 Events quasi "gleichzeitig" kommen)...
Wenn das DOIF "plötzlich" nicht mehr tut (bislang aber ging): keine Ahnung bzw. wurde etwas verändert? fhem-Update? OS-Update, FW-Update Kamera, ...
Gruß, Joachim
-
Dein DOIF sieht komisch aus: Wenn du mehrere FHEM Befehle ausführen willst, dann werden die normalerweise in einem Klapperpaar durch Koammas getrennt.
Sollte also so aussehen: (befehl1, befehl2, befehl3)
-
defmod di_Klingel DOIF ([TUERGLOCKE:"^4.PRESS_SHORT: "] or [TUERGLOCKE:"^4.PRESS_LONG: "]) (get HikVisionEingang image) (set pushover msg "Es hat geläutet" sound=tugboat priority=0) (set NVR_SA_4 on-for-timer 40) (set NVR_SA_1 on-for-timer 2) (set pushover msg "Wer steht da vor der Tür?" sound=none priority=0 attachment="www/snapshots/HikVisionEingang/HikVisionEingang_snapshot.jpg")
attr di_Klingel do always
attr di_Klingel icon helper_doif
attr di_Klingel room DOIFs
attr di_Klingel wait 0,0,0,0,3
das DOIF hat bis vor einer Woche so funktioniert
EDIT:
Camera hatte ein Update ja stimmt.
Aber was mit komisch vorkommt wieso geht es so direkt im DEvice mit get... eigentlich immer, nur im Doif nicht.
Wo ist da der Unterscheid vom aufruf?
EDIT 2:
Habe jetzt nochmal das wait for dem senden des JPEG erhöht und jetzt dürfte es gehen.
Somit dürfte sich das svg mit "Device Busy" auf den Storage bezogen haben und nicht auf die IP-Kamera.
DANke ung LG
-
Das eigentliche Problem oder die primäre Frage waren allerdings:
Kann mir jemand weiterhelfen, wie ich die CGI Befehle der Foscam in FHEM einbinden und nutzen kann ?
So wie ich es versucht habe mit den cmd Attributen - siehe unten - funktioniert es jedenfalls nicht :-(
Listing der Webcam:
Internals:
AUTHORITY 192.168.178.9:88
CFGFN
DEF 192.168.178.9:88
FUUID 5f5801fb-f33f-5fc3-4447-c6c5077df6f0b32b
NAME WebCam_Gartenhaus
NR 30883
SEQ 0
STATE last: 2020-09-11 09:50:09
TYPE IPCAM
READINGS:
2020-09-11 09:50:10 last WebCam_Gartenhaus_snapshot.jpg
2020-09-11 09:50:09 snapshot1 WebCam_Gartenhaus_snapshot_1.jpg
2020-09-11 09:50:10 snapshots 1
Attributes:
alias Webcam am Gartenhaus
cmd01 CGIProxy.fcgi?usr=tester&pwd=tester1&cmd=snapPicture2
cmd02 CGIProxy.fcgi?cmd=getSnapConfig&usr=tester&pwd=tester1
cmd03 CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=tester&pwd=tester1
cmd15 CGIProxy.fcgi?cmd=snapPicture2&usr=tester&pwd=tester1
icon it_camera
path CGIProxy.fcgi?cmd=snapPicture2&usr=tester&pwd=tester1
pathCmd CGIProxy.fcgi?usr=tester&pwd=tester1
pathPanTilt CGIProxy.fcgi?usr=tester&pwd=tester1
room Garten
storage /opt/fhem/www/snapshots
verbose 5
Bin für jeden Tipp dankbar.
Bei mir klappt das Aus-(cmd01) bzw Einschalten(cmd02) der Motion Detection und das setzen sämtlicher von mir benötigten Flags bei einer Foscam G2EP wie folgt:
Attributes:
path cgi-bin/CGIProxy.fcgi?usr=tester&pwd=tester1&cmd=snapPicture2
pathCmd cgi-bin/CGIProxy.fcgi
pathPanTilt cgi-bin/CGIProxy.fcgi?usr=tester&pwd=tester1
cmd01 cmd=setMotionDetectConfig&isEnable=0&usr=tester&pwd=tester1
cmd02 cmd=setMotionDetectConfig&isEnable=1&linkage=15&snapInterval=2&triggerInterval=6&isMovAlarmEnable=1&isPirAlarmEnable=1&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&x1=0&y1=0&width1=300&height1=300&sensitivity1=1&valid1=1&x2=1220&y2=234&width2=1000&height2=2000&sensitivity2=2&valid2=1&x3=0&y3=3456&width3=9000&height3=2340&sensitivity3=3&valid3=0&x4=0&y4=0&width4=9000&height4=9000&sensitivity4=3&valid4=0&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area7=1023&area8=1023&area9=1023&usr=tester&pwd=tester1
LG - Martin
-
Moin,
ich versuche gerade meine Lupus203 zum laufen zu kriegen.
define Cam_Carport IPCAM 192.168.101.XXX
attr Cam_Carport basicauth XXX:XXX
attr Cam_Carport delay 0
attr Cam_Carport group Kamera
attr Cam_Carport icon it_camera
attr Cam_Carport path /cgi-bin/snapshot.cgi?
attr Cam_Carport room Aussen
attr Cam_Carport snapshots 1
attr Cam_Carport storage /opt/fhem/www/snapshots/cam_carport
kommt aber nix.
Per:
http://XXX:XXX@192.168.101.XXX/cgi-bin/snapshot.cgi?
bekomme ich aber einen snapshot. Wodran kann es liegen???
Ah! Ich bekomme übrigens ein:
IPCAM Cam_Carport Wrong or not supported image format: unknown
im log...
Grüße
Heatseeker
-
Es ist wie immer,
kurz nachdem man hier geschrieben hat, findet man die Lösung:
bei mir war es das
attr Cam_Carport path /cgi-bin/snapshot.cgi?
da war der führende / zuviel als:
attr Cam_Carport path cgi-bin/snapshot.cgi?
Grüße
Heatseeker
-
So,
ich nochmal. Ich möchte nun die Bewegungserkennung der Kamera per Kommando aus und einschalten können. Ich habe schon rausgefunden, dass dies mit dem Befehl:
http://BENUTZERNAME:PASSWORT@IP-der-LE201/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=false
funktioniert.
Habe auch schon versucht es per
attr xxx cmd01 cmd=cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=true
attr xxx cmd02 cmd=cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=false
als Befehl nutzbar zu machen, klappt aber nicht.
Hat da jemand eine Idee?
Grüße
Heatseeker