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

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #360 am: 11 Mai 2019, 10:14:06 »
2. /dev/fd/63 existiert nicht

Ich vermute du hast /dev/fd/63 irgendwo als LOGFILE gesetzt. Das ist natürlich absoluter quatsch und das musst du irgendwie beheben.

bei dem Text2Speech Modul haben sich die Abhängigkeiten etwas geändert. Bekomme mir der aktuellen Version folgende Meldung:
[.....]
Könntest du die fehlenden Abhängigkeiten bitte noch mit aufnehmen?

Done.

Ist es eventuell möglich die aktuellen Module für DoorBird noch zu integrieren? https://forum.fhem.de/index.php/topic,41758.msg937826.html#msg937826

Die Abhängigkeiten sind etwas exotischer, weshalb das eigentlich eher Kandidaten für die Umgebungsvariablen APT_PKGS oder CPAN_PKGS sind (siehe README.md). Hast du das mal versucht?
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline kjmEjfu

  • Full Member
  • ***
  • Beiträge: 292
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #361 am: 11 Mai 2019, 16:23:05 »
Die Abhängigkeiten sind etwas exotischer, weshalb das eigentlich eher Kandidaten für die Umgebungsvariablen APT_PKGS oder CPAN_PKGS sind (siehe README.md). Hast du das mal versucht?

Hmm, also ich rufe den Container jetzt so auf:

sudo docker run -d --name fhem -p 8083:8083 -e CPAN_PKGS="Crypt::Argon2 Crypt::NaCl::Sodium Alien::Base::ModuleBuild Alien::Sodium" -v /opt/fhem:/opt/fhem fhem/fhem
allerdings kann dann DoorBird nicht definiert werden, weil laut Logfile diese Module fehlen. Mache ich beim Aufruf etwas falsch? Oder werden die nachgelagert installiert und stehen dadurch beim Start von FHEM noch nicht zur Verfügung?

Offline kotaro

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #362 am: 12 Mai 2019, 00:21:08 »
Hallo,

seit neusten ist mir aufgefallen, das der FHEM Container den Raspi ständig belastet Außerdem hört die SD Karte kaum auf zu lesen..
es scheint dem Log geschuldet zu sein...
denn unter htop sehe ich, das vorallem der Prozess cp -1 ca 15% CPU-Last dauerhaft fährt.. das ist auf meinen Raspi 2b jetzt nicht ganz so pralle....
gibt es eine Möglichkeit, das die last wieder verringert wird? bin auf dem DEV-Build. und habe vor 1h ein Pull gemacht...

lg

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #363 am: 12 Mai 2019, 09:41:05 »
Hmm, also ich rufe den Container jetzt so auf:

sudo docker run -d --name fhem -p 8083:8083 -e CPAN_PKGS="Crypt::Argon2 Crypt::NaCl::Sodium Alien::Base::ModuleBuild Alien::Sodium" -v /opt/fhem:/opt/fhem fhem/fhem
allerdings kann dann DoorBird nicht definiert werden, weil laut Logfile diese Module fehlen. Mache ich beim Aufruf etwas falsch? Oder werden die nachgelagert installiert und stehen dadurch beim Start von FHEM noch nicht zur Verfügung?


Du startest damit nur den schon vorhandenen Container. Du musst den Container aber komplett neu anlegen, damit auch die Startphase so abläuft, dass auch Pakete nachinstalliert werden. Das passiert nur ein einziges Mal, wenn du den Container aktualisiert oder neu angelegt hast.


Ob die Pakete installiert werden und ob das erfolgreich ist, siehst du im Docker Logfile für den Container.
« Letzte Änderung: 12 Mai 2019, 09:47:50 von Loredo »
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #364 am: 12 Mai 2019, 09:46:20 »
seit neusten ist mir aufgefallen, das der FHEM Container den Raspi ständig belastet Außerdem hört die SD Karte kaum auf zu lesen..
es scheint dem Log geschuldet zu sein...
denn unter htop sehe ich, das vorallem der Prozess cp -1 ca 15% CPU-Last dauerhaft fährt.. das ist auf meinen Raspi 2b jetzt nicht ganz so pralle....


Bist du sicher, dass der Befehl so heißt, wie heißt der denn ganz genau und unter welchem Benutzer wird er ausgeführt? Einen solchen Befehl gibt es in keinem der Scripts innerhalb des Docker Containers. Das Logfile wird schon seit jeher von FHEM selbst geschrieben, das ist auch keine Besonderheit vom Docker Image. Wenn du ein entsprechend hohes Loglevel eingestellt hast, wird auch mehr produziert und damit auch (regelmäßig) abgespeichert. Es gibt bei FHEM derzeit keinen Modus, um die Logdatei zeitversetzt und resourcenschonender zu schreiben. Das macht wahrscheinlich auch wenig Sinn, denn man möchte in der Regel die Logausgaben sehr zeitnah sehen.
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline kotaro

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #365 am: 12 Mai 2019, 10:39:36 »

Bist du sicher, dass der Befehl so heißt, wie heißt der denn ganz genau und unter welchem Benutzer wird er ausgeführt? Einen solchen Befehl gibt es in keinem der Scripts innerhalb des Docker Containers. Das Logfile wird schon seit jeher von FHEM selbst geschrieben, das ist auch keine Besonderheit vom Docker Image. Wenn du ein entsprechend hohes Loglevel eingestellt hast, wird auch mehr produziert und damit auch (regelmäßig) abgespeichert. Es gibt bei FHEM derzeit keinen Modus, um die Logdatei zeitversetzt und resourcenschonender zu schreiben. Das macht wahrscheinlich auch wenig Sinn, denn man möchte in der Regel die Logausgaben sehr zeitnah sehen.

Morgen,

Den Befehl gibt es in /src/Entry.sh
Und hier zu finden:
# Function to print FHEM log in incremental steps to the docker log.
[ -s "$( date +"${LOGFILE}" )" ] && OLDLINES=$( wc -l < "$( date +"${LOGFILE}" )" ) || OLDLINES=0
NEWLINES=${OLDLINES}
FOUND=false
function PrintNewLines {
  if [ -s "$( date +"${LOGFILE}" )" ]; then
  NEWLINES=$(wc -l < "$(date +"${LOGFILE}")")
  (( OLDLINES <= NEWLINES )) && LINES=$(( NEWLINES - OLDLINES )) || LINES=${NEWLINES}
  tail -n "${LINES}" "$(date +"${LOGFILE}")"
  [ -n "$1" ] && grep -q "$1" <(tail -n "$LINES" "$(date +"${LOGFILE}")") && FOUND=true || FOUND=false
  OLDLINES=${NEWLINES}
  fi
}[/codeA]

Es läuft in der treeansicht unter dem Docker wo auch fhem läuft.
Kann ich dir am Rechner ein Screenshot machen.

Edit: na gut. Mein Docker-image wird auch als Unhealthy  betitelt...

 Container health
Status    unhealthy
Failure count   196
Last output   Health check exceeded timeout (10s)
« Letzte Änderung: 12 Mai 2019, 10:46:07 von kotaro »

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #366 am: 12 Mai 2019, 11:04:41 »
Den Befehl gibt es in /src/Entry.sh
Und hier zu finden:


Ich kann da keinen "cp -1" Befehl finden, tut mir leid.
Alle Befehle, die in dem von dir gezeigten Ausschnitt ausgeführt werden, sind nur lesend aktiv und schreiben nichts.
« Letzte Änderung: 12 Mai 2019, 11:06:22 von Loredo »
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline kotaro

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #367 am: 12 Mai 2019, 11:37:02 »

Ich kann da keinen "cp -1" Befehl finden, tut mir leid.
Alle Befehle, die in dem von dir gezeigten Ausschnitt ausgeführt werden, sind nur lesend aktiv und schreiben nichts.

ja du hast auch absolut recht... ich meine auch wc -1 weshalb ich den teil rausgesucht habe.. war wohl gestern abend etwas zu spät ^^
sorry...
kann ja mal spontan den ganzen Container neu bauen lassen, vielleicht ist dann das unhealthy weg...

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #368 am: 12 Mai 2019, 11:49:48 »
Ah! Du meinst 'wc -l' mit kleinem 'L', das ist keine 1/Eins ;-)


Der Grund fürs unhealthy steht ja im Docker Statusfeld drin. Wahrscheinlich hast du kein Telnet device, was ohne Passwort auf localhost und Port 7072 horcht.
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline kotaro

  • Jr. Member
  • **
  • Beiträge: 73
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #369 am: 12 Mai 2019, 16:13:49 »
Ah! Du meinst 'wc -l' mit kleinem 'L', das ist keine 1/Eins ;-)


Der Grund fürs unhealthy steht ja im Docker Statusfeld drin. Wahrscheinlich hast du kein Telnet device, was ohne Passwort auf localhost und Port 7072 horcht.

Hab ich dann iegendein Device gelöscht? Früher hat er Healthy gesagt... jetzt komischer weise nicht. Kann ich da was korrigieren?

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #370 am: 12 Mai 2019, 19:46:01 »
Ich kenne deine FHEM Installation nicht.
Bei einer frischen Installation, bei der du kein FHEM mitbringt, wird ein Telnet Device angelegt, welches auf Port 7072 auf localhost hört. Das musst du manuell anlegen, wenn du eine bestehende Installation mitbringst und den Health Status bzw. DockerImageInfo nutzen willst. Dabei darf der Zugriff zumindest für localhost nicht über ein allowed Device beschränkt sein. Steht auch in der README, es gilt das gleiche wie für configDB in diesem Fall.
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline KraxelHuber

  • Jr. Member
  • **
  • Beiträge: 91
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #371 am: 16 Mai 2019, 21:13:16 »
Ich würde das Docker Image gerne in mein Version Control System einbinden, so wie auf der Github Seite beschrieben. Es gibt aber leider Probleme :-(
Wenn ich in einem ersten Schritt den Container starte, läuft alles bestens. Ich habe Zugriff auf die an meinem RPi angeschlossenen USB-Sticks (Z-Wave, CUL) und alles scheint gut zu funktionieren. Hier ist die docker-compose.yml, die ich benutze:

version: '2.3'

networks:
  net:
    driver: bridge
    # enable_ipv6: true
    ipam:
      driver: default
      config:
        - subnet: 172.27.0.0/24
          gateway: 172.27.0.1
        # - subnet: fd00:0:0:0:27::/80
        #   gateway: fd00:0:0:0:27::1

services:

  fhem:
    image: fhem/fhem:latest
    container_name: fhem_slave
    restart: always
    networks:
      - net
    ports:
      - "8083:8083"
    volumes:
      - "./fhem/:/opt/fhem/"
    devices:
      - "dev/ttyACM0:/dev/ttyACM0"
      - "dev/ttyACM1:/dev/ttyACM1"
      - "dev/ttyAMA0:/dev/ttyAMA0"
    environment:
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin

Nun habe ich leichte Änderungen an der Konfiguration vornheme, z.B. ein 'update all' und die Änderungen committet und in mein online Repo gepusht. Im Anschluss stoppe und lösche ich den Container. Außerdem lösche ich das gesamte /docker/home/ Verzeichnis, um das Einspielen des "Backups" zu testen. Nachdem ich mein Online Repo dann wieder in dieselben Verzeichnisse gecloned habe, startet der Container beim Aufruf von docker-compose up -d nicht mehr richtig. Er hängt sich anscheinend in einer Art Endlosschleife auf. Ein Aufruf von docker ps zeigt mir im Status "Restarting" an. Ist dieses Phänomen hier irgendwie bekannt? Wo und wie sollte ich evtl. nach dem Fehler suchen?

Offline antonwinden

  • Full Member
  • ***
  • Beiträge: 196
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #372 am: 17 Mai 2019, 18:54:42 »
Kann es sein das
attr global exclude_from_update 88_VantagePro2.pmin fhem.cfg ignoriert wird? Bei einem update all kommt bei mir:
2019.05.17 18:53:17.145 1 : UPD FHEM/88_VantagePro2.pm
2019.05.17 18:53:17.190 1 : open ./FHEM/88_VantagePro2.pm failed: Permission denied, trying to restore the previous version and aborting the update
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Offline KraxelHuber

  • Jr. Member
  • **
  • Beiträge: 91
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #373 am: 17 Mai 2019, 20:44:51 »
Zitat
2019.05.17 18:53:17.145 1 : UPD FHEM/88_VantagePro2.pm
2019.05.17 18:53:17.190 1 : open ./FHEM/88_VantagePro2.pm failed: Permission denied, trying to restore the previous version and aborting the update

Diese Meldungen tauchen bei mir nach einem "update all" überhaupt nicht auf. Der Event Monitor sieht eigentlich ganz normal ohne merkwürdige Meldungen aus.

Es ist wirklich wie verhext. Nach einem

update all

git add -A
git commit -m "Test"
git push

docker stop fhem_slave
docker remove fhem_slave

sudo rm -r /docker/home
cd /docker

sudo git clone HTTPS_ADRESSE_MEINES_REPOS.git home

sieht die Verzeichnisstruktur praktisch genauso aus, wie vor dem ganzen Löschvorgang. Aber der Container will dann einfach nicht starten sondern hängt sich in dieser Endlos-Schleife auf.

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3458
  • ~ Challenging Innovation ~
Antw:Offizielles FHEM Docker Basis Image für verschiedene Plattformen
« Antwort #374 am: 17 Mai 2019, 21:31:10 »
Ist dieses Phänomen hier irgendwie bekannt? Wo und wie sollte ich evtl. nach dem Fehler suchen?


Nein, ist mir nicht bekannt. "docker ps" hilft dir nicht, du musst in die Log Ausgabe von Docker gucken:
https://docs.docker.com/config/containers/logging/


Also "docker logs fhem_slave".
Die Meldungen dort werden dir wahrscheinlich weiterhelfen. Meine Vermutung ist, dass deine Verzeichnisstruktur nicht richtig passt.


Kann es sein das
attr global exclude_from_update 88_VantagePro2.pmin fhem.cfg ignoriert wird?


Der Container hat keinerlei Einfluss darauf. Wahrscheinlich hast du exclude_from_update aber falsch benutzt, ich glaube man schreibt dort nur "88_VantagePro2" rein - ohne ".pm".
Wenn da irgendwelche Verzeichnisberechtigungen nicht stimmen, liegt das nicht am Docker Container. Dort werden beim Start alle Rechte ordentlich gesetzt. Was während der Laufzeit so passiert, liegt an dir. Vermutlich hast du die Datei dort manuell hinkopiert und die Berechtigungen dabei nicht korrigiert.
FHEM-Module: ENIGMA2, GEOFANCY, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

FHEM-Docker auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

 

decade-submarginal