Datum/Uhrzeit aus KNX als Systemzeit setzen

Begonnen von mani, 22 April 2017, 23:05:05

Vorheriges Thema - Nächstes Thema

mani

Hallo,
möchte die Zeit aus dem KNX holen und als Systemzeit setzen, ist das möglich? Werden DPT10/DPT11 in fhem aktualisiert oder ist es nur möglich die Systemzeit ans KNX zu senden?
Danke MfG Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

smurfix

Dumm gefragt: wieso willst du das? dein Rechner hat mit NTP eine viel bessere Zeitbasis als du sie über KNX bekommen könntest.

Andi291

Kann ich aber nachvollziehen. Ich hab ne KNX-Wetterstation und speise die Zeit auch nach FHEM.
Sinn und Unsinn der einigen Sekunden Unschärfe dahingestellt :-)

So geht's:

sudo nano /etc/sudoers

paste:
Cmnd_Alias DATE=/bin/date
fhem ALL=(root) NOPASSWD: DATE

Test (fhem.cfg)
define test dummy
define Notify_test1 notify test:geht {system ("sudo date -s 09:00")}
define Notify_test2 notify test:nicht {system ("sudo reboot")}


Grüße, Andi

mani

Hallo und Danke für die Infos...

ich möchte eine Visu fürs KNX ohne Internetanbindung realisieren daher möchte ich die Zeit aus dem KNX.....
Da ich zurzeit noch keine Anbindung zu KNX kann ich meine versuche noch nicht testen. :-\


....sehe ich das richtig das wenn KNX die Gruppenaddressen für Datum/Uhrzeit neu befühlt ich ein State in diesem Format datedev 23.04.2017   timedev 13:08:10 bekomme?

Dann würde es so versuchen:

define datedev KNX 1/1/1:dpt11
define timedev KNX 1/1/0:dpt10


define at_Time at +*00:59:00 { fhem("set Time ".(Value("datedev")." ".Value("timedev"))) } ;;;; {system("/opt/fhem/log/Time.sh");;;;}

define Time dummy
attr Time event-on-change-reading .*

define Timelog FileLog ./log/Time.log Time


im Skript steht das

#!/bin/bash


jahr=$(tail -n -1 /opt/fhem/log/Time.log | cut -d " " -f3 | cut -d "." -f3)
monat=$(tail -n -1 /opt/fhem/log/Time.log | cut -d " " -f3 | cut -d "." -f2)
tag=$(tail -n -1 /opt/fhem/log/Time.log | cut -d " " -f3 | cut -d "." -f1)
time=$(tail -n -1 /opt/fhem/log/Time.log | cut -d " " -f4)
sudo date -s "$jahr-$monat-$tag $time"


der Code funktioniert soweit aber wird das  Timedev automatisch mit der KNX-Zeit synchronisiert?


MFG Mani

RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

enrikb

Ich möchte noch zu bedenken geben, dass (zumindest unixoide) Betriebssysteme und darauf laufende Anwendungen nicht so gerne "Zeitsprünge" sehen. Daher versucht man üblicherweise "Zeit stellen" auf den Bootvorgang zu beschränken. Während des  Normalbetriebs möchte man mit Driftkorrektur auskommen. -> ntp

Evtl. kann man aus den KNX Zeitdaten ja eine Echtzeitquelle für ntpd basteln? Ist aber bestimmt nicht trivial.