Wir haben einige Funksteckdosen des Typs Elro AB440S und weitere Aktoren in einer selbstgebauten Mini-Heimautomatisierungslösung (Raspberry Pi, fhem, Genshellswitch) laufen.
Was mir aber fehlte war eine Funksteckdose, mit der ich einen CD Player im Kinderzimmer per Funk abschalten kann. Der CD Player leiert abends Einschalflieder und soll eigentlich nur hinter eine Funksteckdose. So richtig glücklich war ich aber mit dieser Lösung nicht und so entstand diese Liste mit meinen Anforderungen:
1. lernfähig – auf verschiedene Fernbedienungen trainierbar
2. Zustand nach dem Einstecken konfigurierbar, also eingeschaltet nach dem Einstecken, so dass der CD Player direkt gestartet werden kann
3. Abschalttimer konfigurierbar, also z.B. automatisch aus nach 60 Minuten
Da es so etwas offenbar am Markt nicht gibt, entstand die Idee, eine der herumliegenden Elro AB440S Funksteckdosen mit einem Arduino aufzurüsten. Solche Funksteckdosen gibt es inkl. Sender im 3er Pack für 10-15€ im Baumarkt. Die Dosen sind unter vielen Bezeichnungen im Handel. Erkennbar sind sie an dem 10-poligen roten DIP Schalter.
Für den Umbau habe ich einen Arduino Clone (Mini Pro mit ATMega 328, 5V 16M) verwendet. Diese Clones sind für unter 3 Euro zu bekommen, so dass die umgebaute Funksteckdose für deutlich unter 10€ gebaut werden kann.
An dieser Stelle folgt erst einmal eine Warnung:
Funksteckdosen verwenden ein sogenanntes Kondensatornetzteil. Damit werden zwar kleine Spannungen von 5V erzeugt, aber es erfolgt keine galvanische Trennung vom 230V Netz. Für einen Nachbau kann ich die nötige Sachkunde nur dringend empfehlen! – Fehler mit 230V können fatal enden!
Generell empfiehlt es sich vor dem Umbau sich in die Thematik der Kondensatornetzteile einzulesen: Elektronik Kompendium , Wikipedia
Ein paar Messungen auf der Hauptplatine ergeben:
Das 433MHz Empfängermodul (siehe vorheriger Beitrag) und der verbaute Logikchip PT2272 laufen mit Arduino-kompatiblen 5V. Das Relais läuft mit 24V und wird über einen Transistor geschaltet. Sieht nach sehr guten Voraussetzungen aus, den Logikchip durch einen Arduino zu tauschen. Zudem ist das 433MHz Empfangsmodul kompatibel mit der verfügbaren Arduino Library RCSwitch. Last but not least ist ein 10poliger DIP Schalter verbaut, der 10 Pins auf Masse ziehen kann und zur Konfiguration genutzt werden kann. Prima Voraussetzungen also.
Schritt 1: SMD Chips raus
Der SMD Chip muss raus, also auslöten. Tipp: Alle Kontakte auf einer Seite mit viel Lötzinn verbinden. Etwas einheizen und Chip auf dieser Seite mit einem Schraubenzieher hochbiegen. Dann ebenso auf der anderen Seite. Und voila – der Chip ist raus.
Schritt 2: Platine umbauen
Für den Umbau der Platine sind drei Schritte nötig. Hier ein Foto mit den nötigen Markierungen:

Im Einzelnen:
a) Ein Kabel von VCC zum Elko rechts neben dem SMD Chip ziehen. Dieses bindet den 5V Stabilisierungs-Elko direkt an die 5V Linie an.
b) Den 2,2kOhm SMD Kondensator ausbauen und gegen 1kOhm / 0,5W ersetzen.
c) Den 0,33 Mikro-Farad Kondensator gegen einen 0,47 Mikro-Farad Typ ersetzen. Dabei unbedingt einen 250V x2 Kondensator (Entstörkondensator) verwenden, damit die nötige Sapnnungsfestigkeit erreicht wird (Details u.a. bei Wikipedia unter Kondensatornetzteil).
Hintergrund des Umbaus:
Der originale Logikchip PT2272 braucht laut Datenblatt maximal 7mA. Das Relais im Betrieb ca 10mA. Insgesamt kommen im Originalzustand also also <20mA Gesamtlast zusammen.
Der Arduino zieht alleine schon 17-20mA. Schließt man den Arduino einfach so an die Platine an und passt die Vorwiderstände an, so bricht die Spannung zu stark ein, wenn das Relais anzieht. Die 5V werden dann nicht mehr erreicht. Das Relais zieht nicht sauber an, da auch im 24V Teil die Spannung nicht mehr passt. Und auch der 433MHz Empfänger läuft bei deutlicher Unterspannung nicht gut. Teilweise langt es auch für den Arduino nicht mehr.
Da Kondensatornetzteile effektiv Stromquellen sind, muss der Strom erhöht werden; von ca. 20mA (PT2272 + Relais) auf ca. 30mA (Arduino + Relais). Der Strom durch das Kondensatornetzteil wird im wesentlichen durch den großen Kondensator festgelegt. Soll der Strom um einen Faktor 1,5 hoch, muss der Kondensator entsprechend erhöht werden. Natürlich ist das so eine Näherungsrechnung; der Kondensator dominiert in dieser Schaltung wie in vielen Kondensatornetzteilen aber den Strom.
Nun muss noch der Widerstand vor der 5,1V SMD Zenerdiode angepasst werden. Hier habe ich 1kOhm ermittelt. Bei diesem Wert fällt die Spannung über der Zenerdiode unter Maximalbelastung (Relais an) auf 4,9V, also knapp unter die Zenerspannung. Damit ist der Arbeitspunkt der Zenerdiode gut eingestellt.
Über dem Widerstand fallen bei abgeschaltetem Relais ca. 20V ab. Somit fällt eine Verlustleistung von 400mW an (P=U^2/R). Es sollte also ein Widerstand mit mind. 0,5W Belastbarkeit verwendet werden und mit etwas Abstand zur Platine montiert werden. Der Widerstand wird etwas warm werden. Die Zenerdiode wird maximal mit 20mA bei 5,1V belastet. 100mW hält die verbaute SMD Zener Diode problemlos aus.
Hier noch ein Foto des alten und neuen Kondensators. Die Einbaugröße ist durchaus ein Thema. Es ist nicht viel Platz vorhanden. Der Kondensator sollte auch nicht zu nahe an das 433MHz Empfangsmodul kommen. Das E-Feld um den Kondensator stört den Empfang empfindlich.


Schritt 3: Arduino einbauen
Wie im Bild markiert wird nun der Arduino angeschlossen – am besten vorher programmieren. Man kann übrigens den Aruino auch nach dem Einbau in die Dose programmieren. ABER bitte NIE bei eingesteckter Funksteckdose. Sonst ist vermutlich Euer PC gleich mit im Eimer.
Die Anschlüsse des Arduino habe ich wie folgt verwendet:
D2 – 433MHz RF
D3 – Lernmodus (pull to low)
D4 – Reset – alle gelernten Codes löschen (pull to low)
D5 – Relais beim Einstecken an/aus (pull to low for on)
D6 .. D12 – Abschalttimer setzen –> 128*2 Minuten –> bis zu 4h 16 min
D13 – Relais
VCC – 5V Versorgungsspannung
GND – Masse
Hier noch ein Bild eines provisorischen Anschlusses der Arduinos an die Hauptplatine. Bei der finalen Montage darauf achten, dass die Kabel nicht mit dem 230V Teil in Kontakt kommen und den Arduino gegen die Hauptplatine isolieren.

Schritt 4: Arduino programmieren
Der Sourcecode für die lernfähige Timer-Funksteckdose mit konfigurierbarem Anfangszustand hängt am Ende an. Diesen mit der Arduino IDE flashen.
Erster Test:
DIP 3 auf on (zieht D5 auf low) – alle anderen auf off. Nun die Funksteckdose einstecken. Eine halbe Sekunde nachdem Einstecken sollte das Relais anziehen, da wir den Einschaltzustand auf „eingeschaltet“ gesetzt haben.
Sender anlernen:
DIP 1 auf on – alles andere auf off und die Funksteckdose einstecken. Die Dose ist nun im Lernmodus. Mit einem Sender nun länger auf On oder Off drücken. Die Dose schaltet das Relais für eine Sekunde an und dann wieder aus, wenn der Code gelernt wurde. Bei den meisten Sendern muss nur das On oder das Off Kommando gelernt werden. Das jeweils andere Kommando wird errechnet. Wenn das nicht klappt, müssen beide Kommandos hintereinander gelernt werden.
Es können insgesamt 10 Kommandos / Sender angelernt werden. Im Lernmodus können alle Kommandos / Sender hintereinander angelernt werden.
Reset:
DIP 2 auf on – alles andere auf off und die Funksteckdose einstecken. Wieder ausstecken. Funksteckdose ist zurückgesetzt.
Timer:
DIP 4-10 auf aus –> keine Timer Funktion
Mit den DIPs 4-10 können bis zu 4h16min als Einschaltdauer gesetzt werden. Dabei ist
DIP 4 = 2 Min
DIP 5 = 4 Min
DIP 6 = 8 Min
DIP 7 = 16 Min
DIP 8 = 32 Min
DIP 9 = 64 Min
DIP 10 = 128 Min
Die DIPs können beliebig miteinander kombiniert werden (z.B. DIP 4+5 für 6 Minuten).
Zum Schluss noch ein Foto der fertigen Funksteckdose. Aus Platzgründen habe ich die Schaltung in ein anderes Gehäuse eingebaut.

Ein Arduino mit Funkempfänger in einer Steckdose mit Relais ist eine flexible Plattform für viele Zwecke. Bin mal gespannt, ob das jemand aufgreift und für andere Zwecke einsetzt 🙂
Anhang: Source Code _433_timer_plug.ino