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 Zusatzplatine, die auf die GPIO-Schnittstelle des Raspberry Pi aufgesteckt werden und damit als Interface zu HomeMatic Geräten dienen kann.
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
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
dtoverlay=pi3-miniuart-bt core_freq=250
In der Datei /boot/cmdline.txt diesen Eintrag löschen:
console=serial0,115200
Den Dienst serial-getty deaktivieren
systemctl disable serial-getty@ttyAMA0.service
Bei PI 3 den hciuart Service modifizieren: In der Datei /lib/systemd/system/hciuart.service zweimal ttyAMA0 gegen ttyS0 austauschen.
sed -i s/ttyAMA0/ttyS0/ /lib/systemd/system/hciuart.service
Der Benutzer fhem muss Mitglied in der Gruppe dialout sein! Beim PI 3 kann man wegen Timingproblemen den Start von FHEM etwas verzögern. Dazu die /etc/init.d/fhem um sleep 10 am Anfang ergänzen.
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
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
Definition in FHEM
define myHmUART HMUARTLGW /dev/ttyAMA0 attr myHmUART hmId xxxxxx
Verwendung AES in FHEM
Siehe auch Wiki Eintrag AES Encryption
Das Modul benötigt das Perl-Modul Crypt::Rijndael (Debian: libcrypt-rijndael-perl). Da einige HM Geräte per default über AES kommunizieren gehört auch die Installation quasi zur Voraussetzung.
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
1. Firmware herunterladen
wget https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/firmware/HM-MOD-UART/coprocessor_update.eq3
2. Flashen der neuen Firmware aus Fhem
fhem> set myHmUART updateCoPro /path/to/coprocessor_update.eq3
Remoteanbindung - Pi + RPI Modul = LAN Modul
Noch in Bearbeitung
Es ist nicht dazu gedacht zwei FHEM Instanzen zu koppeln, sondern das RPI Modul über socat auf dem entfernten Raspi verfügbar zu machen.
auf dem Pi wo das Modul angeschlossen ist:
Kein FHEM Zugriff!
Kein define HmUART_EG HMUARTLGW /dev/ttyAMA0
Kein define RM_HmUART_EG HMUARTLGW uart://192.168.17.185:2000
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
In welcher Datei lege ich diesen Befehl am besten ab damit dieser bei einem Neustart ausgeführt wird. Würde die rc.local ohne sudo dafür verwenden.
Auf dem Modul wo FHEM läuft und das Modul Remote angeschlossen werden soll:
define RM_HmUART_EG HMUARTLGW uart://192.168.17.185:2000
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.
PI1: FHEM -> uart://IP:Port -> Netzwerk ->
Remote PI2: Netzwerk -> socat listener -> socat serial -> RPI Modul auf PI2
RPI Modul auf PI2 -> serial -> socat -> Netzwerk -> uart://IP:Port -> FHEM auf PI1
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