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.
Einsatz und Aufbau
Das Modul besteht aus zwei Teilplatinen, die 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 sichtbar mit der umrandeten 7), 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.
Es ist bekannt, dass die Homematic-Geräte nur sehr unzuverlässig von CUL und vergleichbaren Funkmodulen angesprochen werden können, da das Timing hier kritisch ist. Dieses Funkmodul wurde deshalb extra für den Einsatz mit Homematic entwickelt.
Mit dieser Platine (sowie dem dazugehörigen 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.
Features
(Noch zu ergänzen)
- ...
Hinweise zum Betrieb mit FHEM
Juni 2016: Beginn der Entwicklung eines FHEM-Moduls (HMUARTLGW) für dieses Interface, beschrieben im Forum unter dem Titel Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway. Dieses Modul unterstützt gleichzeitig auch das "neue" Funk-LAN Gateway HM-LGW-O-TW-W-EU.
Juli 2016: HMUARTLGW wird über FHEM update verteilt, damit ist dieses Funkmodul offiziell unterstützt.
Vorbereitung serielle Schnittstelle unter Jessie / Stretch
Diese Beschreibung gilt für Jessie Version 27.05.2016. Die Grundlagen findet man hier: Raspberry Pi 3: GPIO-Port Module und Bluetooth
Die Datei /boot/config.txt um diese Zeile ergänzen
enable_uart=1
Beim PI 3 zusätzlich diese Zeilen ergänzen, bitte entweder core_freq oder force_turbo setzen.
dtoverlay=pi3-miniuart-bt core_freq=250 #Alternativ kann auch dieser Eintrag gesetzt werden force_turbo=1
In der Datei /boot/cmdline.txt diesen Eintrag löschen:
console=serial0,115200
Den Dienst serial-getty in der System Kommandozeile mit folgendem Befehl deaktivieren
systemctl disable serial-getty@ttyAMA0.service
Der Benutzer fhem muss Mitglied in der Gruppe dialout sein! Bitte kontrollieren.
groups fhem
Das System unbedingt neu starten!
Vorbereitung serielle Schnittstelle unter Wheezy
Diese Beschreibung gilt für Wheezy Version Stand 26.07.2016.
Die Datei /boot/config.txt um diese Zeile ergänzen
enable_uart=1
In der Datei /boot/cmdline.txt diesen Eintrag löschen:
console=ttyAMA0,115200
Die Datei sollte dann den folgenden Inhalt aufweisen:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Den Dienst serial-getty deaktivieren
in der Datei /etc/inittab wie folgt die Zeile (ziemlich am Ende) mit einer # auskommentieren
# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Mit folgendem Befehlen überprüfen, dass kein getty auf der Schnittstelle läuft
ps -A |grep getty cat /etc/inittab
Der Benutzer fhem muss Mitglied in der Gruppe dialout sein! Bitte prüfen:
groups fhem
Das System unbedingt neu starten!
Kontrolle
Berechtigungen der Schnittstelle kontrollieren
ls -l /dev/ttyAMA0
liefert die Ausgabe unter Jessie / Stretch
crw-rw---- 1 root dialout 204, 64 Jul 27 23:39 /dev/ttyAMA0
bzw. unter wheezy
crw-rw---T 1 root dialout 204, 64 Aug 9 18:07 /dev/ttyAMA0
Nur unter Jessie und auf einem Pi3
Bitte kontrollieren, dass serial1 auf ttyS0 verlinkt ist. Andernfalls muss die Datei /lib/systemd/system/hciuart.service angepasst werden. Dort müsste ttyAMA0 durch ttyS0 ersetzt werden. Dies ist aber seit jessie Version Herbst 2016 nicht mehr nötig.
ls -l /dev/serial1 lrwxrwxrwx 1 root root 5 Jan 11 20:00 /dev/serial1 -> ttyS0
Bei Stretch wird serial0 auf ttyS0 verlinkt:
ls -l /dev/serial0 lrwxrwxrwx 1 root root 7 Okt 26 12:39 /dev/serial0 -> ttyAMA0
Definition in FHEM
define myHmUART HMUARTLGW /dev/ttyAMA0 attr myHmUART hmId xxxxxx
Verwendung AES in FHEM
Das Modul beherrscht AES. Für weitere Informationen gibt es einen separaten Wiki Eintrag AES Encryption
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
Firmware Update HM-MOD-RPI-PCB
Die Module werden mit einer Firmware 1.2.1 ausgeliefert. Dies Firmware ist nicht für einen stabilen Betrieb geeignet! Firmware 1.4.1 ist die minimal lauffähige Version! Die ersten zwei Schritte werden in der Kommandozeile auf Betriebssystemebene ausgeführt, also im "Terminal". Punkt 3 ist bis auf die Pfadeingabe in der FHEM Web Oberfläche auswählbar.
1. Firmware herunterladen
# Version 1.4.1 wget https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/HM-MOD-UART/coprocessor_update.eq3 # Alternativ die aktuellste wget https://raw.githubusercontent.com/eq-3/occu/HEAD/firmware/HM-MOD-UART/coprocessor_update.eq3
2. Kopieren an einen Ort wo FHEM Zugriff hat, am Besten nach /opt/fhem/FHEM/firmware
sudo cp coprocessor_update.eq3 /opt/fhem/FHEM/firmware/
3. Flashen der neuen Firmware aus FHEM
set myHmUART updateCoPro /opt/fhem/FHEM/firmware/coprocessor_update.eq3
Alternative Methode zum Firmware Update 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
Alternative Anbindung
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".
USB Anbindung - USB-seriell Adapter + RPI Modul = Homematic USB Adapter
Unbedingt einen USB seriell 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.
Verschaltung
3,3 -> 3,3 gnd -> gnd RX -> TX TX -> RX
Definition in FHEM
define USB_HmUART HMUARTLGW /dev/ttyUSB0
WLAN Anbindung - ESP8266 + RPI Modul = Homematic WLAN Adapter
Es kann ein beliebiger ESP8266 mit ESP-Link Software verwendet werden.
Verschaltung
(UART) -> (Wemos) 3,3 -> 3,3 Gnd -> Gnd RX -> D8 TX -> D7
Es gibt eine ausführliche Erläuterung für die Software unter [1].
Einstellung ESP-Link
Neben der WLAN Konfiguration muss nur das Pin Assignment konfiguriert werden. Alle Pins auf disabled und UART pins auf swapped stellen.
Definition in FHEM
define WLAN_HmUART HMUARTLGW uart://<IP-Adresse>:23
Remoteanbindung - Pi + RPI Modul = LAN Modul
Die Remoteanbindung ist kein Sharing des Moduls! Es darf an dem Remote Pi (wo das Modul sitzt) keinerlei Zugriff auf das Modul seitens einer etwaigen lokalen FHEM Instanz erfolgen.
Installation auf Remote Instanz
sudo apt-get install socat
Auf diesem Pi, also wo das Modul steckt:
sudo socat TCP4-LISTEN:2000,fork,reuseaddr /dev/ttyAMA0,raw,echo=0,b115200
Auf einen Debian Jessie mit systemd legt man am besten 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. Auf dem Modul wo FHEM läuft und das Modul Remote angeschlossen werden soll:
define RM_HmUART_EG HMUARTLGW uart://<IP-Adresse>:2000 attr RM_HmUART hmId xxxxxx
Es handelt sich nicht um sharing der seriellen Schnittstelle und damit "verfügbar machen" des Moduls "all over the World"! Es handelt sich um ein exklusives "Kabel" von Pi zu Pi zur Schnittstelle zum RPI Modul.
Lokaler Pi: FHEM -> uart://IP:Port -> Netzwerk -> socat listener -> socat serial -> RPI Modul auf Remote Pi Remote Pi: RPI Modul -> serial -> socat -> Netzwerk -> uart://IP:Port -> FHEM auf lokalem Pi
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 #27 sind Detailbeschreibung in der PDF im Anhang