Homematic Geräte haben falsche Uhrzeit (Docker)

Ich nutze für meine Heimautomation home-assistant.io und habe für die Anbindung von Homaticgeräten einen Raspberry PI mit dem HM-MOD-RPI-PCB laufen. Als CCU Alternative verwende ich homegear. Soweit klappt aktuell auch erstmal alles, die Geräte sind angeschlossen und ich empfange alle Daten.

EIn einziges Problem habe ich nicht. Die Heizungsthermostate zeigen bei mir alle eine Uhrzeit um 1 Stunde versetzt an. Als ob Sie auf UTC laufen. Ich habe die Uhrzeit schon an den Geräte korrigiert, aber über Nacht stellt sich diese wieder zurück.

Frage 1: Sendet homegear automatisch eine Zeitsynchronisation an die Homematic Geräte?

Die Zeitzone von meinem Raspberry PI habe ich auch nochmal geprüft, dort steht alles auf Europa/Berlin. Auch in der php.ini von homegear steht als Zeitzone Europa/Berlin.

Frage 2: Hat jemand eine Idee, wie ich die Zeit richtig konfigurieren kann?

Hallo @foxcris,

Ja. Es wird die Zeit des Hostsystems gesendet. Ist die Ausgabe von date korrekt?

Viele Grüße

Sathya

1 Like

Die Ausgabe von “date” ist korrekt. Daher verstehe ich ja nicht, warum die Zeit auf den Homematic Geräten immer abweicht.

Aktivier mal Loglevel 4 und führe dann ein paar Stunden später folgenden Befehl aus:

grep  -E " [0-9,A-F]{6}3F"  /var/log/homegear/homegear.log

Poste hier die Ausgabe. Das zeigt uns, was an die Geräte gesendet wird.

Danke für die Hilfe. ICh habe das Logging geändert und homegear nun laufen lassen.
-> Seid dem funktioniert das mit der Uhrzeit bei mir. Das wird nichts mit dem Logging zu tun haben aber ich habe im Moment keine Ahnung was ich geändert habe, dass es nun geht.

Danke trotzdem für die Hilfe.

hi @sathya, leider habe ich das gleiche problem. bei mir läuft homegear in docker auf einer synology diskstation.

im docker container spuckt “date” das korrekte datum aus, auch hwclock unf timezone stimmen:

root@homegear:/# date
Wed Mar 28 19:41:24 CEST 2018
root@homegear:/# hwclock
2018-03-28 19:41:32.125769+0200
root@homegear:/# cat /etc/timezone
Europe/Berlin
root@homegear:

im Homegear logfile sehe ich aber immer nur die UTC Zeit, d.h. aktuell 2h zu früh.

Wie kann ich das ändern?

Ich nutze Homegear ohne Docker auf einem Pi und da funktioniert alles. Deswegen hier nur eine Vermutung:

Könnte es sein, dass die Zeitzone im Docker nicht richtig eingestellt ist?

cat /etc/timezone

Ich benutze Homegear mit Docker auf einem Pi und es ist m.E. wichtig, dass man /etc/localtime in den Container reicht. Also -v /etc/localtime:/etc/localtime:robot:

timezone ist korrekt manuell gesetzt, es fehlte wohl aber die “zoneinfo”. Unter Synology-Docker kann man den Dockeraufruf nicht manipulieren, bzw. nur umständlich. Daher sollte das meiner Meinung nach gleich beim Container-Bauen gemacht werden.

@sathya es macht evtl. Sinn die ENV Variable “TZ” hierfür zu nutzen, also wenn die in Docker gesetzt ist dann im Dockerfile diesen Befehl mit einfügen:

ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Damit funktioniert es :slight_smile:

Jetzt muss ich nur noch abwarten ob/wann die korrekte Uhrzeit bei den Homematic Komponenten ankommt, über Nacht ist das leider nicht passiert. Gibts hier Erfahrungswerte?

1 Like

Hattest Du Erfolg? Ich habe dasselbe Problem bei MAX!-Geräten. (Bin jetzt gerade dabei zu versuchen, die korrekte Uhrzeit bzw. TZ einzufügen.)

Du hast das Dockerfile angepasst, richtig?

Ich habe jetzt mit @m0wlheld’s Lösung erfolg gehabt.

ja hatte erfolg indem ich einfach lange gewartet habe.

nein setze das nicht im dockerfile, sondern im start.sh script gleich am anfang.

@sathya ist das inzwischen im aktuellen docker image gelöst? ich würde gerne meinen manuellen workaround wieder rausbauen :wink:

Hallo @nicx,

mit -e TZ=Europe/Berlin als Parameter an Docker (siehe https://hub.docker.com/r/homegear/homegear/) sollte es eigentlich gelöst sein.

Viele Grüße

Sathya

@sathya leider nein: ich habe die ENV variable gesetzt, im logfile sehe ich aber nach wie vor die falsche uhrzeit, auch meine themrostate zeigen diese falsche uhrzeit an.

Im Dockercontainer ist die Zeitzone in localtime und timezone noch falsch, “date” hingegen korrekt:

root@homegear:/# cat /etc/localtime
TZif2UTCTZif2UTC
UTC0

root@homegear:/# cat /etc/timezone
Etc/UTC

root@homegear:/# date
Thu Jul 5 09:12:58 CEST 2018

mit dem befehl
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

kann ich das berichtigen, allerdings eben leider nur manuell im nachgang :slight_smile:

Hmm, dann muss ich noch einmal schauen. Geht es denn mit:

-v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro

?

kann ich leider nicht testen, da ich im synology docker über deren oberfläche nur env variablen setzen/mitgeben kann

Hmm, leider habe ich keine Synology… Es wäre klasse, wenn jemand mit Synology sich auf die Suche nach einer Lösung machen würde. Diese baue ich dann gerne in den Container ein.

wie geschrieben: wenn ich diese zeile

ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

in das docker-start-script “/start.sh” hinzufüge funktioniert es. das wäre doch eine lösung, oder nicht?

Ist drin :wink: (https://github.com/Homegear/Homegear-Docker/commit/fa257aa76a49fb075b0a7862b3462266e59607b7).

Welches Abbild verwendest du? Dann erstelle ich dir dieses zum Testen einmal manuell neu.

wow klasse, danke! ich nutze das nighly :slight_smile: