IPCAM: Wrong or not supported image format: unknown

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

Vorheriges Thema - Nächstes Thema

Michi240281

Hallo zusammen,

habe jetzt eine FOSCAM 9803P und bin am Verzweifeln, diese in Fhem eingebunden zu bekommen.

Ich habe es mittels IPCAM-Modul probiert:

Internals:
   AUTHORITY  192.168.188.90:88
   CFGFN
   DEF        192.168.188.90:88
   NAME       Kamera_Hauseingang
   NR         41742
   SEQ        0
   STATE      last: 2015-07-11 12:56:55
   TYPE       IPCAM
   Readings:
     2015-07-11 12:56:55   snapshots       0
Attributes:
   path      /cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx
   snapshots  2
   storage    ./www/snapshots


Wenn ich dann versuche einen Snapshot zu machen, passiert einfach nichts. Das Reading "snapshots" zeigt immer 0.

Wenn ich den gesamten Befehl

http://192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx

in einem Browserfenster eingebe, wird mir ein Snapshot erzeugt und angezeigt. (Natürlich habe ich das gültige Passwort eingetragen)

Dann habe ich es auch mittels weblink Modul probiert:

Internals:
   CFGFN
   DEF        image http://192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXX
   LINK       http://192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXX
   NAME       ttt
   NR         42217
   STATE      initialized
   TYPE       weblink
   WLTYPE     image
Attributes:
   room       Aussen


Da wird auch nichts angezeigt.....

Kann mir da evtl. jmd weiterhelfen? Am besten wäre es denke ich, wenn es mit dem IPCAM-Modul funktionieren würde, dann könnte ich das Erzeugen nach meinen Wünschen steuern und dann die Snapshots einfach wie ich es mir vorstelle anzeigen lassen.

Hoffe auf Eure Hilfe, komme einfach nicht weiter, bzw. müsste es ja eigentlich gehn, aber leider tuts das nicht!

Im Log/Eventmonitor wird auch nichts angezeigt!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Ahhhh, jetzt habe ich doch einen Fehlereintrag im Log:

....Wrong or unsupported image format: unknown

Aber wie sage ich denn dem Modul, dass es jpg machen soll?

Über die externe FOSCAM Software, in der ich auch Snapshots machen kann, werden jpgs erzeugt.

FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

Michi240281

Keiner ne Idee?

Habe irgendwo gelesen, man müsste das Modul anpassen......wie mache ich das?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

ritchie

Hi,

Zitat
  my @imageTypes = qw(JPEG PNG GIF TIFF BMP ICO PPM XPM XBM SVG);

  if( ! grep { $_ eq "$imageFormat"} @imageTypes) {
    Log 1, "IPCAM $name Wrong or not supported image format: $imageFormat";
    RemoveInternalTimer($hash);
    return undef;
  }

Ist es diese Meldung.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Michi240281

Daher wird das wohl kommen denke ich, aber ich meine die Meldung aus dem Log. Da steht dann immer, wenn ich versuche ein Snapshot zu machen über

get Kamera image

im Log:

Wrong or not supported image format: unknown
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

ritchie

Hi,

ich selber habe das Modul "IPCAM" zwar nicht in Betrieb, sondern schreibe mir derzeit ein Modul für meine FOSCAM V2,
hier arbeiten die Snapshots korrekt und Ich verwende hierbei die Routinen aus dem IPCAM Modul.

Wie sieht den Deine IPCAM Definition in der FHEM.cfg überhaupt aus ?
Welches Format gibt Dir Deine Kamera ? Nicht das es die html Variante ist.

Gruss R.


IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Michi240281

Zitat von: ritchie am 13 Juli 2015, 09:09:40
Hi,

ich selber habe das Modul "IPCAM" zwar nicht in Betrieb, sondern schreibe mir derzeit ein Modul für meine FOSCAM V2,
hier arbeiten die Snapshots korrekt und Ich verwende hierbei die Routinen aus dem IPCAM Modul.

Wie sieht den Deine IPCAM Definition in der FHEM.cfg überhaupt aus ?
Welches Format gibt Dir Deine Kamera ? Nicht das es die html Variante ist.

Gruss R.

Könntest du mir dein Modul evtl. zur Verfügung stellen?

Meine Definition sieht folgendermaßen aus:

Internals:
   AUTHORITY  192.168.188.90:88
   CFGFN
   DEF        192.168.188.90:88
   NAME       Kamera_Hauseingang
   NR         41742
   SEQ        0
   STATE      last: 2015-07-11 12:56:55
   TYPE       IPCAM
   Readings:
     2015-07-11 12:56:55   snapshots       0
Attributes:
   path      /cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx
   snapshots  2
   storage    ./www/snapshots


Mit folgendem Befehl im Browser bekomme ich ein Snapshot:

http://192.168.188.90:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx

Da habe ich dann das "path"-Attribut rausgezogen. Leider passiert nix!

Wenn ich bei dem Snapshot im Browser "Bild speichern unter" mache, will er eine jpg-Datei speichern.

Was meinst du mit html-Version? Wie bekomme ich das raus und was würde das bedeuten?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

ritchie

#7
Hi,

Zitat
Könntest du mir dein Modul evtl. zur Verfügung stellen?
Wenn es fertig ist, ja. Dann kommt es irgendwie (weiss noch nicht wie) hier ins Forum.

ZitatWas meinst du mit html-Version? Wie bekomme ich das raus und was würde das bedeuten?
Das Kommando  "snapPicture" gibt es in zwei Versionen

Zitat/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=xxx
Sollte eigentlich direkt auf die Datei zeigen.
Zitat/cgi-bin/CGIProxy.fcgi?cmd=snapPicture&usr=admin&pwd=xxx
Sollte eigentlich einen HTML Seite zurückgeben, welches die Datei dann via HTML anzeigt.

Schau mal hier nach:
http://www.ipcamcontrol.net/files/Foscam%20IPCamera%20CGI%20User%20Guide-V1.0.4.pdf

Ist Deine Kamera eine HD oder normale Kamera ?
Diese CGI Kommandos gelten für die HD Variante.


Edit:
was liegt eigentlich bei Dir im Verzeichnis
/opt/fhem/www/snapshots/ ....
Hier werden bei mir diese Dateien abgelegt und ich muss diese dann via Weblink darstellen.



Gruss R.


IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Michi240281

Ok, ich nutze ja das "snapPicture2", sollte also auf die Datei weisen.
So nutze ich es ja auch im Browser, wo es funktioniert.

Die Kamera ist eine 9803P, HD, 1MP, 720p.

Ja da liegt halt nichts, weil das Modul keine Snapshots erzeugt....
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

ritchie

#9
Hi,

ändere mal die Anzahl von

2015-07-11 12:56:55   snapshots       0

von 0 auf einen Wert größer 1

Zitat
        snapshots
        Show the total number of a image sequence.

Sorry,
ich sag gerade, das Du zwei eingestellt hast.. Dann weiss ich es auch nicht mehr.

Zitatattr global modpath .
Steht das bei Dir auch so ?


Edit:

  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";

Hiermit prüft der Code, welcher Dateitype vorhanden ist. Wie sieht das in Deiner Datei aus (Hexeditor)
Wie sieht also das 64 und 65 Byte bei Dir aus ?

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Michi240281

attr global modpath .

steht bei mir auch in der fhem.cfg.

In meinem 49_IPCAM.pm steht:

#####################################
sub
IPCAM_guessFileFormat($) {
  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";
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

ritchie

Hi,

ändere mal diese Zeilen ab Zeile 386
Zitat
if( ! grep { $_ eq "$imageFormat"} @imageTypes) {
    Log 1, "IPCAM $name Wrong or not supported image format: $imageFormat";
    RemoveInternalTimer($hash);
    return undef;
  }
so ab
Zitat
#if( ! grep { $_ eq "$imageFormat"} @imageTypes) {
#   Log 1, "IPCAM $name Wrong or not supported image format: $imageFormat";
#  RemoveInternalTimer($hash);
# return undef;
#  }

hierdurch wird die Überprüfung des Dateiformat abgeschaltet (vorübergehend). Du solltest diese Änderung später wieder rückgängig machen.

Hiernach sollte eine Datei angelegt werden, wenn Du einen Snapshoot anstösst.
Wenn eine Datei angelegt wird, kannst Du diese dann hier posten, damit man mal in der Header
reinschauen kann, um zu sehen, welches Dateiformat diese Datei hat. Das Bild darf nicht nachträglich bearbeitet werden,
um evtl. das gezeigte Bild unkenntlich zu machen. Wenn Du das so nicht posten willst, musst Du selber mit einem HEX-Editor
die ersten 100 Byte Dir ansehen und hier posten.

Zusätzlich:
Gibt es Einstellungen in der Kamera, welche das Snapshoot Format bestimmen ?
Wenn ja, ändere das Format mal.

Hast Du die aktuelle Firmware in der Kamera ?

Gruss R.

IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

marvin78

Ich habe hier den Eindruck, dass die Kamera nicht das zurück liefert, was FHEM erwartet (eine Bilddatei). Das sollte sie aber unter der URL (..snapPicture2..) eigentlich tun. So lange hier (offenbar) aber eine vollständige HTML-Seite (das kann man im Browser ganz leicht nachsehen, ohne etwas an 49_IPCAM zu ändern) zurück kommt, wird das mit dem Bild abspeichern nicht funktionieren (zumindest nicht mit diesem Modul und ohne große Änderungen). Ich habe das vorhin nochmal gecheckt. Meine FOSCAM liefert mit snapPicture 2 NUR ein Foto. Ich denke, hier stimmt etwas mit der Firmware der Kamera nicht. Wobei ich auch nur rate.

A.Harrenberg

Hi Michi,

Zitat von: Michi240281 am 11 Juli 2015, 14:34:24
Ahhhh, jetzt habe ich doch einen Fehlereintrag im Log:

....Wrong or unsupported image format: unknown

schau mal hier nach, die Fehlermeldung kann auch von einem Problem mit den http-Befehlen kommen. Hatte ich damals auch, in dem Forumsbeitrag habe ich beschrieben was ich (anhand eines anderen Formubeitrags) gemacht habe. Vielleicht hilft es Dir ja auch.

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

Michi240281

@ Ritchie: Ok vielen Dank, werde ich heute Abend testen!!

@Marvin: Die Firmware sollte eigentlich aktuell sein. Folgende Firmware ist auf der Kamera drauf:

System FW: 1.9.1.12
Application FW: 2.54.1.37

Irgendwo habe ich dann gelesen, dass das die aktuellste FW sein sollte.

Auf foscam.de ist jedoch die aktuellste FW:

System FW: 1.5.1.1
Application FW: 2.24.1.143

Also sollte die FW die drauf ist, wohl neuer sein.....

@Andreas: Das war das mit LWP::Simple und dem anderen "get", oder? Das habe ich auch schon probiert, mit selbem Ergebnis! :(

Habe parallel mal im foscam.us Forum gepostet, dass die Kamera bei "SnapPicture2" kein Bild sondern ne html-Seite rausgibt! Mal sehn, ob ich da Antwort bekomme!
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9