Getestet mit:RPi 3; Python 3.4; Raspbian Jessie
Voraussetzungen:Raspberry Pi mit Raspbian Jessie und Internetverbindung (siehe Schritte 1-7 in der Einfuehrung)
Bauteile:Kompatible 433MHz Funksteckdose und Fernbedienung
0

Hausautomatisierung mit rpi-rf_send und rpi-rf_receive fuer 433MHz Funksteckdosen

Das bisher von mir zum Ansteuern von haushaltstypischen Funksteckdosen verwendete Python-Modul pi-switch wird nicht weiterentwickelt. Statt dessen wird das sehr einfach zu bedienenden Moduls rpi-rf (Github) empfohlen.
In diesem Tutorial wird der dezimale Schaltcode einer Renkforce-Funksteckdose mit einem 433MHz Empfaenger und rpi-rf_receive aufgezeichnet und dann von einem 433MHz-Sender und rpi-rf_send zum Schalten der Steckdose genutzt. Z.B in Verbindung mit einem Server wie CherryPy kann einfach eine HTML-Fernsteuerung aufgesetzt werden.

Installation
Die Installation ist uebersichtlich mit Pip3:

Spannungsteiler
Da der 433Mhz Receiver auf 5 Volt laeuft, ein RPi aber maximal 3.3V Signalstaerke an seinen Inputs vertraegt, muss ein Spannungsteiler eingebaut werden. Hierzu wurden zwei 4.7k Ohm Widerstaende direkt am Empfaenger angeschlossen: ein Widerstand ausgehend vom Signal teilt zum RPi-Input und GND ueber den zweiten Widerstand (im Schrumpfschlauch).

433MHz receiver

433MHz-Empfaenger mit Spannungsteiler

Aufbau
Der Sender wird an Pin 6 (GND), Pin 1 (3.3V VCC) und Pin 11 (DATA) in BOARD-Nummerierung angeschlossen. Der Empfaenger an Pin 9 (GND), Pin 2 (5V) und Pin 13 (DATA) angeschlossen, ebenfalls in BOARD-Nummerierung.

Setup rpi-rf

Setup rpi-rf

Am besten ist es, zusaetzlich noch eine Antenne an den dafuer vorhergesehenen Eingang des Senders anzuschliessen.

Funksteckdosencode auslesen
Viele preiswerte 433MHz-Funksteckdosen werden einfach ueber von der Fernbedienung gesendete Dezimalzahl geschaltet, siehe diese Liste mit kompatiblen Geraeten. Wenn der Receiver angeschlossen ist,
wird mit dem folgenden Terminalbefehl auf 433MHz-Signale gelauscht:

-g 27 entspricht hier dem GPIO-Pin des Empfaenger-Datensignals in BCM-Nummerierung. Pin 13 in BOARD ist Pin 27 in BCM. Schalte dann mit der Fernbedienung die Funksteckdose ein und wieder aus. Bei dieser Steckdose wurden die Codes 1381717 fuer Ein und 1381716 fuer Aus sowie eine Pulsdauer von 437 entschluesselt:

RC switch codes

Funksteckdosen Schluessel

Die Signale werden nicht immer klar gelesen, es kann also einige Versuche dauern, bis man die richtigen Schluessel gefunden hat.

Funksteckdose schalten
Gib zum Testen des empfangenen Schluessels im Terminal ein

Dabei ist fuer SWITCH_CODE der im vorherigen Schritt aufgezeichnete Code zum Einschalten der Steckdose und fuer PULSE_LENGTH die dazugehoerige Pulsdauer einzutragen. -g 17 steht fuer den GPIO-Pin mit der BCM-Nummer 17, dies entspricht Pin 11 in BOARD-Nummerierung. Nach Ausfuehren des Befehls wird die Funksteckdose eingeschaltet.

Einbindung in Python
Fuer die Verwendung von rpi-rf in Python 3 wird eine Instanz von RFDevice erzeugt:

enable_tx() started den Sendemodus und tx_code(...) sendet den mit dem Empfaenger ermittelten Steckdosencode SWITCH_CODE samt zugehoeriger Pulsdauer PULSE_LENGTH.

Links
Hausautomation mit Funksteckdosen: http://www.knight-of-pi.org/de/preiswerte-hausautomatisierung-mit-dem-raspberry-pi/
rpi-rf_send kompatible Funksteckdosen: https://github.com/sui77/rc-switch/wiki/List_KnownDevices
rpi-rf auf GitHub: https://github.com/milaq/rpi-rf
CherryPy: ein eleganter Python Server fuer den Raspberry Pi: http://www.knight-of-pi.org/de/cherrypy-ein-eleganter-python-webserver-fuer-raspberry-pi-fernbedienungen/
Funksteckdosen mit pi-switch Schalten: http://www.knight-of-pi.org/de/preiswerte-hausautomatisierung-mit-dem-raspberry-pi/
Funksteckdosen mit pi-switch Schalten: http://www.knight-of-pi.org/de/preiswerte-hausautomatisierung-mit-dem-raspberry-pi/

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

Kommentar

Time limit is exhausted. Please reload CAPTCHA.