JeeLink Clone – Funksteckdose PCA301 mit FHEM steuern

Ein interessanter Punkt wenn es um Hausautomation geht ist das Schalten unterschiedlicher elektrischer Geräte. Anstatt sich direkt „smarte“ Geräte zu kaufen, reicht es bei den meisten Geräten aus diese mit einer schaltbaren Funksteckdose auszustatten. Hier kommen die PCA301 Steckdosen von ELV zum Einsatz. Diese lassen sich problemlos in FHEM einbinden. In diesem Artikel möchte ich euch erklären, was ihr dafür benötigt und wie ihr eure FHEM-Installation entsprechend konfiguriert.PCA301 Steckdose

Hardware

Um die Steckdosen schalten zu können wird ein Sender benötigt. In unserem Fall bauen wir uns den natürlich selber. Alles was man dazu benötigt ist ein Arduino und ein Transceiver, der die digitalen Signale an die Steckdosen sendet:

Wichtig ist hierbei die Kombination von Funkmodul und Raspberry. Das RFM12B-Modul arbeitet mit 3,3V und benötigt somit auch eine 3,3V Versorgungsspannung. Es liegt also nahe auch einen 3,3V-Arduino zu verwenden. Das Funkmodul wird wie folgt mit dem Arduino verbunden:

Hardware JeeLink Clone PCA301

ArduinoFunkmodul RFM12B
D2IRQ
D10SEL
D11SDI
D12SDO
D13SCK
GNDGND
3V3VDD

Es gibt auch Arduinos mit 5V die auch einen 3,3V Anschluss bereitstellen. Aber ACHTUNG: Die digitalen Pins arbeiten dann auch mit 5V und würden das Funkmodul zerstören. Hier ist es notwendig auf den Leitungen D10, D11 und D13  mit Spannungsteilern zu Arbeiten:

Spannungsteiler

Ein weiterer wichtiger Punkt ist die Antenne. Die Steckdosen kommunizieren über die Frequenz 868,4 Mhz. Die Antenne braucht also eine Länge von 82,2mm. Dazu einfach ein Draht auf diese Länge zurecht schneiden und an den entsprechenden PIN des Funkmoduls anlöten (siehe Bild oben).

Wenn man etwa geschickt mit dem Lötkolben umgehen kann, kann man versuchen das Funkmodul direkt auf den Arduino zu setzen und alles mit einem Schrumpfschlauch umhüllen.

jeelinkClone

Software

Nach dem die Hardware aufgebaut ist, machen wir uns an die Software. Dazu muss die Arduino Software installiert werden. Nach dem man den Arduino mit einem USB-Kabell an den PC angeschlossen hat wählt man unter „Werkzeuge / Boards“ seinen Arduino, in diesem fall den Arduino Nano. Dann noch unter „Werkzeug / Port“ den passenden Port auswählen und schon kann man mit dem Programmieren des Arduinos beginnen.

Sollte es keinen Port zur Auswahl geben, fehlen noch die Passenden Treiber. Diese können einfach über die automatische Treiber-Suche beim Geräte-Manager installiert werden.

Zum Flashen des Arduinos laden wir uns erstmal den passenden Sketch runter. Diesen erhält man auf sourceforge. Für die Steckdosen ist es der „36_PCA301-pcaSerial.zip„. Nach dem Entpacken einfach über die Arduino-Software öffnen und auf den Arduino laden.

PCA301 sketch

Anschließen an den Raspberry

Nun können wir den Arduino an unseren Raspberry anschließen und testen ob er erkannt wurde:

Wurde er korrekt erkannt sollte man in etwa so eine Ausgabe erhalten:

PCA301 jeelink clone

Wie man sieht, wurde er an USB1 erkannt. Dies sollten wir uns für die Einrichtung in FHEM merken.

Einrichten unter FHEM

Unter FHEM lässt sich unser JeeLink Clone nun wie folgt einrichten:

Hier darauf achten, dass man den oben erkannten Anschluss verwendet. Der Name „JeeLinkClone“ kann natürlich angepasst werden.

JeeLink FHEM

Steckt man nun die Steckdosen in die Steckdose, werden diese direkt bei FHEM mit dem Namen „PCA301_xxxx“ angelegt. Sollte dies nicht der Fall sein, einfach „autocreate“ aktivieren.

Am besten das Device direkt umbenennen um es zuordnen zu können.

In meinem Fall schaltet die Steckdose meine Papierlampe im Wohnzimmer.

PCA301 FHEM

Wie man erkennt, bekommt man von der Steckdose einige Readings zur Verfügung gestellt. Zu einem „state“ welches den Schaltzustand der Steckdose repräsentiert (on/off). Der Vorteil der PCA301-Steckdosen ist der, dass er uns auch den Verbrauch des angeschlossenen Gerätes mitteilt. Zu einem das Reading „power“, welches die aktuelle Leistung in Watt angibt und das Reading „consumption“, welches den Stromverbauch in kW/h angibt.

Hier ergibt sich bereits ein kleines Problem der Steckdosen. Bei einem Stromausfall kann es vorkommen, dass das Reading „consumption“ auf 0 gesetzt wird. Das ist natürlich schlecht, wenn man den Verbrauch über einen längeren Zeitraum untersuchen will. FHEM hat dazu eine passende Lösung. Ein userReadings mit der Option monotonic.

Hiermit wird dem Reading „consumptionTotal“ der Wert des Readings „consumption“ immer dazu addiert. Sollte also nach einem Stromausfall das Reading „consumption“ auf 0 fallen ist dies nun kein Problem mehr. „consumptionTotal“ zählt weiter fleißig hoch und addiert jede Änderung von „cunsumption“ dazu.

Die in meinem Fall angeschlossene Lampe lässt sich nun ganz einfach über FHEM an und ausschalten.

Papierlampe

Standartmäßig ist als Schaltsymbol eine Glühlampe eingestellt. Über das Attribut „devStateIcon“ lässt sich dies Ändern. Zum Beispiel eine Steckdose:

TV devStateIcon

Um auch die Leistungsaufnahme der Geräte komfortabel anzeigen zu lassen, habe ich ein Dummy erstellt, der mit einem at-Befehl mit den Werten gefüttert wird.

Den at-Befehl habe ich wie folgt definiert:

Wer will kann das gleiche natürlich noch mit dem Verbrauch (consumptionTotal) machen. Hier würde ich jedoch den Aktualisierungs-Intervall auf 3 Minuten stellen, da sich dieser Wert ja nicht alle 5 Sekunden ändern wird.

Zum Schluss noch das stateFormat ändern

und alle Geräte der Gruppe „Papierlampe“ hinzufügen und man erhält für das angeschlossene Gerät eine hübsche Anzeige aller wichtigen Werten:

Papierlampe PCA301

TV PCA301

Schreibe einen Kommentar

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

*