IPCAM: Wrong or not supported image format: unknown

Begonnen von Michi240281, 11 Juli 2015, 13:08:18

Vorheriges Thema - Nächstes Thema

Michi240281

Mir ist gerade folgender Gedanke gekommen:

Man kann über ein CGI Kommando in der Kamera die motion detection ein und ausschalten. Dann könnte man sich ja einen Link basteln, den Fhem nur ausführen muss, um das zu tun. Hast du ne Idee, wie man sowas macht? Also einen Link ausführen? Könnte nur sein, dass da wieder n Problem mit User/PW auftritt?!?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

marvin78


Michi240281

Ah über die "cmd"s? Oh, das werde ich direkt ausprobieren! :)
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Habe jetzt folgende CGI Commands für die De-/aktivierung der Bewegungserkennung rausbekommen, die auch bei Eingabe im Browser funktionieren:

Aktivieren:

http://192.168.188.245/cgi-bin/admin/setparam.cgi?motion_c0_enable=1

Deaktivieren:

http://192.168.188.245/cgi-bin/admin/setparam.cgi?motion_c0_enable=0

Sooooo, nur wie setze ich das ganze nun im IPCAM Modul um? Ich habe folgendes gemacht:

Attribute gesetzt:

   cmd01      setparam.cgi?motion_c0_enable=1
   cmd02      setparam.cgi?motion_c0_enable=0
pathCmd    cgi-bin/admin 


Und dann über "set Kamera cmd 2" versucht die Erkennung zu deaktivieren.

Leider tut sich da nix! Kann mir hier jmd n Tipp geben, wie die Attribute syntaxmäßig aussehen müssen?

Besten Dank und schönen Sonntag!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

A.Harrenberg

Hi,

Zitat von: Michi240281 am 19 Juli 2015, 11:03:05
Sooooo, nur wie setze ich das ganze nun im IPCAM Modul um? Ich habe folgendes gemacht:

Attribute gesetzt:

   cmd01      setparam.cgi?motion_c0_enable=1
   cmd02      setparam.cgi?motion_c0_enable=0
pathCmd    cgi-bin/admin 


Und dann über "set Kamera cmd 2" versucht die Erkennung zu deaktivieren.

Leider tut sich da nix! Kann mir hier jmd n Tipp geben, wie die Attribute syntaxmäßig aussehen müssen?

Lass mal das setparam.cgi? weg und schreib ein "cmd=" davor, so wie hier...

Attributes:
   basicauth  {USERNAME}:{PASSWORD}
   cmd01      cmd=setscheduleex&-ename=md&-week0=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week1=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week2=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week3=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week4=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week5=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP&-week6=PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
   cmd02      cmd=setscheduleex&-ename=md&-week0=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week1=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week2=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week3=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week4=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week5=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-week6=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
   cmd03      cmd=getscheduleex&-ename=md
   cmd04      cmd=setinfrared&-infraredstat=open
   cmd05      cmd=setinfrared&-infraredstat=close
   cmd06      cmd=setinfrared&-infraredstat=auto


Ich bin mir aber sicher das die Syntax irgendwo beim Modul erklärt war...

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Michi240281

Klar ist die erklärt, daran hab ich mich ja gehalten, aber es geht halt nicht!

Dein Vorschlag zeigt auch keine Besserung, leider!

Als raw message gehts übrigens:

set Kamera raw cgi-bin/admin/setparam.cgi?motion_c0_enable=0

Das könnte ich so natürlich auch machen, aber wär mit den cmd Attributen schon komfortabler.
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

marvin78

@Michi240281: Das hatte wir doch schonmal ;)

Dein pathCmd sollte sein:

cgi-bin/admin/setparam.cgi

Deine Cmds sind:

motion_c0_enable=1
motion_c0_enable=0


So funktioniert das bei meinen Vivotek Kameras einwandfrei. Außerdem darfst du nicht vergessen (und hier kommen wir zu dem Teil den wir schon hatten), das Attribut basicauth richtig zu setzen und vor allem in deiner Kamera die richtigen Rechte zu verteilen.

Michi240281

Funktioniert!!!! :)

Es musste das "?" weggelassen werden, ansonsten hatte ich die Kombination so schon probiert!

Basicauth habe ich gesetzt und funzt!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Jojo11

Hallo,

ich habe ebenfalls das Problem, dass IPCAM nicht mit meiner Foscam funktionieren will  :-\
Kann es daran liegen, dass das Bild, welches auf diesem Aufruf
http://192.xxx.xxx.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=password
kommt, nicht z.B. "Bild.jpg" oder "Bild.jpeg" heißt, sondern "CGIProxy.fcgi.jpeg"?
Falls dem so ist, gibt es dafür einen workaround in IPCAM?

schöne Grüße
Jo

Jojo11

Hat denn wirklich niemand dieses Problem mit seiner Foscam-Kamera?
Könnte amn das von der Kamera kommende Bild im Modul umbenennen, so dass es sich verwenden lässt?

schöne Grüße
Jo

chris1284

#55
schau dir mal mein angepasstes modul an http://forum.fhem.de/index.php/topic,39566.0.html
das modul ipcam im standard fhem baut die url spezifisch für eine art cam zusammen, evtl past es für deine nicht und du musst die trenner zwischen
http://cameraadress:port und befehl anderst setzen. in meinem modul ist auch bei verbose 5 die ausgabe des vom modul erzeugten pfades im log. evtl ist da der fehler zu erkennen
(url log ungleich der url die du im browser öffnest)

hab ich erst rasugefunden als ich a) das lpgging eingebaut habe und nach dem ein raw-befehl über das modul den erfolg brachte.
bei meiner ist es statt default
Zitat&
und
Zitat?
ein einfacher
Zitat/
der die befehle trennt

die attribute sehen dann so aus
Attributes:
   DbLogExclude .*
   basicauth  admin:.....
   cmd01      ptzctrl.cgi?-step=0&-act=hscan&-speed=45
   cmd02      ptzctrl.cgi?-step=0&-act=vscan&-speed=45
   cmd03      ptzctrl.cgi?-act=stop
   cmdDevider /
   cmdPanLeft ptzctrl.cgi?-step=0&-act=left&-speed=45
   cmdPanRight ptzctrl.cgi?-step=0&-act=right&-speed=45
   cmdPos01   preset.cgi?-act=goto&-number=0
   cmdPos02   preset.cgi?-act=goto&-number=1
   cmdPos03   preset.cgi?-act=goto&-number=2
   cmdPosHome ptzctrl.cgi?-step=0&-act=home&-speed=45
   cmdTiltDown ptzctrl.cgi?-step=0&-act=down&-speed=45
   cmdTiltUp  ptzctrl.cgi?-step=0&-act=up&-speed=45
   path       tmpfs/auto.jpg
   pathCmd    cgi-bin/hi3510
   pathCmdDevider /
   pathPanTilt cgi-bin/hi3510
   room       EDV
   storage    ./www/snapshots
   verbose    5

Jojo11

Danke, das schaue ich mir mal an. Allerdings glaube ich, dass es nur an dem Format liegt, welches die Kamera als snapshot zurückgibt. Wenn ich den cgi-Befehl manuell im Browser eingebe, erhalte ich ein Bild. Wenn ich dieses im hex-Editor öffne, sieht der Anfang so aus wie im screenshot. Ist das Format evtl. "JFIF"?
Hatte versuchsweise mal die Abfrage im Modul auskommentiert. Dann kommen Dateien mit ".unknown"-Endung. Allerdings ist der Inhalt nur die Return-Meldung der Kamera. Z.B.:

<CGI_Result>
    <result>-2</result>
</CGI_Result>

Da werde ich gerade auch nicht schlau draus  :o

schöne Grüße
Jo

chris1284


Jojo11

Zitat von: chris1284 am 06 August 2015, 20:17:09
ein list des devices wäre gut
Gerne:


Internals:
   AUTHORITY  192.xxx.xxx.xxx:88
   CFGFN      ./FHEM/Kameras.cfg
   DEF        192.xxx.xxx.xxx:88
   NAME       CAM02
   NR         2357
   SEQ        0
   STATE      last: 2015-08-06 19:37:09
   TYPE       IPCAM
   Readings:
     2015-08-06 19:37:09   last            CAM02_snapshot.unknown
     2015-08-06 19:37:06   snapshot1       CAM02_20150806_193706.unknown
     2015-08-06 19:37:07   snapshot2       CAM02_20150806_193707.unknown
     2015-08-06 19:37:08   snapshot3       CAM02_20150806_193708.unknown
     2015-08-06 19:37:09   snapshot4       CAM02_20150806_193709.unknown
     2015-08-06 19:37:09   snapshots       4
Attributes:
   basicauth  {USERNAME}:{PASSWORD}
   cmd01      cmd=openInfraLed&usr={USERNAME}&pwd={PASSWORD}
   cmd02      cmd=closeInfraLed&usr={USERNAME}&pwd={PASSWORD}
   credentials /opt/fhem/FHEM/000_CAM01_config.cfg
   delay      1
   path       cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr={USERNAME}&&pwd={PASSWORD}
   pathCmd    cgi-bin/CGIProxy.fcgi
   room       Kameras
   snapshots  4
   storage    ./www/snapshots
   timestamp  1


schöne Grüße
Jo

chris1284

das modul würde folgenden pfad bauen und aufrufen:
da basichauth gesetzt:

http://{USERNAME}:{PASSWORD}@192.xxx.xxx.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr={USERNAME}&&pwd={PASSWORD}

was passiert wenn du es genau so eingibst im browser (username und password ersetzen)?

funktioniert es mit
attr CAM02 path cgi-bin/CGIProxy.fcgi?cmd=snapPicture2
(das modul würde dann http://{USERNAME}:{PASSWORD}@192.xxx.xxx.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2 aufurfen )

evtl kann deine cam keine auth über http://username:pw@ip -> lösch mal basicauth und credentials und lass path wie er jetzt ist, also cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr={USERNAME}&&pwd={PASSWORD} nur mit dem echten user und dem echten pw statt der {} patzhalter