Autor Thema: Offizielles FHEM Docker Basis Image für verschiedene Plattformen  (Gelesen 312342 mal)

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1605 am: 29 Juni 2022, 22:33:03 »
Ich möchte wie erwähnt, dass Fhem nur über ein Netzwerk Interface erreichbar ist, da mein Server mehrere NICs besitzt und Fhem momentan über alle erreichbar ist.

Bevor wir uns hier missverstehen.
Hat der Host mehrere Netzwerkkarten oder der Container?

Momentan ist das WEB Device so definiert:
WEB FHEMWEB 8083 globalWenn ich es auf WEB FHEMWEB 8083 192.168.1.203 ändere bekomme ich das genannte Problem mit dem Health Check.
[/quote]

Ist 192.168.1.203 die Adresse des Hosts oder des Containers?
Meist laufen die Adressen der Container in anderen Subnetzen als 192.168., daher die Nachfrage.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline kennymc.c

  • Full Member
  • ***
  • Beiträge: 197
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1606 am: 29 Juni 2022, 23:05:51 »
Der Host hat mehrere Interfaces und der Container läuft auch im Host Mode also sollte auch kein Subnet für diesen Container existieren. 192.168.1.203 ist eine zugewiesene IP vom Router für eines der Interfaces.

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1607 am: 29 Juni 2022, 23:09:28 »
Der Host hat mehrere Interfaces und der Container läuft auch im Host Mode also sollte auch kein Subnet für diesen Container existieren. 192.168.1.203 ist eine zugewiesene IP vom Router für eines der Interfaces.


Okay verstehe.
Also es geht nicht, weil der Healthcheck versucht mit localhost zu verbinden, das aber nicht erlaubt ist:

https://github.com/fhem/fhem-docker/blob/890aff9e85cbaf3cc406c7b7979baa58f9d072c8/src/health-check.sh#L47


Wenn Du eine weitere Webdefinition erstellst und diese auf localhost bindest, sollte es gehen.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline kennymc.c

  • Full Member
  • ***
  • Beiträge: 197
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1608 am: 30 Juni 2022, 20:20:13 »
Ich hab jetzt ein neues WEB Device für Port 8085 erstellt und statt global localhost angegeben. Allerdings bleibt der Health Status trotzdem auf unhealthy. Muss ich den Port noch irgendwo angeben oder wird immer Port 8083 dafür genutzt und ich muss meinen Hauptport ändern? Auf dem Server und im Container kann ich auf Fhem via Port 8085 zugreifen.
« Letzte Änderung: 30 Juni 2022, 20:28:14 von kennymc.c »

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1609 am: 30 Juni 2022, 20:34:26 »
Ich hab jetzt ein neues WEB Device für Port 8085 erstellt und statt global localhost angegeben.

Laut Commander muss dort eine IP Adresse angegeben werden.
In deinem Fall wäre das 127.0.0.1

Der Healthcheck findet den konfigurierten Port automatisch.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline kennymc.c

  • Full Member
  • ***
  • Beiträge: 197
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1610 am: 01 Juli 2022, 19:09:22 »
Leider auch mit 127.0.0.1 statt localhost das selbe Problem

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2709
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1611 am: 10 Juli 2022, 22:34:57 »
Leider auch mit 127.0.0.1 statt localhost das selbe Problem

Ich habe das nachgestellt und konnte keinen Fehler finden.

Ich brauche dafür wohl mehr Details.

Kannst Du deine fhem.cfg und deine docker-compose Datei bereitstellen?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline kennymc.c

  • Full Member
  • ***
  • Beiträge: 197
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1612 am: 16 Juli 2022, 15:29:18 »
Docker läuft bei mir über Unraid. Der Befehl zum Starten des Containers ist:
/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker create --name='fhem' --net='host' -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -e HOST_HOSTNAME="smartserver" -e HOST_CONTAINERNAME="fhem" -e 'CPAN_PKGS'='IO::Socket::SSL IO::Socket::Multicast XML::Simple Data::Peek Net::FTPSSL' -e 'LOGFILE'='./log/fhem-%Y-%m.log' -e 'FHEM_UID'='1007' -e 'FHEM_GID'='100' -e 'DOCKER_HOST'='192.168.1.203' -l net.unraid.docker.managed=dockerman -v '/mnt/user/appdata/fhem/':'/opt/fhem':'rw' --restart always --name fhem 'ghcr.io/fhem/fhem/fhem-minimal-docker:bullseye'

Die fhem.cfg ist im Anhang

Offline elle

  • New Member
  • *
  • Beiträge: 19
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #1613 am: 03 August 2022, 14:44:52 »
Hallo zusammen,

um ein wenig Strom zu sparen, bin ich gerade dabei, meinen zentralen Server, auf dem u.a. FHEM derzeit als LXC Container laeuft, auf einen Raspi4 mit dietpi (Debian bullseye) als HostOS umzuziehen.

Dabei moechte ich u.a. FHEM als docker Container betreiben, aber habe mit dem /opt/fhem Volume ein seltsames Problem, das ich mir nicht erklaeren kann.

  • Volume fhem angelegt:
docker volume create fhem
  • Erstellung und Start des Containers:
docker run -d --name FHEM -p 8083:8083 -p 7072:7072 -p 8084:8084 -v fhem:/opt/fhem fhem /fhem:bullseye --restart unless-stopped

    Das Teil laeuft und ist auch aus meinem LAN problemlos erreichbar:
    root@heart:~# docker ps                                                                                                                                     
    CONTAINER ID   IMAGE                          COMMAND                  CREATED          STATUS                    PORTS                                     
                                                                                                                                          NAMES                 
    15c95a2422f6   fhem/fhem:bullseye             "/entry.sh start"        16 minutes ago   Up 16 minutes (healthy)   0.0.0.0:7072->7072/tcp, :::7072->7072/tcp,
    0.0.0.0:8083-8084->8083-8084/tcp, :::8083-8084->8083-8084/tcp                                                                         FHEM                   

    Um nun einige Customdateien aus meinem laufenden FHEM zu nutzen, habe ich sie in das Volumeverzeichnis auf dem Host kopiert, z.B.:
    root@heart:~# rsync -av shc:/opt/fhem/FHEM/99_myUtils* /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM
    root@heart:~# chown -R 6061:6061  /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils* && ls -ltr /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils*
    -rw-r----- 1 6061 6061  11769 Feb  5 14:25 /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils_IAC.pm.orig
    -rw-r----- 1 6061 6061  15452 Apr 22 10:54 /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils.pm
    -rw-r----- 1 6061 6061  12572 Apr 28 22:07 /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils_IAC.pm
    -rw-r----- 1 6061 6061 151582 Jul 18 13:01 /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM/99_myUtils_Shutter.pm

    Gehe ich mit
    docker exec -it FHEM /bin/bash
    in den Container hinein und liste mir die Dateien in /opt/fhem/FHEM, sehe ich die Dateien auch:
    root@15c95a2422f6:/opt/fhem# ls -ltr FHEM/99_my*
    -rw-r----- 1 fhem fhem  11769 Feb  5 14:25 FHEM/99_myUtils_IAC.pm.orig
    -rw-r----- 1 fhem fhem  15452 Apr 22 10:54 FHEM/99_myUtils.pm
    -rw-r----- 1 fhem fhem  12572 Apr 28 22:07 FHEM/99_myUtils_IAC.pm
    -rw-r----- 1 fhem fhem 151582 Jul 18 13:01 FHEM/99_myUtils_Shutter.pm
    Aber FHEM sieht sie nicht mit Eingabe von z.B.
    reload 99_myUtils
    oder
    {`ls -ltr /opt/fhem/FHEM`}

    Hat jemand eine Idee (vielleicht war das ja schon Thema in diesem Thread, aber bei 100+ Seiten koennte ich das uebersehen haben), woran das liegen koennte?!

    Ich bin ratlos, allerdings auch noch nicht so in docker bewandert - Linux ist kein Problem fuer mich ...

    Gruss
    /elle
    « Letzte Änderung: 03 August 2022, 16:14:18 von elle »

    Offline kadettilac89

    • Hero Member
    • *****
    • Beiträge: 1570
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1614 am: 03 August 2022, 21:18:06 »
    Hat jemand eine Idee (vielleicht war das ja schon Thema in diesem Thread, aber bei 100+ Seiten koennte ich das uebersehen haben), woran das liegen koennte?!


    Ich selbe nutze kein docker run sondern docker-compose. Darum kann es sein dass mein Vorschlag nichts bringt.

    Teste mal
    1) Ohne ein eigenes volume sondern nur -v /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM:/opt/fhem (oder halt den persistenen Ordner mit deinen Daten)
    2) welches Image ist das, sollte es nicht "docker ..... pull fhem/fhem:bullseye .... heißen? Du hast in deinem List ein Leerzeichen drin.

    docker run -d --name FHEM -p 8083:8083 -p 7072:7072 -p 8084:8084 -v <vollständiger Pfad>/fhem:/opt/fhem pull fhem/fhem:bullseye --restart unless-stopped

    Beim ersten Starten (erzeugen des Containers) von Fhem werden die Rechte gesetzt. Ich könnte mir vorstellen, dass hier bei deinen Schritten <Volume erstellen> - Rsync - Container starten ... Berechtigungen erneut gesetzt oder verbogen werden. Teste mal mit dem "nackten" docker run ob du  die Files siehst und ob du mit der demo-Config starten kannst. Erst dann würde ich mit dem reinkopieren deiner alten Installation beginnen.

    Offline elle

    • New Member
    • *
    • Beiträge: 19
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1615 am: 03 August 2022, 21:59:23 »
    Hi kadettilac89,

    Teste mal
    1) Ohne ein eigenes volume sondern nur -v /mnt/dietpi_userdata/docker-data/volumes/fhem/_data/FHEM:/opt/fhem (oder halt den persistenen Ordner mit deinen Daten)
    Das scheint tatsaechlich den Unterschied zu machen - ich werd' bekloppt... :o
    Zitat
    2) welches Image ist das, sollte es nicht "docker ..... pull fhem/fhem:bullseye .... heißen? Du hast in deinem List ein Leerzeichen drin.
    Da scheint wohl beim Kopieren die Forensoftware ein Leerzeichen gekauft zu haben - im Originalaufruf ist das nicht mit drin ...
    docker run -d --name FHEM -p 8083:8083 -p 7072:7072 -p 8084:8084 -v <vollständiger Pfad>/fhem:/opt/fhem pull fhem/fhem:bullseye --restart unless-stopped
    So geht es tatsaechlich!
    Zitat
    Beim ersten Starten (erzeugen des Containers) von Fhem werden die Rechte gesetzt. Ich könnte mir vorstellen, dass hier bei deinen Schritten <Volume erstellen> - Rsync - Container starten ... Berechtigungen erneut gesetzt oder verbogen werden. Teste mal mit dem "nackten" docker run ob du  die Files siehst und ob du mit der demo-Config starten kannst. Erst dann würde ich mit dem reinkopieren deiner alten Installation beginnen.
    Einfach reinkopieren werde ich nicht, sondern die Gelegenheit nutzen, aufzuraeumen und einiges zu optimieren. Da ist einiges doch mittlerweile recht wild gewachsen und bedarf einer Ueberarbeitung ... ;-)

    Ausserdem aendert sich an anderen Stellen im System einiges, dass auch Einfluss auf FHEM hat - wie z.B., dass ich nicht mehr Unifi Video nutze (gibt es nicht fuer arm), sondern auf motioneye wechsele ...

    Auf jeden Fall nochmal danke fuer den Schubser - auch wenn mir noch nicht so ganz klar ist, warum docker da nicht direkt auf das durch das Volume definierte Verzeichnis zugreift und vor allem im Filesystem des Containers alles richtig zu sein scheint - nur fhem.pl etwas voellig anderes sieht (wo auch immer das liegen mag) - verstehen wuerde ich es schon ganz gerne ...

    Dann kann es ja morgen weitergehen - erst mal weiter mit ein bisschen Rose das Hirn fuer neue Schandtaten kuehlen  :)

    /elle

    Offline MichaelS

    • New Member
    • *
    • Beiträge: 5
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1616 am: 19 August 2022, 19:52:38 »
    Hallo allerseits,
    ich schreibe jetzt auch mal rein da mein funktionierender Alexaskill nicht mehr will, seit dem update, und ich schon ewig an der Reaktivierung sitze.

    (Habe den PI geupdatet und sonst alle container als "latest" -> Aktuellste Versionen parat)

    Ich nutze docker-compose und damit die Beschreibung/Images von: https://github.com/fhem/alexa-fhem-docker.
    Die container wurden alle gebaut, wobei ich direkt beim prüfen des "alexa-fhem"'s (MEINE_FHEM_IP:3000/) so etwas sehe:
    {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"UnsupportedOperationError","payloadVersion":"2","messageId":"04a3ee4d-b969-4489-9a74-d19c47d61eda"},"payload":{}}
    1.) Könnte der Fehler dort bereits liegen?

    In der FHEM-Weboberfläche habe ich den skill removed und neu aufgespielt.
    Komisch ist dann bereits, dass alexaFHEM.ProxyConnection nicht bei den Readings erscheint... (der war vorher ja da und sollte dort immer erscheinen (?))

    Den host habe ich natürlich auch im skill verknüpft ("attr Alexa alexaFHEM-host alexa-fhem"). Außerdem meine login credentials ("attr alexa alexaFHEM-auth user:pass")

    Die alexa logs zeigen mir:
    Unknown cipher type '/tmp/alexa-fhem.cfg'in einer Endlosschleife.

    Im logfile sehe ich das kein Zugriff auf den port 22 möglich ist:
    2022.08.19 19:47:21.031 3: alexa: using ssh cmd /usr/bin/ssh alexa-fhem
    ssh: connect to host alexa-fhem port 22: Connection refused
    ssh: connect to host alexa-fhem port 22: Connection refused
    2022.08.19 19:47:21.130 2: alexa: starting alexa-fhem: /usr/bin/ssh alexa-fhem  -c /tmp/alexa-fhem.cfg
    2022.08.19 19:47:21.137 3: alexa: starting
    2022.08.19 19:47:21.150 3: alexa: using logfile: ./log/alexa-2022-08-19.log
    2022.08.19 19:47:21.164 3: alexa: read: end of file reached while sysread
    2022.08.19 19:47:21.164 3: alexa: stopped

    Ich denke das sollte euch für einen ersten Einblick reichen. Freue mich auf professionelle Hilfe :)

    Grüße Michael

    Offline Sidey

    • Developer
    • Hero Member
    • ****
    • Beiträge: 2709
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1617 am: 19 August 2022, 20:13:15 »
    Hallo allerseits,
    ich schreibe jetzt auch mal rein da mein funktionierender Alexaskill nicht mehr will, seit dem update, und ich schon ewig an der Reaktivierung sitze.


    Was steht denn im logfile von dem alexa-fhem-container?
    Könntest ja auch mal das configfile posten, welches im alexa-fhem Container liegt.

    Grüße Sidey
    Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

    Offline MichaelS

    • New Member
    • *
    • Beiträge: 5
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1618 am: 20 August 2022, 07:17:01 »
    Zitat
    Was steht denn im logfile von dem alexa-fhem-container?

    [8/19/2022, 7:37:51 PM] ERROR: SyntaxError: Unexpected end of JSON input
        at JSON.parse (<anonymous>)
        at Server.processBody (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:327:26)
        at Server.<anonymous> (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:338:33)
        at IncomingMessage.emit (events.js:412:35)
        at endReadableNT (internal/streams/readable.js:1333:12
        at processTicksAndRejections (internal/process/task_queues.js:82:21) from ::ffff:172.27.0.1
    [8/19/2022, 7:37:51 PM] <<<< [srv] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"UnsupportedOperationError","payloadVersion":"2","messageId":"04a3ee4d-b969-4489-9a74-d19c47d61eda"},"payload":{}}

    mein config file sieht so aus:

    {
      "alexa": {
        "port": 3000,
        "name": "Alexa",
        "ssl": false,
        "keyFile": "/certs/alexa-fhem.key",
        "certFile": "/certs/alexa-fhem.crt",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
        "oauthClientID": "amzn1.application-oa2-client.XXXXXXXXXXXXXXXXXXXXXXXXXXXX$
      },
      "connections": [
        {
          "name": "FHEM",
          "webname": "fhem",
          "filter": "alexaName=..*",
          "uid": "6062",
          "port": "8083",
          "server": "fhem"
        }
      ]
    }


    Offline Sidey

    • Developer
    • Hero Member
    • ****
    • Beiträge: 2709
    Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
    « Antwort #1619 am: 21 August 2022, 11:43:52 »
    [8/19/2022, 7:37:51 PM] ERROR: SyntaxError: Unexpected end of JSON input
        at JSON.parse (<anonymous>)
        at Server.processBody (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:327:26)
        at Server.<anonymous> (/usr/local/lib/node_modules/alexa-fhem/lib/server.js:338:33)
        at IncomingMessage.emit (events.js:412:35)
        at endReadableNT (internal/streams/readable.js:1333:12
        at processTicksAndRejections (internal/process/task_queues.js:82:21) from ::ffff:172.27.0.1
    [8/19/2022, 7:37:51 PM] <<<< [srv] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"UnsupportedOperationError","payloadVersion":"2","messageId":"04a3ee4d-b969-4489-9a74-d19c47d61eda"},"payload":{}}


    Kannst Du das Log vom Containerstart bis zu den Fehlern posten?
    Mit dem Ausschnitt kann ich zumindest nichts anfangen.
    Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

     

    decade-submarginal