Hörrmann Supramatic mit ESP8266 / Tasmota und 433 MHz ansteuern
Basierend auf den SONOFF Modulen habe ich mein Garagentorantrieb von Hörrmann erweitert.
Die Reichweite der Original-Fernbedienung war nicht ausreichend. Da ich weitere Sender benötigte, habe ich auch aus Kostengründen dann die Lösung mit dem einem ESP8266 aufgebaut.
Folgende Baugruppen habe ich eingesetzt:
- DC/DC Wandler; 1,00 EUR inkl. Versand
LM2596 DC-DC Verstellbar Power Step-Down Stromversorgung Regler Modul - ESP8266 / NodeMCU $6,00 inkl. Versand
NodeMCU V3.2 Amica ESP8266 CP2102 WLAN WIFI Arduno IoT LUA - 433 MHz Receiver – RXB12
- 5V Relays Platine; 3,50 EUR inkl. Versand
2-Kanal Channel 5V Kanal Relais Modul Board für Arduino PIC AVR MCU DSP ARM RULE - 433 Mhz Sender; $5,00
4 Knopf-elektrisches Garagentor-Tür-Fernsteuerungsschlüssel-Klon 433,92 MHz
Vor rund 5 Jahren habe ich dies mit einem Arduino gelöst. Mittlerweile setze ich einen ESP8266 mit Tasmota ein. Mittlwerweile habe ich 12 Module mit Tasmota im Einstaz und bin davon einfach begeistert. Die Module kann ich per MQTT anbinden bzw. steuern und die Integration in OpenHAB ist einfacher.
Es gibt mehrere Möglichkeiten dies zu realisieren. Ein SONOFF Dual Modul um einen 433MHz receiver erweitern oder ein SONOFF R3RF verwenden und ein separates, zweites Relais.
Da ich aber ein NodeMCU und das Relay-Modul noch hatte, wollte ich das selber aufbauen. Dann kann man auch gleich eine vernünftige Antenne herstellen. Es gibt aber einen Nachteil, wenn man ein Modul mit einenem 433 MHz Empfänger baut: Das fertige binary für die Tasmota Firmware fehlt die Unterstützung von RCSwitch für den 433MHz Empfang.
Firmware mit RCSwitch erzeugen
Fertige Firmware
Da nicht jeder die Möglichkeit hat eine Firmware zu erzeugen, habe ich hier ein ZIP-File mit zwei Dateien angehängt.
– tasmota-minimal_v-9-2-0
– tasmota-DE-RF433_v-9-2-0
Beides basiert auf der aktuellen Version 9.2.0.
Die Minimal-Version brauche ich ab und zu, wenn der Upgrade fehlschlägt.
Die andere Datei ist die vollständige Version auf Deutsch mit dem RF-Modul.
Tasmota-Projekt in VSCode erzeugen
Link von github holen
Auf “Clone or download” drücken und den Link kopieren. Achtung muss HTTPS sein, nicht SSH.
In VSCode Projekt klonen
Kommandozeile aufrufen mit: CTRL SHIFT P
Dann den link von oben einfügen: https://github.com/arendst/Tasmota.git
VSCode Project Settings
Nun muss das geklonte Projekt angepasst werden. Hierbei werden zwei Dateien kopiert und geändert.
Mit github kann man das Projekt jederzeit aktualisieren. Dafür darf man aber nicht die Original Dateien ändern, löschen oder umbenennen.
Die beiden neuen Dateien werden über .gitignore von der Versionsverwaltung ausgenommen.
Platformio
Kopiere platformio_override_sample.ini nach platformio_override.ini.
Dann in der platformio_override.ini folgende Änderungen vornehmen:
platformio_override.ini
[codesyntax lang=”bash”]
Set environments default_envs = tasmota-DE tasmota-minimal ; tasmota
[/codesyntax]
user_config_override.h
Kopiere .\tasmota\user_config_override_sample.h nach .\tasmota\user_config_override.h
Im ersten Teil wird das 433MHz Modul hinzegfügt. Die beiden folgenden Teile sorgen setzen die default Werte für WLAN und MQTT.
Dann verbindet sich das Modul nach dem ersten Start sofort mit dem WLAN und man muss nicht erst umständlich mit den Handy das Modul ins Netzwerk bringen.
[codesyntax lang=”bash”]
// -- Enable 433 --------------- #undef RF_SENSOR #define RF_SENSOR #undef USE_RC_SWITCH #define USE_RC_SWITCH // -- Setup your own wifi settings --------------- #undef STA_SSID1 #define STA_SSID1 "meinwifi" // [Ssid1] Wifi SSID #undef STA_PASS1 #define STA_PASS1 "meinpasssword" // [Password1] Wifi password // -- Setup your own MQTT settings --------------- #undef MQTT_HOST #define MQTT_HOST "192.168.xxx.xxx" // [MqttHost] [/codesyntax]
Firmware hochladen
Hierzu benutzt man einfach den NodeMCU-PyFlasher
https://github.com/marcelstoer/nodemcu-pyflasher/releases
Achtung: Flash Mode auf DOUT stellen
Modul konfigurieren
Als Gerätetyp Generic(18) auswählen (sollte ganz unten in der Liste sein).
Mit der neuen Firmware, erscheint nun auch RFrecv in der Liste für die GPIOs.
Regeln erstellen
In der Konsole des Moduls wechselt man zur Konsole.
Nun drückt man die Tasten der 433 MHz Fernbedienung und kopiert sich die Codes.
Diese werden nun in den Regeln hinterlegt. Mehrere Zeilen für eine Regel kann man als Block kopieren und einfügen.
Pulsetime sorgt dafür, dass die Relais nach kurzer Zeit wieder automatisch abschalten.
backlog rule1 off; rule2 off; rule3 off; rule1 "; rule2 "; rule3 " backlog Mem1 2; Mem2 7; Pulsetime1 7; Pulsetime2 6 Rule1 On power1#state=on do Backlog Power1 off; RuleTimer1 %mem1% endon On power2#state=on do Backlog Power2 off; RuleTimer1 %mem1% endon on event#PState do publish house/stat/GarageDoor/STATE %value% endon Rule2 on event#Opened do backlog var 1; var2 0; var3 0; var4 0; ruletimer1 0; event PState=OPEN endon on event#Closed do backlog var1 0; var2 1; var3 0; var4 0; ruletimer1 0; event PState=CLOSE endon on event#Opening do backlog var1 0; var2 0; var3 1; var4 0; ruletimer1 15; event PState=OPENING endon on event#Closing do backlog var1 0; var2 0; var3 0; var4 1; ruletimer1 15; event PState=CLOSING endon Rule3 on RfReceived#Data=0x510403 do power1 on endon on RfReceived#Data=0x5104C0 do power2 on endon on RfReceived#Data=0x510499 do power1 off endon on RfReceived#Data=0x775D0C do power2 on endon on RfReceived#Data=0x510430 do event Opened endon on RfReceived#Data=0x34120E do event Opened endon on RfReceived#Data=0x34060E do event Closed endon on RfReceived#Data=0x34060A do event Opening endon on RfReceived#Data=0x34120A do event Closing endon backlog rule1 on; rule2 on; rule3 on;
Hardware
433 Receiver
Das Modul RXB12 soll den besten Empfang haben. Siehe https://forum.arduino.cc/index.php?topic=612754.0
Auf dem Bild ist noch ein anderer Empfänger.
Antenne
Maßgeblich für den Empfang ist natürlich eine gute Antenne. Die für mich beste und einfachste Lösung: https://crycode.de/diy-433-mhz-dipol-antenne
Taster für die Wandmontage
Die 433MhZ Handsender haben bei uns die Tendenz sich an Orte und bewegen, wo man sie nicht mehr findet.
Daher habe ich nun Taster gesucht, die man an der Wand montieren kann.
Die unten gezeigte Taster sind gerade 13mm dick und können beliebig montiert werden, d.h. mein braucht keine UP-Dose.
Die Oberfläche besteht aus Glas, die gut aussieht und leicht gereinigt werden kann.
Es gibt die Taster mit einem, zwei oder drei Knöpfen. Bei Auslösung leuchtet die Taste leicht blau.
Die Taster kosten ca. 9 EUR beim Chinesen meines Vertrauens:
Pingback: Hörrmann Supramatic mit arduino 433 MHz ansteuern - Thomas Höser