Seite 1 von 8

Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 14.11.2015, 02:06
von wuffzack
Hallo Leute,

im Anhang findet ihr meine Software, mit der ein Raspberry Pi und ein HM-MOD-RPI Funkmodul ein HM LAN Gateway (HM-LGW-O-TW-W-EU) simulieren können.

Vorteile: Der Raspi kann für zusätzliche Aufgaben herhalten (Sprachausgabe, Media Center, was Raspis halt so machen, ...), günstiger Anschaffungspreis.

Nachteile: Keine Ethernet Verschlüsselung (im LAN kein wirkliches Problem), noch kein Firmware Update des Funkmoduls möglich. Verlängerte Bootzeiten der CCU2. Manuelle Einrichtung durch editieren der rfd.conf auf der CCU2 erforderlich (nicht über das Web Interface!).

Was wird benötigt:
Ein Raspberry Pi mit Ethernet Schnittstelle (1BV1, 1BV2, 1B+, 2) und das von der BerryMatic / OCCU bekannte Funkmodul.
Eine CCU2. (Wenn ich CCU2 schreibe, meine ich auch immer alle Derivate, wie LXCCU, Berrymatic, OCCU)

Installation:
Das Funkmodul verwendet die interne, serielle Schnittstelle des Raspi /dev/ttyAMA0.
Diese darf deshalb nicht vom Betriebssystem verwendet werden. Um das zu verhindern, startet man raspi-config und schaltet die serielle Schnittstelle aus: Advanced Options (8) -> Serial (A8)-> "Would you like a login shell to be accessible over serial?" -> No.
Danach neu booten.

Jetzt die Software in ein Verzeichnis kopieren und mit make übersetzen. Heraus kommt das Programm hmlangw.
Die Software braucht zwingend als Parameter die 10 stellige Seriennummer des Funkmoduls, in etwa so:
sudo hmlangw -n ABC0123456

Der Paramter -D aktiviert den Debug-Modus, da kann man beobachten, was so passiert.
Mit -r kann man den GPIO pin, der das Funkmodul resettet, einstellen. Default ist 18, das ist korrekt für alle aktuellen Raspberrys (1Bv2, 1B+, 2). Bei den ersten Raspis wäre glaube ich 1 korrekt, kann ich nicht testen, habe so ein Teil nicht.

Will man die Software im Hintergrund laufen lassen (z.B. aus rc.local starten), geht das so:

sudo pfad/hmlangw -n ABC0123456 1> /dev/null 2> /dev/null &

Die Software verwendet im Betrieb die TCP Ports 2000 und 2001. Das lässt sich nicht einstellen, denn die CCU2 erwartet das genau so.

Um den neuen LAN-Adapter der CCU2 bekannt zu machen, muss die Datei rfd.conf im Verzeichnis /etc/config der CCU2 editiert werden. Wir brauchen abermals die Seriennummer des Funkmoduls, sowie die IP Adresse des Raspis, auf dem hmlangw läuft.

In etwa so:

Code: Alles auswählen

[Interface 4]
Type = HMLGW2
Name = Test Interface
Description = Test Interface
Serial Number = ABC0123456
IP Address = x.x.x.x
Serial Number und IP Adresse sind zwingend notwendig!
Nach dem rfd.conf verändert wurde, die CCU2 neu starten. Ob alles funktioniert, kann man im Webinterface der CCU2 nachschauen. Läuft hmlangw im Debug Modus, müsste man die Daten durch die Leitung flitzen sehen.

Längere Bootzeit:
Die CCU2 braucht jetzt länger um hochzufahren. Das liegt daran, dass beim Starten der CCU2 versucht wird, mit allen LAN Adaptern zu sprechen, um eventuelle Änderungen des Ethernet Schlüssels zu übermitteln (das klappt aber nicht!) und um eine neue Firmware auf den LAN Adapter zu spielen (klappt auch nicht, und wird auch nie klappen).
Irgendwann (hab's nicht gestoppt, 10-15 Sekunden?) kommt ein Timeout, es geht also nix kaputt, aber es dauert halt.
Je mehr Raspis als HM-LAN GW laufen, umso schlimmer. Es empfiehlt sich deshalb - wenn man keine echten HM-LAN Gateways hat - diese Stellen aus den init.d Skripten der CCU2 zu entfernen. Auf einer lxccu ist das ein Klacks, auf Berrymatic und der echten CCU2 etwas komplizierter, da die Dateien auf einer schreibgeschützten Partition sind.
Ich verwende lxccu, deshalb kann ich da nicht wirklich helfen.

Update des Funkmoduls:
Version 0.0.2 enthält Dateien von eQ3 im Ordner eq3. Diese stammen aus dem Berrymatic Beta 2 image und der OCCU.
mit
sudo hmlangw -u
Kann man das Funkmodul updaten.

So, das war's erstmal. Falls Jemand die (relativ sinnfreie) LAN Verschlüsselung beisteuern möchte, kann er das gerne tun!

Viel Spaß!

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 16.12.2015, 21:31
von wuppi83
Moin,

ich werde verrückt ... genau das was ich gebraucht habe :D
Danke dir schonmal dafür. Leider kriege ich es aber nicht zum laufen :cry:

Kannst du mir helfen ... was mache ich falsch.

1. Mit FTP Zip Datei in das Verzeichnis /home/pi gelegt
2. unzip hmlangw.0.0.2.zip
3. cd hmgw
4. make
5. sudo hmlangw -n ABC0123456

Ergebnis = sudo: hmlangw: command not found

Hast du ne Idee ?!

VG

Andreas

PS: Andere Frage noch ...wo finde ich die Seriennummer auf dem Teil ?!

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 16.12.2015, 22:05
von wuppi83
Ok der Trick liegt bei

sudo ./hmlangw -n xxxxxx

Jetzt sagt er aber

Can't open serial port /dev/ttyAMA0!

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 18.12.2015, 02:04
von wuffzack
wuppi83 hat geschrieben:Ok der Trick liegt bei

sudo ./hmlangw -n xxxxxx

Jetzt sagt er aber

Can't open serial port /dev/ttyAMA0!
Hast Du mit raspi-config die serielle Schnittstelle freigegeben und neu gebootet?

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 18.12.2015, 02:06
von wuffzack
wuppi83 hat geschrieben:Ok der Trick liegt bei

sudo ./hmlangw -n xxxxxx
Nimm einfach das ./start-hmlan.sh oder ./run-hmlan skript. Dann brauchst du auch keine seriennummer mehr.

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 18.12.2015, 02:09
von wuffzack
wuppi83 hat geschrieben: PS: Andere Frage noch ...wo finde ich die Seriennummer auf dem Teil ?!
Ein Kleber in / auf der Bausatz Tüte. Und bei allen meinen Bausätzen war sie falsch. :evil:

Die Option -n auto macht es automatich. Einfach mal die Hilfe von hmlangw anschauen.

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 18.12.2015, 11:02
von wuppi83
Moin,

danke für deine Antworten ... langsam komme ich meinem Ziel näher.

Das Problem ist, ich muss das ganze auf Xbian installieren ... lange Geschichte .. und ich kann leider nicht mehr wechseln ... weil ich in das Projekt schon ganz viel arbeit reingesteckt habe :shock:

Ich muss aber nur, um die Serielle Schnittstelle zu aktivieren, noch zwei Befehle ausführen

sudo modprobe serial_core
sudo modprobe amba-pl011

Danach klappts. Die Seriennummer habe ich jetzt auch gefunden ... da ist ein Data Matrix Aufkleber auf dem Teil wo du die auch heraus finden kannst.

Ich nutze das ganze derzeit mit dem BidCos Service für Windows (hab keine CCU). Leider zeigt mir mein Programm aber noch an, dass das Teil nicht "connected" ist, obwohl im Debug Modus (wie oben beschrieben) die Verbindung angezeigt wird. Gestern habe ich mal Probeweise LXCCU installiert. Da läuft das Teil. Ich muss wohl noch ein bisschen rumspielen. Im Konfigurator wird es nämlich auch nicht angezeigt. Oder hast du noch eine Idee ?!

Hier ist mal die BidCos.conf von meinem Service (Interface 1 ist das Modul)

Code: Alles auswählen

# TCP Port for XmlRpc connections
Listen Port = 2001

# Log Level: 1=DEBUG, 2=WARNING, 3=INFO, 4=NOTICE, 5=WARNING, 6=ERROR
Log Level = 1

# If set to 1 the AES keys are stored in a file. Highly recommended.
Persist Keys = 1

Device Description Dir = ${Bindir}\devicetypes
Device Files Dir = ${CommonAppData}\Bidcos-Service\devices
Key File = ${CommonAppData}\Bidcos-Service\keys
Address File = ${CommonAppData}\Bidcos-Service\ids
Log Destination = File
Log Filename = ${CommonAppData}\Bidcos-Service\log\bidcos-%Y-%m-%d.log

[Interface 0]
Type = Lan Interface
Serial Number = GEQ0123456

# Key ist auf der Rückseite des Interfaces. 
# Funktion kann über das LAN Tool auch deaktiviert werden. 
# Dann kann das Feld leergelassen werden
Encryption Key = 
Description = First Lan Interface

# IP-Adresse vom LAN Interface
IP Address = 192.168.2.111

[Interface 1]
Type = Lan Interface
Serial Number = MEQ0123456

# Key ist auf der Rückseite des Interfaces. 
# Funktion kann über das LAN Tool auch deaktiviert werden. 
# Dann kann das Feld leergelassen werden
Encryption Key = 
Description = First Lan Interface

# IP-Adresse vom LAN Interface
IP Address = 192.168.2.112

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 22.12.2015, 11:58
von wuffzack
Der Windows Bidcos Service geht nicht mit hmlangw2.
Da geht nur der LAN config Adapter.

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 09.01.2016, 17:34
von erwin23
wuffzack hat geschrieben:Hallo Leute,
Je mehr Raspis als HM-LAN GW laufen, umso schlimmer. Es empfiehlt sich deshalb - wenn man keine echten HM-LAN Gateways hat - diese Stellen aus den init.d Skripten der CCU2 zu entfernen. Auf einer lxccu ist das ein Klacks, auf Berrymatic und der echten CCU2 etwas komplizierter, da die Dateien auf einer schreibgeschützten Partition sind.
Ich verwende lxccu, deshalb kann ich da nicht wirklich helfen.
Beschreib doch mal bitte, was Du in den init.d Scripten auf Lxccu geändert hast.
Beste Grüsse erwin23

Re: Raspi mit HM-MOD-RPI-PCB als HM LAN Gateway

Verfasst: 15.01.2016, 02:08
von wuffzack
erwin23 hat geschrieben:
wuffzack hat geschrieben:Hallo Leute,
Je mehr Raspis als HM-LAN GW laufen, umso schlimmer. Es empfiehlt sich deshalb - wenn man keine echten HM-LAN Gateways hat - diese Stellen aus den init.d Skripten der CCU2 zu entfernen. Auf einer lxccu ist das ein Klacks, auf Berrymatic und der echten CCU2 etwas komplizierter, da die Dateien auf einer schreibgeschützten Partition sind.
Ich verwende lxccu, deshalb kann ich da nicht wirklich helfen.
Beschreib doch mal bitte, was Du in den init.d Scripten auf Lxccu geändert hast.
Beste Grüsse erwin23
Ich have es so gemacht:
In init.d habe ich

S58LGWFirmwareUpdate und S59SetLGWKey einfach umbenannt (Unterstrich vor den Namen), also in
_S58LGWFirmwareUpdate und _S59SetLGWKey

Dadurch werden sie nicht mehr gestartet, können aber leicht wieder aktiviert werden.

EDIT:
S58LGWFirmwareUpdate macht auch das Update für das Homematic Wired Interface. Wenn Du sowas hast, solltest du es eventuell anders lösen, also das bestehende Skript ändern anstatt es komplett zu deaktivieren.

Vielleicht so:

Code: Alles auswählen

start() {
	waitForIP
#	updateCopro
#	updateRFFirmware
	updateWiredFirmware
}
EDIT2:
S59SetLGWKey setzt auch den Schlüssel für das Wired Interface. Ist ein Wired Interface vorhanden, solltest du es einfach so lassen, wie ist.