{"id":6894,"date":"2016-04-06T02:55:31","date_gmt":"2016-04-06T00:55:31","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=6894"},"modified":"2021-11-22T17:14:15","modified_gmt":"2021-11-22T16:14:15","slug":"openhab-cul-fs20","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=6894","title":{"rendered":"Kann OpenHAB auf einem Raspberry Pi gleichzeitig Homematic\/Homegeare und FS20 Binding \u00fcber einen CUL verwenden?"},"content":{"rendered":"<p>Kann unter OpenHAB auf einem Raspberry Pi mit Homematic\/Homegeare und FS20 Binding gleichzeitig \u00fcber einen CUL betrieben werden? Die kurze Antwort: Leider <strong>NEIN<\/strong>.<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/cul.png\" rel=\"attachment wp-att-6903\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/cul.png\" alt=\"cul\" width=\"640\" height=\"453\" class=\"aligncenter size-full wp-image-6903\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/cul.png 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/04\/cul-300x212.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\nUnd hier die lange Beschreibung mit Vorgehen.<!--more--><\/p>\n<p>Die Homematic Ger\u00e4te laufen \u00fcber Homegeare mit dem Homematic Binding \u00fcber eine CUL an dem seriellen USB Port <strong>\/dev\/ttyACM0<\/strong> erfolgreich.<\/p>\n<p>Nun wollte ich auch noch ein FS20 Ger\u00e4t, das KSE (Klingelsignal-Erkennung) dar\u00fcber laufen lassen. Also das <a href=\"https:\/\/github.com\/openhab\/openhab1-addons\/wiki\/FS20-Binding\" target=\"_blank\" rel=\"noopener noreferrer\">FS20 Binding<\/a> installiert.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo apt-get install openhab-addon-binding-fs20\r\nsudo apt-get install openhab-addon-io-cul\r\n<\/pre>\n<p>Dann in der <strong>openhab.cfg<\/strong> die Serielle Schnittstelle des CULs angeben<\/p>\n<pre class=\"lang:default decode:true \" >\r\nfs20:device=serial:\/dev\/ttyACM0\r\nfs20:baudrate=38400\r\nfs20:parity=0\r\n<\/pre>\n<p>Anlegen einer <strong>FS20.items<\/strong> Datei mit den beiden Schaltern.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nSwitch  klingelSchalterKanal1     \"Klingelsignal Kanal 1\"                {fs20=\"C04B00\"}\r\nSwitch  klingelSchalterKanal2     \"Klingelsignal Kanal 2\"                {fs20=\"C04B00\"}\r\n<\/pre>\n<p>Adresse f\u00fcr den Schalter ermitteln, durch Neustart von openHab im debug Modus und im log schauen. Das Log:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n18:29:43.750 [DEBUG] [.b.fs20.internal.FS20Activator:34   ] - FS20 binding has been started.\r\n\r\n18:29:44.981 [DEBUG] [.io.transport.cul.CULActivator:35   ] - CUL transport has been started.\r\n\r\n18:29:44.729 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'klingelSchalterKanal1 (Type=SwitchItem, State=Uninitialized)' with 'FS20GenericBindingProvider' reader.\r\n18:29:44.811 [DEBUG] [i.internal.GenericItemProvider:341  ] - Start processing binding configuration of Item 'klingelSchalterKanal2 (Type=SwitchItem, State=Uninitialized)' with 'FS20GenericBindingProvider' reader.\r\n18:29:44.981 [DEBUG] [.io.transport.cul.CULActivator:35   ] - CUL transport has been started.\r\n\r\n18:29:49.465 [INFO ] [o.i.t.c.i.CULSerialHandlerImpl:124  ] - Update config, baudrate = 38400\r\n\r\n18:29:52.604 [ERROR] [.o.b.fs20.internal.FS20Binding:81   ] - Can't open cul device\r\norg.openhab.io.transport.cul.CULDeviceException: gnu.io.NoSuchPortException\r\n\tat org.openhab.io.transport.cul.internal.CULSerialHandlerImpl.openHardware(CULSerialHandlerImpl.java:269) ~[na:na]\r\n\tat org.openhab.io.transport.cul.internal.AbstractCULHandler.open(AbstractCULHandler.java:154) ~[na:na]\r\n\tat org.openhab.io.transport.cul.CULManager.createNewHandler(CULManager.java:170) ~[bundlefile:na]\r\n\tat org.openhab.io.transport.cul.CULManager.getOpenCULHandler(CULManager.java:89) ~[bundlefile:na]\r\n\tat org.openhab.binding.fs20.internal.FS20Binding.getCULHandler(FS20Binding.java:78) [bundlefile:na]\r\n\tat org.openhab.binding.fs20.internal.FS20Binding.updateDeviceSettings(FS20Binding.java:72) [bundlefile:na]\r\n\tat org.openhab.binding.fs20.internal.FS20Binding.updated(FS20Binding.java:200) [bundlefile:na]\r\n\tat org.eclipse.equinox.internal.cm.ManagedServiceTracker$1.run(ManagedServiceTracker.java:183) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]\r\n\tat org.eclipse.equinox.internal.cm.SerializedTaskQueue$1.run(SerializedTaskQueue.java:36) [org.eclipse.equinox.cm_1.0.400.v20120522-1841.jar:na]\r\nCaused by: gnu.io.NoSuchPortException: null\r\n\tat gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:273) ~[na:na]\r\n\tat org.openhab.io.transport.cul.internal.CULSerialHandlerImpl.openHardware(CULSerialHandlerImpl.java:244) ~[na:na]\r\n\t... 8 common frames omitted\r\n<\/pre>\n<p>Oh, da steht ja keine Adresse sondern eine <strong>NoSuchPortException<\/strong>. Also dann mal schauen wie die Rechte so sind:<\/p>\n<pre class=\"lang:default decode:true \" >$ less \/etc\/group | grep dialout\r\n# Ergebnis, ok openhab der User unter dem openHAB l\u00e4uft ist nicht in der Gruppe\r\ndialout:x:20:pi,homegear\r\n# User openhab der dialout Gruppe hinzugef\u00fcgt\r\n$ sudo usermod -aG dialout openhab\r\n# Kontrolle\r\n$ less \/etc\/group | grep dialout\r\n# Ergebnis, openhab ist nun auch in der Gruppe\r\ndialout:x:20:pi,homegear,openhab\r\n# Restart<\/pre>\n<p>Ok, der Fehler ist immer noch da. Dann mal \u00fcber die Konsole mit screen zu dem CUL verbinden.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo screen sudo screen \/dev\/ttyACM0\r\n# Eingabe von V und Enter\r\nV\r\n# Liefert die Version des CUL_V3 \r\nV 1.66 CUL868\r\n<\/pre>\n<p>Ok, das l\u00e4uft schon mal.<\/p>\n<p>Dann mal schauen ob das FS20 Ger\u00e4t auch Daten senden kann, die der CUL empf\u00e4ngt.<\/p>\n<p>Signale der FS20 KSE werden auch empfangen, die HEX Werte bedeuten<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# Faaaabbccdd\r\n\r\n# a=Hauscode\r\n# b=Ger\u00e4te Adresse\r\n# c=Kommando\r\n# d=Zeitstempel\r\n\r\n# z.B.:\r\nF0000000011\r\nF000001000F\r\nF0000001116\r\nF000001111A\r\nF000000000E\r\nF0000000004\r\nF0000000004\r\nF0000000005\r\nF00000011F9\r\nF00000011F8\r\nF00000011FA\r\nF00000100F8\r\nF00000100FB\r\nF0000011103\r\nF000000001B\r\nF0000010015\r\n<\/pre>\n<p>Also kann der CUL die Daten des FS20 empfangen. Dann mal die Rechte f\u00fcr die Schnittstelle f\u00fcr alle erlauben und in die richtige Gruppe aufnehmen:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# so sieht es zuerste aus\r\nls -alh \/dev\/ttyACM0\r\nrw-rw---- 1 homegear homegear 166, 0 Apr  5 19:26 \/dev\/ttyACM0\r\n# den User homegear in die dialout Gruppe aufnehmen\r\nsudo usermod -aG dialout homegear\r\n# checken, ok\r\nless \/etc\/group | grep dialout\r\n# Ergebnis\r\n# dialout:x:20:pi,homegear,openhab\r\n# alle Rechte geben\r\nsudo chgrp dialout \/dev\/ttyACM0\r\ncrwxrwxrwx 1 homegear dialout 166, 0 Apr  5 19:26 \/dev\/ttyACM0\r\n# Reboot\r\n<\/pre>\n<p>Ok, der Fehler ist immer noch da. Es geht also nicht.<\/p>\n<p>Nach dem Reboot hat openHab auch die Rechte wieder auf ausschlie\u00dflich homegeare gesetzt. <\/p>\n<pre class=\"lang:default decode:true \" >\r\n$ ls -alh \/dev\/ttyACM0\r\ncrw-rw---- 1 homegear homegear 166, 0 Apr  5 20:36 \/dev\/ttyACM\r\n<\/pre>\n<p>Das soll wohl hei\u00dfen, das nur homegeare auf die Schnittstelle zur gleichen Zeit zugreifen kann. <\/p>\n<p>Evl. habe ich auch was \u00fcbersehen, deshalb noch einen <a href=\"https:\/\/community.openhab.org\/t\/homegear-homatic-binding-and-fs20-binding-on-one-cul-possible-cant-open-cul-device\/9451\" target=\"_blank\" rel=\"noopener noreferrer\">Task im Wiki<\/a> aufgemacht.<\/p>\n<p><strong>Fazit: Geht nicht<\/strong>. <\/p>\n<p>Alles wieder l\u00f6schen.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nsudo apt-get remove openhab-addon-binding-fs20\r\nsudo apt-get remove openhab-addon-io-cul\r\n<\/pre>\n<p>Eintr\u00e4ge aus der <strong>openhab.cfg<\/strong> wieder l\u00f6schen.<br \/>\nDie <strong>FS20.items<\/strong> Datei wieder l\u00f6schen.<\/p>\n<p>Eine L\u00f6sung w\u00e4hre, einen zweiten CUL an einem eigenen USB Port. Oder habt Ihr noch einen anderen Vorschlag?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kann unter OpenHAB auf einem Raspberry Pi mit Homematic\/Homegeare und FS20 Binding gleichzeitig \u00fcber einen CUL betrieben werden? Die kurze Antwort: Leider NEIN. Und hier die lange Beschreibung mit Vorgehen.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,852,2426,1023],"tags":[1349,1352,927,2470,2471],"class_list":["post-6894","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-heimautomatisierung","category-openhab","category-raspberry-pi","tag-cul","tag-fs20","tag-homematic","tag-kse","tag-nosuchportexception-openhab"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6894"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/6894\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6894"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}