Hallo Fhem-Freunde,
ich bin gerade dabei mein Fhem auf den Pi 4 in Docker umzustellen. Dazu habe ich aktuell folgende Konstruktion um Bilder von einer Kamera in Fhem anzuzeigen:
Docker Container 1 (FTP Server):
- Empfängt Bilder
- Wenn neue Bilder da sind, schreibt er die Bilder mit den Rechten vom User pi:dialout in ein Ordner der über ein Docker Volumen in meinem System landet.
Volume
Host/volume - Path in container
/home/pi/ContainerFileTransfer - /home/pi/fheminterface
Docker Container 2 (Fhem):
- Hat den Ordner mit den Bildern ebenfalls das Volumen im Docker "gemounted"
- Fhem soll ein spezifisches Bild aus dem Ordner anzeigen.
Volume
Host/volume - Path in container
/home/pi/ContainerFileTransfer - /opt/fhem/ContainerFileTransfer
Die Rechte sollten eigentlich passen.....
Im FTP Docker:
pi@0591df629ecd:~/fheminterface/front$ ls -la
total 3764
drwxrwxrwx 2 pi dialout 4096 Mar 14 20:16 .
drwxrwxrwx 3 pi dialout 4096 Mar 14 18:23 ..
-rwxrwxrwx 1 pi dialout 293975 Mar 14 20:16 test.jpg
-rwxrwxrwx 1 pi dialout 379067 Mar 14 21:01 webcambild.jpg
[b]-rwxrwxrwx 1 pi dialout 273768 Mar 14 20:26 webcambild0.jpg[/b]
-rwxrwxrwx 1 pi dialout 295476 Mar 14 20:34 webcambild1.jpg
-rwxrwxrwx 1 pi dialout 306625 Mar 14 20:39 webcambild2.jpg
-rwxrwxrwx 1 pi dialout 339133 Mar 14 20:40 webcambild3.jpg
-rwxrwxrwx 1 pi dialout 296212 Mar 14 20:42 webcambild4.jpg
-rwxrwxrwx 1 pi dialout 334888 Mar 14 20:44 webcambild5.jpg
-rwxrwxrwx 1 pi dialout 294104 Mar 14 20:59 webcambild6.jpg
-rwxrwxrwx 1 pi dialout 379067 Mar 14 21:01 webcambild7.jpg
-rwxrwxrwx 1 pi dialout 295529 Mar 14 20:19 webcambild8.jpg
-rwxrwxrwx 1 pi dialout 338025 Mar 14 20:21 webcambild9.jpg
Im Fhem Docker:
root@b4b0ae7b1e47:/opt/fhem/ContainerFileTransfer/front# ls -la
total 3764
drwxrwxrwx 2 fhem dialout 4096 Mär 14 21:16 .
drwxrwxrwx 3 fhem dialout 4096 Mär 14 19:23 ..
-rwxrwxrwx 1 fhem dialout 293975 Mär 14 21:16 test.jpg
[b]-rwxrwxrwx 1 fhem dialout 273768 Mär 14 21:26 webcambild0.jpg[/b]
-rwxrwxrwx 1 fhem dialout 295476 Mär 14 21:34 webcambild1.jpg
-rwxrwxrwx 1 fhem dialout 306625 Mär 14 21:39 webcambild2.jpg
-rwxrwxrwx 1 fhem dialout 339133 Mär 14 21:40 webcambild3.jpg
-rwxrwxrwx 1 fhem dialout 296212 Mär 14 21:42 webcambild4.jpg
-rwxrwxrwx 1 fhem dialout 334888 Mär 14 21:44 webcambild5.jpg
-rwxrwxrwx 1 fhem dialout 294104 Mär 14 21:59 webcambild6.jpg
-rwxrwxrwx 1 fhem dialout 379067 Mär 14 22:01 webcambild7.jpg
-rwxrwxrwx 1 fhem dialout 337269 Mär 14 22:02 webcambild8.jpg
-rwxrwxrwx 1 fhem dialout 338025 Mär 14 21:21 webcambild9.jpg
-rwxrwxrwx 1 fhem dialout 337269 Mär 14 22:02 webcambild.jpg
Die Anzeige in Fhem soll über weblink passieren.... leider wird mir kein Bild angezeigt:
defmod webcam_picture weblink image /opt/fhem/ContainerFileTransfer/front/webcambild0.jpg
attr webcam_picture verbose 5
setstate webcam_picture initialized
Das Bild ist also im angegeben Pfad und die Rechte sollte passen oder?
Vermutlich irgendwo ein dummer Fehler. Wäre super wenn jemand helfen könnte :)
Wenn ich im weblink Modul verbose auf 5 stelle, sehe ich leider in den Events keine näheren Infos...
Gruß
Tom
Hi,
ich weiß da nicht besonders viel, aber mMn ist weblink image kein Zugriff auf einen Fileserver sondern ein Zugriff auf einen Webserver.
Du könntest FHEMWEB dazu bringen:
Zitatdefine <name> HTTPSRV <infix> <directory> <friendlyname>
Defines the HTTP server. <infix> is the portion behind the FHEMWEB base URL (usually http://hostname:8083/fhem), <directory> is the absolute path the files are served from, and <friendlyname> is the name displayed in the side menu of FHEMWEB.
Example:
define myJSFrontend HTTPSRV jsf /usr/share/jsfrontend My little frontend
So in etwa:
define williweb HTTPSRV willi /opt/fhem/ContainerFileTransfer Bilderweb
Dein weblink Image lenkst Du dann auf http://hostname:8083/fhem/willi/webcambild1.jpg
Alles nur Theorie - kann falsch sein.
Gruß Otto
danke Otto (-:
bisher klappt es ohne Docker auch in meinem Fhem auf dem Pi 3. (Also der Zugriff auf das Filesystem.)
Ich habe gerade bemerkt das in meinem Pi3 der Webserverffad ohne IP angegeben war (webserver). Daher habe ich mich täuschen lassen und gedacht es ist egal wo das Bild liegt....
image /fhem/www/pgm2/webcambild.jpg
Daher funktioniert es wohl in diesem Fall auch. Das hatte ich wohl verdrängt.... Danke Otto für den schups!
Danke! :)
Zitat von: TomsHome am 14 März 2021, 22:39:02
danke Otto (-:
bisher klappt es ohne Docker auch in meinem Fhem auf dem Pi 3. (Also der Zugriff auf das Filesystem.)
Ich meine: Das ist ein Irrtum
Das hier ist der verkürzte (relative) Webserver Pfad /fhem/www/pgm2/webcambild.jpg zu deinem FHEMWEB und kein absoluter Zugriff aufs Filesystem.
Hi zusammen,
Ich habe hier ein ähnliches Problem jedoch liegt meins wohl eher an meinem Unverständnis der Docker
Netzwerkmöglichkeiten.
defmod DraussenBild weblink image http://192.168.172.21/web/cgi-bin/hi3510/snap.cgi?&-getstream&-sn
attr DraussenBild alias DraussenBild
attr DraussenBild htmlattr width="640"
attr DraussenBild room draussen
attr DraussenBild verbose 5
Verwende ich als Netzwerk des Fhem Containers das default bridge Netzwerk dann
wird in der Fhem Oberfläche das Bild nicht angezeigt.
Lege ich den Container in ein von mir selbst erstelltes MacvLAN im gleichen Netz wie die Webcam dann kommt das Bild.
Network IP Address Gateway MAC Address Actions
Danny 192.168.172.216 192.168.172.1 02:42:c0:a8:ac:d8
bridge 172.17.0.4 172.17.0.1 02:42:ac:11:00:04
Wo liegt hier mein Denkfehler bzw. was für ein Netzwerk verwendet ihr für den Docker Container?
VG Sinemeter
Hi,
ich kann die Ähnlichkeit nicht mal im Ansatz erkennen ::)
Ich verwende Bridge Netzwerk und kann weblinks in der Art (also Zugriff nach außerhalb des Docker Netzwerkes) normal verwenden.
Gruß Otto
Trotzdem Danke!
Das hat mich auf die richtige Spur gebracht das es bei Dir auch im bridged Netzwerk läuft.
Problem war bei mir nicht Docker oder fhem sondern die Einstellung meines Browsers(Android/Safebrowsing).
Von einem anderen Gerät aus klappt es!