HM-MOD-RPI-PCB und Homegear auf Raspberry PI

Hi,

Ich versuche schon ein paar Tage das Image auf den Raspberry 3 in Betrieb zu nehmen. Der Download und das Starten mit den Image (vom RPI) klappt.
Das Image ist sicher nicht für meinen “Adapter” HM-MOD-RPI-PCB vorbereitet, daher müssen wohl Anpassungen durchgeführt werden. Aus verschiedenen Postings hier habe ich (glaube) verstanden, dass COM1/ttyAMAO mit Bluetooth belegt ist. COM2/ttySo ist dann für die “serielle” Kommunikation zu HM-MOD-RPI-PCB verantwortlich.

Um homegear in Betrieb zu nehmen, müssen wohl weitere Konfigurationen gemacht werden:

  • /boot/commandline.txt
    dwc_otg.lpm_enable=0 console=ttyUSB0,115200 kgdboc=ttyUSB0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline isolcpus=2,3 rootwait

  • /boot/config.txt
    arm_freq=900
    core_freq=250
    sdram_freq=450
    over_voltage=2
    enable_uart=1
    dtparam=spi=on
    dtparam=i2c_arm=on

  • Homegear: /etc/homegear/families/homematicbidcos.conf
    id = My-HM-MOD-RPI-PCB
    default = true
    deviceType = hm-mod-rpi-pcb
    device = /dev/ttys0
    gpio1 = 18

Leider ist diese Konfiguration fehlerhaft. Homgear lässt sich starten aber beim Versuch das Modul mit einer Steckdose du verbinden:
1.)homegear- r
2.) families select 0
Fehlermeldung:  Device family not found

Kann mir jemand hier weiterhelfen wie ich das durchdebuggen kann damit ich auf den Fehler drauf komme?

Vielen Danke für jeden Hinweis!!

homegear.err:
10/09/16 15:09:13.477 Could not set permissions for device /dev/ttys0: No such file or directory
10/09/16 15:09:15.457 Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Couldn’t open device “/dev/ttys0”: No such file or directory
10/09/16 15:09:15.458 Critical: At least one of the physical devices could not be opened… Exiting…

Hi @kohle,

wenn ich es richtig verstehe kommst du von Windows. Unter Linux sind Groß- und Kleinschreibung von Dateinamen zwingend. ttys0 ist eine andere Datei als ttyS0.

Hier sollte alles beschrieben sein, um das HM-MOD-RPI-PCB zum laufen zu bekommen: https://doc.homegear.eu/data/homegear-homematicbidcos/configuration.html#config-hm-mod-rpi-pcb
Wenn ich es richtig sehe, brauchst du ttyAMA0 nicht deaktivieren, da du ja einen RPi 3 hast, brauchst also erst hier einsteigen: https://doc.homegear.eu/data/homegear-homematicbidcos/configuration.html#id8

Wenn du es nicht hinbekommst, schreib auf jeden Fall bitte mal welchen Raspbian und welche homegear Version du benutzt. Die Ausgabe von cat /etc/issue und homegear -v wären da interessant.

so long,
p

Hallo,

Danke für deinen Hinweis!

Wenn ich es richtig sehe, brauchst du ttyAMA0 nicht deaktivieren --> würde ich auch so verstehen

Ich bin eigentlich nach dem vorgeschlagenen Tutorial vorgegangen. In dem steht "device = /dev/ttyS0"
Wenn ich am Raspi unter /dev nachsehe, dann steht dort auch /dev/ttyS0

/etc/issue liefert Raspbian GNU/Linux 8 \n \l
homegear -v liefert Homegear version 0.6.7-1480

Mach mal ein ls -la /dev/ttyS0.
Ich weiß nicht in wie weit du homegear noch erlauben musst Zugriff auf das Device zu nehmen. Wenn du das Image von www.homegear.eu genommen hast, sollte da nichts mehr zu machen sein.

Aus deinem ersten Post geht eben hervor, dass du auf /dev/ttys0 zureifen willst:

10/09/16 15:09:13.477 Could not set permissions for device /dev/ttys0: No such file or directory

Das Device heißt aber /dev/ttyS0… ich denke da liegt das Problem.

Mach mal ein ls -la /dev/ttyS0.

crw-rw---- 1 homegear homegear 4, 64 Oct 9 19:27 /dev/ttyS0

Du hast recht! da habe ich einen Fehler beim Abtippen gemacht. In der Config steht das mit Großem S drin

Hm. Ich dachte du hättest das copy & pasted.

Da das Gerät was du benutzen willst homegear gehört und laut ls -la vorhanden ist, kann es nur sein, dass du homegear mit einem anderen Benutzer ausführst.

Mach mal bitte ein ps aux | grep homegear während homegear läuft auf einer zweiten Konsole/Shell.

du homegear mit einem anderen Benutzer ausführst.

Ja, ich bin als root drin

root@homegearpi:~# ps aux | grep homegear
homegear 412 0.5 4.2 397232 40088 ? SLsl 17:56 0:34 /usr/bin/homegear -u homegear -g homegear -p /var/run/homegear/homegear.pid
root 5382 0.0 0.2 5888 1896 pts/0 S+ 19:44 0:00 grep homegear

Ab hier weis ich nicht mehr genau was wir machen :slight_smile:

hmm… wie meinst das mit der 2ten shel …

Wir haben uns die Prozessliste (ps aux) angeschaut. Mit grep haben wir nach homegear gesucht.

Dein homegear läuft mit dem Benutzer homegear (erste Spalte ps aux). Wenn du dich in der Config nirgends vertippt hast, kann ich mir es nicht erklären.
Könntest du die homematicbidcos.conf mal copy & pasten?

vielen Dank für die Erklärung!

Specify an unique id here to identify this device in Homegear

id = My-HM-MOD-RPI-PCB
default = true
deviceType = hm-mod-rpi-pcb
device = /dev/ttyS0
gpio1 = 18

Benutzt du Putty? Wenn du da mit der Maus markierst, ist es automatisch in der Zwischenablage…

Mit einer zweiten Konsole meinte ich, dass du eine zweite Instanz von Putty auf machst und noch mal zum Pi verbindest um parallel Sachen zu machen. Aber, dass der Prozess mit dem richtigen Benutzer läuft, haben wir ja raus gefunden.

Ich bräuchte die Komplette Sektion aus der Config. Sind alle anderen Zeilen auskommentiert ausser das unter [HomeMatic Wireless Module for Raspberry Pi]?

Mir fällt gerade auf, dass ich nicht weiß ab welcher Version das HM-MOD-RPI-PCB funktioniert. Da müsste evtl. @sathya was zu sagen.

___________________________________________________________________________

---------------------------- HomeMatic BidCoS  ----------------------------
___________________________________________________________________________

#######################################
########## General Settings  ##########
#######################################

[General]

## The BidCoS address of Homegear. It is recommended to change this to a random 3 byte hexadecimal
## value starting with 0xFD (e. g. 0xFD43AB). Only change this, when no HomeMatic BidCoS devices
## are paired to Homegear as existing pairings will not work anymore!
#centralAddress = 0xFD0001

## Specify a 16 byte (32 characters) long AES key here to protect your wireless communication
## !!! IMPORTANT: It is highly recommended to change this key before pairing the first device.
## !!! IMPORTANT: Never ever lose this key. That would render your devices useless.
## To remove the key from your devices, you need to factory reset them
rfKey = 00112233445566778899AABBCCDDEEFF

## With each key change currentRFKeyIndex needs to be
## incremented by 1
currentRfKeyIndex = 1

## When you change rfKey, put the old key here. To change the key Homegear needs to know the
## old and the new one.
## !!! Do not set oldRFKey when you set rfKey for the first time !!!
##oldRFKey = 00112233445566778899AABBCCDDEEFF

## When set to "true" unsigned broadcast packets are processed by Homegear. This could enable an
## attacker to make Homegear do things, you don't want. That means, this option is a security
## risk.
processBroadcastWithAesEnabled = false

#######################################
################# CUL #################
#######################################

## The device family this interface is for
#[CUL]

## Specify an unique id here to identify this device in Homegear
#id = My-CUL

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cul

#device = /dev/ttyACM0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 95

#######################################
### HomeMatic Wireless LAN Gateway  ###
#######################################

## The device family this interface is for
#[HomeMatic Wireless LAN Gateway]

## Specify an unique id here to identify this device in Homegear
#id = My-HM-LGW

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = hmlgw

## IP address of your HM-LGW
#host = 192.168.178.100

## First Port number your HM-LGW listens on. Normally 2000.
#port = 2000

## Keep alive port number your HM-LGW listens on. Normally 2001.
#portKeepAlive = 2001

## Put the security key printed on your HM-LGW here
#lanKey = SecurityKey

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 60

## Default: sendFix = false
## Some LAN-Gateways do not send packets correctly. If sent packets are not received by the
## devices (you get error messages, that packets were not received after 3 retries), set
## sendFix to true.
#sendFix = false

#######################################
############# HM-CFG-LAN  #############
#######################################

## The device family this interface is for
#[HM-CFG-LAN]

## Specify an unique id here to identify this device in Homegear
#id = My-HM-CFG-LAN

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = hmcfglan

## IP address of your HM-CFG-LAN
#host = 192.168.178.100

## Port number your HM-CFG-LAN listens on. Normally 1000.
#port = 1000

## Put the AES key printed on your HM-CFG-LAN here
#lanKey = 00112233445566778899AABBCCDDEEFF

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 60

#######################################
######### COC, SCC, CSM, CCD  #########
#######################################

## The device family this interface is for
#[COC, SCC, CSM, CCD]

## Specify an unique id here to identify this device in Homegear
#id = My-COC

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
## Also use "coc" for SCC, CCD and CSM
#deviceType = coc

#device = /dev/ttyAMA0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 95

## Default: gpio1 = 0
## "17" for COC, SCC and CCD. Empty for CSM.
#gpio1 = 17

## Default: gpio2 = 0
## "18" for COC and SCC. "22" for CCD. Empty for CSM.
#gpio2 = 18

## Default: stackPosition = 0 (= no stacking)
## Set stackPosition if you use the SCC and stacked multiple devices.
## Set stackPosition to "1" for the lowest device, to "2" for the device
## above that and so on.
# stackPosition = 0

#######################################
########### HM-MOD-RPI-PCB  ###########
#######################################

## The device family this interface is for
[HomeMatic Wireless Module for Raspberry Pi]

## Specify an unique id here to identify this device in Homegear
id = My-HM-MOD-RPI-PCB
default = true
deviceType = hm-mod-rpi-pcb
device = /dev/ttyS0
gpio1 = 18

#######################################
################ CUNX  ################
#######################################

## The device family this interface is for
#[CUNX]

## Specify an unique id here to identify this device in Homegear
#id = My-CUNX

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cunx

## IP address of your CUNO
#host = 192.168.178.100

## Port number your CUNX listens on. Normally 2323.
#port = 2323

## Default: responseDelay = 95
## Should be "93" for CUNX
#responseDelay = 93

#######################################
########## TI CC1101 Module  ##########
#######################################

## The device family this interface is for
#[TI CC1101 Module]

## Specify an unique id here to identify this device in Homegear
#id = My-CC1101

## When default is set to "true" Homegear will assign this device
## to new peers.
#default = true

## Options: cul, cc1100, coc, cunx, hmcfglan, hmlgw, hm-mod-rpi-pcb
#deviceType = cc1100

#device = /dev/spidev0.0

## Default: responseDelay = 95
## Should be "95" for CUL or COC, "100" for TI CC1101 and "60" for HM-CFG-LAN or HM-LGW
#responseDelay = 100

## The interrupt pin to use. "0" for GDO0 or "2" for GDO2.
## You only need to connect one of them. Specify the GPIO
## you connected the interrupt pin to below.
#interruptPin = 2

## The GPIO GDO0 or GDO2 is connected to. Specify which GDO to use above.
#gpio1 = 23

### Additional TI CC1190 Config ###

## The GPIO high gain mode of the CC1190 is connected to.
## Default: -1 (disabled)
#gpio2 = 5

## The hexadecimal value for the PATABLE of the TI CC1101.
## Default:
## - Without high gain mode: 0xC2
## - With high gain mode: 0x27 (maximum legally allowed setting)
#txPowerSetting = 0x27

Einfach einfügen, markieren und dann oben im Editor den Code-Button </> drücken.

Sieht dann so aus :)

Erledigt :slight_smile: --> der Code ist nun übersichtlich herinnen

You are my HERO!! :slight_smile:

Sieht für mich völlig ok aus. Hast du, nachdem du die Änderungen in der Datei gemacht hast, homegear neu gestartet?

Mach mal folgendes: Zwei Verbindungen (Putty) zum Pi, beide sudo -s, dann bitte auf einer tail -f /var/log/homegear/homegear.log und auf der anderen service homegear restart und schau dir mal die Ausgabe im Log an. Das läuft automatisch mit durch -f (follow).

Denk bitte daran, bevor du Geräte anlernst - wenn es denn dann funktioniert - auf jeden Fall deinen rfKey zu ändern. Die Warnungen stehen da mit sehr gutem Grund :wink:

Ich denke er macht was - zumindest er schreibt: connected

10/09/16 20:20:50.799 All physical interfaces are connected now.
10/09/16 20:20:50.799 Starting UPnP server…
10/09/16 20:20:50.801 Info: UPnP server: Binding to address: 192.168.0.124
10/09/16 20:20:50.802 UPnP Server: Info: Started listening.
10/09/16 20:20:53.132 Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Info: Init queue completed. Sending peers…
10/09/16 20:20:53.132 Module HomeMatic BidCoS: HM-MOD-RPI-PCB “My-HM-MOD-RPI-PCB”: Info: Peer sending completed.

Auch das https://www.homegear.eu/index.php/Pairing_HomeMatic_BidCoS_Devices
1.) homegear -r
2.) families select 0

scheint zu funktionieren… jetzt werde ich mich noch mal in den rfKey einlesen … das wird wohl ein Schlüssel sein

Das sieht doch alles gut aus :+1:

Der rfKey ist der geheime Schlüssel für die per AES abgesicherte Kommunikation mit bestimmten Homemeatic devices (Fensterkontakt, Keymatic, etc.) und bildet das Rückrad einer sicheren Kommunikation.

Wenn der verloren geht, zum Beispiel durch eine defekte SD Karte im Pi, können die damit angelernten Geräte nicht wieder neu angelernt werden und müssen zum Werksreset bei eq3 eingeschickt werden.

Die müssen sogar eingeschickt werden - OMG - die wollen sicher “Kohle” sehen
Ok dann wird der noch mal separat weggespeichert. :innocent:
soweit ich sehe - muss es einfach eine Zeichenkette (32) sein

(https://www.random.org/bytes/)

1 Like

Vielen Dank für die Hilfe!!

Ich denke ich habe meine Steckdose mit einen anderen Image schon zerschossen.
Vor einigen Tagen habe ich eine andere SW (YAHM am PI) getestet und “zusammenge-paired”. Mit der anderen SW hat das ein und ausschalten funktioniert. Nur der Funktionsumfang hat mich nicht überzeugt. Daher habe ich Homegear & Openhab installiert. Das bedeute wohl, ich habe mit der vorangegangenen Aktion die Steckdose “vernichtet” da sie jetzt beim Anlernen nicht mehr gefunden wird….

Hast du sie schon auf Werkszustand zurück gesetzt? Bin mir nicht sicher, ob die Steckdosen überhaupt AES machen. Normalerweise nur sicherheitsrelevante Homematic-Geräte.