HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi

Aus FHEMWiki
HM-MOD-RPI-PCB HomeMatic Funkmodul für Raspberry Pi
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


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
Info green.pngTipp: Sollte der HM-MOD-RPI-PCB nach der Einrichtung immer wieder den Status zwischen init und disconnect wechseln, alle aufgeführten Punkte erneut kontrollieren! reboot nicht vergessen! In ganz hartnäckigen Fällen von der Stromversorgung trennen!


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

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!

1. Firmware herunterladen

wget https://raw.githubusercontent.com/eq-3/occu/28045df83480122f90ab92f7c6e625f9bf3b61aa/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

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

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 einen Debian Jessie mit systemd legt man am besten folgende Datei an:

  $cat /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://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