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
Dumm gefragt: wieso willst du das? dein Rechner hat mit NTP eine viel bessere Zeitbasis als du sie über KNX bekommen könntest.
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
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
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.