Direkt zum Inhalt
PekawayPekaway
Zeit und Timer

Zeit und Timer

In diesem Tutorial schauen wir uns an, wie wir Relays automatisch schalten lassen können und wie wir die korrekte Uhrzeit in unser System bekommen.

Zeit

Am einfachsten bekommen wir die Zeit natürlich, wenn das System eine bestehende Internetverbindung hat. Dann wird automatisch ein öffentlicher NTP-Server (Network Time Protocol) angefragt, und das Betriebssystem kann die Uhrzeit synchron halten. Voraussetzung dafür ist, dass "Network Time Sync" aktiv ist.

Über diesen Switch wird der Debian Service "systemd-timesyncd.service" einfach an- oder ausgeschalten. Status Timesync überprüft einmal bei einem Neustart von Node-RED ob der Dienst aktiv im Hintergrund läuft.

Funfact am Rande: Die Funktion "client time in toolbar" hieß vorher "system time in toolbar". Da dahinter allerdings etwas Javascript steckt, welches im Browser des Endgeräts geladen wird, wird letztendlich die Zeit des Browsers bzw. des Endgeräts dort angezeigt.

Wenn das System keine aktive Internetverbindung hat gibt es verschiedene Wege, wie man die richtige Zeit einstellen kann.

Möglichkeit 1 Touchdisplay:

Im Touchdisplay ist eine Real Time Clock (RTC) verbaut. Solange das Touchdisplay verbunden ist, bekommen wir also die Zeit auch von dort. Schwierig wird das allerdings, wenn man sich in anderen Zeitzonen befindet, das bekommt die RTC ja nicht mit.

Möglichkeit 2 Konsole:

Ein einfacher Befehl in folgendem Format reicht aus, um über die Konsole die aktuelle Zeit zu setzen: "sudo date -s 'yyyy-mm-dd hh:mm:ss'"

Möglichkeit 3 HTTP-API:

Die neue VanPi OS Version (v1.1.0) stellt einen HTTP Endpunkt bereit, um die Zeit setzen zu können. Dafür schickt man ein PUT-Request and <RPI-IP>:1880/attime mit den Parametern date, time und gmt in einem bestimmten Format:

/attime?date=yy/mm/dd&time=hh:mm:ss&gmt=+04

(Headers: "Content-Type: text/html; charset=utf-8")

date und time sind selbsterklärend, der Parameter hinter gmt steht für die Abweichung der Zeitzone zur Greenwich Mean Time. Dabei werden immer 15 Minuten Abstände angegeben, man kann hier Werte von -48 bis +48 setzen. +04 steht entsprechend für 4x15min, also eine Stunde. Letztendlich wird dann der in Möglichkeit 2 genannte Befehl im Hintergrund ausgeführt.

Möglichkeit 3 haben wir implementiert, um später über die Smartphone App die Zeit einstellen zu können, dabei wird die IoT-Bridge über das Mobilfunknetz die aktuelle Zeit abfragen und dann an den Raspberry schicken.

Zu beachten gibt es hier, dass solange Network Time Sync aktiv ist und eine aktive Internetverbindung besteht, manuell gesetzte Zeiten sehr schnell wieder überschrieben werden.

Timer

Eine der wichtigsten Timer Funktionen ist sicherlich die Möglichkeit, die Heizung zeitgesteuert zu betreiben. Dafür können wir im Dashboard einfach angeben, wann die Heizung angehen soll, wann sie wieder ausgeht und an welchen Wochentagen das passiert. Zur Aktivierung einfach den Switch "Timer On/Off" einschalten.

 

Zusätzlich zur Heizung besteht die Möglichkeit auch die Relays über die Zeit steuern zu können. Es gibt im Config Menü, unter dem Punkt Switches den Button "Switch Scheduler". Dort könnt ihr eure Zeiten einstellen.

Die erste Spalte "Auto Turn Off" ist dabei unabhängig von der Systemzeit, es wird dabei jedes Mal wenn das entsprechende Relay geschaltet wird, der ausgewählte Zeitwert abgewartet und das entsprechende Relay ausgeschaltet. 

Daneben finden wir dann ähnliche Einstellungsmöglichkeiten wie bei der Heizung, Relays können zu einem bestimmten Zeitpunkt an- oder ausgeschaltet werden. Hier dann wieder in Abhängigkeit von der Systemzeit.

Das Ganze funktioniert natürlich auch mit den Dimmern und Wifi-Relays, so könnte man zum Beispiel die Dimmer über eine bestimmte Zeitspanne langsam runterfahren lassen. Oder hoch, zum Aufstehen.

Während es bei den Relays und Wifi-Relays nur die Möglichkeit zum Ein- oder Ausschalten gibt, haben wir bei den Dimmern ein Freitextfeld implementiert, in welches die Werte von 0-100 eingetragen werden können, um die angestrebte Helligkeit zu erreichen. (true oder false entsprechen den Werten 100 bzw. 0)

 

///Nachtrag

Auf dem Relayboard sind die Pins für die Standart RPI RealTimeClock (ds3231) schon vorgesehen. (J9) Damit könnt ihr diese einfach aufstecken und habt somit direkt die Uhrzeit offline auch ohne Display. 

Ein Tutorial zum einstellen findet ihr hier:

https://www.raspberry-pi-geek.de/ausgaben/rpg/2015/03/echtzeituhr-modul-ds3231-sorgt-fuer-genaue-zeitangaben/2/

Wir versuchen die nötigen Einstellungen schon im normalen Image zusetzen, dann müsst ihr die Uhr nur noch aufstecken/auflöten. 

 

Hinterlasse einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht..

weitere Tutorials

OpenSource needs Support

werde jetzt Patron

Mehr Projekte, mehr Tutroials und mehr unterstütze Geräte. Unsere Community wächst und freut sich auch über deine Unterstützung. Werde also jetzt Patron um immer die neuesten Inhalte zu erhalten und gleichzeitig das VAN PI Projekt zu unterstützen.

Patron werden
Warenkorb 0

Dein Warenkorb ist leer

Beginn mit dem Einkauf