HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi
HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi | |
---|---|
Allgemein | |
Protokoll | HomeMatic |
Typ | Gateway |
Kategorie | HomeMatic |
Technische Details | |
Kommunikation | 868,3/869,525 MHz |
Kanäle | n/a |
Betriebsspannung | 1,8–3,6 V DC |
Leistungsaufnahme | 50 mA max. |
Versorgung | RasPi |
Abmessungen | 19x41x14mm |
Sonstiges | |
Modulname | HMUARTLGW |
Hersteller | ELV / eQ-3 |
Das HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi ist eine Platine, die auf die GPIO-Schnittstelle des Raspberry Pi aufgesteckt werden und damit als Interface zu HomeMatic Geräten dienen kann.
Aufbau, Einsatz und grundsätzliche Funktionsweise
Das Modul besteht aus zwei Teilplatinen, die von eQ-3 über den Internetshop von ELV (als Bausatz ab etwa 20€, fertig montiert ab etwa 30€) verkauft werden.
Das eigentliche Funkmodul wird mit HM-MOD-RPI-UART bezeichnet (und trägt den Aufdruck UART, im obigen Bild hinten teilweise verdeckt und mit der umrandeten 7 versehen), sie hat fünf einpolige Buchsen mit dem Rastermaß 2mm. Die Zusatzplatine zum Anschluss an die GPIO wird mit TRX1 bezeichnet (im obigen Bild vorn sichtbar mit dem Aufdruck HM-MOD-RPI-PCB), sie hat zwei sechspolige Buchsen mit dem Rastermaß 2,54mm. Die Zusatzplatine enthält im Wesentlichen Stützkondensatoren und erlaubt einen direkten Anschluss an die GPIO eines Raspberry Pi.
- Der vorgesehene Einsatz als Aufsteckmodul auf den GPIO Port des Raspberry erfordert eine Modell abhängige Konfiguration. Diese wird im Setupbereich des Wiki Artikel zum Raspberry_Pi beschrieben.
Mit dieser Platine in Verbindung mit dem FHEM-Modul HMUARTLGW ist nur der Betrieb von BidCoS-Geräten möglich. Zur Einbindung von Geräten, die HM-IP verwenden, ist derzeit (Stand Juni 2018) noch zwingend eine (ggf. virtualisierte) CCU2 oder neuer erforderlich.
Das Funkmodul stellt auf dem 868MHz-Frequenzband eine Verbindung zu Homematic-Geräten her. Das Modul wird über die serielle Schnittstelle an ein Gerät gekoppelt, dass diese serielle Schnittstelle auswerten und die Information dann weiterverarbeiten kann. Hier kommen beispielsweise in Frage: Raspberry Pi, WeMos mini, ESP8266-Module, USB-serielle Adapter. Bereits das UART-Funkmodul erlaubt eine serielle Anbindung (die entsprechenden Schnittstellen Tx und Rx sind vorhanden, sie basieren auf 3,3V), es kann aber auch die zusätzliche TRX1-Platine seriell verbunden werden. Des weiteren gibt es im Forum einen (Thread), in dem PeMue eine eigene Platinenversion (Schaltplan, Stückliste und vieles mehr) vorstellt.
Platine 1 -PCB-Modul
Am einfachsten ist es sicherlich, das kombinierte PCB-Modul (also beide Platinen UART und TRX1 durch eine Pfostenleiste miteinander verlötet) direkt auf die GPIO des Raspberry Pi aufzustecken. Das Bild rechts zeigt die entsprechende Verkabelung. Dabei ist zu beachten, dass sich nicht zwei Module die GPIO teilen können. Steckt schon ein Modul im Raspberry Pi, muss der Anschluss per USB, in einem zweiten Raspberry Pi oder per WLAN gewählt werden.
Platine 2 -UART-Modul
Will man das TRX1-Modul nicht verwenden, so kann man auch das UART-Modul direkt mit Rx/Tx des Raspberry Pi verbinden. Das Bild rechts zeigt die entsprechende Verkabelung. Hier sollten allerdings Stützkondensatoren an die Stromversorgung des UART angebracht werden, da Spannungsschwankungen sonst zu schwer interpretierbaren Fehlern führen können. Die Anschlüsse sind dem nachstehenden Bild zu entnehmen, allerdings ist hier nicht die UART-Platine, sondern das TRX1-Gegenstück zu sehen!
Sowohl serielle Schnittstelle des Raspberry Pi als auch das UART-Modul arbeiten mit 3,3V arbeitet, so dass man keine Spannungsteiler benötigt. Mehr Informationen zu den GPIOs findet man unter diesem Link.
Zusammenbau und Verwendung
Man sollte die Antenne aus dem Gehäuse schauen lassen oder möglichst weit weg von jeder Elektronik positionieren. Idealerweise sollte das Ende der Drahtantenne mit einem Klecks Heißkleber oder ähnlichem isoliert werden; eine Berührung vor allem mit dem Innenleben des Raspberry Pi muss vermieden werden!
Beide Platinen können zusammengebaut oder auch nur das UART Modul getrennt verwendet werden.
Die originale Montage in der Anleitung von eq3 sieht den Zusammenbau PCB Modul unten und UART Modul oben vor (Bild rechts). Damit schließen die kleineren Pi-Gehäuse nicht richtig: das Gesamtmodul klemmt am Deckel.
Man kann ohne weiteres das UART-Modul unter dem PCB-Modul montieren (Bild links, das Modul muss entsprechend gedreht werden), damit wird die Gesamthöhe geringer und es passt problemlos in jedes Gehäuse. Es kann sein, dass jetzt aber Kühlkörper oder ähnliches seitens der Pi-Platine stören.
Bitte auf die richtige Lage (Bilder) beim Zusammenbau und auf Lötzinnbrücken achten. Da die Anschlüsse durchkontaktiert sind, bewirkt eine falsche Positionierung des UART-Moduls im schlimmsten Fall einen Kurzschluss. Man erkennt auf beiden Bildern, dass beim UART-Modul die Pinleiste einmal auf der einen und ein andermal auf der anderen Seite des Moduls angelötet werden muss!
Verwendung mit Raspberry Pi
Originaler Einsatzzweck im Raspberry
Die notwendige Konfiguration der Schnittstelle ist hier beschrieben: Verwendung UART für Zusatzmodule.
- Der Einsatz in FHEM für CUL_HM erfolgt mit dem Modul HMUARTLGW
- Die automatische Erkennung der USB Geräte muss deaktiviert werden!
attr initialUsbCheck disable 1
Remoteanbindung - Pi + RPI Modul = LAN Modul
Mit einem vorhandene Pi kann man HM-MOD-RPI-PCB Modul auch im Netzwerk verfügbar machen. Dieser Pi kann beliebige Aufgaben erledigen, nur das HM-MOD-RPI-PCB Modul selbst darf nicht lokal verwendet werden.
Somit kann man bei einem Umzug des FHEM Servers das HM-MOD-RPI-PCB Modul einfach weiterhin nutzen oder einen vorhandene RaspberryPi zum "HMLAN" umbauen. Sollte man aber ausschließlich Zugriff auf das HM-MOD-RPI-PCB Modul im Netzwerk benötigen empfiehlt sich auch aus Kostengründen (Stromverbrauch) eine andere Lösung.
Achtung! Auch über das Netzwerk darf immer nur eine Instanz auf das freigegebene Modul zugreifen!
Die Konfiguration der Schnittstelle ist in jedem Fall gleich: Verwendung UART für Zusatzmodule. Die Definition in FHEM erfolgt dann mit dem Parameter uart:// .
Variante mit ser2net
Diese Installation auf dem Pi mit dem HM-MOD-RPI-PCB Modul bitte im Kontext sudo su
ausführen.
apt-get install ser2net echo "4000:raw:0:/dev/ttyAMA0:115200 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE" >> /etc/ser2net.conf # Den Dienst neu starten systemctl restart ser2net
Variante mit socat
Installation auf dem Pi wo das Modul steckt bitte so installieren.
sudo apt-get install socat
Zum Test kann man socat in der Kommandozeile starten
sudo socat TCP4-LISTEN:2000,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200
Für den dauerhaften Betrieb muss der Start von socat automatisch erfolgen. Auf einen Debian Jessie mit systemd legt man z.B. einen Dienst durch folgende Datei an: /etc/systemd/system/hmlangw.service
[Install] WantedBy=multi-user.target Type=forking [Service] ExecStart=/usr/bin/socat TCP4-LISTEN:2000,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200 User=root Restart=always RestartSec=10
Dann kann mit
sudo systemctl enable hmlangw
der Service zum Autostart konfiguriert werden.
Verwendung mit anderer Hardware
Anbindung mit USB-Adapter
Das UART-Modul kann ebenfalls mit einem USB-Adapter an ein USB-fähiges Gerät angeschlossen werden. Allerdings ist hier wieder auf den Spannnungspegel zu achten, unbedingt einen USB-Adapter mit 3,3 Volt Pegel nehmen! Grundsätzlich bewährt haben sich z.B. Modelle mit einem CP2102, der auch ausreichend Stromreserven zum Betrieb des Moduls bietet. Dabei ist die serielle Schnittstelle wie üblich zu kreuzen, also
Verschaltung
3.3V <-> 3.3V GND <-> GND Rx <-> Tx Tx <-> Rx
Anbindung mit ESP8266
Es kann eigentlich ein beliebiger ESP8266 verwendet werden. Mit einigen Versionen (Beispiel: ESP07, siehe [1]) ist eine Anbindung anscheinend nur dann möglich, wenn man einen Pull-up Resistor an Tx anbringt (wenn Tx genutzt wird, siehe dazu unten "Verschaltung"). Beim ESP8266 gibt es zwei verschiedene Firmware-Möglichkeiten: ESPLink oder ESPEasy.
ESPLink ist eine sehr stabile und nicht mehr aktiv weiterentwickelte Firmware, die die serielle Schnittstelle direkt mit WLAN verbindet und ohne größere Schwierigkeiten eingerichtet werden kann und funktioniert. Sie nutzt die serielle Schnittstelle des ESP. Allerdings erlaubt ESPLink nicht die Nutzung anderer GPIOs, so können beispielsweise keine anderen Sensoren mit angeschlossen bzw. ausgelesen werden. Verwendet man ESP-Link, so muss neben der WLAN Konfiguration nur das Pin Assignment konfiguriert werden. Alle Pins auf disabled stellen.
ESPEasy (neue Version: ESPMega) wird beständig weiterentwickelt und gestattet es, weitere Sensoren anzuschließen und deren Werte auszulesen. Insbesondere kann man mit ESPEasy auch zwei weitere Pins nutzen, um eine serielle Schnittstelle zu simulieren (so genannter serieller Server). Man spricht auch von einer swapped Schnittstelle. Die Platine von amunra nutzt eine solche Schnittstelle. Allerdings gibt es mit einigen ESP8266-Geräten Schwierigkeiten, diese serielle Schnittstelle zu nutzen. So ist etwa ein serieller Server mit neueren ESP-Versionen anscheinend nicht lauffähig (siehe dazu diesen Thread). Es gibt eine ältere Firmware-Version von PeMue, die unmittelbar funktionsfähig scheint, siehe dazu diesen Forumsbeitrag.
Bei der seriellen Schnittstelle (da die ESP auf 3,3V laufen, sind keine Spannungsteiler erforderlich) findet man die Verschaltung unten. Bei der swapped Schnittstelle wird auf die digitalen Pins D7/D8 zurückgegriffen (siehe auch unten). Die letztere Verschaltung erfordert eine entsprechende Implementierung der Schnittstelle in der Firmware selbst, die beispielsweise bei ESPEasy unter Umständen nicht gegeben ist oder selbst kompiliert werden muss.
Verschaltung bei einem WeMos D1 mini
(UART) <-> (Wemos swapped) <-> (Wemos seriell) 3.3V <-> 3.3V <-> 3.3V GND <-> GND <-> GND Rx <-> D8 <-> Tx (D10 oder Tx) Tx <-> D7 <-> Rx (D9 oder Rx)
Es gibt eine ausführliche Erläuterung für die Software unter [2], siehe auch diese Grafik der Pins des Wemos
Im Forum gibt es mehr Informationen zu diesen Adaptern, zum Beispiel "(amunra)-Platine für HM-MOD-UART-RPI..." oder "3. Sammelbestellung - Homematic WLAN Gateway".
Betrieb mit einem LAN-TTL-Wandler
Auf gängigen Marktplätzen sind für etwas weniger als 10 Euro Module erhältlich, die einen seriellen Anschluss im LAN bereitstellen können. Näher Hinweise sind in den Artikeln Serial TTL to Ethernet Module sowie 1W-IF-ETH zu finden.
Die Module melden sich per DHCP[1] im Netzwerk an, die Konfiguration erfolgt je nach Variante über ein Web-Interface, ein Windows-Tool oder eine Management-Software.
Betrieb mit einem WLAN-Wemos
Auf dem linken Foto ist der Anschluss des gesamten Moduls (Rastermaß 2,54mm statt 2mm!) an den Wemos zur Wifi-Einbindung abgebildet.
Betrieb mit MapleCUx
Auch die seriellen Schnittstellen, die ein MapleCUL oder MapleCUN bereitstellen, können zum Anschluß des Moduls verwendet werden. Der MapleCUN stellt beide seriellen Schnittstellen je unter einem eigenen Port ins Netz.
Definition in FHEM
Je nach physischem Anschluss erfolgt eine Anbindung in FHEM in unterschiedlicher Weise. Wurde ein USB-Adapter auf dem FHEM-Gerät selbst verwendet, definiert man das Gerät in FHEM wie folgt
define USB_HmUART HMUARTLGW /dev/ttyUSBx
Wurde dagegen das Gerät über WLAN oder LAN durch das UART-Modul angebunden, erfolgt die Einbindung in FHEM durch
define WLAN_HmUART HMUARTLGW uart://<IP-Adresse>:<Portnummer>
Portnummern:
- ser2net 4000 (bzw. entsprechend gewählter Einstellung)
- socat 2000 (bzw. entsprechend gewählter Einstellung)
- esp-link 23
- MapleCUN 2324 bzw. 2325
- USR-TCP232-T2 entspr. Konfiguration.
Logbeispiel
Typischerweise meldet sich das Modul beim Start so:
2016.10.06 17:11:16 3: Opening myHmUART device /dev/ttyAMA0 2016.10.06 17:11:16 3: Setting myHmUART serial parameters to 115200,8,N,1 2016.10.06 17:11:16 3: myHmUART device opened 2016.10.06 17:11:17 3: HMUARTLGW myHmUART currently running Co_CPU_BL 2016.10.06 17:11:17 3: HMUARTLGW myHmUART currently running Co_CPU_App
Verwendung AES in FHEM
Das Modul beherrscht AES. Für weitere Informationen gibt es einen separaten Wiki Eintrag AES Encryption
Firmware Update des UART-Moduls mit FHEM
Die Module werden mit einer Firmware 1.2.1 ausgeliefert. Dies Firmware ist nicht für einen stabilen Betrieb geeignet, die Firmware 1.4.1 ist die minimal lauffähige Version.
Bitte den Befehl zum download inklusive der Anführungszeichen in die FHEM Kommandozeile eingeben!
Firmware herunterladen
- Version 1.4.1
"wget -qO ./FHEM/firmware/coprocessor_update.eq3 https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/HM-MOD-UART/coprocessor_update.eq3"
- Alternativ die aktuellste (nicht empfohlen)
"wget -qO ./FHEM/firmware/coprocessor_update.eq3 https://raw.githubusercontent.com/eq-3/occu/HEAD/firmware/HM-MOD-UART/coprocessor_update.eq3"
(Firmware neuer als 1.4.1 dient für CCU-Klonen mit Mischbetrieb BidCOs, klassisch HomeMatic und HomeMatic IP, siehe dieser Forumbeitrag).
Flashen der neuen Firmware aus FHEM
Erstmal überzeugen das die Firmware da ist: Z.B. mit dem Befehl in der FHEM Kommandozeile, die Ausgabe erfolgt in der Weboberfläche!
{qx(ls -lha ./FHEM/firmware)}
Wenn alles ok flashen:
set myHmUART updateCoPro /opt/fhem/FHEM/firmware/coprocessor_update.eq3
Firmware Update des UART-Moduls ohne FHEM
Sollte das Update über FHEM nicht funktionieren oder FHEM nicht verfügbar sein, kann die Firmware auch wie folgt eingespielt werden (Quelle: Ottos Technik Blog)
sudo su apt-get update && apt-get -y install libusb-1.0-0-dev build-essential git systemctl stop fhem git clone git://git.zerfleddert.de/hmcfgusb cd hmcfgusb/ make # Firmware runterladen wget https://raw.githubusercontent.com/eq-3/occu/ee68faf77e42ed5e3641790b43a710a3301cea7e/firmware/HM-MOD-UART/coprocessor_update.eq3 # eigentliches flashen: ./flash-hmmoduart -U /dev/ttyAMA0 coprocessor_update.eq3
Bekannte Probleme
Sollten beim Flashen der Firmware hartnäckige Probleme auftreten (kein Erfolg aber auch gar keine Fehlermeldungen) ist das Modul vom Strom zu trennen, ein Neustart des Pi reicht nicht!
Ein Beitrag aus dem genannten Forenthread: Das Ding ist anscheinend wirklich einfach das Funkmodul aus der CCU2 (wird zumindest in der eQ-3 SW als CCU2 angesprochen) und spricht ein für FHEM vollkommen neues Protokoll.
Links
- Forenthread mit Nachfrage zur Unterstützung dieses Geräts in FHEM
- Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway
- Produktseite bei ELV
- Bedienungsanleitung
- Forenthread Hardware Thread mit vielen Varianten der Anbindung. In Post #26 gibt es die Detailbeschreibung in der angehängten PDF.
- ↑ jedenfalls neuere firmware-Versionen