Docker / Container alexa-fhem und fhem mit docker volume fhem_log

Begonnen von FlatTV, 12 Oktober 2026, 21:22:59

Vorheriges Thema - Nächstes Thema

FlatTV

Hallo @Sidey

Ich würde mir die oben beschriebene Funktion wünschen.
Ziel soll es sein, dass weiterhin das alexa log in fhem einsehbar bleiben soll.
Der Weg über ein docker volume scheint mir da sinnvoll.

Was meinst du?

Grüße Jörg

Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

passibe

Was passiert, wenn du beide auf denselben bind mount legst? Musst nur ggf. die Berechtigungen bzw. UID/GID des Containers anpassen.

(Docker volumes sollte man meiner Meinung nach sowieso eher vermeiden, weil sie eine Abstraktionsebene einfügen, die nervig zum debuggen und backupen ist.)

Sidey

Der output von Alexa-fhem landet im log des Containers.

Damit das möglich ist, müsste das Log zusätzlich in eine Datei umgeleitet werden.

Grüße Sidey
Nutze: SIGNALDuino, Homematic, Raspberry Pi, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt, tasmota

Maintainer von: SIGNALduino, SD_WS*, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp, midea-mqtt, whatsmeow-mqtt, alexa-cookie-service
https://github.com/sidey79?tab=repositories

Sidey

Ich hab mal was entwickeln lassen:

Für den Test kann dieses Image verwendet werden:
docker pull ghcr.io/fhem/alexa-fhem:pr-340
Eine Beschreibung wie es integriert wird gibt es hier:

https://github.com/fhem/alexa-fhem-docker/tree/feature/optional-logfile#optional-logfile

Grüße Sidey
Nutze: SIGNALDuino, Homematic, Raspberry Pi, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt, tasmota

Maintainer von: SIGNALduino, SD_WS*, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp, midea-mqtt, whatsmeow-mqtt, alexa-cookie-service
https://github.com/sidey79?tab=repositories

FlatTV

THX,

ich probiere das am WE aus.
Zwischenzeitlich habe ich provisorisch ein Script auf dem Host eingerichtet.
Da wird aus dem Container alexa-fhem, dass Log abgegriffen und dem Container fhem zur Verfügung gestellt (auf dem Host).

#!/usr/bin/bash

LOG_DIR="/opt/docker/smarthome/fhem/log"
CONTAINER="alexa-fhem"
TZ="Europe/Berlin"

umask 027
mkdir -p "$LOG_DIR"

while true
do
    while IFS= read -r line
    do
        # Docker-Zeitstempel am Zeilenanfang auswerten
        timestamp="${line%% *}"

        if [[ "$timestamp" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*Z$ ]]
        then
            logfile_date=$(TZ="$TZ" date -d "$timestamp" +%F 2>/dev/null)
        else
            logfile_date=""
        fi

        # Fallback für Zeilen ohne gültigen Zeitstempel
        if [[ -z "$logfile_date" ]]
        then
            logfile_date=$(TZ="$TZ" date +%F)
        fi

        printf '%s\n' "$line" >> \
            "$LOG_DIR/alexa-fhem-${logfile_date}.log"

    done < <(
        /usr/bin/docker logs \
            --follow \
            --timestamps \
            --tail 0 \
            "$CONTAINER" 2>&1
    )

    # Nach Verbindungsabbruch erneut verbinden
    sleep 2
done
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)