Webservice Zeitpläne für bestimmte Geräte in der Hausautomatisierung

Ein Zeitplan implementiert quasi eine Schaltuhr für beliebige Geräte, ist zentral hinterlegt und wird regelmäßig abgefragt.

Für mein Framework ist das Thema Hausautomatisierung ein riesen Gewinn -- weil es extrem einfach integrierbar und beliebig erweiterbar ist.

Ein zentral hinterlegter Zeitplan für mehrere Geräte ermöglicht den Remote(Fern)-Zugrif, während die Engine mit den Schalteinheiten für die jeweiligen Geräte in der Nähe dieser aufgestellt ist und diese beispielsweise per Funksteuerung schaltet. Jede Minute fragt die Engine den Zeitplan ab welcher den Zustand für jedes Gerät vorgibt: Ein/Aus, eine bestimmte Leistung (Dimmer) oder einen bestimmten Sollwert wie z.B. 21°C. Ein Zeitplan als Webservice heißt nichts weiter, als dass dieser per HTTP abgefragt werden kann.

Diese DEMO emuliert die Fernabfragen der Engine über AJAX und gibt die programmierten Sollvorgaben in einer Tabelle aus. Gleichermaßen können Einstellungen in untenstehenden Tabellen zu jedem Gerät konfiguriert und getestet werden.

Hinweise zur Erstellung eines Zeitplanes

Jedes Zeitinterval beginnt und endet mit einer Uhrzeit (Stunde oder Stunde:Minute) oder einer Funktion. Möglich sind für Letzteres die Funktionen Sonnenuntergang und Sonnenaufgang. Zu jedem Zeitintervall gehört ein Gerätestatus (on,off,...) und all diese Werte sind mit einem Leerzeichen getrennt einzugeben. Auf diese Art und Weise sind für jedes Gerät beliebig viele Zeitintervalle programmierbar.

Wenn für ein Gerät kein Zeitplan programmiert wurde, gilt für den Status der Default welcher hier ebenfalls gesetzt werden kann und zeitlos ist. Zeitintervalle bei denen die Startzeit größer als die Endezeit ist, sind tagesübergreifend, d.h., der hierzu definierte Status gilt über Mitternacht.

Diese DEMO speichert den Zeitplan in einer zur Session (Browsersitzung) gehörigen Datei serverseitig. Sie können also die Einstellung Ihres eigenen Zeitplanes unabhängig von anderen Benutzern testen. Ein Klick auf die Schaltfläche [INI Reload] lädt die Original-Steuerdatei, die als Kopie auf dem Webserver vorliegt.

Für den Produktivbetrieb

Mit der Schaltfläche [Übernehmen] wird die gesamte Konfiguration temporär in der eigenen Session gespeichert. Erst mit Betätigung der Schaltfläche [Admin Set] (Passwort erforderlich) werden alle Änderungen auf dem Server persistent gemacht.

Type OnOff

Das zu steuernde Gerät kennt zwei Zustände: On und Off.

Type PWM

PWM steht für PulsWeitenModulation. Auch hierzu kennt das Gerät nur die Zustände On, Off. In Verbindung mit einer periodischen Abfrage (hier jede Minute) und einer konfigurierbaren Periode als Anzahl an Schaltanweisungen ist es jedoch möglich, für ein Gerät quasi stufenlos die Leistung zu regeln. Zum Verständnis ein Beispiel: Periode=10, Status=0.5. Mit einer Schaltfrequenz von 1/min ist damit das Geät 5 min ein- und 5 min ausgeschaltet. Dadurch mittelt sich die Leistung auf die Hälfte der Verfügbaren. Für einen Heizkörper empfielt sich eine Periode von 10..30.

Andere Typen wie 20°C oder 30%

Sind in dem Moment konfigurierbar, wenn es von der Funksteuerung (Sender, Empfänger) unterstützt wird.

Event-Steuerung

Das Konzept dieser Hausautomatisierung sieht vor, Events wie z.B. Sonnenaufgang, Sonnenuntergang usw. auf einer Methode (Funktion) abzubilden und beim Polling diese Funktion zu befragen.

Webservice und Engine

Als JSON oder INI von der Engine jede Minute requestet. Jede Hardware (USB-Dongle oder USB-Gerät) hat seine eigene Engine und weist über die Konfiguration + Geräte-ID den jeweiligen Schaltzustand an.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.