Modul IPCAM überarbeitet

Begonnen von Martin Fischer, 01 Februar 2013, 20:30:37

Vorheriges Thema - Nächstes Thema

uwirt

Wie kann ich alle Stunde einmal ein Bild von einer Webseite auf meinen PC kopieren - notify, at?

Internals:
   AUTHORITY  www.fourmilab.ch/
   CFGFN     
   DEF        www.fourmilab.ch/
   FUUID      6662d953-f33f-fd73-0100-aba9685bc1841bab
   NAME       current_moon
   NR         296
   SEQ        0
   STATE      last: 2024-06-07 14:06:55
   TYPE       IPCAM
   eventCount 6
   OLDREADINGS:
   READINGS:
     2024-06-07 14:06:55   last            current_moon_snapshot.jpg
     2024-06-07 14:06:55   snapshots       0
   hmccu:
Attributes:
   event-on-update-reading snapshots
   path       cgi-bin/Earth?img=MoonTopo.evif&imgsize=320&dynimg=y&gamma=1.32&opt=-m&lat=&lon=&alt=&tle=&date=0&utc=&jd=&_=
   room       Astronomy
   snapshots  1
   storage    /opt/fhem/www/snapshot
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

MadMax-FHEM

Zitat von: uwirt am 07 Juni 2024, 14:47:11Wie kann ich alle Stunde einmal ein Bild von einer Webseite auf meinen PC kopieren - notify, at?
commandref zu notify und at lesen!

notify: Reaktion auf Event

at: Zeitereignisse

Was wird es wohl dann (eher) sei? ;)

EDIT: oder auf Systemebene? Also ohne fhem... z.B. cron

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

uwirt

Mit "at" lassen sich leider keine FHEM "get" befehle schalten. Vermutlich werde ich dann perl bemühen.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

MadMax-FHEM

#453
Zitat von: uwirt am 07 Juni 2024, 15:41:21Mit "at" lassen sich leider keine FHEM "get" befehle schalten. Vermutlich werde ich dann perl bemühen.
Wo steht das?

Vermutlich wird die "Antwort" so kommen, dass du sie nicht (direkt) im at "siehst".
Liegt aber dann daran, wie das Device was du ansprichst auf get reagiert.

Du hast auch nicht geschrieben: auf get usw. sondern ein Bild einer Webseite auf den Rechner kopieren und das geht SEHR WOHL mit at!

Außerdem: was hat das mit IPCAM zu tun?
(außer dass evtl. das Bild von einer Kamera kommt, die per IPCAM eingebunden ist)

Evtl. besser einen neuen Thread aufmachen! Weil hier geht es (eher) darum wie binde ich eine Kamera mit IPCAM ein oder ich habe Probleme mit meiner Kamera und IPCAM usw.
Das was du willst (und du hast ja immer noch nicht wirklich rausgerückt WAS GENAU du tun willst) hat ja nur entfernt mit IPCAM zu tun?!

EDIT: sollte das get ein get IPCAMDevice image sein, da gibt es (bestimmt) ein Event, wenn fertig/Bild da... Da dann ein notify...
Oder gleich get imageWithCallback...
EDIT: aber auch dann liegt das Bild/die Bilder nicht auf einer Webseite, sondern lokal auf dem fhem Rechner... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

satprofi

Hallo.
Wie kann man bilder nummeriert abspeichern? hätte gerne snaphot 1-5 abgespeichert. geht das? oder nur mit delay?
möchte von einer pantilt cam jede position abspeichern, alle 30sec. neue position einstellen.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Ruggy

#455
Hallo,
möchte meine YI Kamera in FHEM einbinden.
In der Kamera habe ich noch kein Benutzernamen und auch kein Passwort hinterlegt.
Den Speicherort bzw. Ordner habe ich angelegt.

Wenn ich "Get Flur_Kamera Image" ausführe wird in der Logfile "Permission denied" angezeigt.

Wo bzw. wie kann ich die Berechtigungen dafür setzen?

Hier das List der Kamera:
Internals:
   AUTHORITY  192.168.33.14
   CFGFN     
   DEF        192.168.33.14
   FUUID      66ec4ada-f33f-194f-473d-faf9cf2ea4138ce0
   NAME       Flur_Kamera
   NR         88454
   SEQ        0
   STATE      Defined
   TYPE       IPCAM
   READINGS:
     2024-09-19 18:12:51   snapshots       0
   helper:
     bm:
       IPCAM::Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.09. 18:01:30
         max        9.60826873779297e-05
         tot        9.60826873779297e-05
         mAr:
           HASH(0x183d2b48)
           Flur_Kamera IPCAM 192.168.33.14
       IPCAM::Get:
         cnt        25
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.09. 18:26:53
         max        0.000802040100097656
         tot        0.0088503360748291
         mAr:
           HASH(0x183d2b48)
           Flur_Kamera
           image
           1
       IPCAM::Set:
         cnt        20
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.09. 18:02:38
         max        0.000472784042358398
         tot        0.00286126136779785
         mAr:
           HASH(0x183d2b48)
           Flur_Kamera
           ?
Attributes:
   delay      1
   path       cgi-bin/snapshot.sh?res=low&watermark=yes
   room       Flur
   snapshots  3
   storage    /opt/fhem/www/webcam/Flur_Kamera


Dies wird in der LogFile angezeigt:
2024.09.19 18:36:18 3: IPCAM (Flur_Kamera) - getSnapshot URI: http://192.168.33.14/cgi-bin/snapshot.sh?res=low&watermark=yes
2024.09.19 18:36:18 3: IPCAM (Flur_Kamera) - ExecuteSnapshotRequest blocking: 0, camUrl: http://192.168.33.14/cgi-bin/snapshot.sh?res=low&watermark=yes
2024.09.19 18:36:19 3: IPCAM (Flur_Kamera) - Snapshot Image Format: jpg
2024.09.19 18:36:19 0: IPCAM (Flur_Kamera) - Can't write /opt/fhem/www/webcam/Flur_Kamera/Flur_Kamera_snapshot.jpg: Permission denied

Oder ist die Kamera noch nicht richtig eingebunden, weil bei Internals "CFGFN" steht?

Ruggy

Habe jetzt bei Putty folgenden Befehl eingegeben

ls -al
Hier wird dann bei den meißten Verzeichnissen drwxr-xr-x "eine_Zahl" fhem dialout angezeigt.
Beim Ordner webcam wird drwxr-xr-x "eine_Zahl" root root angezeigt.

Könnte mir vorstellen, dass es daran liegt. Aber wie bekomme ich die Berechtigung geändert?

Ruggy

Falls mal jemand das selbe Problem hat.

Dies war die Lösung (in Putty eingeben)

sudo chown fhem:dialout /opt/fhem/www/webcam/Flur_Kamera

Tungsten

Hallo Zusammen,

ich nutze IPCAM schon länger für verschiedene Cams. Aktuell habe ich aber mit einer Cam von IMOU Probleme.

Sporadisch bekomme ich bei 'get image' die Fehlermeldung 'wrong authentication'.

Unter basicauth sind user:pwd eingetragen.

Habe es schon mit '&-usr=admin&-pwd=admin' hinter path versucht, aber dann kommt 'Wrong or not supported image format: unknown'.

Komischerweise klappt es in 30% der Fälle.

Hat jemand eine Idee?

rs

Kann mir bitte jemand bestätigen/ablehnen, ob die Blink Outdoor mit dem Modul ipcam funktioniert.

https://www.amazon.de/dp/B086DKVS1P?ref=ods_ucc_ref_cc_blinkcameras_cto

Vielen Dank
RS
rpi3+ & RaspBee | Phillips, Osram, IKEA, SIlvercrest Devices | FHEM 6.3 | Echo Show 15 | Yamaha YAS| LG TV | Ubuntu 24.04 - NextCloud 29 - OpemVPN - Wordpress - NAS - ...

Tompsg

Hallo und erstmal vielen Dank für das tolle Modul.

Ich hatte eine alte Version für meine Zwecke angepasst, bin nun aber auf die neue Version gewechselt.

Eine Herausforderung stellt meine WLAN-Türklingel-Kamera DVA-110Door von Monacor dar, da sie scheinbar nur einen RTSP-Stream raus senden. Wenn jmd. andere Infos hat, dann gerne her damit.

Ich habe dafür das IPCAM Modul für mich erweitert. Beim Setzen des Attribut scheme auf rtsp wird in eine function verzweigt wird, die ein ffmpeg Kommando ausführt und daraus ein Bild extrahiert. Ist nicht wirklich elegant, aber aktuell funktioniert es so.

sub ExecuteSnapshotRequest {
  my ($hash, $callbackCommand) = @_;
  my $name = $hash->{NAME};

  my $blocking = AttrVal($name, 'blocking', 0);
  my $camUrl = createSnapshotUrl($hash);
  Log3 $name, 3, "IPCAM ($name) - ExecuteSnapshotRequest blocking: $blocking, camUrl: $camUrl";

  my $uriScheme = getScheme($hash);
  my $modpath = $attr{global}{modpath};
  my $storage = AttrVal($name,'storage',"$modpath/www/snapshots");

  if($uriScheme eq "rtsp"){
    getRtspPicture($camUrl, "$storage/cam0_snapshot.jpg")
  }

....

######## get picture ############
sub
getRtspPicture
{
  my $camurl = shift;
  my $picfn = shift;
  my $ret = "";

  my $qxcall = "/usr/bin/ffmpeg -loglevel fatal -i '$camurl' -ss 5 -vframes 1 -y -r 1 '$picfn'";
  Log3 "IPCAM", 1,"getRtspPicture: $qxcall";

  $ret .= qx($qxcall);

  $ret =~ s,[\r\n]*,,g;    # remove CR from return-string
}



define cam0 IPCAM 192.168.0.1:554
attr cam0 path onvif1
attr cam0 scheme rtsp
attr cam0 storage ./www/snapshots
#  AUTHORITY  192.168.0.1:554
#  DEF        192.168.0.1:554
#  FUUID      5cdbe2ec-f33f-b6f0-fe23-bbc1f7ea1b7c673f
#  NAME      cam0
#  NR        62
#  SEQ        0
#  STATE      Defined
#  TYPE      IPCAM
#  READINGS:
#    2022-10-29 11:31:43  snapshots      0
#
setstate cam0 Defined
setstate cam0 2022-10-29 11:31:43 snapshots 0


Wenn ich Zeit habe, versuche ich gerne nochmal das Ganze etwas besser zu lösen, aber vielleicht hat jmd. ein ähnliches Thema oder ein bessere Lösung.

Viele Grüße,
Thomas