Google Authenticator geht seit der Umstellung auf die Sommerzeit nicht mehr

Begonnen von mistepke, 31 März 2026, 20:04:05

Vorheriges Thema - Nächstes Thema

Sidey

Zitat von: mistepke am 01 April 2026, 21:36:27Die Frage ist aber wie?


Perl Pakete gemäß Anleitung nachinstallieren über cpm.
https://github.com/fhem/fhem-docker?tab=readme-ov-file#add-custom-packages

Da ich das Google Authenticator Plugin nicht kenne. Wo kommt das her?
Wenn es eine Quelle gibt, dann schau ich mal was ich machen kann, damit die Abhängigkeit im Docker Image enthalten ist



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

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

mistepke

In diesem Git-Hub kann man im Script erkenne wo die Doku ist und welche Module man braucht: https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/98_GoogleAuth.pm

Und: https://fhem.de/commandref.html#GoogleAuth

Zitat von: Sidey am 01 April 2026, 22:31:56
Zitat von: mistepke am 01 April 2026, 21:36:27Die Frage ist aber wie?


Perl Pakete gemäß Anleitung nachinstallieren über cpm.
https://github.com/fhem/fhem-docker?tab=readme-ov-file#add-custom-packages

Da ich das Google Authenticator Plugin nicht kenne. Wo kommt das her?
Wenn es eine Quelle gibt, dann schau ich mal was ich machen kann, damit die Abhängigkeit im Docker Image enthalten ist



Grüße Sidey

passibe

Gib uns bitte mal dein compose file.

Ich kann das hier
Zitat von: mistepke am 01 April 2026, 18:47:32Im Docker Container habe ich die notwendigen Pakete mit:

sudo apt-get install libconvert-base32-perl libauthen-oath-perl libcrypt-urandom-perl

nachinstalliert. Hat auch nichts geholfen.
und das hier
Zitat von: mistepke am 01 April 2026, 19:07:502026.04.01 18:53:21 1:  reload: Error:Modul 98_GoogleAuth deactivated:
 Can't locate Authen/OATH.pm in @INC (you may need to install the Authen::OATH module) (@INC entries checked: . ./FHEM ./lib /usr/src/app/core/lib/perl5/aarch64-linux-gnu /usr/src/app/core/lib/perl5 /usr/src/app/3rdparty/lib/perl5/aarch64-linux-gnu /usr/src/app/3rdparty/lib/perl5 /usr/local/lib/perl5/site_perl/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/site_perl/5.38.5 /usr/local/lib/perl5/vendor_perl/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/vendor_perl/5.38.5 /usr/local/lib/perl5/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/5.38.5 ./FHEM/lib) at ./FHEM/98_GoogleAuth.pm line 87.
BEGIN failed--compilation aborted at ./FHEM/98_GoogleAuth.pm line 87.
nämlich aus zwei Gründen nicht nachvollziehen:

1. Das Nachinstallieren von Paketen war auf die von dir beschriebene Weise noch nie sinnvoll möglich (in einen laufenden Container "hineininstallierte" Pakete sind nämlich weg, wenn der Container neu erstellt wird). Ab Image-Version 4 muss man dazu ein eigenes Image bauen; die alte Methode über APT_PKGS, etc. funktioniert nicht mehr: https://github.com/fhem/fhem-docker?tab=readme-ov-file#since-version-4. Darauf hat Sidey auch schon hingewiesen.

2. Ist das aber für Google Authenticator überhaupt nicht notwendig, weil jedenfalls Authen::OATH standardmäßig vorhanden ist und define GoogleAuth GoogleAuth jedenfalls im aktuellen Docker Image (5-bookworm) problemlos ausgeführt werden kann.
Ob ein Perl-Paket installiert ist, kann man mit perldoc -l <PAKET> testen.
Wenn ich bei mir in der FHEM-Kommandozeile (Image-Tag 5-bookworm)"perldoc -l Authen::OATH"eingebe (wichtig, mit Anführungszeichen!), erscheint bei mir der Pfad /usr/src/app/core/lib/perl5/Authen/OATH.pm im FHEM-Logfile.

Gleiches Ergebnis mitsudo docker exec -it <FHEM_CONTAINER> perldoc -l Authen::OATHauch hier wird der Pfad zurückgegeben.

Deshalb bitte dein compose file posten. Wenn du docker run nutzt, bitte nimm dir erstmal die Zeit und steig auf docker compose um. docker run sollte mE nicht für dauerhaft laufende Dienste verwendet werden; das eignet sich eher zum testen oder für one-shot-Befehle:

Zitat von: passibe am 09 Januar 2026, 21:12:30Am besten man nutzt nicht docker run, sondern docker compose und ein entsprechendes compose file.

Mit docker run sind sämtliche Parameter mit denen man den container startet nur extrem schlecht reproduzierbar (allenfalls über die Terminal-history). Das ist meiner Meinung nach alles eher ungeeignet für Container, die ständig laufen sollen und von deren (Docker-)Konfiguration man auch ein vernünftiges Backup haben will.

mistepke

Danke für die Hilfe.

Hier mein docker-compose.yml file:

networks:
  intranet:
    external: true

services:
  fhem:
    container_name: fhem
    restart: always
    image: fhem/fhem
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    networks:
      - intranet
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
    ports:
      - 8083:8083
      - 8084:8084
      - 1883:1883
      - 7073:7073
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /srv/docker/fhem/data:/opt/fhem
    - /media/USB:/media/USB

  homebridge:
    depends_on:
    - fhem
    container_name: homebridge

    image: homebridge/homebridge:latest
    labels:      com.centurylinklabs.watchtower.enable: "true"
    restart: always
    network_mode: host
    volumes:

    - /etc/localtime:/etc/localtime:ro
    - /srv/docker/homebridge/data:/homebridge
    - /srv/docker/homebridge/data:/var/homebridge

  mariadb:
    command: --connect-timeout=60 --max_allowed_packet=1G>
    container_name: mariadb
    restart: always
    image: mariadb:10.6
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    networks:
      - intranet
    ports:
      - 3306:3306
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /srv/docker/mariadb/data:/var/lib/mysql

  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    restart: always
    networks:
    - intranet
    environment:

      PMA_HOST: mariadb
    ports:
      - 8080:80
    depends_on:
      - mariadb

  portainer:
    container_name: portainer
    restart: always
    image: portainer/portainer-ce
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    ports:
      - 9443:9443 # CONTAINER PORT MUST BE 9443 and not 9>
    networks:
    - intranet
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /var/run/docker.sock:/var/run/docker.sock
    - /srv/docker/portainer/data:/data

  watchtower:
    container_name: watchtower
    restart: always

    restart: always
    command: --schedule "0 30 0 * * *" --cleanup
    environment:
      WATCHTOWER_LABEL_ENABLE: "true"
    image: containrrr/watchtower
    labels:
      com.centurylinklabs.watchtower.enable: "false"
    network_mode: "bridge"
    volumes:
    - /etc/localtime:/etc/localtime:ro
    - /var/run/docker.sock:/var/run/docker.sock




Zitat von: passibe am 01 April 2026, 22:56:37Gib uns bitte mal dein compose file.

Ich kann das hier
Zitat von: mistepke am 01 April 2026, 18:47:32Im Docker Container habe ich die notwendigen Pakete mit:

sudo apt-get install libconvert-base32-perl libauthen-oath-perl libcrypt-urandom-perl

nachinstalliert. Hat auch nichts geholfen.
und das hier
Zitat von: mistepke am 01 April 2026, 19:07:502026.04.01 18:53:21 1:  reload: Error:Modul 98_GoogleAuth deactivated:
 Can't locate Authen/OATH.pm in @INC (you may need to install the Authen::OATH module) (@INC entries checked: . ./FHEM ./lib /usr/src/app/core/lib/perl5/aarch64-linux-gnu /usr/src/app/core/lib/perl5 /usr/src/app/3rdparty/lib/perl5/aarch64-linux-gnu /usr/src/app/3rdparty/lib/perl5 /usr/local/lib/perl5/site_perl/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/site_perl/5.38.5 /usr/local/lib/perl5/vendor_perl/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/vendor_perl/5.38.5 /usr/local/lib/perl5/5.38.5/aarch64-linux-gnu /usr/local/lib/perl5/5.38.5 ./FHEM/lib) at ./FHEM/98_GoogleAuth.pm line 87.
BEGIN failed--compilation aborted at ./FHEM/98_GoogleAuth.pm line 87.
nämlich aus zwei Gründen nicht nachvollziehen:

1. Das Nachinstallieren von Paketen war auf die von dir beschriebene Weise noch nie sinnvoll möglich (in einen laufenden Container "hineininstallierte" Pakete sind nämlich weg, wenn der Container neu erstellt wird). Ab Image-Version 4 muss man dazu ein eigenes Image bauen; die alte Methode über APT_PKGS, etc. funktioniert nicht mehr: https://github.com/fhem/fhem-docker?tab=readme-ov-file#since-version-4. Darauf hat Sidey auch schon hingewiesen.

2. Ist das aber für Google Authenticator überhaupt nicht notwendig, weil jedenfalls Authen::OATH standardmäßig vorhanden ist und define GoogleAuth GoogleAuth jedenfalls im aktuellen Docker Image (5-bookworm) problemlos ausgeführt werden kann.
Ob ein Perl-Paket installiert ist, kann man mit perldoc -l <PAKET> testen.
Wenn ich bei mir in der FHEM-Kommandozeile (Image-Tag 5-bookworm)"perldoc -l Authen::OATH"eingebe (wichtig, mit Anführungszeichen!), erscheint bei mir der Pfad /usr/src/app/core/lib/perl5/Authen/OATH.pm im FHEM-Logfile.

Gleiches Ergebnis mitsudo docker exec -it <FHEM_CONTAINER> perldoc -l Authen::OATHauch hier wird der Pfad zurückgegeben.

Deshalb bitte dein compose file posten. Wenn du docker run nutzt, bitte nimm dir erstmal die Zeit und steig auf docker compose um. docker run sollte mE nicht für dauerhaft laufende Dienste verwendet werden; das eignet sich eher zum testen oder für one-shot-Befehle:

Zitat von: passibe am 09 Januar 2026, 21:12:30Am besten man nutzt nicht docker run, sondern docker compose und ein entsprechendes compose file.

Mit docker run sind sämtliche Parameter mit denen man den container startet nur extrem schlecht reproduzierbar (allenfalls über die Terminal-history). Das ist meiner Meinung nach alles eher ungeeignet für Container, die ständig laufen sollen und von deren (Docker-)Konfiguration man auch ein vernünftiges Backup haben will.

Sidey

@mistepke:

Bitte nutze doch folgendes Image für FHEM:

image: ghcr.io/fhem/fhem-docker:5-bookworm

Womöglich nutzt Du das schon, aber deine Compose Datei ist da leider nicht eindeutig.

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

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

betateilchen

Zitat von: Sidey am 01 April 2026, 22:31:56Da ich das Google Authenticator Plugin nicht kenne. Wo kommt das her?

Das ist ein offizielles FHEM-Modul namens 98_GoogleAuth.pm
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mistepke

Das sind die Infos aus dem Docker Image das ich einsetze:

org.fhem.authors   https://fhem.de/MAINTAINER.txt
org.fhem.description   FHEM (TM) is a GPL'd perl server for house automation. It is used to automate some common tasks in the household like switching lamps / shutters / heating / etc. and to log events like temperature / humidity / power consumption.
org.fhem.documentation   https://fhem.de/#Documentation
org.fhem.licenses   GPL-2.0
org.fhem.source   https://svn.fhem.de/
org.fhem.url   https://fhem.de/
org.fhem.vendor   FHEM e.V.
org.opencontainers.image.authors   https://github.com/fhem/fhem-docker/graphs/contributors
org.opencontainers.image.created   2026-03-29T08:51:22.759Z
org.opencontainers.image.description   A basic Docker image for FHEM house automation system, based on Debian Linux.
org.opencontainers.image.documentation   https://github.com/fhem/fhem-docker/blob/588efdb1cc003bde673875c5296b33e1f05050d5/README.md
org.opencontainers.image.licenses   MIT
org.opencontainers.image.revision   588efdb1cc003bde673875c5296b33e1f05050d5
org.opencontainers.image.source   https://github.com/fhem/fhem-docker
org.opencontainers.image.title   fhem-docker
org.opencontainers.image.url   https://github.com/fhem/fhem-docker
org.opencontainers.image.vendor   FHEM
org.opencontainers.image.version   5

mistepke


betateilchen

Kannst Du für das Posten von Dateiinhalten bzw. sonstigen Bildschirmausgaben bitte code-Tags benutzen? Das erleichtert die Lesbarkeit erheblich.

Danke.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

passibe

Zitat von: mistepke am 01 April 2026, 23:10:43Hier mein docker-compose.yml file:
Danke!

Das sieht ja eigentlich ganz gut aus. Nur folgende allgemeine Anmerkungen:

1. Würde auch dringend empfehlen, mindestens die Version explizit zu deklarieren, wie Sidey empfohlen hat (ob du jetzt ghcr benutzt oder nicht, ist wohl Geschmackssache). fhem/fhem ist zwar aktuell (!) dasselbe wie fhem/fhem:5-bookworm, aber ohne :5-bookworm kann es sein, dass es wegen Watchtower ein böses Erwachen gibt, sobald es eine neue major Version gibt mit breaking changes.

2. Würde für wichtige Container evtl. auch das monitor-only-Label von watchtower verwenden. Außerdem ist containrrr/watchtower deprecated, für Alternativen siehe: https://www.reddit.com/r/selfhosted/comments/1r3rswo/watchtower_is_no_longer_maintained_alternatives/

Zum eigentlichen Problem:

Kannst du vielleicht einfach mal den Container stoppen, entfernen und neu starten?
Weil du depends_on verwendest, vielleicht einfach mal den ganzen Stack neu starten:
sudo docker compose -f <Pfad zum compose file> down && sudo docker compose -f <Pfad zum compose file> up -d
Und nachdem das geschehen ist, was passiert, wenn du die Befehle hier
Zitat von: passibe am 01 April 2026, 22:56:37"perldoc -l Authen::OATH"eingebe (wichtig, mit Anführungszeichen!), erscheint bei mir der Pfad /usr/src/app/core/lib/perl5/Authen/OATH.pm im FHEM-Logfile.

Gleiches Ergebnis mit
sudo docker exec -it <FHEM_CONTAINER> perldoc -l Authen::OATHauch hier wird der Pfad zurückgegeben.
bzw.
define GoogleAuth GoogleAuthausführst?

mistepke

Danke für die Hinweise, ich werde die abarbeiten. Bin gerade im Urlaub und das mache ich dann doch lieber in Ruhe wenn ich wieder zuhause bin.
Melde mich wieder und nochmals danke!