IPCAM: basicAuth und Credentials Datei

Begonnen von Wuck, 20 Februar 2019, 21:52:17

Vorheriges Thema - Nächstes Thema

Wuck

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.

kroman

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.

Wuck

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.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

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

Otto123

Ok dann war meine Idee in die falsche Richtung.
Mach doch mal verbose 5 beim Modul an, vielleicht redet es mit Dir :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kroman

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


Wuck

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)

kroman

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


Otto123

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 :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

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?

Otto123

Zitatnot supported image format
Sieht mir eher nach einem anderen Fehler aus
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

Wenn ich die falschen Zugangsdaten direkt eintippe, kommt der gleiche Fehler.

Otto123

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/)}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

#14
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.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Klaus.A

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
2 x CubieTruck mit 1) FHEM 5.9 und 2) IOBroker-mit Echo-Dot/Alexa und Homekit-/Siri-Integration. 1 x HMLAN, 3 x HM-LGW-O-TW-W-EU-2, mehr als 90 HomeMatic Sensoren und Aktoren, Velux-Fenster-IF, Fibaro ZWave-Sensoren und Aktoren, Philips Hue Bridge, IRTrans IR-Konverter, AutoMower via API

Wuck

Das hat leider auch nicht funktioniert. Und wenn Otto schon quittiert, sind wir alle verloren  :o ;D

kroman

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

Wuck

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