Hi Forum (und wahrscheinlich Otto, der immer am schnellsten Antwortet ;) )!
Nachdem ich erfolgreich mit Ottos Hilfe mein Homematic Kram an den Start bringen konnte, probiere ich gerade wieder, meine Kameras einzubinden. Das ist eine 6001HD von Instar und ist wie folgt definiert:
Internals:
AUTHORITY 10.0.4.32:8071
DEF 10.0.4.32:8071
FUUID 5c6da7da-f33f-0bea-f6fa-f5b4db2d6dd51157
NAME Wz.Kamera
NR 80
SEQ 0
STATE last: 2019-02-20 21:44:05
TYPE IPCAM
READINGS:
2019-02-20 21:44:05 last Wz.Kamera_snapshot.jpg
2019-02-20 21:44:05 snapshot1 Wz.Kamera_snapshot_1.jpg
2019-02-20 21:44:05 snapshots 0
Attributes:
DbLogExclude .*
alias Wohnzimmer Kamera
basicauth {USERNAME}:{PASSWORD}
credentials /opt/fhem/ipcam.conf
group Kamera
icon it_camera
path tmpfs/snap.jpg
pathCmd cgi-bin/hi3510/param.cgi
room Wohnzimmer
snapshots 1
storage ./www/snapshots
Meine ipcam.conf sieht so aus:
### Kamera Credentials ##
### Wohnzimmer
$credentials{Wz.Kamera}{username} = "foo";
$credentials{Wz.Kamera}{password} = "bar";
*username und password sind natürlich geändert und in Wirklichkeit richtig und auch ohne Schreibfehler eingetragen.
Schreibe ich in basicauth direkt den Usernamen und das Passwort funktioniert alles auf Anhieb. Über die Platzhalter klappts nicht. Habe testweise der conf-Datei auch alle Rechte (777) gegeben. Hat nix gebracht.
Hab ich in der conf was falsch oder wie löse ich das Problem? Habe hier und auch auf anderen Seiten gesucht, aber nix gescheites gefunden.
Es passt schon alles bei dir.
Das einzige was mir im Unterschied zu meiner funktionierenden Lösung aufgefallen ist, ist der Name deiner Kamera, also der Punkt.
Wenn ich meinen auf einen Namen mit Punkt ändere, funktioniert es auch nicht mehr.
Ich vermute es liegt daran, dass der Punkt in perl ein Sonderzeichen ist, ihn zu escapen habe ich jetzt auf die Schnelle aber nicht geschafft.
Ich habe es auch ohne den Punkt probiert. Das ging auch nicht. Ich bin. Der einzige, der hier in fhem rumfuhrwerkt, aber ich würde zur Sicherheit trotzdem gerne die Login-Daten auslagern. Werde mich da die Tage nochmal mit befassen.
Hi,
Einzige Idee die ich dazu habe: wie ist die Datei dahin gekommen? Wie ist die erzeugt? Mit Windows oder mit Linux?
Stichwort Zeilenumbruch. cr+lf -> lf
Gruß Otto
Ich habe den Ordner mit sudo mkdir und die Datei dann mit sudo nano erzeugt. Ohne sudo hab ich an der Stelle natürlich keine Berechtigung. Vllt sollte ich sie einfach nochmal löschen und neu anlegen? Man weiß ja nie :o
Ok dann war meine Idee in die falsche Richtung.
Mach doch mal verbose 5 beim Modul an, vielleicht redet es mit Dir :)
Zitat
Ich habe den Ordner mit sudo mkdir
Welchen Ordern?
Zitat
und die Datei dann mit sudo nano erzeugt.
Dann solltest du noch das machen:
sudo chown fhem:dialout /opt/fhem/ipcam.conf
Und falls die Rechte anders sind, dann noch:
sudo chmod 644 /opt/fhem/ipcam.conf
Ich habe einen Ordner "credentials" angelegt, damit die Datei nicht lose irgendwo rundliegt. (/opt/fhem/credentials)
Die Rechte habe ich schon auf 644 und testweise sogar 777 geändert. Nur den Besitzer noch nicht. Das werde ich Mal probieren. 8)
Zitat
Ich habe einen Ordner "credentials" angelegt, damit die Datei nicht lose irgendwo rundliegt. (/opt/fhem/credentials)
Wenn das list vom 1. Beitrag nocht stimmt, wird die Datei aber nicht gefunden werden...
credentials /opt/fhem/ipcam.conf
Falls die Datei in diesem Ordner ist, wären auch Besitzer und Rechte desselbigen anzupassen:
sudo chown fhem:dialout /opt/fhem/credentials
sudo chmod 755 /opt/fhem/credentials
Zitat von: Wuck am 22 Februar 2019, 16:54:41
Die Rechte habe ich schon auf 644 und testweise sogar 777 geändert.
Sowas gilt aus meiner Sicht als grob fahrlässig und ist meist völlig sinnlos. Werner sagt immer: das ist böse :)
Hallo kroman! Hallo Otto!
@Otto: Das war nur testweise. Hätte ja klappen und den Fehler eingrenzen können. Bin doch gar nicht böse ;D
Aber auch das ändern des Besitzers und der Rechte hat nicht funktioniert. Mit verbose 5 kommt:
IPCAM Wz.Kamera Wrong or not supported image format: error while reading source image:
Der Fehler ist aber seltsam, weil ich das Bild ja bekomme, wenn ich Nutzer und Passwort direkt eintrage.
Vllt hat es mit der Syntax zu tun, die im IPCAM Modul für die credentials verwendet wird? Oder muss ich noch irgendwie was globales zur Nutzung der credentials einstellen?
Zitatnot supported image format
Sieht mir eher nach einem anderen Fehler aus
Wenn ich die falschen Zugangsdaten direkt eintippe, kommt der gleiche Fehler.
Naja manchmal sind die Fehlermeldungen nicht die Stärke des Entwicklers ... :D
Und das steht jetzt nicht mehr so:
credentials /opt/fhem/ipcam.conf
sondern so?
credentials /opt/fhem/credentials/ipcam.conf
mach mal zur Kontrolle eine Abfrage in der FHEM Kommandozeile
{qx(ls -lha /opt/fhem/credentials/)}
insgesamt 12K
drwxr-xr-x 2 fhem dialout 4,0K Mär 10 11:53 .
drwxr-xr-x 17 fhem dialout 4,0K Mär 10 11:35 ..
-rwxrwxrwx 1 root root 279 Mär 10 11:53 ipcam.conf
Das kommt da raus
in der Kamera ist als attr "credentials" auch
/opt/fhem/credentials/ipcam.conf
eingetragen.
ok dann hat der chown wohl nicht geklappt, aber egal fhem sollte sie lesen können.
Keine Idee mehr, hab das so noch nicht gemacht.
Gruß Otto
Das Problem kommt mir bekannt vor - ich habe damals lange experimentiert, bis ich auf eine sonderbare Lösung gekommen bin:
Es hat funktioniert sobald ich die Pfade mit einem "?" abgeschlossen hatte, also so:
path /tmpfs/snap.jpg?
pathCmd /cgi-bin/hi3510/param.cgi?
Die Credentials Datei sieht OK aus, habe ich genauso. Nur den Pfad zu Credentials habe ich als relativen Pfad angegeben - das sollte aber nicht die Ursache sein.
Ich tippe auf das sonderbare "?".
Gruß, Klaus
Das hat leider auch nicht funktioniert. Und wenn Otto schon quittiert, sind wir alle verloren :o ;D
Mach das bitte:
sudo chown fhem:dialout /opt/fhem/credentials/ipcam.conf
sudo chmod 644 /opt/fhem/credentials/ipcam.conf
dann benenne die Kamera um (Punkt weg), teste nochmal und zeig alles nochmal her:
list <kamera>
ls -la /opt/fhem/credentials/
cat /opt/fhem/credentials/ipcam.conf
ENDLICH!!!!!! :) :) :) :) :) :) :) :) :) :) :) :) :)
Vielen Dank kroman!
Also war der Besitzer der Datei nicht angepasst? Manchmal kommt man aber auch auf die logischsten Dinge nicht, wenn man sich schon blöd daran geguckt hat :o ;D