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

Aus FHEMWiki
Version vom 11. Juni 2018, 22:50 Uhr von Otto123 (Diskussion | Beiträge) (→‎Remoteanbindung - Pi + RPI Modul = LAN Modul: ser2net Installation eingefügt, Abschnitt überarbeitet)
Zur Navigation springen Zur Suche springen
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 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.
Info green.pngNeben der hier beschriebenen Option das HM-MOD-RPI-PCB zu verwenden, besteht auch die Möglichkeit, damit auf demselben Raspberry eine virtuelle CCU zu betreiben, welche dann mit HMCCU eingebunden werden kann. Hierfür stehen mehrere Virtualisierungsvarianten zur Verfügung; eine kurze Darstellung, wie das mittels YAHM funktioniert, ist in diesem Beitrag zu finden.

Mit dieser Platine in Verbidnung 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

Verkabelung beim HM-MOD-PCB

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.

Platine 2 -UART-Modul

Verkabelung beim HM-MOD-UART

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. Außerdem bitte das Ende der Drahtantenne mit einem Klecks Heißkleber oder ähnlichem isolieren. Eine Berührung vor allem mit dem Innenleben des Raspberry Pi muss vermieden werden!

Bitte auf die richtige Lage (Bilder) beim Zusammenbau und auf Lötzinnbrücken achten. Das sind häufige Fehler beim Zusammenbau!

Beide Platinen können zusammengebaut oder auch nur das UART Modul getrennt verwendet werden.

Montage des Moduls HM-MOD-UART unten
Montage des Moduls HM-MOD-UART oben

Die originale Montage in der Anleitung von eq3 sieht den Zusammenbau PCB Modul unten und UART Modul oben vor(rechts). Damit passen die kleineren Pi Gehäuse nicht, das Gesamtmodul klemmt am Deckel.

Man kann ohne weiteres das UART Modul unter dem PCB Modul montieren (links), damit wird die Gesamthöhe geringer und es passt problemlos in jedes Gehäuse. Es kann sein das jetzt aber Kühlkörper oder ähnliches seitens der Pi Platine stören.

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

Remoteanbindung - Pi + RPI Modul = LAN Modul

Eine andere Methode der Anbindung des Modul besteht darin, einen RPi (auf dem aber nicht FHEM läuft bzw. auf dieses Modul zugreift) und dem dort vorhandenen LAN-Anschluss zu verwenden. Dieser RPi greift mit einem seriellen Anschluss auf das Modul zu und der entfernte FHEM-Server gelangt über das Netzwerk an das HM-Modul. Die Installation kann mit ser2net oder socat erfolgen.

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 einem Server im Netzwerk zum Pi und über dessen lokaler Schnittstelle zum RPI Modul.

  • FHEM Server: FHEM -> uart://IP:Port -> Netzwerk -> socat / ser2net -> RPI Modul auf Remote Pi

Variante mit ser2net

Diese Installation auf dem Pi wo das Modul steckt 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 am besten folgende Datei an: /etc/systemd/system/hmlangw.service

[Install]
WantedBy=multi-user.target
Type=forking
  
[Service]
ExecStart=/usr/bin/socat TCP4-LISTEN:4000,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.

Definition in FHEM

Auf dem System wo FHEM läuft und das Modul remote angeschlossen werden soll:

define RM_HmUART_EG HMUARTLGW uart://<IP-Adresse>:4000
attr RM_HmUART hmId xxxxxx

Verwendung mit anderer Hardware

Anbindung mit USB-Adapter

X mark.svgBitte beachten: Es sind immer wieder Exemplare mit CP2102 im Umlauf, die mehr als 3.3V Spannung liefern! Vor dem Verbinden mit dem HM-Modul sollte daher geprüft werden, ob der interne Spannungswandler ordnungsgemäß funktioniert und wirklich nur 3.3V liefert. Bei den blauen Micro-Modulen kann man den Fehler nach dieser Anleitung beheben: Beitrag von PBudmark vom 08.07.2017.
Mod zur Herstellung der korrekten Spannung

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 ein beliebiger ESP8266 verwendet werden. Beim ESP8266 gibt es zwei verschiedene Firmware-Möglichkeiten: ESPLink oder ESPEasy. Ebenso sind zwei verschiedene Schnittstellen möglich: Entweder direkt die serielle Schnittstelle (da die ESP auf 3,3V laufen, sind keine Spannungsteiler erforderlich, Verschaltung siehe oben) oder aber durch eine swapped Schnittstelle, bei der auf die digitalen Pins D7/D8 zurückgegriffen wird (siehe unten). Die letztere Verschaltung erfordert aber eine entsprechende Implementierung der Schnittstelle in der Firmware selbst (serieller Server genannt), die beispielsweise bei ESPEasy nicht gegeben ist oder selbst kompiliert werden muss.

Verschaltung bei einem WeMos D1 mini

 (UART) <-> (Wemos)
  3.3V  <-> 3.3V
  GND   <-> GND
  Rx    <-> D8
  Tx    <-> D7

Es gibt eine ausführliche Erläuterung für die Software unter [1].

Verwendet man ESP-Link, so muss neben der WLAN Konfiguration nur das Pin Assignment konfiguriert werden. Alle Pins auf disabled und UART pins auf swapped stellen.

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

Anschluß an die gängige Variante USR-TCP232-T2

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.

Die Module melden sich per DHCP im Netzwerk an, die Konfiguration und firmware updates können über ein Web-Interface oder ein Windows-Tool erfolgen.

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/ttyUSB0

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:

  • socat 2000
  • 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.

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

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