IoT Rolladensteuerung
Ein seit langem schwellendes Problem im Büro wurde jetzt mal angegangen. Die “nervige” Rolladensteuerung im Büro. Warum an den Schalter stellen und eine ganze Minute lang den Knopf drücken?Da kann man doch auch nen Servomotor hinmachen und dann vom Rechner ansteuern! Gesagt getan, oder besser gesagt überlegt, gezeichnet und gekauft.
Folgende Schritte waren notwendig:
- Hardware bestellen
- Software-Code schreiben
- In Homeautomation einbinden
Hardware
TLTR: Am Ende des Abschnitts gibt es die Teileliste der Rolladensteuerung.
Nach ein paar empirischen Erfahrungen hatte ich einen passenden Servo bestellt, welcher auch genug Kraft besitzt um die Schalter zu betätigen. Für einen Schalter genügt hier ein Servo, da dieser wechselseitig entweder nach oben oder unten drückt. Die entsprechenden Winkel werden später in der Software festgelegt.
Um diesen anzusteuern habe ich mich für den ESP8266
Chip mit NodeMCU entschieden. Dieser ist sehr kostengünstig zu erwerben (um die 2€)
und enthält bereits einen integrierten WLAN Chip für die spätere MQTT Kommunikation. Zudem kann er mittels USB mit Strom versorgt werden und
wird eines der vielen rumliegenden Micro-USB Netzteile als Stromquelle bekommen.
Nach einigen ersten Gehversuchen in Fusion 360 und ein paar Testdrucken am 3D Drucker ist der finale Entwurf für einen neuen Schalterrahmen entstanden. Als Muster stand mir hierfür ein Exemplar von Busch & Jaeger aus dem Schlaterprogramm Reflex Si. Dieser ersetzt den vorhandenen Rahmen und besitzt zudem eine Halterung für den Servo und die Platine. (Model auf Thingiverse) Mit diesem eingesetzten Rahmen ist weiterhin auch eine manuelle Betätigung möglich.
Beim Zusammenbau der Komponenten ist lediglich auf die richtige Verbindung des Servo mit den Pins zu achten. Die braune und rote Leitung des Servos sind immer der Ground und der +5V Anschluss. Der gelbe Draht erwartet somit das Steuersignal, welches in der Standardkonfiguration auf dem Pin D1 ausgegeben wird. Ich habe aus dem Stecker vorsichtig mit einem Schraubenzieher den Steuerdraht herausgezogen und kann diesen nun flexibel verbinden. Wo sich die Pins genau befinden steht auf der Platine und ihr seht im linken Bild die verbundene Rückseite.
Für die Befestigung am Rahmen habe ich die beim Servo mitgelieferten Schrauben verwendet (Den Servo selbst auch nur 2x angeschraubt.)
Einkaufsliste
- 1x MG996R Servo (AliExpress oder Amazon)
- 1x NodeMCU v3 ESP8266 (AliExpress oder Amazon)
- ggf. ein USB-Micro Netzteil
Software
Da ich immer noch bei der Embeddedentwicklung auf eher ungewohnten Pfade wandele benutze ich aktuell auch immer noch die Arduino Plattform zum compilieren. Für das eigentliche Schreiben verwende ich allerdings Sublime, da ich hier meine gewohnte Umgebung mit Syntax-highlighting (farbliche Hervorhebung von Befehlen und Paramatern, …) habe.
Am Anfang der Datei ist der Konfigurationsabschnitt um einige Einstellungen wie die WLAN oder MQTT Einstellungen festzulegen. Auch lässt sich hier der Pin für den Servomotor und die jeweiligen Auslenkungen justieren. Der Code sowie eine genauere Beschreibung lässt sich auf Github unter Poeschl/Window-shutter-control finden.
Einbindung der Rolladensteuerung in die Homeautomation Ich verwende für die Automatisierung privat als auch im Büro den Home Assistant und davon das auf den Raspberry Pi ausgelegte Linux Distribution Hass.io. Diese erlaubt auf dem Raspi sehr schnell eine voll funktionsfähige und erweiterbare Plattform aufzuziehen. Um zwischen dem System auf dem Raspberry und dem NodeMCU eine Verbindung herzustellen, müssen sich beide Geräte in einem gemeinsamen Netzwerk befinden. Nach diesem Schritt muss ein MQTT Broker zur Verfügung stehen. Dieser ist als zentraler Server zu verstehen, welcher zwischen IoT-Geräten und dem Home Assistant vermittelt. Hass.io bietet dafür ein Addon “Mosquitto broker” an, welches sich mit einem Klick installieren lässt.
Um den “Shutter-Controller” einzubinden ist noch ein kleiner Eintrag in der Konfiguration von Home Assistant nötig. Damit wird die richtige Topic für den Home Assistant festgelegt, auf welchen die Steuerbefehle hinterlegt werden müssen. In die Konfiguration schreibt man folgende Zeilen:
cover:
- platform: mqtt
command_topic: window-shutter-control/1234/command
optimistic: true
device_class: shutter
retain: true
Nach einem Reboot steht die Rolladensteuerung auf der Oberfläche zur Verfügung und sollte ihren Dienst tun.