Weblink Image/Bild wird nicht angezeigt (Docker Volume)

Begonnen von TomsHome, 14 März 2021, 22:15:34

Vorheriges Thema - Nächstes Thema

TomsHome

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


Otto123

#1
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
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

TomsHome

#2
danke Otto (-:

bisher klappt es ohne Docker auch in meinem Fhem auf dem Pi 3. (Also der Zugriff auf das Filesystem.)

TomsHome

#3
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! :)

Otto123

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

sinemeter

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

Otto123

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

sinemeter

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!