HMCCU Rpcserver startet nicht Docker

Begonnen von wuast94, 18 November 2017, 21:09:38

Vorheriges Thema - Nächstes Thema

wuast94

Ich ziehe gerade mein Fhem auf eine Docker umgebung um. als ich dann endlich alles eingerichtet habe und angefangen habe die ersten geräte anzulegen bin ich bei meiner CCU2 auf das problem gestoßen das der Rpc Server nicht startet.

Er bleibt auf
rpcstate     starting
state         busy
stehen

Das gerät:
define d_ccu HMCCU 192.168.178.44
attr d_ccu ccureadingformat name
attr d_ccu ccureadings 0
attr d_ccu devStateIcon (OK|Initialized):10px-kreis-gruen Error:10px-kreis-rot
attr d_ccu event-on-change-reading .*
attr d_ccu icon rc_HOME
attr d_ccu room Homematic
attr d_ccu rpcinterval 5
attr d_ccu rpcport 2001
attr d_ccu rpcserver on
attr d_ccu stripchar :
attr d_ccu stripnumber 1
attr d_ccu verbose 2


Fhem Log:
2017.11.18 20:58:19 2: HMCCU: Create child process with timeouts 0.01 and 0.25
2017.11.18 20:58:19 0: HMCCU: Child process for server CB2001 started with PID 37
2017.11.18 20:58:19 0: CCURPC: CB2001 Creating file queue /tmp/ccuqueue_2001
2017.11.18 20:58:19 0: CCURPC: Initializing RPC server CB2001
2017.11.18 20:58:19 0: RPC server(s) starting
2017.11.18 20:58:19 0: CCURPC: Callback server created listening on port 7401
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for events
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for new devices
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for deleted devices
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for modified devices
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for replaced devices
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for readded devices
2017.11.18 20:58:19 1: CCURPC: CB2001 Adding callback for list devices
2017.11.18 20:58:19 0: CCURPC: CB2001 Entering server loop
2017.11.18 20:58:24 0: HMCCU: Received SL event. RPC server CB2001 enters server loop
2017.11.18 20:58:31 1: HMCCU: Registering callback http://172.18.0.3:7401/fh2001 with ID CB2001 at http://192.168.178.44:2001/
2017.11.18 21:00:37 1: HMCCU: RPC callback with URL http://172.18.0.3:7401/fh2001 initialized
2017.11.18 21:03:28 2: HMCCU: Received no events from CCU since 300 seconds


Habe im Docker die Ports freigegben (inklusier aller IP´s die so beim rumprobieren auftauchten 7410 7401 2001 2010 14692 9292)
Auch die Firewall einstellungen in der CCU2 Habe ich auf Vollzugriff gestellt.

Habe auch versucht mit dem ccuflag extrpc aber da habe ich dann andere fehler bekommen.

Bin für jede Hilfe dankbar :) hoffe die Informationen reichen fürs erste kann aber auch gerne mehr Nachreichen :)
Zigbee  Temp+Luftdruck+Humi Bewegungsmeldern Tür Kontakte, Klingel, TV, Denon, Schaltbare Steckdosen mit leistungsmessung, und weiteres

Homeassistant mit Nodered

zap

#1
Scheint so, als würde FHEM zwar die CCU erreichen, aber nicht umgekehrt. Kannst du denn von der CCU aus die Adresse 172.18.0.3 anpingen? Die CCU steht ja in einem anderen Netz (192.168).

Führe mal nach dem Start des RPC Servers im Container folgendes aus:

netstat -an | grep 7401
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

xcr

Hi wuast94,

wie zap schon schrieb liegt das daran, dass du aus FHEM heraus zwar deine CCU (in dienem lokalen Netzwerk) erreichst, beim Registrieren aber die interne IP vom Docker-Container IP angegeben wird, die die CCU von "außen" nicht erreicht.

Meine FHEM-Server hat die IP 192.168.1.200 und meine CCU hat die IP 192.168.1.201 (beide immer fix).
Ich hing genau vor einer Woche auch an der Stelle und habe es wie folgt gelöst:

Als RPC-Server nutze ich den externen RPC-Server, da er einfach schneller reagiert. Über den Parameter 'rpcServerAddr' kann man dem Modul mitteilen welche IP es bei der CCU als Callback registrieren soll. Meine Definition des RPC-Servers sieht also so aus:
define HMCCU_rpc HMCCURPC 192.168.1.201
attr HMCCU_rpc room [System]
attr HMCCU_rpc rpcServerAddr 192.168.1.200
attr HMCCU_rpc stateFormat rpcstate/state
attr HMCCU_rpc verbose 2

(das verbose brauchst du vermutlich eher nicht, wenn es läuft  ;))

Ich starte meine Dockercontainer über docker-compose und hier musste ich jetzt "nur" noch die Ports weiterleiten:
fhem:
        container_name: FHEM
            ...
        expose:
            ...
            # Port for RPC callback from CCU
            - "7411"
        ports:
            ...
            - "7411:7411"


Damit wendet sich beim Callback die CCU an den Server auf dem Docker läuft (Standardport 7411), der leitet das in den entsprechenden Container in dem FHEM läuft und FHEM kann die Daten verarbeiten.

MfG Marcus

mrfloppy

Zitatattr HMCCU_rpc rpcServerAddr 192.168.1.200

Genau dieser Eintrag war auch bei mir das Problem an dem ich nen Tag gesessen bin. (Natürlich mit meiner IP von FHEM)
Die Adresse angegeben und auf einmal flutscht es.

LG Thomas

RaspiMatic, RFXtrx433 E USB, Div. Thermostate, CUL433, Fhemduino, Signalduino, Temp/luftfeuchesensoren,Fensterkontakte,Intertechno Schalter,....... HM-IP

Loredo

... und wer Homematic IP benutzt braucht auch:


      - "7420:7420"



Die EXPOSE Werte sind übrigens nicht unbedingt notwendig, denn sie haben mit dem Netzwerk Zugriff nichts zu tun. Sie sind nur wichtig, wenn man damit etwas beim Thema Service Discovery anfängt, was die meisten wohl eher nicht tun ;)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER