FHEM - Hausautomations-Systeme > Homematic

[HowTo] HMUARTLGW im WLAN mit HM-MOD-RPI-PCB / ESP8266 (Wemos D1) und Tasmota

(1/3) > >>

Capu:
Nachdem ich regelmäsig Probleme mit einem von der Grundinstallation relativ weit entfernten Aussen-Bewegungsmelder (HM-SEN-MDIR-O-3) hatte, hab ich mich gestern mal an das Thema "Erweiterung meines Homematic Funknetzes) begeben.
Zuerst wollte ich ein weiteres HM-MOD-RPI-PCB mittels RPi Zero bzw. Zero 2 ins Netz einbinden, aber die sind gerade etwas schwer zu bekommen oder vom Preis total unaktraktiv.
Durch den Wiki Eintrag zum HM-MOD-RPI-PCB wurde ich dann auf die Möglichkeit gestossen das ganze mittels eines ESP8266 ins WLAN einzubinden.
Da die im Wiki genannte Software ESPLink outdated ist und die Threads zu ESPEasy/ESPMega mit Tips zur Installation teilweise schon sehr alt sind, hab ich mich dann gestern dazu entschlossen einen ganz anderen Weg zu probieren und bei Erfolg auch ein aktuelles HowTo zu schreiben.
Meiner Meinung nach ist der Weg sogar noch einfacher als sich mit ESPMega eine eigene Firmware zu kompilieren, da man auf schon fertige Binaries zurückgreifen kann. Im Fall von Tasmota zudem noch welche, die sehr gut supported sind und weiterentwickelt werden.

Schritt 1: Bastelarbeit Teil 1
- HM-MOD-RPI-PCB Bausatz zusammenlöten


Schritt 2: ESP8266 flashen
Auf einem Windows PC (mit Internetanbindung) ist der einfachste Weg Tasmota zu flashen den "TASMOTIZER zu verwenden.
- Tasmotizer herunterladen
- Wemos D1 mittels USB mit dem PC verbinden
- Tasmotizer öffen (siehe Bild). Der COM-Port wird sehr zuverlässig selber gefunden.
- Bei "Select Image" greifen wir direkt auf das aktuelle Release im Internet zu, wählen also die Checkbox "Release 10.1.0" und wählen aus dem Dropdown Menü die Version "tasmota-zbbridge.bin" aus.
- Da der Wemos ein "self-resetting" Device ist und wir den ESP vor dem flashen löschen wollen, werden auch noch die letzten beiden Checkboxen ausgewählt.

Die Version tasmota-zbbridge wird verwendet, da hier schon das ser2net Modul "TCP_Bridge" mitkompiliert wurde und man es sich so sparen kann eine eigene Version zu konfigurieren und zu kompilieren.

Nach dem erfolgreichen Flashvorgang startet der ESP automatisch neu.
Wir geben dem ESP ein wenig Zeit für den Reboot und das laden von Tasmota und klicken im Tasmotizer auf "Send config".
Im folgenden Fenster wählen wir "Wifi" mit der dazugehörigen Checkbox aus und geben die WLAN Daten für das gewünschte WLAN ein und bestätigen mit "Save".
Die Daten werden an den ESP gesendet und er startet neu und verbindet sich mit dem zuvor eingegebenen WLAN.
Nachdem wir dem ESP ein wenig Zeit gegeben haben Tasmota zu starten und sich mit dem WLAN zu verbinden, klicken wir im Tasmotizer auf "Get IP" und uns wird die aktuelle IP des ESP präsentiert.
 - ESP vom PC trennen und auf anderem Wege (z.B. mit einem USB Netzteil) mit Strom versorgen.

Schritt 3: Tasmota konfigurieren
- Die eben über den Tasmotizer herausgefundene IP-Adresse öffnen wir nun im Webbrowser
- Im Tasmota Menü "Configuration" -> "Configure Module" auswählen und in der Modulauswahl den Modultyp "Generic (18)" auswählen und mit "Save" bestätigen

-> der ESP startet neu und nach eingen Sekunden befinden wir uns wieder im Tasmota Hauptmenü.

- Wir wechseln wieder in die Modulkonfiguration "Configuration" -> "Configure Module"
- Da ich mich der Einfachheit halber an die Pinbelegung aus dem Wiki gehalten habe (HM-Pin1 VCC 3.3V -> ESP 3V3, HM-Pin9 Gnd -> ESP G, HM-Pin8 RX -> ESP D8, HM-Pin 10 TX -> ESP D7),
müssen jetzt D7 und D8 des ESP in Tasmota konfiguriert werden. Bei D7 wählen wir "TCP Rx" und bei D8 "TCP Tx" aus. Nach bestätigen mit "Save" startet der ESP neu und wir gelangen ins Hauptmenü.

Schritt 4: TCP Bridge in Tasmota konfigurieren
Standardmäsig ist die TCP Bridge nach dem flashen noch nicht konfiguriert und aktiviert. Das holen wir nun nach.
- Wechseln in die Tasmota Console mit Auswahl von "Consoles" -> "Console" aus dem Hauptmenü heraus.

Man sieht nun die ESP Console in der alle 5 Minuten eine Statusmeldung ausgegeben wird und ein Eingabefeld.
- Setzen der seriellen Übertragungsrate mit Eingabe von

--- Code: ---TCPBaudRate 115200
--- Ende Code ---
mit "Enter" bestätigen. Die Datenrate von 115200 Baud ist vom HM-MOD-RPI-PCB vorgegeben.
- Starten der TCP Bridge mit

--- Code: ---TCPStart port,ip-adresse
--- Ende Code ---
Dabei ist "port" der IP-Port unter welcher das UART später erreichbar ist und "ip-adresse" die IP Adresse des FHEM Servers welcher die Verbindung herstellt. Verbindungsversuche von anderen IP Adressen werden abgelehnt.
Beispiel:

--- Code: ---TCPStart 8888,192.168.4.2
--- Ende Code ---
Die TCP Bridge lauscht auf Port "8888" und akzeptiert Verbindungen von der Adresse 192.168.4.2.
Die Eingabe wieder mit "Enter" bestätigen.

Die Tasmota Konsole bestätigt den Start der TCP Bridge.

Nach einem Neustart des ESP wäre die Bridge wieder deaktiviert, also muss sie quasi in den ESP Autostart gepackt werden. Dies kann mit s.g. Rules bewerkstelligt werden.
- Rule für die TCP Bridge erstellen und aktivieren
Ausgehend vom o.g. Beispiel geben wir in der Console

--- Code: ---Rule1 ON System#Boot do TCPStart 8888,192.168.4.2 endon
--- Ende Code ---
ein und bestätigen dies mit "Enter". Port und IP sollten natürlich an die eigenen Wünsche und Erfordernisse angepasst werden.
Nun nur noch die Rule aktivieren mit

--- Code: ---Rule1 1
--- Ende Code ---
und den ESP einmal neu starten.
Bei jedem Neustart wird jetzt die TCP Bridge mit den in der Rule hinterlegten Parametern gestartet.

ESP fertig!

Schritt 5: Bastelarbeiten Teil 2
- HM-Modul mit Wemos D1 verbinden
Wie schon erwähnt hab ich mich an die Pin- und Portbelegung aus dem Wiki gehalten.
Man kann die 2 Platinen direkt mit Drähten "Freiluftverdraten", ich hab mich aber für eine stabilere Lösung entschieden um ggf. auch mal schnell den ESP austauschen zu können. (siehe Bilder unten)
Hier nochmal die Pinbelegung:
HM-Pin1 VCC 3.3V -> ESP 3V3
HM-Pin9 Gnd -> ESP G
HM-Pin8 RX -> ESP D8
HM-Pin 10 TX -> ESP D7

Schritt 6: WLAN-HM-MOD-RPI-PCB in FHEM einbinden
Hier einfach ans Wiki halten, warum alles neu tippen was schon im Wiki steht ;)
Je nach euren Wünschen und Bedürnissen als alleiniges IODev für Homematic, oder als zusätzliches Device mit einem virtuellen Controller (VCCU) einbinden.
Bei der Definition des Devices

--- Code: ---Define WLAN_HmUART HMUARTLGW uart://<IP-Adresse>:<Portnummer>
--- Ende Code ---
ist die "IP-Adresse" natürlich die IP des ESP im WLAN und die "Portnummer" der Port welcher mit TCPStart im ESP konfiguriert wurde!

Da mein HM-Funkmodul mit der Firmwareversion 1.2.9 ankam, hab ich dieses auch gleich mit dem im Wiki beschrieben Weg mit einem Update versorgt (ja, über WLAN und dem ESP) und das hat super funktioniert.
Wenn euer WLAN in Ordnung ist und nicht eh schon aus dem letzten Loch pfeift, sollte es auch mit der Latenz kein Problem geben. Bisher konnte ich keinen WLAN oder ESP bedingten Abriss der Kommunikation feststellen und das ganze
funktioniert sehr stabil.

Vielleicht hilft dieses kleine HowTo ja dem ein oder anderen weiter.

Anmerkung zu meiner Platine: Natürlich schneid ich die noch kleiner wenn die Testphase abgeschlossen ist und pack das ganze in ein Gehäuse ;)


tndx:
Danke für die detaillierte Anleitung. Wollte ich auch schon immer mal ausprobieren, aber solange das mit ESPlink zuverlässig läuft, fehlte der entscheidende Trigger :)

Was das Kompaktmachen angeht, schau dir diese Platine an:
https://forum.fhem.de/index.php/topic,115222.0.html

Macht zwar auch nichts anderes, als die 4 Pins miteinander zu verbinden, aber doch deutlich kompakter, zumal man bei dem HM-MOD-RPI-PCB auf die Trägerplatine bei der Konstellation verzichten kann.

Capu:
Danke für das Danke! ;)
Ja, die Platine habe ich im Forum schon gesehn. Von der Größe her natürlich kaum zu schlagen.  ;D
Aber zum einen wollte ich das Projekt gestern sofort umsetzen, zum anderen wollte ich bewusst beides "gesockelt" und den HM-MOD-RPI-PCB komplett haben,
für den Fall das man doch mal auf eine kabelgebundene Variante wechselt oder sonstige Ideen. Zusammenlöten geht immer besser als auseinander!  ;D

Langzeitberichte was die Stabilität von Tasmota und den ESP angeht reiche ich natürlich nach. Hab grad erst ne uptime vom ESP von 18h, die aber Fehlermeldungsfrei im FHEM.

Wenn ich Zeit und Lust hab wird dann noch die Lochrasterplatine zurecht geschnitten und ein Gehäuse gezeichnet und gedruckt. Erstmal war wichtig das mich das Bewegungsmelder
nicht mehr nervt. Und das ist (erstmal) gelöst!

Nachtrag: Klar, wer ein laufendes ESPLink hat, der braucht nichts neues. Aber für User wie mich, die ESP's nur z.B. tasmotisieren und es nicht so mit selber Firmware bauen/kompilieren haben,
war das für mich die schnellere und einfachere Methode.

Otto123:
Hi,

ich bin gespannt. Ich habe das mal  mit einem ESP32 und LAN probiert https://forum.fhem.de/index.php/topic,122643.msg1172069.html#msg1172069
Im Gegensatz zu anderen Anbindungen hat mir das nicht 100% gefallen.
Ich muss mir das nochmal anschauen.

Danke für Deine Beschreibung

Otto

Capu:
Hi Otto,
ja, kenne den Thread. Hab ich gestern Abend auch gelesen. Werde das mit eventuellen Timing Problemen oder falschen Daten im Auge behalten.

Die einzige wirkliche Fehlermeldung die bisher kam

--- Code: ---2022.01.28 22:14:09 1: myWLAN_HmUART is against deletion (1 : myHmUART:ok,myWLAN_HmUART:disconnected), continuing with rereadcfg anyway
--- Ende Code ---
ist durch das händische einsortieren des neuen IODevs gemäß Wiki (VCCU) entstanden:

--- Zitat ---Solange kein Modul die Einträge in der fhem.cfg entsprechend einsortiert, muss diese Korrektur von Hand erfolgen. Dies ist einer der wenigen Fälle, wo direktes Editieren der fhem.cfg z.B. mit dem eingebautem Editor unumgänglich ist. Soll der im Standard-WEBinterface von FHEM eingebaute Editor verwendet werden, muss zuerst das Attribut

attr WEB editConfig 1

in FHEM gesetzt werden. Anschließend die kompletten define Blöcke mit allem was dazu gehört entsprechend in die empfohlene Struktur bringen. Datei sichern und rereadcfg eingeben.
--- Ende Zitat ---
Ist also nachvollziehbar.

Wirklich Bedenken hatte ich beim FW Update des HM-MOD-RPI-PCB über den Weg, aber Versuch macht klu(ch/)g.

--- Code: ---2022.01.28 22:19:20 1: HMUARTLGW myWLAN_HmUART starting firmware upgrade
2022.01.28 22:19:45 1: HMUARTLGW myWLAN_HmUART firmware update successfull
--- Ende Code ---
Das war absolut kein Problem und ging auch fix.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln