[Gelöst] Homegear in lxccu einbinden

Hallo,

ist es möglich, Homegear in lxccu einzubinden? Stichwort: “Remote BidCos Service”.
Also quasi statt der Verwendung von “rfd” einfach Homegear als BidCos-RF einbinden.

Ich verwende Homegear direkt mit einem CC1101 und würde Homegear+CC1101 gerne als “LAN-GW” nutzen.

UPDATE:
Hier steht kurz wie es geht.

cat /etc/config/InterfacesList.xml

<?xml version="1.0" encoding="utf-8" ?> <interfaces v="1.0"> <ipc> <name>BidCos-RF</name> <url>xmlrpc_bin://127.0.0.1:2001</url> <info>BidCos-RF</info> </ipc> <ipc> <name>VirtualDevices</name> <url>xmlrpc://127.0.0.1:9292/groups</url> <info>Virtual Devices</info> </ipc> </interfaces>

Könnte man den Eintrag nicht verbiegen auf Homegear xmlrpc?

Hallo nanosonde,

ja, das geht. Siehe auch (da allerdings zusätzlich zum rfd):

http://sathya.de/blog/2015/01/install-homegear-on-homematic-ccu2/

ich würde aber gar nicht die LXCCU verwenden, sondern die Programme der CCU direkt auf dem Raspberry Pi laufen lassen. Das kommt auf’s gleiche raus ohne den VM-Overhead.

Ein Skript, welches das einrichtet findest du hier: homegear.eu/downloads/InstallReGaHss.sh

Liebe Grüße

Sathya

Danke für den Tipp.

Allerdings steht es ja schon im Skript ganz oben: “it will mess with your libs”…
Von daher finde ich den Container gar nicht so verkehrt. :wink:

Ich probiere es erstmal mit lxccu. Mal schauen, inwieweit das funktioniert.

Ich habe in lxccu jetzt nur den Eintrag in der InterfacesList.xml angepasst.

<?xml version="1.0" encoding="utf-8" ?> <interfaces v="1.0"> <ipc> <name>BidCos-RF</name> <url>xmlrpc_bin://192.168.10.145:2001</url> <info>BidCos-RF</info> </ipc> <ipc> <name>VirtualDevices</name> <url>xmlrpc://127.0.0.1:9292/groups</url> <info>Virtual Devices</info> </ipc> </interfaces>

Im homegear.err logfile steht jetzt immer kurz nach dem Start von RegGaHss:

127.0.0.1 wäre ja auch eigentlich falsch. Es müsste doch 192.168.10.145 in meinem Fall sein.

Eine Idee, woran das liegen könnte?

Mhmm… ich sehe gerade, dass das im ReGaHss Binary hart kodiert ist.

homematic.regadom sieht dann immer so aus:

UPDATE:
In der WebUI erhalte ich beim Auswählen von “Gerät anlernen” den Fehler:
“BidCos-RF Anlernmodus konnte nicht aktiviert werden.”

Ich habe die Datei homematic.regadom von Hand editiert und die IP-Adresse der lxccu eingetragen und den Container neu gestartet.
Jetzt meckert Homegear nicht mehr, aber es funktioniert trotzdem nicht.

So sieht der gesamte Console-Output aus:

[code]pi@raspberrypi /var $ sudo lxc-start -n lxccu
LED Code: System start:OK
Starting crond: OK
crond[39]: crond: crond (busybox 1.20.2) started, log level 8
Starting logging: OK
Populating /dev using udev: done
Starting watchdog…
Initializing random number generator… done.
Starting network…
ip: RTNETLINK answers: File exists
udhcpc (v1.20.2) started
Sending discover…
Sending select for 192.168.10.104…
Lease of 192.168.10.104 obtained, lease time 864000
rm: can’t remove ‘/var/etc/resolv.conf’: No such file or directory
udhcpc (v1.20.2) started
Sending discover…
Sending select for 192.168.10.104…
Lease of 192.168.10.104 obtained, lease time 864000
Starting Network Interface Plugging Daemon: eth0.
Preparing start of hs485dOK
Starting setclock: 0.de.pool.ntp.org not found
try gateway 192.168.10.1
GATEWAY not found
OK
Starting eq3configd: OK
Starting lighttpd: OK
Starting sshd: OK
ls: /etc/config/*.keychange: No such file or directory
OK
Starting hs485d: OK
Starting rfd: Daemonizing to background
OK
Starting HMServer: Exception in thread “main” de.eq3.lib.communication.rpc.RpcSerializationException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16]
Message: found: DTD, expected START_ELEMENT or END_ELEMENT
at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:131)
at de.eq3.lib.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:62)
at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:41)
at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:37)
at $Proxy4.listDevices(Unknown Source)
at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.listDevicesAndChannels(BidCosRpcDispatcher.java:422)
at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.listDevices(BidCosRpcDispatcher.java:450)
at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.initBidCosCache(BidCosRpcDispatcher.java:113)
at de.eq3.ccu.server.HMServer.initialize(HMServer.java:93)
at de.eq3.ccu.server.HMServer.(HMServer.java:55)
at de.eq3.ccu.server.HMServer.main(HMServer.java:75)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16]
Message: found: DTD, expected START_ELEMENT or END_ELEMENT
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.nextTag(XMLStreamReaderImpl.java:1250)
at de.eq3.lib.communication.rpc.internal.format.xml.XmlRpcParser.parseMethodResponse(XmlRpcParser.java:93)
at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:129)
… 10 more
OK
Starting ReGaHss: OK
System startedsuccessfully loaded “/etc/config/homematic.regadom”

Load interfaces from file
OK
HTTP server started successfully[/code]

Die WebUI ist normal erreichbar.

homematic.log zeigt nur noch folgendes (der Error bzgl. xml-rpc auf 127.0.0.1:1999 taucht nicht mehr auf wegen der Änderung in homematic.regadom):

04/28/15 18:45:37.598 RPC Server (Port 2001): Info: Connection from 192.168.10.104:45485 accepted. Client number: 172 04/28/15 18:45:37.598 RPC Server (Port 2001): Info: Client number 172 is calling RPC method: system.listMethods Parameters: 04/28/15 18:45:37.603 RPC Server (Port 2001): Info: Connection to client number 172 closed (3).

Hmm, steht denn etwas von dem “listDevices” in der Homegear-Logdatei? Setz mal den Debuglevel auf 5 und poste oder schick mir mal den ganzen Logabschnitt eines LXCCU-Starts. Das gibt vielleicht Aufschluss, was da schief läuft.

Liebe Grüße

Sathya

In Homegear sind aktuell keine Geräte angelernt.
Stutzig macht mich das “Unknown Source” hier: at $Proxy4.listDevices(Unknown Source)

Ich muss ja in der homematic.regadom die IP-Adresse von 127.0.0.1 von Hand auf die IP-Adresse von der lxccu Instanz ändern.
Hängt das vielleicht damit zusammen?

Konsole lxccu:

Starting HMServer: Exception in thread "main" de.eq3.lib.communication.rpc.RpcSerializationException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16] Message: found: DTD, expected START_ELEMENT or END_ELEMENT at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:131) at de.eq3.lib.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:62) at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:41) at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:37) at $Proxy4.listDevices(Unknown Source) at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.listDevicesAndChannels(BidCosRpcDispatcher.java:422) at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.listDevices(BidCosRpcDispatcher.java:450) at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher.initBidCosCache(BidCosRpcDispatcher.java:113) at de.eq3.ccu.server.HMServer.initialize(HMServer.java:93) at de.eq3.ccu.server.HMServer.<init>(HMServer.java:55) at de.eq3.ccu.server.HMServer.main(HMServer.java:75) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16] Message: found: DTD, expected START_ELEMENT or END_ELEMENT at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.nextTag(XMLStreamReaderImpl.java:1250) at de.eq3.lib.communication.rpc.internal.format.xml.XmlRpcParser.parseMethodResponse(XmlRpcParser.java:93) at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:129) ... 10 more

homegear.log (1, Start von HMserver):

04/29/15 06:59:29.928 RPC Server (Port 2001): Info: Connection from 192.168.10.104:55973 accepted. Client number: 6 04/29/15 06:59:29.929 RPC Server (Port 2001): Listening for incoming packets from client number 6. 04/29/15 06:59:30.105 RPC Server (Port 2001): Debug: Packet received: 504F5354202F20485454502F312E310D0A436F6E74656E742D4C656E6774683A203130300D0A486F73743A203139322E3136382E31302E3134353A323030310D0A436F6E6E656374696F6E3A204B6565702D416C6976650D0A557365722D4167656E743A204170616368652D48747470436C69656E742F342E322E3520286A61766120312E35290D0A0D0A3C3F786D6C2076657273696F6E3D22312E3022203F3E3C6D6574686F6443616C6C3E3C6D6574686F644E616D653E6C697374446576696365733C2F6D6574686F644E616D653E3C706172616D733E3C2F706172616D733E3C2F6D6574686F6443616C6C3E 04/29/15 06:59:30.106 Web Server (Port 2001): Client is requesting: / 04/29/15 06:59:30.114 RPC Server (Port 2001): Info: RPC Method called: listFamilies Parameters: 04/29/15 06:59:30.114 RPC Server (Port 2001): Response: (Array length=2) { (Struct length=3) { [ID] { (Integer) 0 } [NAME] { (String) HomeMatic BidCoS } [PAIRING_METHODS] { (Array length=2) { (String) addDevice (String) setInstallMode } } } (Struct length=3) { [ID] { (Integer) 254 } [NAME] { (String) Miscellaneous } [PAIRING_METHODS] { (Array length=1) { (String) createDevice } } } } 04/29/15 06:59:30.117 RPC Server (Port 2001): Info: RPC Method called: listDevices Parameters: (Boolean) 0 (Array length=5) { (String) FAMILY (String) ID (String) ADDRESS (String) TYPE (String) FIRMWARE } 04/29/15 06:59:30.125 RPC Server (Port 2001): Response: (Array length=0) { } 04/29/15 06:59:30.128 RPC Server (Port 2001): Info: Connection to client number 6 closed. 04/29/15 06:59:39.938 RPC Server (Port 2001): Debug: Joining read thread of client 0 04/29/15 06:59:39.938 RPC Server (Port 2001): Debug: Client 0 removed.

homegear.log (2, Start von ReGaHSS):

04/29/15 07:01:42.455 RPC Server (Port 2001): Info: Connection from 192.168.10.104:56000 accepted. Client number: 7 04/29/15 07:01:42.456 RPC Server (Port 2001): Listening for incoming packets from client number 7. 04/29/15 07:01:42.457 RPC Server (Port 2001): Debug: Packet received: 42696E000000004000000004696E6974000000020000000300000020786D6C7270635F62696E3A2F2F3139322E3136382E31302E3130343A31393939000000030000000431303037 04/29/15 07:01:42.457 RPC Server (Port 2001): Info: Client number 7 is calling RPC method: init Parameters: (String) xmlrpc_bin://192.168.10.104:1999 (String) 1007 04/29/15 07:01:42.457 RPC Server (Port 2001): Response: (void) 04/29/15 07:01:42.457 RPC Server (Port 2001): Response binary: 42696E01000000080000000300000000 04/29/15 07:01:42.461 RPC Server (Port 2001): Info: Connection to client number 7 closed (3). 04/29/15 07:01:52.457 Info: Calling XML RPC method "system.listMethods" on server xmlrpc_bin://192.168.10.104 and port 1999. 04/29/15 07:01:52.458 Parameters: (String) 1007 04/29/15 07:01:52.458 Debug: Calling getFileDescriptor... 04/29/15 07:01:52.458 Info: Connecting to host 192.168.10.104 on port 1999... 04/29/15 07:01:52.459 Info: Connected to host 192.168.10.104 on port 1999. Client number is: 8 04/29/15 07:01:52.460 Sending packet: 42696E00000000260000001273797374656D2E6C6973744D6574686F647300000001000000030000000431303037 04/29/15 07:01:52.461 RPC client receiving binary rpc packet with size: 249. Payload size is: 241 04/29/15 07:01:52.462 Debug: Received packet from server 192.168.10.104 on port 1999: 42696E01000000F1000001000000000B000000030000000D64656C6574654465766963657300000003000000056576656E74000000030000000B6C69737444657669636573000000030000000A6E657744657669636573000000030000000D7265706C61636544657669636500000003000000107265706F727456616C75655573616765000000030000000E7365745265616479436F6E666967000000030000001273797374656D2E6C6973744D6574686F6473000000030000001173797374656D2E6D6574686F6448656C70000000030000000C757064617465446576696365000000030000001073797374656D2E6D756C746963616C6C00 04/29/15 07:01:52.462 Response was: (Array length=11) { (String) deleteDevices (String) event (String) listDevices (String) newDevices (String) replaceDevice (String) reportValueUsage (String) setReadyConfig (String) system.listMethods (String) system.methodHelp (String) updateDevice (String) system.multicall } 04/29/15 07:01:52.463 Debug: Adding method deleteDevices 04/29/15 07:01:52.463 Debug: Adding method event 04/29/15 07:01:52.463 Debug: Adding method listDevices 04/29/15 07:01:52.463 Debug: Adding method newDevices 04/29/15 07:01:52.463 Debug: Adding method replaceDevice 04/29/15 07:01:52.463 Debug: Adding method reportValueUsage 04/29/15 07:01:52.463 Debug: Adding method setReadyConfig 04/29/15 07:01:52.463 Debug: Adding method system.listMethods 04/29/15 07:01:52.463 Debug: Adding method system.methodHelp 04/29/15 07:01:52.464 Debug: Adding method updateDevice 04/29/15 07:01:52.464 Debug: Adding method system.multicall 04/29/15 07:01:52.464 Info: Calling XML RPC method "listDevices" on server xmlrpc_bin://192.168.10.104 and port 1999. 04/29/15 07:01:52.464 Parameters: (String) 1007 04/29/15 07:01:52.464 Debug: Calling getFileDescriptor... 04/29/15 07:01:52.464 Info: Connecting to host 192.168.10.104 on port 1999... 04/29/15 07:01:52.466 Info: Connected to host 192.168.10.104 on port 1999. Client number is: 9 04/29/15 07:01:52.466 Sending packet: 42696E000000001F0000000B6C6973744465766963657300000001000000030000000431303037 04/29/15 07:01:52.468 RPC client receiving binary rpc packet with size: 16. Payload size is: 8 04/29/15 07:01:52.469 Debug: Received packet from server 192.168.10.104 on port 1999: 42696E0100000008000000030000000000 04/29/15 07:01:52.469 Response was: (String) 04/29/15 07:02:42.515 RPC Server (Port 2001): Debug: Joining read thread of client 1 04/29/15 07:02:42.515 RPC Server (Port 2001): Debug: Client 1 removed.

Hallo nanosonde,

da sind leider die relevanten Abschnitte noch nicht drin. Das erste Log zeigt das Öffnen der Weboberfläche und das zweite die (erfolgreiche) Verbindung von Homegear zur LXCCU (also die andere Richtung). Vielleicht fehlt das “listDevices” ja auch. Schick mir mal das komplette Log an meine E-Mail-Adresse.

Liebe Grüße

Sathya

Nachtrag:

Ich schaue gleich erst einmal im Log, ob das listDevices überhaupt ankommt. Falls nicht, stimmt tatsächlich mit der TCP-Verbindung irgendetwas nicht.

Habe Dir die Logs per Mail gesendet.

Wie sieht eigentlich ein Eintrag in der InterfacesList.xml bzw. homematic.regadom aus, wenn ein HM-LAN-Adapter benutzt wird?
Hier sind der rfd und regahssd ja auch nicht zusammen auf einem “localhost”, sondern der HM-LAN-Adapter mit seinem rfd ist ja auch extern.

Oder wickelt der lokale rfd auf einer CCU2 auch die Kommunikation mit einem HM-LAN-Adapter ab?

Hallo!

Kleine Erfolgsmeldung. :wink:

Ich habe meinen Test Shutter Contact per Homegear CLI angelernt, so dass Homegear nun ein Gerät kennt.
Wenn ich lxccu nun starte,dann kracht es zwar immer noch und ein Anlernen über “Geräte anlernen” geht immer noch nicht, aber das über das CLI angelernte Gerät taucht im Posteingang auf und ich kann es hinzufügen.

Wenn ich dann auf Status->Geräte->Shutter Contact in der WebGUI gehe, dann sehe ich auch, wie sich der Zustand des Kontakts ändert, wenn ich den Magnet am Kontakt anlege bzw. wegnehme.

Offenbar hat HMServer.jar ein Problem mit dem Parsen der Response auf einen XMLRPC Request an Homegear.
Das betrifft offenbar alle möglichen Methoden.

Exception in thread "Timer-2" de.eq3.lib.communication.rpc.RpcSerializationException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16] Message: found: DTD, expected START_ELEMENT or END_ELEMENT at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:131) at de.eq3.lib.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:62) at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:41) at de.eq3.lib.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:37) at $Proxy4.registerCallback(Unknown Source) at de.eq3.ccu.bidcos.dispatcher.BidCosRpcDispatcher$1.run(BidCosRpcDispatcher.java:392) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,16] Message: found: DTD, expected START_ELEMENT or END_ELEMENT at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.nextTag(XMLStreamReaderImpl.java:1250) at de.eq3.lib.communication.rpc.internal.format.xml.XmlRpcParser.parseMethodResponse(XmlRpcParser.java:93) at de.eq3.lib.communication.rpc.internal.format.xml.XmlRequestResponseProcessor.parseResponse(XmlRequestResponseProcessor.java:129) ... 7 more

UPDATE:
Es klappt sogar mit cuxd. Allerdings musste ich in cuxd.ini den Eintrag HM-SCRIPTHOST von 127.0.0.1 auf die IP der lxccu Instanz ändern, obwohl cuxd auch innerhalb der lxccu Instanz läuft.
Erst dann konnte sich cuxd auf Port 8181 mit regahssd verbinden. Zur Erinnerung: ich musste den Eintrag in der homematic.regadom von 127.0.0.1 auf den IP der lxccu Instanz ändern.

Ich habe den Fehler eingegrenzt:

tcpdump port 2001 auf einer richtigen CCU2 (Kommunikation zwischen HMServer und rfd beim Start von HmServer):
[color=#00BF00]Response ok, Methode listDevices()[/color]

18:21:03.001245 IP 127.0.0.1.58868 > 127.0.0.1.2001: Flags [P.], seq 1:235, ack 1, win 1025, options [nop,nop,TS val 222524254 ecr 222524141], length 234 0x0000: 4500 011e 5c7b 4000 4006 df5c 7f00 0001 E...\{@.@..\.... 0x0010: 7f00 0001 e5f4 07d1 2af8 2e95 e561 33df ........*....a3. 0x0020: 8018 0401 ff12 0000 0101 080a 0d43 735e .............Cs^ 0x0030: 0d43 72ed 504f 5354 202f 2048 5454 502f .Cr.POST./.HTTP/ 0x0040: 312e 310d 0a43 6f6e 7465 6e74 2d4c 656e 1.1..Content-Len 0x0050: 6774 683a 2031 3030 0d0a 486f 7374 3a20 gth:.100..Host:. 0x0060: 3132 372e 302e 302e 313a 3230 3031 0d0a 127.0.0.1:2001.. 0x0070: 436f 6e6e 6563 7469 6f6e 3a20 4b65 6570 Connection:.Keep 0x0080: 2d41 6c69 7665 0d0a 5573 6572 2d41 6765 -Alive..User-Age 0x0090: 6e74 3a20 4170 6163 6865 2d48 7474 7043 nt:.Apache-HttpC 0x00a0: 6c69 656e 742f 342e 322e 3520 286a 6176 lient/4.2.5.(jav 0x00b0: 6120 312e 3529 0d0a 0d0a 3c3f 786d 6c20 a.1.5)....<?xml. 0x00c0: 7665 7273 696f 6e3d 2231 2e30 2220 3f3e version="1.0".?> 0x00d0: 3c6d 6574 686f 6443 616c 6c3e 3c6d 6574 <methodCall><met 0x00e0: 686f 644e 616d 653e 6c69 7374 4465 7669 hodName>listDevi 0x00f0: 6365 733c 2f6d 6574 686f 644e 616d 653e ces</methodName> 0x0100: 3c70 6172 616d 733e 3c2f 7061 7261 6d73 <params></params 0x0110: 3e3c 2f6d 6574 686f 6443 616c 6c3e ></methodCall> 18:21:03.001527 IP 127.0.0.1.2001 > 127.0.0.1.58868: Flags [.], ack 235, win 1024, options [nop,nop,TS val 222524254 ecr 222524254], length 0 0x0000: 4500 0034 4131 4000 4006 fb90 7f00 0001 E..4A1@.@....... 0x0010: 7f00 0001 07d1 e5f4 e561 33df 2af8 2f7f .........a3.*./. 0x0020: 8010 0400 fe28 0000 0101 080a 0d43 735e .....(.......Cs^ 0x0030: 0d43 735e .Cs^ 18:21:03.201741 IP 127.0.0.1.2001 > 127.0.0.1.58868: Flags [.], seq 1:16385, ack 235, win 1024, options [nop,nop,TS val 222524274 ecr 222524254], length 16384 0x0000: 4500 4034 4132 4000 4006 bb8f 7f00 0001 E.@4A2@.@....... 0x0010: 7f00 0001 07d1 e5f4 e561 33df 2af8 2f7f .........a3.*./. 0x0020: 8010 0400 3e29 0000 0101 080a 0d43 7372 ....>).......Csr 0x0030: 0d43 735e 4854 5450 2f31 2e31 2032 3030 .Cs^HTTP/1.1.200 0x0040: 204f 4b0d 0a53 6572 7665 723a 2058 4d4c .OK..Server:.XML 0x0050: 5250 432b 2b20 302e 370d 0a43 6f6e 7465 RPC++.0.7..Conte 0x0060: 6e74 2d54 7970 653a 2074 6578 742f 786d nt-Type:.text/xm 0x0070: 6c0d 0a43 6f6e 7465 6e74 2d6c 656e 6774 l..Content-lengt 0x0080: 683a 2031 3030 3537 320d 0a0d 0a3c 3f78 h:.100572....<?x 0x0090: 6d6c 2076 6572 7369 6f6e 3d22 312e 3022 ml.version="1.0" 0x00a0: 3f3e 0d0a 3c6d 6574 686f 6452 6573 706f ?>..<methodRespo 0x00b0: 6e73 653e 3c70 6172 616d 733e 3c70 6172 nse><params><par 0x00c0: 616d 3e0d 0a09 3c76 616c 7565 3e3c 6172 am>...<value><ar 0x00d0: 7261 793e 3c64 6174 613e 3c76 616c 7565 ray><data><value 0x00e0: 3e3c 7374 7275 6374 3e3c 6d65 6d62 6572 ><struct><member 0x00f0: 3e3c 6e61 6d65 3e41 4444 5245 5353 3c2f ><name>ADDRESS</ 0x0100: 6e61 6d65 3e3c 7661 6c75 653e 4269 6443 name><value>BidC 0x0110: 6f53 2d52 463c 2f76 616c 7565 3e3c 2f6d oS-RF</value></m 0x0120: 656d 6265 723e 3c6d 656d 6265 723e 3c6e ember><member><n 0x0130: 616d 653e 4348 494c 4452 454e 3c2f 6e61 ame>CHILDREN</na 0x0140: 6d65 3e3c 7661 6c75 653e 3c61 7272 6179 me><value><array 0x0150: 3e3c 6461 7461 3e3c 7661 6c75 653e 4269 ><data><value>Bi 0x0160: 6443 6f53 2d52 463a 303c 2f76 616c 7565 dCoS-RF:0</value 0x0170: 3e3c 7661 6c75 653e 4269 6443 6f53 2d52 ><value>BidCoS-R 0x0180: 463a 313c 2f76 616c 7565 3e3c 7661 6c75 F:1</value><valu

tcpdump port 2001 in der lxccu Instanz (Kommunikation zwischen HMServer und Homegear beim Start von HmServer):
[color=#FF0000]Fehler in der Response, Methode init()[/color]

18:34:12.392969 IP 192.168.10.104.37495 > 192.168.10.145.2001: Flags [P.], seq 1:334, ack 1, win 229, options [nop,nop,TS val 80721766 ecr 80721766], length 333 0x0000: 4500 0181 27f1 4000 4006 7b3c c0a8 0a68 E...'.@.@.{<...h 0x0010: c0a8 0a91 9277 07d1 b78c 908a f4d3 ec27 .....w.........' 0x0020: 8018 00e5 97bd 0000 0101 080a 04cf b766 ...............f 0x0030: 04cf b766 504f 5354 202f 2048 5454 502f ...fPOST./.HTTP/ 0x0040: 312e 310d 0a43 6f6e 7465 6e74 2d4c 656e 1.1..Content-Len 0x0050: 6774 683a 2031 3934 0d0a 486f 7374 3a20 gth:.194..Host:. 0x0060: 3139 322e 3136 382e 3130 2e31 3435 3a32 192.168.10.145:2 0x0070: 3030 310d 0a43 6f6e 6e65 6374 696f 6e3a 001..Connection: 0x0080: 204b 6565 702d 416c 6976 650d 0a55 7365 .Keep-Alive..Use 0x0090: 722d 4167 656e 743a 2041 7061 6368 652d r-Agent:.Apache- 0x00a0: 4874 7470 436c 6965 6e74 2f34 2e32 2e35 HttpClient/4.2.5 0x00b0: 2028 6a61 7661 2031 2e35 290d 0a0d 0a3c .(java.1.5)....< 0x00c0: 3f78 6d6c 2076 6572 7369 6f6e 3d22 312e ?xml.version="1. 0x00d0: 3022 203f 3e3c 6d65 7468 6f64 4361 6c6c 0".?><methodCall 0x00e0: 3e3c 6d65 7468 6f64 4e61 6d65 3e69 6e69 ><methodName>ini 0x00f0: 743c 2f6d 6574 686f 644e 616d 653e 3c70 t</methodName><p 0x0100: 6172 616d 733e 3c70 6172 616d 3e3c 7661 arams><param><va 0x0110: 6c75 653e 6874 7470 3a2f 2f31 3237 2e30 lue>http://127.0 0x0120: 2e30 2e31 3a39 3239 322f 6269 6463 6f73 .0.1:9292/bidcos 0x0130: 3c2f 7661 6c75 653e 3c2f 7061 7261 6d3e </value></param> 0x0140: 3c70 6172 616d 3e3c 7661 6c75 653e 486f <param><value>Ho 0x0150: 6d65 6765 6172 5f6a 6176 613c 2f76 616c megear_java</val 0x0160: 7565 3e3c 2f70 6172 616d 3e3c 2f70 6172 ue></param></par 0x0170: 616d 733e 3c2f 6d65 7468 6f64 4361 6c6c ams></methodCall 0x0180: 3e > 18:34:12.393166 IP 192.168.10.145.2001 > 192.168.10.104.37495: Flags [.], ack 334, win 235, options [nop,nop,TS val 80721766 ecr 80721766], length 0 0x0000: 4500 0034 5b41 4000 4006 4939 c0a8 0a91 E..4[A@.@.I9.... 0x0010: c0a8 0a68 07d1 9277 f4d3 ec27 b78c 91d7 ...h...w...'.... 0x0020: 8010 00eb 9670 0000 0101 080a 04cf b766 .....p.........f 0x0030: 04cf b766 ...f 18:34:12.421210 IP 192.168.10.145.2001 > 192.168.10.104.37495: Flags [P.], seq 1:2869, ack 334, win 235, options [nop,nop,TS val 80721769 ecr 80721766], length 2868 0x0000: 4500 0b68 5b42 4000 4006 3e04 c0a8 0a91 E..h[B@.@.>..... 0x0010: c0a8 0a68 07d1 9277 f4d3 ec27 b78c 91d7 ...h...w...'.... 0x0020: 8018 00eb a1a4 0000 0101 080a 04cf b769 ...............i 0x0030: 04cf b766 4854 5450 2f31 2e31 2032 3030 ...fHTTP/1.1.200 0x0040: 204f 4b0d 0a43 6f6e 6e65 6374 696f 6e3a .OK..Connection: 0x0050: 2063 6c6f 7365 0d0a 436f 6e74 656e 742d .close..Content- 0x0060: 5479 7065 3a20 7465 7874 2f68 746d 6c0d Type:.text/html. 0x0070: 0a43 6f6e 7465 6e74 2d4c 656e 6774 683a .Content-Length: 0x0080: 2032 3830 340d 0a0d 0a3c 2144 4f43 5459 .2804....<!DOCTY 0x0090: 5045 2068 746d 6c3e 0a3c 6874 6d6c 206c PE.html>.<html.l 0x00a0: 616e 673d 2265 6e22 3e0a 2020 3c68 6561 ang="en">...<hea 0x00b0: 643e 0a20 2020 203c 6d65 7461 2063 6861 d>.....<meta.cha 0x00c0: 7273 6574 3d22 7574 662d 3822 3e0a 2020 rset="utf-8">... 0x00d0: 2020 3c6d 6574 6120 6874 7470 2d65 7175 ..<meta.http-equ 0x00e0: 6976 3d22 582d 5541 2d43 6f6d 7061 7469 iv="X-UA-Compati 0x00f0: 626c 6522 2063 6f6e 7465 6e74 3d22 4945 ble".content="IE 0x0100: 3d65 6467 6522 3e0a 2020 2020 3c6d 6574 =edge">.....<met 0x0110: 6120 6e61 6d65 3d22 7669 6577 706f 7274 a.name="viewport 0x0120: 2220 636f 6e74 656e 743d 2277 6964 7468 ".content="width 0x0130: 3d64 6576 6963 652d 7769 6474 682c 2069 =device-width,.i 0x0140: 6e69 7469 616c 2d73 6361 6c65 3d31 223e nitial-scale=1"> 0x0150: 0a20 2020 203c 6d65 7461 206e 616d 653d .....<meta.name= 0x0160: 2264 6573 6372 6970 7469 6f6e 2220 636f "description".co 0x0170: 6e74 656e 743d 2222 3e0a 2020 2020 3c6d ntent="">.....<m 0x0180: 6574 6120 6e61 6d65 3d22 6175 7468 6f72 eta.name="author 0x0190: 2220 636f 6e74 656e 743d 2222 3e0a 0a20 ".content="">... 0x01a0: 2020 203c 7469 746c 653e 486f 6d65 6765 ...<title>Homege 0x01b0: 6172 2052 5043 2053 6572 7665 723c 2f74 ar.RPC.Server</t 0x01c0: 6974 6c65 3e0a 0a20 2020 203c 212d 2d20 itle>......<!--. 0x01d0: 426f 6f74 7374 7261 7020 636f 7265 2043 Bootstrap.core.C 0x01e0: 5353 202d 2d3e 0a20 2020 203c 6c69 6e6b SS.-->.....<link 0x01f0: 2068 7265 663d 2262 6f6f 7473 7472 6170 .href="bootstrap 0x0200: 2f63 7373 2f62 6f6f 7473 7472 6170 2e6d /css/bootstrap.m 0x0210: 696e 2e63 7373 2220 7265 6c3d 2273 7479 in.css".rel="sty 0x0220: 6c65 7368 6565 7422 3e0a 2020 3c2f 6865 lesheet">...</he 0x0230: 6164 3e0a 2020 3c62 6f64 793e 0a20 203c ad>...<body>...< 0x0240: 6469 7620 636c 6173 733d 226a 756d 626f div.class="jumbo 0x0250: 7472 6f6e 223e 0a20 2020 2020 203c 6469 tron">.......<di 0x0260: 7620 636c 6173 733d 2263 6f6e 7461 696e v.class="contain 0x0270: 6572 223e 0a20 2020 2020 2020 2020 203c er">...........< 0x0280: 696d 6720 7374 796c 653d 2266 6c6f 6174 img.style="float 0x0290: 3a20 6c65 6674 3b20 6d61 7267 696e 2d74 :.left;.margin-t 0x02a0: 6f70 3a20 3133 7078 3b20 6d61 7267 696e op:.13px;.margin 0x02b0: 2d72 6967 6874 3a20 3430 7078 2220 7372 -right:.40px".sr 0x02c0: 633d 224c 6f67 6f2e 706e 6722 202f 3e0a c="Logo.png"./>. 0x02d0: 2020 2020 2020 2020 2020 3c68 323e 596f ..........<h2>Yo 0x02e0: 7572 3c2f 6832 3e0a 2020 2020 2020 2020 ur</h2>......... 0x02f0: 2020 3c68 313e 486f 6d65 6765 6172 2052 ..<h1>Homegear.R 0x0300: 5043 2053 6572 7665 723c 2f68 313e 0a20 PC.Server</h1>.. 0x0310: 2020 2020 2020 2020 203c 6832 3e77 656c .........<h2>wel 0x0320: 636f 6d65 7320 796f 7521 3c2f 6832 3e0a comes.you!</h2>. 0x0330: 2020 2020 2020 3c2f 6469 763e 0a20 203c ......</div>...< 0x0340: 2f64 6976 3e0a 2020 3c64 6976 2063 6c61 /div>...<div.cla 0x0350: 7373 3d22 636f 6e74 6169 6e65 7220 6d61 ss="container.ma 0x0360: 726b 6574 696e 6722 3e0a 2020 2020 2020 rketing">....... 0x0370: 3c64 6976 2063 6c61 7373 3d22 726f 7722 <div.class="row" 0x0380: 3e0a 2020 2020 2020 2020 3c64 6976 2073 >.........<div.s 0x0390: 7479 6c65 3d22 6865 6967 6874 3a20 3335 tyle="height:.35 0x03a0: 3070 7822 2063 6c61 7373 3d22 636f 6c2d 0px".class="col- 0x03b0: 6c67 2d34 223e 0a20 2020 2020 2020 2020 lg-4">.......... 0x03c0: 203c 7370 616e 2063 6c61 7373 3d22 676c .<span.class="gl 0x03d0: 7970 6869 636f 6e20 676c 7970 6869 636f yphicon.glyphico 0x03e0: 6e2d 6564 7563 6174 696f 6e22 2073 7479 n-education".sty 0x03f0: 6c65 3d22 666f 6e74 2d73 697a 653a 2031 le="font-size:.1 0x0400: 3430 7078 223e 3c2f 7370 616e 3e0a 2020 40px"></span>... 0x0410: 2020 2020 2020 2020 3c68 323e 5769 6b69 ........<h2>Wiki

Der Homegear RPC Server antwortet mit der normalen Webseite und nicht mit der XMLRPC Response.
Das ist der Fehler!

Problemextraktion.
file “test-xmlrpc.req”:

[code]POST / HTTP/1.1
Content-Length: 100
Host: 127.0.0.1:2001
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.5 (java 1.5)

<?xml version="1.0" ?>listDevices[/code]

Test mit netcat:

Liefert die Webseite aus und keine XMLRPC-Response.

Homegear-Version: 0.5.24-7 (debian)

Wird der Content-Type hinzugefügt, dann funktioniert es.

[code]POST / HTTP/1.1
Content-Length: 100
Host: 127.0.0.1:2001
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.5 (java 1.5)
Content-Type: text/xml

<?xml version="1.0" ?>listDevices[/code]

Ausgabe (XMLRPC-Response):

FAZIT: Offenbar nutzt der rfd den Content-Type im Header nicht (Request von HMServer.jar), um festzustellen, ob es ein normaler XMLRPC Request ist, wenn er eine Response generiert.
Mögliche Lösung:
Homegear RPC-Server so modifizieren, dass man ihn mit einem festen Protokoll betreiben kann.
Beispiel rpcservers.conf:

forceProtocol = xmlrpc #forceProtocol = binrpc #forceProtocol = websocket

Du warst ja ganz fleißig… Tut mir leid für die späte Antwort :unamused:. Jetzt, wo du es postest, erinnere ich mich dunkel, dass ich in Version 0.6 von Homegear genau das Problem gelöst habe. In Version 0.5 wird der “content-type”-Header mit dem Wert “text/xml” tatsächlich vorausgesetzt (wie von der XMLRPC-Spezifikation eigentlich vorgeschrieben). Lösen kannst du das Problem, indem du in der rpcservers.conf für den RPC-Server auf Port 2001 “webServer” auf “false” setzt. Dann wird der Request automatisch vom RPC-Server und nicht vom Webserver verarbeitet und es sollte alles funktionieren. Im Zweifel update auf Version 0.6 (die ist aktuell stabil). Dann klappt es in jedem Fall.

Liebe Grüße

Sathya

Oh man. Die Option in rpcservers.conf hatte ich übersehen. :unamused:
Danke! :wink:

Jetzt ist die Fehlermeldung von HmServer.jar weg.
Allerdings klappt das Aktivieren des Pairings immer noch nicht.
Es kommt immer noch der Hinweis, dass das Pairing nicht gestartet werden kann.

Wenn ich auf “Direkte Verknüfungen” gehen und dann auf “Neue Verknüpfung” steht oben links der Schriftzug “Interface-Prozess ‘BidCos-RF’ läuft nicht.”.
Klar, der rdf ist nicht gestartet, da kein HM-CFG-LAN oder HM-LAN-GW gekoppelt ist bzw. das Interface des Comm-Prozessors nicht vorhanden ist.

Mhmm… Was macht die CCU2 FW denn anders als das Windows-HM-Config-Tool, wenn man auf “Geräte anlernen” klickt?

Ok, also in der InterfacesList.xml sollte auf jeden Fall ein Interface mit Namen “BidCos-RF” vorhanden sein.
Offenbar ist das in anderen Daemons hart kodiert.
Ich habe jetzt den Homegear Eintrag rausgenommen und die IP des BidCos-RF Eintrags auf die Homegear IP geändert.
Jetzt erscheint die Meldung bei den direkten Verknüfungen nicht mehr.

Aber offenbar gibt es etwas, was sich nicht an diese Settings in InterfacesList.xml hält.
Wenn ich auf den Knopf “Geräte anlernen” klicke, dann gibt es immer noch folgenden Kommunikationsversuch:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes 14:18:53.803215 IP 127.0.0.1.36675 > 127.0.0.1.2001: Flags [S], seq 3902974768, win 43690, options [mss 65495,sackOK,TS val 87829909 ecr 0,nop,wscale 7], length 0 0x0000: 4500 003c 86a5 4000 4006 b614 7f00 0001 E..<..@.@....... 0x0010: 7f00 0001 8f43 07d1 e8a2 ab30 0000 0000 .....C.....0.... 0x0020: a002 aaaa fe30 0000 0204 ffd7 0402 080a .....0.......... 0x0030: 053c 2d95 0000 0000 0103 0307 .<-......... 14:18:53.803399 IP 127.0.0.1.2001 > 127.0.0.1.36675: Flags [R.], seq 0, ack 3902974769, win 0, length 0 0x0000: 4500 0028 1987 4000 4006 2347 7f00 0001 E..(..@.@.#G.... 0x0010: 7f00 0001 07d1 8f43 0000 0000 e8a2 ab31 .......C.......1 0x0020: 5014 0000 86e5 0000 P.......

Sooo…Es klappt endlich. :mrgreen:

Es muss noch eine Stelle angepasst werden: /www/config/cp_add_device.cgi

set RFD_URL "bin://127.0.0.1:2001" set HS485D_URL "bin://127.0.0.1:2000"

Geändert in

[code]set RFD_URL "bin://<ip_homgear_rpc_server>:2001" set HS485D_URL "bin://127.0.0.1:2000" [/code]

Jetzt kann das Anlernen auch über die Weboberfläche gestartet werden.

Irgendwie ist das echt nicht wirklich gut gemacht von den Entwicklern.
Überall gibt es irgendwelche IP-Adressen, die irgendwo hart kodiert sind.

Hey klasse :slight_smile: !

Auf die Änderung der Datei “/www/config/cp_add_device.cgi” wäre ich jetzt ohne Testsystem auch nicht gekommen! Hoffentlich machen diese Forumposts es anderen Nutzern leichter, die die LXCCU ebenfalls Remote anbinden wollen :wink:.

Liebe Grüße

Sathya

Hi!

/www/config/cp_add_device.cgi war nicht genug.

Diese müssen wohl auch noch angepasst werden.
cp_maintenance.cgi:set RFD_URL "bin://127.0.0.1:2001"
cp_security.cgi:set RFD_URL “bin://127.0.0.1:2001”

Allerdings reicht das immer noch nicht, damit das Ablernen klappt.
Offenbar ist das an einer noch anderen Stelle versteckt.