Ich habe mir dieses Jahr ein Rollladen mit Photovoltaik/Solar[eBay Werbung] für mein großes Velux Dachfenster gegönnt. Dabei ist eine kleine Integra KLI 310 Funkfernbedienung. Leider hab ich schnell gemerkt, dass man ziemlich oft die Rollladen hoch- und runterfährt und im Sommer täglich zur gleichen Zeit. Abends wollte ich gerne immer Sternenhimmel sehen, darum wieder hoch fahren. Das Teil muss man doch irgendwie in mein Home Assistant System einbinden, dachte ich.... Ja es gibt da sowas. Wieder eine eigene Zentrale von Velux, teuer und wieder ein Gerät mehr, nein das wollte ich nicht.
Gut, was macht man da als Bastler? Genau, die Fernbedienung öffnen und mal reinschauen.
Nun hat man die nackte Platine in der Hand. Auf der Oberseite sieht man die 3 Taster zur Steuerung. Auf der anderen Seite sind zum Glück Durchkontaktierungen für die Taster, so dass man diese nicht auslöten muss. Die ganze Platine läuft mit 3V. Platinennummer: 3LI D13 WW, BG-RC011-02.
Die 3 Pins UP, STOP, DOWN sind direkt mit den GPIOs des Funk-Mikrocontroller verbunden und intern über ein Pullup mit 3V verbunden. Man muss also die Pins nur kurz auf GND ziehen und schon sendet die Fernbedienung den Befehl. Also perfekt für kleine mini SMD Transistoren und einem ESP01s (oder esp32-C3 mini). Das ganze wird dann leider etwas Strom fressen, also muss ich das Teil dann extern mit einem kleinen Netzteil versorgen. Muss also noch ein kleiner DC/DC Wandler rein oder man kauft sich direkt ein Netzteil mit 3V/200mA.
Anleitung
Was wird benötigt:
Tasmota Flashen
Zuerst müsst ihr euren ESP erstmal mit Tasmota flashen. Dazu verbindet ihr den ESP mit eurem Serial-To-USB Adapter. TX->RX, RX-TX, 3.3V und GND verbinden. Der ESP01s muss dann in den sogenannten Flash Modus booten. Dazu einfach GPIO0 auf GND legen. Dann den Adapter in euren PC stecken und via Web-Flashtool Tasmota auf euren ESP flashen. Wenn das Tool Fehler anzeigt, versucht es einfach nochmal. Wenn es nicht funktioniert, liefert der Adapter nicht genügend Strom für den ESP oder schaut einfach hier. Dann muss noch eine 3,3V Energiequelle her. Ist das geschafft müsst ihr die Kiste nur noch mit eurem Router verbinden. Anleitung hier. Danach könnt ihr mit dem Löten beginnen.
Verdrahten
Der ESP passt fast in eins der beiden Batteriefächer. Der DC/DC in das andere. die Transistoren sind auch recht klein und passen dort mit rein.
Nun müsst ihr nach Schaltplan verdrahten. Nimmt eure dünnen Kabel/Adern und lötet zuerst auf der Platine der Fernbedienung. Die 3 Steuerpins für Down, Stop und Up. Und hinter der Diode + und auf der anderen Seite - direkt am Batteriepin. Wichtig ist der 10K Pullup Widerstand an GPIO2. An GPIO2 hängt auch noch die Onboard-LED. Bei mir war es so, dass der ESP nicht mehr booten wollte, wenn ich kein 10K Pullup Widerstand verwendet habe. Die anderen GPIOs benötigen keine Pullups. Eigentlich haben alle GPIOs, die für den Bootvorgang wichtig sind, interne Pullups. Nur beim GPIO2 funktioniert es wie gesagt nicht, liegt wohl an der LED + Transistor... ESP Pinbelegung findet ihr hier.
Dann baut ihr die Platine wieder ins Gehäuse und führt die Kabel irgendwo wo es passt heraus. Ansonsten einfach mit dem Lötkolben ein Loch durchstechen (zum Batteriefach).Vom einen Fach wo der DCDC sitzt müssen auch noch 2 Kabel für die 3..3,3V Versorgung zum anderen Fach zum ESP gezogen werden. Dann einfach wie geschrieben nach Schaltplan zusammen braten. Habt ihr die Transistoren mit den eingebauten Widerständen, so könnt ihr diese natürlich weg lassen. Aber ihr benötigt trotzdem noch ein Pullup Widerstand an GPIO2.
Schaltplan
Tasmota Konfiguration
Habt ihr alles soweit verdrahtet, auf Fehler/Kurzschlüsse durchgemessen (Pieper/Multimeter) dann steckt das Netzteil ein und hofft dass nichts abraucht. Gibt die Schaltung keine Rauchzeichen und die blaue LED blinkt/leuchtet, dann könnt ihr auf die Seite eures ESPs wechseln. Dort müssen erstmal ein paar Einstellungen gemacht werden, damit ihr die Schaltung testen könnt.
Configuration -> Configure Template:
Name = Denkt euch was aus z.B. Veluxcontrol
Based on = Generic (18)
GPIO0 = Relay 1
GPIO2 = Relay 3
GPIO3 = Relay 2
=> Save
Configuration -> Configure Module:
Module type = Der von euch eben vergebene Template Name
=> Save
Configuration -> Configure Logging:
Serial log level = 0 None
=> Save
Console:
PulseTime1 3
PulseTime2 3
PulseTime3 3
WebButton1 Down
WebButton2 Stop
WebButton3 Up
Mit PulseTimeX Y könnt ihr ein als Ausgang (Relay) definierten GPIOX als Monostabile Kippstufe einstellen. D.h. sobald ihr über die Weboberfläche ein Ausgang via Button schaltet, wird der Ausgang X nur für die Zeit Y (3 = 0,3s) geschaltet und fällt danach wieder ab. Wir simulieren hier also einen Druck auf einer der 3 Tasten der Fernbedienung.
Mit WebButtonX Y könnt ihr den Namen Y des Buttons X ändern.
Jetzt könnt ihr mal testen ob die Steuerung funktioniert!! Wenn das nicht funktioniert, seid ihr vielleicht zu weit vom Dachfenster entfernt. Ansonsten muss euer Multimeter her und ihr müsst nachmessen. Dazu würde ich die PulseTime auf 10s (Y=100) erhöhen.
Wenn euer ESP nicht bootet (er nicht erreichbar ist, die blaue LED leuchtet z.B. nicht), dann müsst ihr die Stromversorgung trennen und nochmal versuchen. Da fast alle GPIOs wichtig sind zum Booten und wir diese als Ausgang für den Transistor verwenden, kann es passieren, dass der ESP mal nicht bootet.
Klappt alles, dann könnt ihr die ganze Kiste zusammenbauen und irgendwo hinstellen. Der ESP hat leider eine kleine schwache Antenne, also achtet auf den Aufstellort. Als nächstes folgt die Anbindung an Home Assistant. Wie das geht habe ich allerdings schon mehrmals auf meiner Seite beschrieben. Schaut mal unter Stromzähler auslesen. Ansonsten könnt ihr hier nachschauen.
Einfaches Home Assistant Automation Template
Name = VeluxControl - Mittags
Triggers: (1) type = Time, Fixed Time 12:00
Conditions: (1) type = Device = OpenWeatherMap, Condition = Current OpenWeatherMap Forecast Temperature, Above = 24
Actions: (1) Device = VeluxControl, Action = Turn on Runter
Keine Transistoren verwenden
Laut einem Kommentar auf meinem Blog sollte es ja möglich sein, das ganze ohne Transistoren zu machen. Jedoch hat er sich (davon gehe ich aus) mit Arduino selbst eine Firmware gebaut mit folgenden Zeilen (Beispiel):
//init
pinMode(UPPin , OUTPUT_OPEN_DRAIN);
digitalWrite(UPPin, HIGH);
//Rollo nach oben fahren
digitalWrite(UPPin, Low);
delay(1000);
digitalWrite(UPPin, High)
Mit Arduino kann man die GPIOs als Open-Drain (Z-State) definieren. D.h. Im AUS-Zustand ist der Ausgang nicht beschaltet, er floatet / ist hochohmig. Wenn der GPIO geschaltet wird, dann wird dieser auf GND gezogen. Also das Verhalten, was ich mit den Transistoren mache. Mit Tasmota ist das so garnicht möglich. Sobald man ein GPIO als Relay definiert hat, ist der Ausgang entweder 3 / 3.3V oder 0V. Ich habe leider noch nicht herausgefunden, ob man das irgendwie mit einer Custom-Tasmota Firmware ändern könnte. Oder mit ESPHome....
ESP01s externe Antenne nachrüsten
Bei mir war die Antenne zu schwach, ich hatte nur -90dBm. Sehr oft kam dann der Befehl zum Öffnen nicht beim ESP an. Deshalb habe ich mir eine externe Antenne besorgt (aus einem defekten Laptop). Diese ist aber nicht sehr viel besser darum werde ich die Tage mal eine Rundstabantenne versuchen.
Home Assistant Automatisierung - Beispiele (von mir)
Hier findet ihr ein paar Automatisierungen für Home Assistant. Ich habe sie alle in dem UI Editor erstellt. Da man sie aber nicht exportieren kann habe ich einfach den YAML Code kopiert.
ottelo (Dienstag, 26 November 2024 22:34)
������
Samuel (Dienstag, 26 November 2024 22:03)
Hi, schön gehäckt!
Bin auf die Seite gelandet mit das Produktnummer der Velux Fernbedienung, und dank dir, brauche ich nicht zu vermessen welches Pad Welcher Taster gehöhrt: Danke fürs sharen! Ich bastele mich ein "Docking Station" für meinen Fernbedienungen mit der (Domoticz) Zentrale zu verbinden.
Die Zeit der ich gespart habe, benutzte ich dann um ein Auge auf deinen anderen Projekte zu werfen: Absolut mein Geschmack, besonders die Biermaschine. Viel Spaß weiterhin und liebe Grüße aus Frankreich!
Samuel
PST (Dienstag, 13 August 2024 17:28)
Danke für die gute bebilderte Anleitung. Wir haben für ein ähnliches Projekt einfach nur die Schalter gebraucht. Mit der Anleitung war es einfach das zu realisieren. So haben wir den Rolladen nun via Shelly Uni eingebunden in den IOB. Denn es geht mir darum das Fenster rauf oder runter zu fahren. Mehr nicht. Tolle Anleitung. Danke
ottelo (Montag, 15 Juli 2024 08:48)
@Pascal
Hast du die Transistoren verbaut oder es ohne gemacht? Hast du Tasmota (GPIOs aus Relay definiert) schon konfiguriert?
Die Transistoren entkoppeln die Fernbedienung vom ESP und damit sollten die Buttons auf der Fernbedienung weiterhin funktionieren, so ist es bei mir jedenfalls. SchauWi (siehe Kommentare weiter unten) hat es ohne die Transistoren auch hinbekommen. Gut möglich, dass die Tasten der FB dann aber nicht mehr funktionieren.
Pascal (Montag, 15 Juli 2024 07:56)
Sehr coole Anleitung! Ich hab mich direkt an die Arbeit gemacht und angefangen das umzusetzen.
Mir ist jedoch ein Problem aufgefallen. Sobald ich die Kabel angelötet habe funktionieren die Knöpfe an der Fernbedienung selbst nicht mehr.
Ist das normal?
ottelo (Dienstag, 02 Juli 2024 07:37)
@SchauWi
Hey cool danke für deinen Test. Find ich klasse, dass es auch so klappt. Dann kann ich meine Anleitung ja direkt mal anpassen/vereinfachen.
SchauWi (Montag, 01 Juli 2024)
Hi ottelo,
vielen Dank für die coole Anregung ... Ich hatte auch alles hier liegen (Transistoren, Widerstände etc.) und hab mich dann für einen Test hingerissen: Ich habe ein WeMos D1 mini (clone) verwendet, da der einen USB Anschluss, Spannungswandler und einen 3.3V Ausgang hat. Also +3.3V und GND vom WeMos Mini an die +/- Pole der Fernsteuerung. Dann habe ich es gewagt Deine Kontaktpunkte einfach direkt mit Pin 14 und 4 (D2 und D5) zu verbinden, und die Pins mit
pinMode(UPPin , OUTPUT_OPEN_DRAIN ) gefolgt von digitalWrite(UPPin, HIGH); zu initialisieren und dann zum "Drücken" entsprechend digitalWrite(UPPin, Low); delay(1000); digitalWrite(UPPin, High)
und siehe da: Das funktioniert ohne Widerstände und Transistoren - ich weiß nicht, ob der Strom zu hoch wird und langfristig das ESP-Modul schädigt, aber so geht es auf jeden Fall auch.
Die Frage von @Matthias wäre damit zumindest teilweise beantwortet.
ottelo (Donnerstag, 23 Mai 2024 10:44)
@Matthias,
Ich kann mich nicht mehr ganz erinnern, aber ich glaube das klappte nicht. Aber du kannst es gerne mal ausprobieren und dann mal berichten :)
Matthias (Mittwoch, 22 Mai 2024 20:24)
Hi,
danke für die Anleitung.
Kannst du mir erklären, warum man die Transistoren braucht? Reicht es nicht einfach einen GPIO mit Widerstand zu nehmen?
Viele Grüße,
Matthias
ottelo (Mittwoch, 27 Dezember 2023 10:53)
@nooby
Ja, ich glaube als ich die Anleitung erstellt hatte, kannte ich noch nicht diese Seite:
https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
Dort steht genau, welche Spannungslevel beim Booten an welchem pin anliegen und welche man nicht auf GND ziehen darf, damit der ESP sauber booten kann. Durch die Vorwiderstände der Transistoren werden die GPIOs in meinem Beispiel auf GND gezogen. Bei mir klappt es anscheinend, bei dir nicht. Ich werde mal den Schaltplan umändern und GPIO1 auf GPIO3 ändern.
nooby (Dienstag, 26 Dezember 2023 10:44)
Hi,
Danke für die Anleitung. Ich konnte es erfolgreich nachbauen.
Ich habe allerdings irgendwo einen Fehler gemacht oder irgendwo eine Einstellung vergessen. Wenn ich "Stop" auf GPIO1 gelegt habe, hat er nach einer Trennung vom Strom nicht mehr gebootet (ich vermute er ging in den Flashmodus, weil ja auch Gnd und 1 dazu gebrückt werden).
Sicherlich gibt es dafür eine Lösung, ich habe mir schlicht damit geholfen, den Switch auf einen anderen Pin zu legen.
Jetzt funktioniert es. Vielleicht hilft es jemanden beim Fehlersuchen oder jemand weiß was ich falsch gemacht habe, damit es in Zukunft besser klappt.
Buzz Yip (Dienstag, 31 Oktober 2023 20:45)
Schon mal Danke im Voraus für das Tutorial.
Ich hoffe meine Lötkünste verbessern sich langsam - und ich komme in der Anleitung endlich mal weiter ;-)