Hallo,
ich bin neu in der HomeMatic Welt und versuche meinen neuen Raspberry pi4 mit pivCCU3 in mein OpenHAB System zu integrieren.
OpenHAB läuft bei mir in einem Docker Container auf meinem NAS im Host Mode und ich denke, dass dort auch das Problem entsteht.
Die TCP Ports 9125 und 9126, sowie der UDP Port 43439 habe ich im Docker Profile nach aussen geöffnet.
Die Homematic FW habe ich zum Testen komplett deaktiviert.
Ich habe jetzt schon verschiedene Ansätze versucht - über die OH PaperUI und AutoDiscovery bis hin zur manuellen Definition der Bridge im Things File.
Die homematic:HmIP-RCV-50 wird manchmal gefunden, geht dann ONLINE, um kurz danach wieder OFFLINE zu gehen.
Das gleich passiert mit dem Gateway-Extra-CCU.
Ich hab auf dem Raspberry einen TCPDump gemacht und etwas merkwürdiges festgestellt.
Die komplette Kommunikation läuft zwischen der NAS IP (192.168.5.21) und der pivCCU3 IP (192.168.5.55) in beide Richtungen.
Es gibt jedoch immer wieder Anfragen von der 192.168.5.55 (pivCCU3) auf Port 9125 (XML-RPC), allerdings nicht an die .21 wie ich erwarten würde, sondern an die interne Docker0 Schnittstelle (10.0.5.1). Woher kennt die pivCCU3 diese IP? Die kann er natürlich nie erreichen.
Vielleicht bin ich auch komplett auf dem Holzweg, und das Problem ist ein ganz anderes (sitzt evtl. vor der Tastatur ).
Danke für Eure Hilfe.
Grüße
Stefan
pivCCU3 <> OpenHAB 2.4 in Docker Container
Moderator: Co-Administratoren
- deimos
- Beiträge: 5396
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 957 Mal
- Kontaktdaten:
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Hi,
bei den XmlRPC Schnittstellen meldet man sich jeweils mit einer Antwortadresse an, an welche die CCU Events schickt. Openhab nimmt hier standardmäßig die lokale IP, welche bei dir halt die interne Docker IP ist.
callbackHost und bindAddress sind hier die beiden Settings vom Binding, welche für dich interessant sein dürften.
Viele Grüße
Alex
bei den XmlRPC Schnittstellen meldet man sich jeweils mit einer Antwortadresse an, an welche die CCU Events schickt. Openhab nimmt hier standardmäßig die lokale IP, welche bei dir halt die interne Docker IP ist.
callbackHost und bindAddress sind hier die beiden Settings vom Binding, welche für dich interessant sein dürften.
Viele Grüße
Alex
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Ist das tatsächlich nötig?!? Ich nutze ja auch Openhab im Docker (Host Mode) Ich habe keinerlei Ports ausser natürlich OPENHAB_HTTP_PORT=XXXX & OPENHAB_HTTPS_PORT=XXXX rausgeführt.... Das Binding kommuniziert doch zum Port der CCU und nicht umgekehrt?!? Also ich habe keinerlei Probleme in der Kommunikation.
Ich hänge dir mal mein yaml File an
Code: Alles auswählen
version: '2.2'
services:
openhab:
container_name: OPENHAB_DEV
image: "openhab/openhab:milestone"
restart: always
network_mode: host
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/TZ:/etc/timezone:ro"
- "./addons:/openhab/addons"
- "./conf:/openhab/conf"
- "./userdata:/openhab/userdata"
environment:
USER_ID: "XXXX"
GROUP_ID: "XXXX"
OPENHAB_HTTP_PORT: "XXXX"
OPENHAB_HTTPS_PORT: "XXXX"
EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Danke für die Antworten.
Ich hab den Container auch im Host Mode aufgesetzt. Eigentlich sollte es damit kein Problem geben, aber es geht irgendwie nicht
Mit nachfolgendem Script starte ich den Container.
Im OpenHAB trace hab ich folgenden Fehler gefunden:
Auf der OH Community Seite habe ich folgende Erklärung gefunden:
https://community.openhab.org/t/homemat ... iled/73375
Die Erklärung für diesen Fehler passt zu meiner Annahme. Allerdings scheint dieses Problem eigentlich nicht im Docker Host-Mode auftreten zu sollen.
Leider kann ich den erforderlichen Parameter noch nicht testen, da die Option "bindAddress" nicht in der OH Version 2.4 verfügbar ist
Ich hab den Container auch im Host Mode aufgesetzt. Eigentlich sollte es damit kein Problem geben, aber es geht irgendwie nicht
Mit nachfolgendem Script starte ich den Container.
Code: Alles auswählen
#!/bin/sh
DIR_CONF=$(readlink -f ./conf)
DIR_USERDATA=$(readlink -f ./userdata)
DIR_ADDONS=$(readlink -f ./addons)
OH_VERSION='2.4.0'
OH_NAME='openhab_240'
if [ -z $DIR_CONF ]; then
echo "Config directory does not exist!"
exit 1
fi
if [ -z $DIR_USERDATA ]; then
echo "Userdata directory does not exist!"
exit 1
fi
if [ -z $DIR_ADDONS ]; then
echo "Addons directory does not exist!"
exit 1
fi
echo "Conf directory: $DIR_CONF"
echo "Userdata directory: $DIR_USERDATA"
echo "Addons directory: $DIR_ADDONS"
echo "Version: $OH_VERSION"
echo "Name: $OH_NAME"
docker rm $OH_NAME
docker run -it \
--name $OH_NAME \
--net=host \
-v $DIR_ADDONS:/openhab/addons \
-v $DIR_CONF:/openhab/conf \
-v $DIR_USERDATA:/openhab/userdata \
-e "EXTRA_JAVA_OPTS=-Duser.timezone=Europe/Berlin" \
-d \
--device=/dev/ttyACM0:/dev/ttyACM0 \
--restart=always \
-e USER_ID=xx \
-e GROUP_ID=xxx \
-e OPENHAB_HTTP_PORT=8190 \
-e OPENHAB_HTTPS_PORT=8191 \
-p 9125:9125 \
-p 9126:9126 \
-p 43439:43439 \
-p 8190:8190 \
-p 8191:8191 \
openhab/openhab:$OH_VERSION
docker exec $OH_NAME chmod a+rw /dev/ttyACM0
Code: Alles auswählen
11:40:54.839 [DEBUG] [communicator.AbstractHomematicGateway] - Used Homematic transfer modes: RF:XML_RPC, HMIP:XML_RPC, GROUP:XML_RPC
11:40:54.858 [DEBUG] [rnal.communicator.server.XmlRpcServer] - Initializing XML-RPC server at port 9125
11:40:54.883 [DEBUG] [ematic.handler.HomematicBridgeHandler] - Homematic bridge was set to OFFLINE-COMMUNICATION_ERROR due to the following exception: Jetty start failed
java.io.IOException: Jetty start failed
at org.eclipse.smarthome.binding.homematic.internal.communicator.server.XmlRpcServer.start(XmlRpcServer.java:93) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.AbstractHomematicGateway.startServers(AbstractHomematicGateway.java:254) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.AbstractHomematicGateway.initialize(AbstractHomematicGateway.java:192) ~[?:?]
at org.eclipse.smarthome.binding.homematic.handler.HomematicBridgeHandler.initializeInternal(HomematicBridgeHandler.java:108) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method) ~[?:?]
at sun.nio.ch.Net.bind(Net.java:433) ~[?:?]
at sun.nio.ch.Net.bind(Net.java:425) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[?:?]
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[?:?]
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:331) ~[?:?]
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:299) ~[?:?]
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) ~[?:?]
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235) ~[?:?]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[?:?]
at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) ~[?:?]
at org.eclipse.smarthome.binding.homematic.internal.communicator.server.XmlRpcServer.start(XmlRpcServer.java:88) ~[?:?]
... 10 more
https://community.openhab.org/t/homemat ... iled/73375
Die Erklärung für diesen Fehler passt zu meiner Annahme. Allerdings scheint dieses Problem eigentlich nicht im Docker Host-Mode auftreten zu sollen.
Leider kann ich den erforderlichen Parameter noch nicht testen, da die Option "bindAddress" nicht in der OH Version 2.4 verfügbar ist
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Wie sehen denn deine Firewalleinstellungen in der piVCCU3 aus?
Versuche es einfach mal so , nachdem du die Firewall Einstellungen gecheckt hast
piVCCU habe ich per Autodiscovery eingebunden .... es läuft alles
Versuche es einfach mal so , nachdem du die Firewall Einstellungen gecheckt hast
Code: Alles auswählen
#!/bin/sh
DIR_CONF=$(readlink -f ./conf)
DIR_USERDATA=$(readlink -f ./userdata)
DIR_ADDONS=$(readlink -f ./addons)
OH_VERSION='2.4.0'
OH_NAME='openhab_240'
if [ -z $DIR_CONF ]; then
echo "Config directory does not exist!"
exit 1
fi
if [ -z $DIR_USERDATA ]; then
echo "Userdata directory does not exist!"
exit 1
fi
if [ -z $DIR_ADDONS ]; then
echo "Addons directory does not exist!"
exit 1
fi
echo "Conf directory: $DIR_CONF"
echo "Userdata directory: $DIR_USERDATA"
echo "Addons directory: $DIR_ADDONS"
echo "Version: $OH_VERSION"
echo "Name: $OH_NAME"
docker rm $OH_NAME
docker run -it \
--name $OH_NAME \
--net=host \
-v $DIR_ADDONS:/openhab/addons \
-v $DIR_CONF:/openhab/conf \
-v $DIR_USERDATA:/openhab/userdata \
-e "EXTRA_JAVA_OPTS=-Duser.timezone=Europe/Berlin -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0" \
-d \
--device=/dev/ttyACM0:/dev/ttyACM0 \
--restart=always \
-e USER_ID=xx \
-e GROUP_ID=xxx \
-e OPENHAB_HTTP_PORT=8190 \
-e OPENHAB_HTTPS_PORT=8191 \
openhab/openhab:$OH_VERSION
docker exec $OH_NAME chmod a+rw /dev/ttyACM0
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Die FW Einstellung sind komplett offen - da sollte nichts geblockt werden.
Auch hab ich die Authentifizierung in den Einstellungen ausgeschaltet.
Re: pivCCU3 <> OpenHAB 2.4 in Docker Container
Hab den Fehler gefunden
Ich hatte einen Typo in der callbackHost IP
Ich hatte einen Typo in der callbackHost IP