Kann OpenHAB auf einem Raspberry Pi gleichzeitig Homematic/Homegeare und FS20 Binding über einen CUL verwenden?

Kann unter OpenHAB auf einem Raspberry Pi mit Homematic/Homegeare und FS20 Binding gleichzeitig über einen CUL betrieben werden? Die kurze Antwort: Leider NEIN.
cul
Und hier die lange Beschreibung mit Vorgehen.

Die Homematic Geräte laufen über Homegeare mit dem Homematic Binding über eine CUL an dem seriellen USB Port /dev/ttyACM0 erfolgreich.

Nun wollte ich auch noch ein FS20 Gerät, das KSE (Klingelsignal-Erkennung) darüber laufen lassen. Also das FS20 Binding installiert.

sudo apt-get install openhab-addon-binding-fs20
sudo apt-get install openhab-addon-io-cul

Dann in der openhab.cfg die Serielle Schnittstelle des CULs angeben

fs20:device=serial:/dev/ttyACM0
fs20:baudrate=38400
fs20:parity=0

Anlegen einer FS20.items Datei mit den beiden Schaltern.

Switch  klingelSchalterKanal1     "Klingelsignal Kanal 1"                {fs20="C04B00"}
Switch  klingelSchalterKanal2     "Klingelsignal Kanal 2"                {fs20="C04B00"}

Adresse für den Schalter ermitteln, durch Neustart von openHab im debug Modus und im log schauen. Das Log:

18:29:43.750 [DEBUG] [.b.fs20.internal.FS20Activator:34   ] - FS20 binding has been started.

18:29:44.981 [DEBUG] [.io.transport.cul.CULActivator:35   ] - CUL transport has been started.

18:29:44.729 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'klingelSchalterKanal1 (Type=SwitchItem, State=Uninitialized)' with 'FS20GenericBindingProvider' reader.
18:29:44.811 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'klingelSchalterKanal2 (Type=SwitchItem, State=Uninitialized)' with 'FS20GenericBindingProvider' reader.
18:29:44.981 [DEBUG] [.io.transport.cul.CULActivator:35   ] - CUL transport has been started.

18:29:49.465 [INFO ] [o.i.t.c.i.CULSerialHandlerImpl:124  ] - Update config, baudrate = 38400

18:29:52.604 [ERROR] [.o.b.fs20.internal.FS20Binding:81   ] - Can't open cul device
org.openhab.io.transport.cul.CULDeviceException: gnu.io.NoSuchPortException
	at org.openhab.io.transport.cul.internal.CULSerialHandlerImpl.openHardware(CULSerialHandlerImpl.java:269) ~[na:na]
	at org.openhab.io.transport.cul.internal.AbstractCULHandler.open(AbstractCULHandler.java:154) ~[na:na]
	at org.openhab.io.transport.cul.CULManager.createNewHandler(CULManager.java:170) ~[bundlefile:na]
	at org.openhab.io.transport.cul.CULManager.getOpenCULHandler(CULManager.java:89) ~[bundlefile:na]
	at org.openhab.binding.fs20.internal.FS20Binding.getCULHandler(FS20Binding.java:78) [bundlefile:na]
	at org.openhab.binding.fs20.internal.FS20Binding.updateDeviceSettings(FS20Binding.java:72) [bundlefile:na]
	at org.openhab.binding.fs20.internal.FS20Binding.updated(FS20Binding.java:200) [bundlefile:na]
	at org.eclipse.equinox.internal.cm.ManagedServiceTracker$1.run(ManagedServiceTracker.java:183) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]
	at org.eclipse.equinox.internal.cm.SerializedTaskQueue$1.run(SerializedTaskQueue.java:36) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]
Caused by: gnu.io.NoSuchPortException: null
	at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:273) ~[na:na]
	at org.openhab.io.transport.cul.internal.CULSerialHandlerImpl.openHardware(CULSerialHandlerImpl.java:244) ~[na:na]
	... 8 common frames omitted

Oh, da steht ja keine Adresse sondern eine NoSuchPortException. Also dann mal schauen wie die Rechte so sind:

$ less /etc/group | grep dialout
# Ergebnis, ok openhab der User unter dem openHAB läuft ist nicht in der Gruppe
dialout:x:20:pi,homegear
# User openhab der dialout Gruppe hinzugefügt
$ sudo usermod -aG dialout openhab
# Kontrolle
$ less /etc/group | grep dialout
# Ergebnis, openhab ist nun auch in der Gruppe
dialout:x:20:pi,homegear,openhab
# Restart

Ok, der Fehler ist immer noch da. Dann mal über die Konsole mit screen zu dem CUL verbinden.

sudo screen sudo screen /dev/ttyACM0
# Eingabe von V und Enter
V
# Liefert die Version des CUL_V3 
V 1.66 CUL868

Ok, das läuft schon mal.

Dann mal schauen ob das FS20 Gerät auch Daten senden kann, die der CUL empfängt.

Signale der FS20 KSE werden auch empfangen, die HEX Werte bedeuten

# Faaaabbccdd

# a=Hauscode
# b=Geräte Adresse
# c=Kommando
# d=Zeitstempel

# z.B.:
F0000000011
F000001000F
F0000001116
F000001111A
F000000000E
F0000000004
F0000000004
F0000000005
F00000011F9
F00000011F8
F00000011FA
F00000100F8
F00000100FB
F0000011103
F000000001B
F0000010015

Also kann der CUL die Daten des FS20 empfangen. Dann mal die Rechte für die Schnittstelle für alle erlauben und in die richtige Gruppe aufnehmen:

# so sieht es zuerste aus
ls -alh /dev/ttyACM0
rw-rw---- 1 homegear homegear 166, 0 Apr  5 19:26 /dev/ttyACM0
# den User homegear in die dialout Gruppe aufnehmen
sudo usermod -aG dialout homegear
# checken, ok
less /etc/group | grep dialout
# Ergebnis
# dialout:x:20:pi,homegear,openhab
# alle Rechte geben
sudo chgrp dialout /dev/ttyACM0
crwxrwxrwx 1 homegear dialout 166, 0 Apr  5 19:26 /dev/ttyACM0
# Reboot

Ok, der Fehler ist immer noch da. Es geht also nicht.

Nach dem Reboot hat openHab auch die Rechte wieder auf ausschließlich homegeare gesetzt.

$ ls -alh /dev/ttyACM0
crw-rw---- 1 homegear homegear 166, 0 Apr  5 20:36 /dev/ttyACM

Das soll wohl heißen, das nur homegeare auf die Schnittstelle zur gleichen Zeit zugreifen kann.

Evl. habe ich auch was übersehen, deshalb noch einen Task im Wiki aufgemacht.

Fazit: Geht nicht.

Alles wieder löschen.

sudo apt-get remove openhab-addon-binding-fs20
sudo apt-get remove openhab-addon-io-cul

Einträge aus der openhab.cfg wieder löschen.
Die FS20.items Datei wieder löschen.

Eine Lösung währe, einen zweiten CUL an einem eigenen USB Port. Oder habt Ihr noch einen anderen Vorschlag?

Ähnliche Artikel:

  1. OpenHab: CUL an Homematic über Homegear auf dem Raspberry Pi unter Debian – Jessie
  2. Wie läuft die Installation von OpenHAB auf einem Raspberry Pi unter Jessie?
  3. Wie kann OpenHab und eine Demo-Anwendung auf einem Raspberry Pi (Debian) installiert werden?

wallpaper-1019588
Deutscher Simuldub zu “I Was Reincarnated as the 7th Prince” gestartet
wallpaper-1019588
Final Fantasy XII – Brettspiel zum PS2-Klassiker angekündigt
wallpaper-1019588
Super Nintendo World – „Donkey Kong Country“-Eröffnung verschoben
wallpaper-1019588
Pokémon Karmesin und Purpur – Neues Tera-Raid-Event am Wochenende