Offizielles FHEM Docker Basis Image für verschiedene Plattformen

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

Vorheriges Thema - Nächstes Thema

derstinker

#1350
Zitat von: kadettilac89 am 25 November 2021, 11:58:34
1) welchen Docker Container? Original, dev von Cooltux ...?

Aus dem Hub, https://hub.docker.com/r/fhem/fhem die Latest.

Zitat von: kadettilac89 am 25 November 2021, 11:58:34
2) Hast du mal komplett neu erstellt?

Ja, in einer komplett neuen VM bei 0 Angefangen. Sprich erst den LXC Container (Debian-Bullseye) erstellt, dann Docker installiert und dann gemäß https://github.com/fhem/fhem-docker#installation

Zitat von: kadettilac89 am 25 November 2021, 11:58:34
3) Was genau machst du um die besagten Einträge zu bekommen, wann kommen die?

set fhemServerNpm install fhem-all


kadettilac89

ich kann dir nicht sagen woher die Meldung kommt.

versuche mal nicht fhem-all sondern jedes einzeln. Beginnend mit dem npm-Paket. Du kannst verbose höher setzen dann siehst du die abgesetzten Befehle im Log. Die npm-install Befehle kannst auch direkt auf OS absetzten und schaun ob da irgend welche andere Fehler oder Probleme kommen.

1) set fhemServerNpm outdated
2) get fhemServerNpm showOutdatedList
3) set fhemServerNpm upgrade <jedes einzelne Outdated Paket>


ch.eick

Zitat von: kadettilac89 am 25 November 2021, 14:31:46
ich kann dir nicht sagen woher die Meldung kommt.

versuche mal nicht fhem-all sondern jedes einzeln. Beginnend mit dem npm-Paket. Du kannst verbose höher setzen dann siehst du die abgesetzten Befehle im Log. Die npm-install Befehle kannst auch direkt auf OS absetzten und schaun ob da irgend welche andere Fehler oder Probleme kommen.

1) set fhemServerNpm outdated
2) get fhemServerNpm showOutdatedList
3) set fhemServerNpm upgrade <jedes einzelne Outdated Paket>
So hat es bei mir funktioniert.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

derstinker

#1353
Zitat von: kadettilac89 am 25 November 2021, 14:31:46
ich kann dir nicht sagen woher die Meldung kommt.

versuche mal nicht fhem-all sondern jedes einzeln. Beginnend mit dem npm-Paket. Du kannst verbose höher setzen dann siehst du die abgesetzten Befehle im Log. Die npm-install Befehle kannst auch direkt auf OS absetzten und schaun ob da irgend welche andere Fehler oder Probleme kommen.

1) set fhemServerNpm outdated
2) get fhemServerNpm showOutdatedList
3) set fhemServerNpm upgrade <jedes einzelne Outdated Paket>

Im Docker Container bekomme ich folgenden Error:


npm install -g alexa-fhem
npm WARN npm npm does not support Node.js v10.24.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm You can find the latest version at https://nodejs.org/
npm ERR! Unexpected token =


So war mein Ansatz, läuft aber direkt in einen error:

get fhemServerNpm showOutdatedList

Endet mit Error unexpected token

ch.eick

Zitat von: derstinker am 25 November 2021, 19:02:28
Im Docker Container bekomme ich folgenden Error:


npm install -g alexa-fhem
npm WARN npm npm does not support Node.js v10.24.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm You can find the latest version at https://nodejs.org/
npm ERR! Unexpected token =


So war mein Ansatz, läuft aber direkt in einen error:

get fhemServerNpm showOutdatedList

Endet mit Error unexpected token
Das hatte ich auch bei mir.
Ich habe dann leider den Docker Container nochmal neu laden müssen. Danach das node.js nicht auf die aktuellste Version bringen, weil die wohl noch nicht zu den anderen Modulen passt.

Da ich aber momentan nichts aus der Modul Liste verwende habe ich letztendlich einen anderen node-red Docker Container verwendet und dort das von mir benötigte Kia connect integriert.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Ihr könnt die dev-Version von Cooltux testen wenn ihr wollt. Alternativ die etwas ältere Version von volschin. Alternativ das npm Script zum Update verwenden (offizielle Version) ... curl https://www.npmjs.com/install.sh | sudo sh


volschin:
docker pulll ghcr.io/volschin/fhem-experimental:dev-bullseye

Cooltux dev-Version
docker pulll ghcr.io/fhem/fhem-experimental:dev

ch.eick

Zitat von: kadettilac89 am 26 November 2021, 08:29:42
Ihr könnt die dev-Version von Cooltux testen wenn ihr wollt. Alternativ die etwas ältere Version von volschin. Alternativ das npm Script zum Update verwenden (offizielle Version) ... curl https://www.npmjs.com/install.sh | sudo sh


volschin:
docker pulll ghcr.io/volschin/fhem-experimental:dev-bullseye

Cooltux dev-Version
docker pulll ghcr.io/fhem/fhem-experimental:dev
Hallo kadettilac89

ich sehe da gerade bullseye, ist da generell ein Upgrade zu empfehlen?
Ich habe gerade auf einem RPI4 auf arm64 Buster migriert. Das läuft echt klasse seit einer Woche.
Rein subjektiv läuft es auch performanter als die 32 Bit Version.
Auch die arm64 Docker Container konnte ich alle recht problemlos starten.
Insbesondere für MySQL hat das diverse Releases übersprungen. Von Maria DB 5.7 auf MySQL 8 direkt von Oracle :-)

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Zitat von: ch.eick am 26 November 2021, 08:36:12
ich sehe da gerade bullseye, ist da generell ein Upgrade zu empfehlen?

Ich selber nutze keinen Raspberry sondern "normale" Intel CPU. Deshalb kann ich das ARM / Raspberry Thema nicht so beurteilen.

Zum Thema Upgrade allgemein, es macht Sinn das System aktuell zu halten da fehlende Sicherheitsupdates und auch Abhängigkeiten zu älteren Modulen Probleme machen können (wie z. b. das npm-Thema). Um das sicher zu stellen reichen normale Updates ohne Release Upgrade.

Auf der anderen Seite "never touch a running system".

Für eine Fhem Installation auf Docker ist das aber relativ einfach ...
Frage zu Upgrade des Host Betriebssystem - Erstmal sichern kopiere die Karte (oder dein Speichermedium) und teste.  Wenn alles läuft OK, wenn nicht zurück.
Frage zu Upgrade es Containers - du kannst einen zweiten Container anlegen mti dem neuen Image und dort testen. Wenn es dir gefällt, Image austauschen und gut.

derstinker

Zitat von: ch.eick am 26 November 2021, 06:11:59
Danach das node.js nicht auf die aktuellste Version bringen...

Vielen Dank Christian, genau das ist die Ursache. Es liegt defintiv an der npm/node.js version die den Fehler verursacht. Konnte ich nachstellen.


bmwfan

Ich habe jetzt auch FHEM nach Docker auf einer DS720 umgezogen. Dank der Anleitung und den vielen Tips in diesem Thread hat es nach einigem Kampf mit zigbee2mqtt geklappt. Ich denke zwar, dass ich zuviele Ports freigeschalten habe, aber hauptsache es läuft.

Einzig mit der Logdatei habe ich Probleme. Ich habe das Verzeichnis, wie in Post 1 geschrieben, in den Container gemappt und es wird auch in die Logdatei geschrieben. Ich sehe die Einträge aber nur, wenn ich die Logdatei mit einem Editor (ich verwende notepad) öffne. Öffne ich sie über die Web-Oberfläche von FHEM, sind keine Einträge bzw. nur die zum Zeitpunkt des Backups auf dem Raspi vorhandenen, sichtbar.

Hat jemand einen Tip, wie ich das Problem beheben kann?

Anbei das list von global:
Internals:
   DEF        no definition
   FD         3
   NAME       global
   NR         1
   STATE      no definition
   TYPE       Global
   currentlogfile ./log/fhem-2021-12-07.log
   init_errors Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected
  telnetPort is not password protected
  MQTT2_FHEM_Server is not password protected

Protect this FHEM installation by configuring the allowed device allowed_WEBS
You can disable this message with attr global motd none

   logfile    ./log/fhem-%Y-%m-%d.log
   hmccu:
Attributes:
   autoload_undefined_devices 1
   autosave   0
   blockingCallMax 10
   configfile fhem.cfg
   dnsServer  192.168.178.1
   exclude_from_update 98_freezemon.pm 73_PRESENCE.pm
   holiday2we BWFeiertageUrlaub
   language   DE
   logfile    ./log/fhem-%Y-%m-%d.log
   modpath    .
   motd       none
   mseclog    1
   nofork     0
   nrarchive  14
   pidfilename ./log/fhem.pid
   room       9.6.0_System
   sendStatistics onUpdate
   stacktrace 0
   statefile  ./log/fhem.save
   updateInBackground 1
   userattr   cmdIcon devStateIcon devStateIcon:textField-long devStateStyle icon mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue power-off power-on presentCycle presentReading sortby webCmd webCmdLabel:textField-long widgetOverride
   verbose    3
   version    fhem.pl:25197/2021-11-07


Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

kadettilac89

Zitat von: bmwfan am 07 Dezember 2021, 20:03:04
Hat jemand einen Tip, wie ich das Problem beheben kann?

Öffnest du das selbe Logfile welches in Fhem konfiguriert wurde? Vermutungen ohne näheren Input von dir ...

- ist die Location in global und im Docker-compose (oder wo auch immer konfiguriert)? ... Tippfehler
- Berechtigungsproblem ...

gib mal
- ein "ls -la" vom Logverzeichnis um zu sehen wie die Berechtigungen gesetzt sind
- Konfiguration in docker, hast du eine eigene Konfiguration für das Logfile? ... Parameter "-e LOGFILE=./log/fhem-%Y-%m-%d.log"
- Zeigt das Log im Docker selber die Meldungen an, diese sollten mit dem Logfile überein stimmen.

bmwfan

Location: Ist im Global und im Docker konfiguriert. Ein List von global war im vorhergehenden Post, ein Screenshot von der Konfiguration in Docker ist im Anhang.
Berechtigung: Im Terminalfenster von Docker habe ich beim Start gesehen, dass die Berechtigungen für fhem vom Programm gesetzt werden. Siehe Anhang

Zitatein "ls -la" vom Logverzeichnis um zu sehen wie die Berechtigungen gesetzt sind
Wie komme ich zu dem Verzeichnis? Ich kann zwar mit Putty auf das NAS, finde aber weder das fhem-Verzeichnis noch das Logverzeichnis. Unter /opt/ liegt nur ein Verzeichnis "containerd" und auch darunter kein fhem. Über den Explorer unter Win10 habe ich das NAS als Netzlaufwerk eingerichtet und kann problemlos auf das Docker- und das darunterliegende fhem-Verzeichnis zugreifen. Berechtigungen unter Win angezeigt: siehe Anhang.

Das Log im Terminalfenster von Docker zeigt dieselben Meldungen an, wie das Log das ich in Notepad öffne und das unter NAS-DS720/docker/fhem/log liegt.

Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

kadettilac89

Die Zeile 4 "Creationg log directory /opt/fhem/./log ... " sieht komisch aus.

Teste mal als Paremter /opt/fhem/log/fhem-%Y-%m-%d.log und erstell den Container neu. Erstmal interessehalber da es eigentlich auch so funktionieren sollte, das oben im Log kann auch ein Darstellungsfheler sein.

bmwfan

#1363
Habs getestet. Logfile in FHEM immer noch nicht aktualisiert, aber jetzt erfolgte auch keine Ausgabe mehr im Terminalfenster der Dockeranwendung

Nachtrag: Fehler gefunden.
Nach dem restore des auf dem Raspi gesicherten FHEM war die Angabe im Logfile falsch. Die DEF des Logfiles war ./log/fhem-%Y-%m.log Logfile

Hier fehlt die Erweiterung auf die tägliche Erstellung eines Logfiles und statt dem üblichen fakelog war Logfile eingestellt.

Besten Dank für die Tips.
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

debu

Hallo zusammen,

ich versuche seit Tagen mein fhem auf docker zu portieren. Portiert habe ich per fhem backup. Leider scheiter ich nach wie vor an den USB devices.
Fhem bzw docker wird auf einem raspi 4 Model B mit Raspberry Pi OS with desktop (Release date: October 30th 2021; Kernel version: 5.10).

Leider bekomme ich unter anderem den HMLAN (HM-CFG-USB/HM-CFG-USB-2) unter docker nicht ans laufen. Auf meiner alten fhem installation (ohne docker) läuft der ohne Probleme.


lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1b1f:c00f eQ-3 Entwicklung GmbH HM-CFG-USB/HM-CFG-USB-2 [HomeMatic Configuration adapter]
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 0451:16a8 Texas Instruments, Inc. CC2531 ZigBee
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


ttyUSB0 existiert bei mir nicht :-(

ls -l /dev/ttyUSB0
ls: cannot access '/dev/ttyUSB0': No such file or directory


Auszug aus meiner docker-compose.yml

services:
  fhem:
    image: fhem/fhem:latest
    container_name: fhem
    restart: unless-stopped
    networks:
      - net
    privileged: true
    ports:
      - "8083:8083"
      - "1883:1883"
    volumes:
      - "~/fhem/:/opt/fhem/"
    devices:
      - "/dev/bus/usb/001/005:/dev/bus/usb/001/005"
    environment:
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin


Beim starten von fhem bekomme ich folgendes:

2021.12.11 10:01:58 1: CUL_HM finished initial cleanup
2021.12.11 10:01:58 1: usb create starting
2021.12.11 10:01:58 3: Probing CUL device /dev/ttyACM0
2021.12.11 10:01:58 3: Probing TCM_ESP3 device /dev/ttyACM0
2021.12.11 10:01:59 3: Probing ZWDongle device /dev/ttyACM0
2021.12.11 10:01:59 3: Probing SIGNALDuino device /dev/ttyACM0
2021.12.11 10:01:59 3: Probing MYSENSORS device /dev/ttyACM0
2021.12.11 10:01:59 3: Probing ArduCounter device /dev/ttyACM0
2021.12.11 10:01:59 3: Probing ElsnerWS device /dev/ttyACM0
2021.12.11 10:02:00 3: Probing FRM device /dev/ttyACM0
2021.12.11 10:02:05 3: Probing CUL device /dev/ttyAMA0
2021.12.11 10:02:05 1: CUL: Can't open /dev/ttyAMA0: Permission denied
2021.12.11 10:02:05 3: Probing CUL device /dev/ttyS0
2021.12.11 10:02:05 1: PERL WARNING: can't getattr: Input/output error at ./FHEM/DevIo.pm line 598.
2021.12.11 10:02:05 1: CUL: Can't open /dev/ttyS0: Input/output error
2021.12.11 10:02:05 1: usb create end


Mir scheint ich habe ein generelles Problem die USB devices nach docker zu mappen/bekannt zu machen? Muss ich dazu den fhem container unbedingt im privilege mode laufen lassen? Aber selbst dann geht es bei mir mit obiger config nicht.
Jemand eine idee?

Danke und beste Gruesse,
DeBu