Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

The-Holgi

Hallo,
versuche gerade das TABLETUI ans laufen zu bekommen.
Scheinbar bekomme ich keine Verbindung zu fhem.
Hat vielleicht jemand einen Tipp für mich?

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

kadettilac89

Zitat von: The-Holgi am 23 November 2020, 16:04:34
Hallo,
versuche gerade das TABLETUI ans laufen zu bekommen.
Scheinbar bekomme ich keine Verbindung zu fhem.
Hat vielleicht jemand einen Tipp für mich?

Du gibst kaum Informationen raus. Ich nutze zwar TUI aktuell nicht, aber ich hatte es im Docker schon mal laufen. Es gab kein Docker-spezifischen Dinge zu beachten. Bist du neu im Thema, oder hattest du es schon mal laufen? Ich zweifle dass es am Docker liegt.

Wie kommst du drauf dass "scheinbar keine Verbindung" besteht?

Siehst du in der Netzwerk-Console im Browser irgend welche "?cmd=set%20xxx%" wenn du was schaltest? Netzwerk Console im Chrome z. B. ... <F12> und da unter Network.

Hast du fhem TabletUi nach der Installation im Wiki durchgeführt, oder manuell was konfiguriert? Hast du einen deiner Schalter als Test konfiguriert?

Wenn du keine Docker-Fehlermeldungen oder Hinweise hast schlage ich vor, erstmal im TUI-Thread zu fragen. Kannst ja mit angeben, dass du es im Docker laufen hast.

The-Holgi

Hallo,
habe mich bei der Installation ans Wiki gehalten.
Dann die Beispieldatei umbenannt und einige Geräte mit den Namen aus meiner fhem Installation ,,ersetzt" bzw umbenannt.
Das UI läßt sich auch öffnen und ich kann ,,schalten". In fhem kommt aber nichts an und andersherum kommen auch keine Sensorwerte in der TabletUi an.
Ob es tatsächlich an Docker liegt weiß ich natürlich nicht, hatte es aber vor Jahren mal in meiner ,,normalen"
fhem Umgebung getestet, da funktionierte es.
Ansonsten bin ich im Thema TabletUI neu. Dachte ich kann mur da was nettes für mein Echo Show basteln.
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

kadettilac89


WW

Ich versuche seit 2 Tagen im FHEM-Docker-Image die Skripte post-init.sh, pre-init.sh, post-start.sh und pre-start.sh zu implementieren, scheitere jedoch an irgenwelchen Rechten.

Eingebunden habe ich das Verzeichnis ./fhem/config nach /docker:

    fhem:
        restart: always
        ports:
            - "8083:8083"
            - "8084:8084"
            - "8085:8085"
            - "7072:7072"
            - "7073:7073"
            - "8383:8383"   # ESP-Bridge
            - "5060:5060"   # SIP
            - "5070:5070"   # SIP
            - "8090:8090"   # AMAD
        image: fhem/fhem:latest
        volumes:
            - ./fhem/core/:/opt/fhem/
            - "./fhem/config:/docker"
        network_mode: host
#        networks:
#           - fhem-network
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
        depends_on:
            - "mysql"
            - "mqtt"
        command:
            - "-e CPAN_PKGS=\"Text::Iconv File::HomeDir\"" 


Auf dem OMV-Host sehen die Zugriffsrechte folgendermassen aus:

root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config# ls -l
insgesamt 2212
-rwxrwxrwx+ 1 willi users     699 Nov 25 12:18 post-init.sh
-rwxrwxrwx+ 1 willi users     330 Nov 24 21:39 post-start.sh
-rwxrwxrwx+ 1 willi users     443 Nov 24 21:39 pre-init.sh
-rwxrwxrwx+ 1 willi users     398 Nov 24 21:39 pre-start.sh
-rwxrwxrwx+ 1 willi users 2244696 Okt 29  2019 speedtest
root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config#


Und aus der Shell des Docker-Containers (über Portainer):

root@NAS-2:/docker# ls -l
total 2212
-rwxrwxrwx+ 1 fhem users     699 Nov 25 12:18 post-init.sh
-rwxrwxrwx+ 1 fhem users     330 Nov 24 21:39 post-start.sh
-rwxrwxrwx+ 1 fhem users     443 Nov 24 21:39 pre-init.sh
-rwxrwxrwx+ 1 fhem users     398 Nov 24 21:39 pre-start.sh
-rwxrwxrwx+ 1 fhem users 2244696 Okt 29  2019 speedtest
root@NAS-2:/docker# ./post-init.sh
bash: ./post-init.sh: Permission denied
root@NAS-2:/docker# /usr/bin/env bash ./post-init.sh
+++ post-init.sh (USER/ID: root/0) started +++
root@NAS-2:/docker#


Die Datei post-init.sh:

#!/usr/bin/env bash
#
# This script will be run at the very end of the initialization
# of the new container, also after your local FHEM configuration
# was checked and adjusted for compatibility with the container.
# Custom packages you defined using the environment variables
# mentioned above will be installed already at this point in time.
# This is likely the best place for you to do any final changes
# to the environment that need to be done only once for the
# lifetime of that container.
#
# Author: murdoc@storm-clan.de
#
# Configuration file: none
#
# Parameters: none
#
SCRIPTNAME=$(basename $0)
USERNAME=$(whoami)

echo "+++ $SCRIPTNAME (USER/ID: $USERNAME/$UID) started +++"

exit 0


Meine gesamte Konfiguration liegt auf einer Samba-Freigabe, damit ich auch unter Windows 10 daran arbeiten kann. Kann es sein, dass über die ACLs das Ausführen der Skripte unterbunden wird?


root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config# getfacl *.sh
# file: post-init.sh
# owner: willi
# group: users
user::rwx
user:willi:rwx
group::rwx
mask::rwx
other::rwx

# file: post-start.sh
# owner: willi
# group: users
user::rwx
user:willi:rwx
group::rwx
mask::rwx
other::rwx

# file: pre-init.sh
# owner: willi
# group: users
user::rwx
user:willi:rwx
group::rwx
mask::rwx
other::rwx

# file: pre-start.sh
# owner: willi
# group: users
user::rwx
user:willi:rwx
group::rwx
mask::rwx
other::rwx

root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config#
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

kadettilac89

@ww, rechte zeigen rwx und + für acl, wobei da acl auch rwx ist.

kannst du das script am host ausführen? da sind die selben rechte ...

wenn du den mountpoint mal aushängst du die datei lokal setzt, selbes problem?

auch wenn es sich blöd anhört, mal neu gestartet? nas + docker host ...

Wernieman

Was steht z.B. in den ersten Zeilen von post_init.sh

Eigentlich sieht die Fehlermeldung, wenn nicht Ausführbar, anders aus ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

kadettilac89

Zitat von: Wernieman am 25 November 2020, 18:53:33
Was steht z.B. in den ersten Zeilen von post_init.sh

Eigentlich sieht die Fehlermeldung, wenn nicht Ausführbar, anders aus ....

Test mit chmod 666 (nicht ausführbar)


root@fhemlxc:/docker/docker_files/fhemscripts# ls -l
insgesamt 4
-rw-rw-rw- 1 root root 461 25. Nov 17:59 pre-start.sh
root@fhemlxc:/docker/docker_files/fhemscripts# ./pre-start.sh
bash: ./pre-start.sh: Keine Berechtigung


Das ist, zwar auf Deutsch, die Meldung. Oder welche Meldung meinst du?

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

kadettilac89


WW

Erst einmal Danke für die Reaktionen.

Wenn ich über die Shell des Containers(Portainer) den Skript nach /usr/local/bin kopiere, dann funktioniert der Skript:

root@NAS-2:/opt/fhem# cd /docker
root@NAS-2:/docker# ./post-start.sh
bash: ./post-start.sh: Permission denied
root@NAS-2:/docker# cp post-start.sh /usr/local/bin
root@NAS-2:/docker# /usr/local/bin/post-start.sh
+++ post-start.sh (USER/ID: root/0) started +++
root@NAS-2:/docker#

root@NAS-2:/docker# ls -l /usr/local/bin/post-start.sh
-rwxr-xr-x 1 root root 330 Nov 25 19:45 /usr/local/bin/post-start.sh


Auch nach Umsetzen des Users funktioniert es noch:

root@NAS-2:/docker# ls -l /usr/local/bin/post-start.sh
-rwxr-xr-x 1 root root 330 Nov 25 19:45 /usr/local/bin/post-start.sh
root@NAS-2:/docker# chown fhem:users /usr/local/bin/post-start.sh
root@NAS-2:/docker# ls -l /usr/local/bin/post-start.sh
-rwxr-xr-x 1 fhem users 330 Nov 25 19:45 /usr/local/bin/post-start.sh
root@NAS-2:/docker# /usr/local/bin/post-start.sh
+++ post-start.sh (USER/ID: root/0) started +++
root@NAS-2:/docker#


Auf dem Host direkt sieht es so aus:

root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config# ./post-init.sh
bash: ./post-init.sh: Keine Berechtigung
root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config# cp post-init.sh /usr/local/bin/post-init.sh
root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config# ls -l /usr/local/bin/post-init.sh
-rwxrwxrwx+ 1 willi users 699 Nov 25 12:18 /usr/local/bin/post-init.sh
root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config#  /usr/local/bin/post-init.sh
+++ post-init.sh (USER/ID: root/0) started +++
root@NAS-2:/sharedfolders/DatenA3/Ahornstr/fhem/config#

Das Verhalten entspricht dem aus dem Container: Liegt die Datei post-init.sh auf der SMB-Freigabe, dann funktioniert es nicht, obwohl die Rechte eigentlich stimmen.

@kadettilac89: NAS wurde neu gestartet

Eine Zusatzinfo: Auf dem Server läuft Docker unter Openmediavault.
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

kadettilac89

ww, ich habe selber mal dein script auf einen sambashare bei mir angelegt. bei mir geht es auch mit samba

Ist der Host auf dem Docker läuft gleichzeitig dein NAS? Ich lese es zumindest so. Wenn dem so ist, warum schreibst du nicht direkt in das lokale Daten-Verzeichnis? Samba selbst gibt ja auch ein lokales Verzeichnis frei. Der Sambashare zeigt dann auf den selben Server, oder sind es 2 verschiedene NAS?

Du könntest auf dem NAS auch für Linux per NFS freigeben und mounten. Und auf das selbe Verzeichnis eine Samba-Freigabe für Windows. Zumindest als Test. Sauber sieht anders aus, aber zumindest als Workaround.

Da der Fehler auch außerhalb vom Container existiert ist dieser Thread hier der falsche. Es ist zumindest eingeschränkt auf den Samba-Share. Du bist wahrscheinlich in einem reinen Linux-Forum besser aufgehoben bzw. zu Openmediavault.

WW

Ich glaube, ich bin etwas weiter: Es scheint daran zu liegen, wie OMV externe Festplatten einbindet:

root@NAS-2:/etc# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=498802ee-a400-4912-8060-dbe200dfa748 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=e3f86d6f-6204-4eb8-bfc1-992c0ab58e30 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
tmpfs           /tmp            tmpfs   defaults        0       0
# >>> [openmediavault]
/dev/disk/by-id/ata-TS128GSSD340K_0203223EE19183140046-part3 /srv/dev-disk-by-id-ata-TS128GSSD340K_0203223EE19183140046-part3 ext4 defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,discard,acl 0 2
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N1ZFN0EK-part1 /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N1ZFN0EK-part1 ext4 defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N5JRZXHU-part1 /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N5JRZXHU-part1 ext4 defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
# <<< [openmediavault]
root@NAS-2:/etc#


Unter OMV werden alle Festplatten mit der Option "noexec" eingebunden. Ist also kein Samba-Problem, sondern ein OMV-Problem.
Ich werde morgen nach einer Lösung/Workaround schauen und dann berichten. Danke für Eure Anmerkungen
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

Wernieman

Ahhhh .... das ist ein Sicherheitsfeature .. kannst DU doch einfach aus der fstab rausnehmen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

kadettilac89

Zitat von: Wernieman am 26 November 2020, 08:40:03
.. kannst DU doch einfach aus der fstab rausnehmen ...

nicht empfohlen, wird bei upgrades, ggf. schon bei reboot überschrieben.

es gibt dafür eigene config files
https://openmediavault.readthedocs.io/en/5.x/various/fs_env_vars.html