Hausautomatisierung

Kalenderabhängige Schaltung einer FS20-Steckdose

Kalenderabhängige Schaltung einer FS20-Steckdose

Anhand dieses Beispiels für den Einsatz einer Haussteuerung sehen wir uns an, wie einfach es ist, mit FHEM eine Steckdose und damit die dort angeschlossenen Verbraucher zu schalten. Wir wollen die Steckdose nur an Schultagen schalten.

Hard-und Software-Voraussetzungen

Zuerst brauchen wir eine Fritzbox. Siehe dazu meinen Artikel.
Desweiteren benötigen wir einen oder zwei Raspberry Pi mit entsprechenden Netzteilen. Hierzu habe ich auch entsprechende Empfehlungen gegeben.
Genauso sollte man sich über die Vernetzung Gedanken machen, ob man die Raspberry Pis per Netzkabel oder per WLAN anbinden möchte. Dafür habe ich hier in meinen Artikeln über die Grundkonfiguration Tipps gegeben:

Geeignete Geräte

Im Grunde genommen sind sowohl Unterputzdosen als auch Zwischenstecker-Lösungen für Steckdosen auf dem Markt erhältlich.

Ich habe für das FS20-System einige dieser Zwischenstecker vom Typ FS-20 ST-4 im Einsatz:

Überdies sind bei mir mittlerweile einige der Unterputzlösungen   verbaut. Hier gibt es die FS-20 SU-3 mit 1380 VA Schaltleistung:

Grundsätzlich unterscheidet sich die Art und Weise der Einbindung in FHEM aber nicht. Ich habe vor einigen Jahren mit 2 Stück des FS-20 ST-4 angefangen.

Eine solche Steckdose lässt sich durch folgende einfache Konfiguration in FHEM einbinden:

define FS20_steckd1 FS20 12341234 31
attr FS20_steckd1 IODev CUL
attr FS20_steckd1 alias Steckdose1
attr FS20_steckd1 devStateIcon off:black_Steckdose.off.png on:black_Steckdose.on.png
attr FS20_steckd1 group Küche:
attr FS20_steckd1 icon message_socket
attr FS20_steckd1 model fs20st
attr FS20_steckd1 room FS20

Das FS20 Zahlensystem

Was muß man hier beachten? Die wichtigsten Daten sind im define hinterlegt. Der Typ FS20 (hier ohne Bindestrich angeben!) und danach zwei Zahlen, die etwas kryptisch erscheinen. Das hängt damit zusammen, wie FS20-Adressen aufgebaut sind. Der Code basiert auf dem „Quaternärzahlensystem“ (dem Vierersystem, also Zahlen von 0 bis 3). Da die Geräte aber normalerweise mit Tasten eingestellt werden, die von 1-4 beschriftet sind, zählt man pseudoquaternär, also ebenfalls von 1 bis 4.

In FS20 gibt es den sog. Hauscode, also mehr oder weniger eine eindeutige Identifikation meiner FS20-Signale, falls der Nachbar auch auf die Idee käme, FS20 einzusetzen.  Diesen kann man im Zusammenhang mit FHEM aus 8 Ziffern der Zahlen 1 bis 4 aufbauen, wobei die Zweierpaare 44 jeweils nicht eingesetzt werden sollten, weil diese für die sog. lokalen Master, globalen Master und Funktionsgruppen reserviert sind. Näheres findet man im Wikipedia-Artikel zu FS20 allgemein.

In unserem Beispiel nehmen wir als Hauscode die 12341234. Übrigens hat dieser Hauscode nichts mit der FHT-ID oder dem FHT-Hauscode zu tun. Diese FHT-ID haben wir bei der Einbindung des CUL festgelegt mit 1234 (Die Ähnlichkeit mit dem Hauscode ist nur zufällig und hat keine Abhängigkeit)

define CUL CUL /dev/ttyACM0@38400 1234

Jetzt sind wir fast schon fertig. Wir speichern die Konfiguration mit den obigen Einstellungen mit der FS20_steckd1 in der fhem.cfg ab und starten FHEM wieder mit shutdown restart neu.

Nun taucht ein neuer Raum FS20 als Rubrik in der linken Seite auf und dort erscheint das von uns festgelegte Symbol für eine Steckdose vor der Bezeichnung Steckdose1.

Die Kopplung mit FHEM

Zur Inbetriebnahme der Schaltsteckdose steckt man diese einfach in eine Steckdose und drückt den manuellen Einschalter an der Schaltsteckdose für länger als 5 Sekunden. Danach beginnt das Lämpchen an dem Schalter zu blinken. Weiter klickt man in FHEM einfach auf „on“ neben dem schwarzen Steckdosenicon. Dadurch sollte das Lämpchen aufhören zu blinken und fertig ist die Kopplung!

Schließlich kann man durch Drücken auf „on“ einen Einschaltbefehl und mit „off“ einen Ausschaltbefehl an die Schaltsteckdose senden. Genauso kann man durch direktes Drücken auf das schwarze Steckdosenicon hin- und herschalten.

Überdies kann man durch Klick auf den Namen Steckdose1 die Eigenschaften des Empfängers bearbeiten – das Icon ändern, das Symbol, unterschiedliche Schaltvorgänge einstellen. Hier empfehle ich, sich anhand dieses einfachen Schaltgeräts einmal vertraut zu machen und ein paar Dinge auszuprobieren.

Zeitgesteuertes Schalten realisieren

Mit der jetzt in Betrieb genommenen FS20 Funkschaltsteckdose kann man mithilfe von FHEM nun Schaltvorgänge vornehmen, die weit über die Funktionen normaler Zeitschaltuhren hinausgehen. Beispielsweise ist bei mir folgendes Szenario im Einsatz:

Wochentags, aber nur falls Schule ist, soll sich das Radio in der Küche einschalten. Dies passiert bei mir in diesem Falle um 06:37 morgens. Seither hat niemand mehr bei uns jemals verschlafen! Die gewünschte Funktion lässt sich ganz einfach mit wenigen Zeilen in der fhem.cfg bewerkstelligen:

Integration des Feiertags- und Schulferienkalenders

Zunächst definieren wir als globales Attribut ganz oben in der fhem.cfg, dass Feiertage für Bayern (in meinem Fall) gelesen werden soll (es gibt natürlich die entsprechenden Einstellungen für jedes Bundesland).

attr global holiday2we Bayern_Feiertag

Weiter unten definieren wir die Ermittlung von Ferientagen und helfen uns mit einer Dummyvariable namens Bayern_Ferientag, die ich für meine Schaltvorgänge sehr oft brauche. Dies kann man mit folgendem Codefragment bewerkstelligen:

# Schulferien Bayern
define Bayern_Ferientag dummy
attr Bayern_Ferientag devStateIcon 1:rc_dot@green 0:rc_dot@grey
attr Bayern_Ferientag icon weather_summer
attr Bayern_Ferientag room Kalender
define Bayern_Ferien Calendar ical url http://www.schulferien.org/media/ical/deutschland/ferien_bayern_2016.ics 86400
attr Bayern_Ferien room Kalender
define Job_Bayern_Ferien_Check notify Bayern_Ferien { \
  fhem "set Bayern_Ferientag " . (ReadingsVal("Bayern_Ferien", "modeStart", "") =~ "schulferien" ? 1: 0) }

Danach müssen wir nur noch den eigentlichen zeitgesteuerten und bedingungsabhängigen Schaltvorgang anfügen. Ich will, dass nur an Schultagen um 06:37 Uhr morgens das Radio trällert. Dazu nutze ich 2 Variablen. $we gibt mir in FHEM im Standard schon an, ob Wochenende ist, und mit gerade oben gezeigtem Code gibt es eine Variable Bayern_Ferientag, die auf 1 gesetzt wird, falls Schulferien in Bayern sind. Dementsprechend ermittle ich mit dem Logikausdruck !($we) && !(Value(„Bayern_Ferientag“))  die Schultage. Und an denen will ich schalten!

# Steckdose 1 zeitgeschaltet ein- und ausschalten
define Job_Radio_Kueche_morgens_ein1 at *06:37 { if ( !($we) && !(Value("Bayern_Ferientag")) ) { fhem("set FS20_steckd1 on");; } }
define Job_Radio_Kueche_morgens_ein2 at *06:38 { if ( !($we) && !(Value("Bayern_Ferientag")) ) { fhem("set FS20_steckd1 on");; } }

Ich schalte um 06:37 Uhr und um 06:38 das Radio ein. Wie ich schon einmal beschrieben habe, hat FS-20 keinen Rückkanal. Dementsprechend weiß FHEM nicht, ob der Empfänger wirklich geschaltet hat. Das kommt auch durchaus vor, dass das Signal mal ins Leere läuft. Deswegen vermindere ich mit einem zweiten Schaltvorgang die Wahrscheinlichkeit auf die Hälfte, dass das Radio stumm bleibt. Folglich mache ich das mittlerweile bei allen FS-20-Empfängern, für die der Schaltvorgang sehr wichtig ist.

 

Zuletzt aktualisiert am 22.12.2016.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.