Modul IPCAM überarbeitet

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

Vorheriges Thema - Nächstes Thema

oldscout

Hallo und danke für die Antwort.
Für eine einzelne Mini-Cam einen zoneminder finde ich zu oversized.
War ja auch nur ne Idee, werde das mit ffmpeg weiter so realisieren.
Gruß
FHEM 5.8 auf Intel Celeron CPU
HM-.*, 1-Wire DS18B20, FritzDect 200, HMLAN, HMUSB, Arduino Uno, ESP8266, Enigma2, FB7490, MySql-DB,TP-Link HS100, RaspiCCU

FFHEM

Hallo,
ich benutze IPCAM schon seit ein paar Jahren, es hat mir schon sehr geholfen, vielen Dank dafür!
Sobald die Türklingel gedrückt wird, werden 3 Bilder im Abstand geschossen und anschließend per E-Mail versandt.

Jetzt habe ich seit ein paar Wochen (ich vermute durch das Update?) den Effekt, dass die ersten beiden Bilder alt sind und nur das 3. neu ist.
Im Ordner /opt/fhem/IPCam_Haustuer stehen aber die neuen Fotos.
Vermutung: das auslösende Event  IPCam_Haustuer:.*snapshots.* kommt früher als in der Vergangenheit.
Deshalb habe ich nun testweise das Attribut "blocking" gesetzt, und die Bilder in der Mail sind wieder aktuell.

Meine Frage:
Ist es richtig/der beste Lösungsweg, dass ich nun das Attribut "blocking=1" setze, oder gibt es eine bessere Lösung?

Dank und Gruß,
Friedhelm

Internals:
   AUTHORITY  192.168.178.13:88
   DEF        192.168.178.13:88
   FUUID      5c444ff1-f33f-26cd-1b94-dd40f5305525183a
   NAME       IPCam_Haustuer
   NR         631
   SEQ        0
   STATE      last: 2022-02-06 12:06:37
   TYPE       IPCAM
   READINGS:
     2022-02-06 12:06:37   last            IPCam_Haustuer_snapshot.jpg
     2022-02-06 12:06:31   snapshot1       IPCam_Haustuer_snapshot_1.jpg
     2022-02-06 12:06:34   snapshot2       IPCam_Haustuer_snapshot_2.jpg
     2022-02-06 12:06:37   snapshot3       IPCam_Haustuer_snapshot_3.jpg
     2022-02-06 12:06:37   snapshots       3
   hmccu:
Attributes:
   alias      IPCam_Haustuer
   blocking   1
   delay      1
   path       cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=XXXX&pwd=YYYYY
   room       Kamera
   snapshots  3
   storage    /opt/fhem/IPCam_Haustuer






Internals:
   DEF        IPCam_Haustuer:.*snapshots.* {
 
   ### Mailversand von 3 Bildern:
  sendSnapshot($NAME,$EVTPART1)   
   
}
   FUUID      5c444ff1-f33f-26cd-2caa-9162a57b31a7c6a4
   NAME       n_IPCam_Haustuer
   NOTIFYDEV  IPCam_Haustuer
   NR         634
   NTFY_ORDER 50-n_IPCam_Haustuer
   REGEXP     IPCam_Haustuer:.*snapshots.*
   STATE      2022-02-06 11:58:19
   TRIGGERTIME 1644145099.5544
   TYPE       notify
   READINGS:
     2022-02-06 11:00:45   state           active
     2022-02-06 11:58:19   triggeredByDev  IPCam_Haustuer
     2022-02-06 11:58:19   triggeredByEvent snapshots: 3
Attributes:
   alias      n_IPCam_Haustuer
   room       Alarmanlage

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

delMar

Zitat von: FFHEM am 06 Februar 2022, 12:18:06
Ist es richtig/der beste Lösungsweg, dass ich nun das Attribut "blocking=1" setze, oder gibt es eine bessere Lösung?

Ja, das ist tatsächlich die richtige Lösung.

Danke, dass du das hier geschildert hast

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

antonwinden

Was muß ich in IPCAM eingeben wenn ich die cgi- befehle habe. Z.B. fährt
/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=0&usr=XXXX&pwd=XXXX
Postion 1 der Kamera an.
Wenn ich diesen als cmdPos01 eingebe passiert nix wenn ich Position 1 anfahren will.
etwas ratlos
Anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

delMar

Hallo Anton

Erhöhe mal den Wert von verbose und sieh nach, welche URL aufgerufen wird. Kann sein dass nur ein / zu viel oder zu wenig ist.
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

MadMax-FHEM

Zitat von: antonwinden am 06 Mai 2022, 08:23:10
Was muß ich in IPCAM eingeben wenn ich die cgi- befehle habe. Z.B. fährt
/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=0&usr=XXXX&pwd=XXXX
Postion 1 der Kamera an.
Wenn ich diesen als cmdPos01 eingebe passiert nix wenn ich Position 1 anfahren will.
etwas ratlos
Anton

Poste doch auch mal ein list vom Device.

Weil ja das Kommando das an die Kamera geht aus verschiedenen Einträgen "zusammengebastelt" wird...

Und ja: verbose 5, dann sieht man was gesedet wird...

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)

antonwinden

#441
List:
Internals:
   Anternals:
   AUTHORITY  192.168.1.160
   DEF        192.168.1.160
   FUUID      61057c70-f33f-d8e8-9f41-ee59761899ba5e75
   NAME       Eingang
   NR         1286
   SEQ        0
   STATE      Defined
   TYPE       IPCAM
   READINGS:
     2022-05-09 05:11:50   last            Eingang_snapshot.jpg
     2022-05-09 05:11:50   snapshot1       Eingang_20220509_051150.jpg
     2022-05-09 05:11:50   snapshots       1
Attributes:
   basicauth  XX:XX
   cmd01      /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=0
   cmd01data  [{"cmd":"Login"}]
   cmd02      /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=1
   cmd02data  [{"cmd":"Login"}]
   cmdPos01   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=0&usr=XX&pwd=XX
   cmdPos02   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=1&usr=XX&pwd=XX
   cmdPos03   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=2&usr=XX&pwd=XX
   cmdPos04   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=3&usr=XX&pwd=XX
   cmdPos05   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=4&usr=XX&pwd=XX
   cmdPos06   /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=5&usr=XX&pwd=XX
   delay      5
   path       /snap.jpg?JpegCam=1
   room       Kameras
   storage    ./www/snapshots
   timestamp  1
   verbose    5

im Filelog steht trotz verbose 5 praktisch nix:
2022-05-09_05:11:50 Eingang snapshots: 1
2022-05-09_10:25:01 Eingang cmd 1
2022-05-09_10:25:23 Eingang pos 3
2022-05-09_10:25:50 Eingang raw /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=3&usr=XX&pwd=XX
2022-05-09_10:26:31 Eingang raw /cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=1&usr=XX&pwd=XX
2022-05-09_10:29:45 Eingang pos 4

im event monitor das gleiche
ein get image funktioniert problemlos
auch der raw Befehl wird ausgeführt.
der Rest wird eigentlich ignoriert und das Log gibt trotz Verbose = 5 nix her (Eingang pos3... und nicht was da an Befehl eingetragen ist) obwohl bei CmdPos3 der Befehl dafür da ist
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

neyzen

Hi,

ich schick mir immer ein Bild von meiner Cam aufs Handy wenn es klingelt mit folgendem Befehl

([Tuerklingel:state] eq "closed") (get IPCAMEingang image) (set teleBot sendImage /opt/fhem/www/snapshots/IPCAMEingang_snapshot.jpg)


Ich hab jetzt das Problem, wenn es nochmal klingelt,speichert er den nächsten Bild als snapshot_01.jpg.
Wie muss ich den mein Befehl ändern damit er mir immer das aktuellste Bild schickt? Also für snapshot_01.jpg,snapshot_02.jpg usw.

WW

Aus der Hilfe:
snapshots
Defines the total number of snapshots to be taken with the get <name> image command. If this attribute is not defined, then the default value is 1.
The snapshots are stored in the given path of the attribute storage and are numbered sequentially (starts with 1) like snapshot_01, snapshot_02, etc. Furthermore, an additional file last will be saved, which is identical with the last snapshot-image. The module checks the imagetype and stores all these files with the devicename and a correct extension, e.g. <devicename>_snapshot_01.jpg.
If you like a timestamp instead a sequentially number, take a look at the attribute timestamp.
All files are overwritten on every get <name> image command (except: snapshots with a timestamp. So, keep an eye on your diskspace if you use a timestamp extension!).
Example:
attr ipcam3 snapshots 5


Unter dem Reading "last" steht der Name des letzten Images.

LG Willi
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

Ainadilion

Hallo, ich versuche die Steuerungsbefehle für die Ctronics C6F0SgZ3N0PdL2 in Fhem einzubinden.

Über den Browser lassen sich die Befehle aus dem Dokument https://s3.amazonaws.com/fdt-files/FDT+IP+Camera+CGI+%26+RTSP+User+Guide+v1.0.2.pdf ausführen

Typ der Kamerahttp://192.168.178.102/cgi-bin/hi3510/param.cgi?cmd=getdevtype oder Rechtsschwenk192.168.178.102/cgi-bin/hi3510/param.cgi?cmd=ptzctrl&-step=0&-act=right&-speed=20.

Meine Konfiguration:
defmod AstrocamWLAN IPCAM 192.168.178.102:80
attr AstrocamWLAN basicauth {USERNAME}:{PASSWORD}
attr AstrocamWLAN cmd01 cmd=ptzctrl&-step=0&-act=right&-speed=20
attr AstrocamWLAN cmd02 cmd=preset&-act=goto&-number=2&-speed=0
attr AstrocamWLAN credentials /opt/fhem/credentials/ipcams.conf
attr AstrocamWLAN delay 0
attr AstrocamWLAN disable 0
attr AstrocamWLAN icon it_camera
attr AstrocamWLAN path tmpfs/auto.jpg
attr AstrocamWLAN pathCmd cgi-bin/hi3510/param.cgi?
attr AstrocamWLAN room Kamera
attr AstrocamWLAN snapshots 1
attr AstrocamWLAN storage /opt/fhem/www/snap_park
attr AstrocamWLAN verbose 4


Die set-Befehle CMD1 und 2 bleiben in Fhem allerdings ohne Funktion. Kann mir jemand weiterhelfen?

Gruß
Ainadilion

mr_petz

#445
Versuche mal noch mit:

&-usr=admin&-pwd=admin

anzuhängen und vor deinem pathCmd ein / einfügen. Und das basicauth rausnehmen.
usr und pwd durch deine Anmeldedaten ersetzten.
LG

Gisbert

#446
Hallo zusammen,

ich komme mit meiner Foscam-Kamera und IPCAM nicht so recht weiter.

Meine Definition:
defmod CamWestseite IPCAM 192.168.2.52:88
attr CamWestseite delay 2
attr CamWestseite path /cgi-bin/CGIProxy.fcgi?usr=admin&pwd=admin&cmd=snapPicture2
attr CamWestseite snapshots 5
attr CamWestseite stateFormat {"latest image:<br>".ReadingsTimestamp($name,'last','')}
attr CamWestseite storage /home/ftpuser/Kamera
attr CamWestseite verbose 5

Im Browser bekomme ich ein Bild, wenn ich folgendes aufrufe:
http://192.168.2.52:88/cgi-bin/CGIProxy.fcgi?usr=admin&pwd=admin&cmd=snapPicture2
Im logfile steht:
2023.06.29 23:58:49.578 4: IPCAM (CamWestseite) - set: name:CamWestseite cmd:? list:cmd pan pos raw tilt
Irgendeine Idee?

Viele Grüße
Gisbert

Edit: Den User admin und das Passwort admin habe ich bei mir ersetzt, also nur als Beispiel zu sehen. Mit meinen echten Anmeldedaten funktionert der http-Befehl jedenfalls.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Ruggy

#447
Hallo,
hat sich an den IPCAM Modul etwas geändert?
Update von FHEM habe ich (nachdem es nicht mehr funktioniert) gemacht.

Bis vor ca. 2 Wochen hat es noch funktioniert, dass ein Bild gemacht wird, wenn es an der Türe klingelt (mit doif).
Jetzt funktioniert es nicht mehr.


Hier das List von dem IPCAM-Gerät:
Internals:
   AUTHORITY  192.168.1.76
   DEF        192.168.1.76
   FUUID      60ce12c9-f33f-f59f-c872-b2f6f6332a461f48
   NAME       Eingang_Kamera
   NR         145
   SEQ        0
   STATE      Defined
   TYPE       IPCAM
   READINGS:
     2024-02-06 15:17:35   last            Eingang_Kamera_snapshot.jpg
     2024-02-06 15:17:32   snapshot1       Eingang_Kamera_snapshot_1.jpg
     2024-02-06 15:17:34   snapshot2       Eingang_Kamera_snapshot_2.jpg
     2024-02-06 15:17:35   snapshot3       Eingang_Kamera_snapshot_3.jpg
     2024-02-06 15:17:35   snapshots       0
   helper:
     bm:
       IPCAM::Get:
         cnt        32
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.02. 00:29:19
         max        0.00282001495361328
         tot        0.0123193264007568
         mAr:
           HASH(0x3ee8dd0)
           Eingang_Kamera
           image
       IPCAM::Set:
         cnt        40
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.02. 00:49:08
         max        0.0174579620361328
         tot        0.0219173431396484
         mAr:
           HASH(0x3ee8dd0)
           Eingang_Kamera
           attrTemplate
           ?
Attributes:
   delay      3
   path       cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password="MEIN_PASSWORT"
   room       Alarm,Aussen
   snapshots  3
   storage    /opt/fhem/www/webcam/Eingang_Kamera


Oder liegt es dann eher an etwas anderen (Kamera, Router,...)
Wenn ich nämlich folgendes im Browser eingebe, wird folgender Fehler im Browser angezeigt.
Update der Kamera hatte ich aber auch nicht gemacht. Meiner Meinung nach habe ich insgesamt nichts verändert.

http://192.168.1.76/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password="MEIN_PASSWORT"
[ { "cmd" : "Snap", "code" : 1, "error" : { "detail" : "invalid user", "rspCode" : -27 } } ]
Die Kamera kann ich anpingen.
Mit dem Reolink Windows Konfigurations Programm, kann ich auf die Kamera zugreifen. Die Ports in der Kamera sind auch alle aktiviert.

Vielen Dank
Ruggy

Ruggy

#448
Fall jemand mal das selbe Problem hat:

Das Problem war, dass ich im Passwort Sonderzeichen (u.a. &) hatte.
Wenn ich die weg lasse, funktioniert es wieder. Werde jetzt noch testen, welche Sonderzeichen trotzdem funktionieren. % ist zumindest dabei.

heikoh81

Hallo zusammen,

auch ich verwende das Modul IPCAM seit vielen Jahren.

Zitat von: FFHEM am 06 Februar 2022, 12:18:06Jetzt habe ich seit ein paar Wochen (ich vermute durch das Update?) den Effekt, dass die ersten beiden Bilder alt sind und nur das 3. neu ist.
Im Ordner /opt/fhem/IPCam_Haustuer stehen aber die neuen Fotos.
Vermutung: das auslösende Event  IPCam_Haustuer:.*snapshots.* kommt früher als in der Vergangenheit.
Deshalb habe ich nun testweise das Attribut "blocking" gesetzt, und die Bilder in der Mail sind wieder aktuell.

Dieses Problem habe ich bereits auch seit vielen Jahren, und auch jetzt noch nach einem Update auf die aktuellste Version von IPCAM.
Das "Abholen" der Bilder von den IPCams klappt fehlerfrei, es kommt hier zu keinen Timeouts etc.

Was jedoch fehlerhaft ist, sind die Readings!
Es scheint auch, als ob die Anzahl der Snapshots in der "falschen" Reihenfolge erstellt werden.
Ich erstelle immer 5 Fotos, allerdings ist der "neueste" Snapshot z.B. mit _1.jpg oder _2.jpg gekennzeichnet, und das reading von "snapshots" hat nicht den Zeitstempel der letzten Aufnahme, sondern von einem Snapshot zwischendrin.
Ich habe mal einen Screenshot angelegt.
Der neueste Snapshot ist _1.jpg, snapshots wurde schon 9 Sekunden davor aktualisiert und folglich in meiner Mail ein altes Bild angehängt.

Wie kann man dieses Problem lösen?
Im aktuellen Zustand werden jedenfalls in meinem Fall alte Fotos versendet, weil snaptshots eben zu früh aktualisiert wird, und dadurch alte Dateien versendet werden.

Blocking = 1 bringt bei mir leider keine Verbesserung.

Eine leider nur kurzfristige Lösung war das Kopieren der jeweiligen IPCAM in eine neue Definition (und Löschen der alten), allerdings sind die Readings heute wieder ohne mein Zutun in die falsche Reihenfolge geraten, weswegen mich jetzt auch hier ins Forum wende.

Viele Grüße,
Heiko