Rollo fürs Fenster mit dem Raspberry Pi 2 steuern
12.03.2017

Da ich Anhänger von kostengünstigen Smarthome-Lösungen bin, habe ich mir Smart Shades gekauft. "Smart Shades" ist ein Motor mit Akku in einem kleinen Gehäuse. Der Motor kann ein Rollo am Fenster über den seitlichen Seilzug runter- und hochziehen. Diese Lösung zur Verdunklung von Fenstern läßt sich auch für Mietwohnungen leicht nachrüsten, da das Rollo in der Wohnung angebracht werden kann. Ein Smart-Shades-Gerät kostet im Augenblick (im Jahr 2017) etwa 80 Euro.
Hardware
Ein Rollo von 160 cm Länge und 240 cm Höhe gibt es zum Beispiel bei "Möbel Kraft" oder "Möbel Höffner" unter dem Namen "for friends". Das Rollo kostet etwa 45 Euro (Stand 2017). Die Auswahl eines Rollos ist flexibel, allerdings sollte das Rollo nicht zu schwer sein. Mit dem Rollo "for friends" habe ich gute Erfahrungen gemacht. Das Rollo gibt es auch zur Verdunklung und die Rückseite kann im Sommer die Sonnenstrahlen reflektieren und damit die Hitze reduzieren. Dieses Rollo läßt sich innen an die Decke oder die Wand schrauben und der Seilzug mit dem Smart-Shades-Gerät verbinden. Das Smart-Shades-Gerät kostet 80 Euro und eine zusätzliche Solarzelle 30 Euro. Smart Shades lassen sich aber auch über ein USB-Kabel ohne Solarzelle aufladen. Ein Hinweis zum Netzteil: da kein Netzteil mitgeliefert wird, kann zum Beispiel ein Handy-Netzteil benutzt werden. Leider funktionierte nicht jedes Netzteil. Mein Samsung-Netzteil hat nicht funktioniert, aber eins von HTC hat den Akku aufgeladen. Auf der SOMA-Webseite kann mit Paypal bezahlt werden. Auf der indiegogo-Seite nur mit Kreditkarte. Auf Youtube gibt es ein Video zur Demonstration der Smart Shades von einem Blogger. Bei mir benötigt das Rollo mit einmal komplett hochziehen und am Abend wieder runterlassen etwa 1,4% der Akku-Leistung, so dass der Akku für zwei Monate ohne Aufladen halten sollte. Bei der Variante mit Solarzelle kann die Solarzelle ins Fenster geklebt werden.
Wie auf dem Foto zu sehen, ist die Solarzelle nicht sehr groß und läßt sich in eine Ecke des Fensters kleben. Damit das Rollo näher am Fenster ist, habe ich es an der Decke befestigt. Noch ein Tipp, damit das Rollo stabiler ist: mit einer Zange können die Enden des Aluminium-Rohres leicht eingedrückt werden. Dadurch halten die Kunststoff-Einsätze besser im Rohr.
Außerdem hatte ich bei einigen Rollos der Marke "for friends" das Problem, dass die Bremse des Rollos defekt war. Das sollte direkt nach dem Kauf geprüft werden. Möbel Kraft hat den Seitenzug ohne Probleme gegen einen besseren Seitenzug ersetzt. Allerdings mußte ich noch die Schnur wechseln, da die Ersatzschnur etwas zu kurz war. Dazu kann die Kunststoffrolle vorsichtig geöffnet und die längere Schnur eingelegt werden.

Schnur des Seitenzugs wechseln
Smartphone-Steuerung
Die App fürs Smartphone heißt com.wazombi.RISE. Die App wird fürs Konfigurieren der Smart Shades benötigt. Dadurch weiß das Gerät, wann sich das Rollo oben und wann unten befindet. Außerdem lassen sich über die App die Zeiten einstellen wann das Rollo oben und wann unten sein soll.
Steuerung über den Raspberry Pi
Der Betreiber des Smarthome-Blog SIIO hat sich beschwert, dass sich Smart Shades nur über Bluetooth bzw. das Smartphone steuern lassen. Dabei läßt sich das Rollo auch über den Raspberry Pi steuern. Mit günstigen 433 MHz Funk-Schaltern für 5 Euro und dem Raspberry Pi als Gateway kann das Rollo komfortabel ohne Smartphone bedient werden.

Rollo mit dem Raspberry Pi und Fernbedienung steuern
Das obere Symbolbild sieht in der Realität so aus:
An meinem Raspberry Pi hängt ein Bluetooth-Stick von LogiLink, der mit dem Smart-Shades-Gerät funkt. Optional kann noch ein "LogiLink VG0002A" DVB-T-USB Stick oder der baugleiche CSL - DVB-T USB Stick angesteckt werden. Dieser Stick ist eigentlich zum Empfang von DVB-T gedacht. Allerdings lassen sich damit auch Signale von der Fernbedienung mit 433 MHz empfangen und über Software Defined Radio (SDR) auswerten. Auf 433 MHz-Geräte gehe ich in einem weiteren Artikel ein - jetzt erst einmal Bluetooth.
Jeremy Noel hat auf Bitbucket ein Python-Skript zur Steuerung der Smart-Shades über Bluetooth geschrieben. Ich habe daraus ein Expect-Skript gemacht, das zusätzlich noch die Zeit des Geräts und die Zeit-Trigger setzen kann, wann das Rollo "geöffnet" und wann "geschlossen" sein soll.
chmod 755 blindsControl.exp
# become root
sudo bash
# install bluetooth and the tools, if not done yet
apt-get install expect bluez bluetooth
# unblock bluetooth - just in case
rfkill unblock bluetooth
# enable the first bluetooth device
hciconfig hci0 up
# if you have several bluetooth devices
# then search for the bluetooth address (e.g. 00:1A):
export BLUETOOTH_DEVICE=$(hciconfig -a | grep -B1 " 00:1A:" | head -n 1 | sed 's|:.*||g')
hciconfig $BLUETOOTH_DEVICE up
# search bluetooth low energy devices
hcitool lescan
# lists the bluetooth address, e.g. 11:22:33:44:55:66 RISE11
# use the MAC address for the following commands e.g. 11:22:33:44:55:66
# set the trigger to move the roller blind up
./blindsControl.exp 11:22:33:44:55:66 settrigger 1 4 07:30 monday tuesday wednesday thursday friday
# get the first entry of the triggers
./blindsControl.exp 11:22:33:44:55:66 gettrigger 1
# delete the first entry of the triggers
./blindsControl.exp 11:22:33:44:55:66 deletetrigger 1
# set the time of the device
./blindsControl.exp 11:22:33:44:55:66 settime
# get the time of the device
./blindsControl.exp 11:22:33:44:55:66 gettime
# set the position of the roller blind
./blindsControl.exp 11:22:33:44:55:66 setheight 62
# get the position of the roller blind
./blindsControl.exp 11:22:33:44:55:66 getheight
# get the battery status of the roller blind
./blindsControl.exp 11:22:33:44:55:66 getbattery
Hintergrund
Die Smart Shades funktionieren mit Bluetooth Low Energy und lassen sich unter Linux mit dem gatttool bedienen. Die folgenden Befehle dienen zum Nachvollziehen des oberen Expect-Skripts, sind aber für dessen Benutzung nicht notwendig.
gatttool -I -i <bluetooth_device> -b <bluetooth_address> -t random
# e.g.
gatttool -I -i hci0 -b 11:22:33:44:55:66 -t random
connect
# read the position of the roller blind from the device - in the first byte (0-64)
char-read-hnd 0x0021
# output of the position (first byte)
Characteristic value/descriptor: 00 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
# write the position of the roller blind (0-64)
char-write-req 0x0024 62
disconnect
Außerdem lassen sich zum Beispiel die programmierten Zeiten zum Hoch- und Runterfahren des Rollos an den Sonnenaufgang beziehungsweise den Sonnenuntergang durch ein Shell-Skript anpassen.
chmod 755 sunrise.sh
# get the sunrise and sunset for Berlin:
./sunrise.sh
Sicherheit
Und auch bei den Smart Shades muss ich das leidige Thema Sicherheit erwähnen. Smart Shades benötigen keine PIN-Eingabe und können somit theoretisch vom Nachbarn gesteuert werden.
Weiterführende Artikel
- Milight Fernbedienung mit dem Raspberry Pi verbinden
- Schalter und Fernbedienungen mit 433 MHz mit dem Raspberry Pi verbinden (zum Beispiel Lichtschalter)
Falls noch etwas unklar sein sollte, dann schreib einen Kommentar: