[gelöst] HMCCU - Raspberrymatic: Start of RPC server failed

Begonnen von rabehd, 22 Januar 2025, 18:46:10

Vorheriges Thema - Nächstes Thema

rabehd

Irgendwas übersehe ich  >:(

Ich habe mir ein Testsystem aufgebaut, um demnächst in Docker-Container zu wechseln.
FHEM läuft im Container, Raspberrymatic ebenso, Homematic-Geräte lassen sich in Raspberrymatic anlernen und schalten.
Nun möchte ich die Homematic-Geräte auch in FHEM sehen und schalten.
Die Anleitungen im Wiki führen nicht zum Erfolg, bzw. verstehe ich nicht. Oder ich lese nicht richtig.
Zumindest erhalte ich die Meldung "Start of RPC server failed".
Das Wiki schreibt
ZitatNach dem Neustart der CCU muss auch der RPC-Server neu gestartet werden, da die CCU2 bei einem Neustart die registrierten RPC-Server "vergisst".
Wo finde ich den in der CCU-Oberfläche?
Was habe ich bei der Deviceerstellung falsch gemacht, oder muss der Container anders konfiguriert werden?


defmod vccu HMCCU 192.168.31.62
attr vccu ccuflags procrpc
attr vccu cmdIcon on:general_an off:general_aus
attr vccu room Homematic
attr vccu rpcinterfaces BidCos-RF,VirtualDevices
attr vccu rpcserver on
attr vccu stateFormat rpcstate/state

setstate vccu 2025-01-22 18:37:54 PLATFORM oci
setstate vccu 2025-01-22 18:37:54 PRODUCT raspmatic_oci_arm64
setstate vccu 2025-01-22 18:37:54 VERSION 3.79.6.20250118
setstate vccu 2025-01-22 18:37:54 count_channels 118
setstate vccu 2025-01-22 18:37:54 count_devices 5
setstate vccu 2025-01-22 18:37:54 count_groups 0
setstate vccu 2025-01-22 18:37:54 count_interfaces 3
setstate vccu 2025-01-22 18:37:54 count_programs 0
setstate vccu 2025-01-22 18:43:18 rpcstate inactive
setstate vccu 2025-01-22 18:43:18 state Initialized
Auch funktionierende Lösungen kann man hinterfragen.

passibe

#1
FHEM-Logeinträge bei versuchtem Start des RPC-Servers? Eventuell bitte auch mal verbose hochstellen.
Hast du den jeweiligen Port (ich glaube 7002? weiß nicht mehr genau) für den Container gemappt? EDIT: Überlesen, dass die ccu auch im Container läuft.
Ggfs. Firewalleinstellungen auf der CCU angepasst?

Zitat von: rabehd am 22 Januar 2025, 18:46:10Wo finde ich den in der CCU-Oberfläche?
Der RPC-Server läuft "innerhalb" von FHEM. Das ist nichts, was auf der CCU läuft. Du musst den nur innerhalb von FHEM neustarten, nachdem du die CCU neu gestartet hast. Das ist also genau das, was du gerade versuchst (deshalb sagt FHEM ja auch "Start of RPC server failed").

Otto123

Zitat von: rabehd am 22 Januar 2025, 18:46:10FHEM läuft im Container, Raspberrymatic ebenso, Homematic-Geräte lassen sich in Raspberrymatic anlernen und schalten.
Alle im gleichen (docker) Netzwerk? Dann braucht man nicht unbedingt Ports mappen
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

zap

Die RPC Server können über das IO Device gestartet werden. Ist in der Commandref und auch im Wiki beschrieben.

Beim Einsatz von Docker Containern liegt es meist am IP Adressmapping. In dem Fall muss das Attribut rpcserveraddr auf die korrekte IP Adresse gesetzt werden. Eine Suche nach dem Attribut hier im Forum zusammen mit Docker sollte einige Treffer liefern
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

passibe

Aber Moment mal, wenn die CCU auf dem gleichen Host (ist das so?) im Container läuft, dann ist diese IP mindestens unnötig, weil sie raus ins LAN geht:
Zitat von: rabehd am 22 Januar 2025, 18:46:10defmod vccu HMCCU 192.168.31.62

Wie kommst du auf diese IP? Ist das Docker-Netzwerk, in dem die CCU ist, ein Macvlan-Netzwerk? Dann wird das sowieso nicht funktionieren, weil du auf die IP vom Host aus schon nicht zugreifen kannst, siehe: https://forum.fhem.de/index.php?topic=137599.msg1308023#msg1308023

rabehd

Es ist wohl eine Frage der/des Netzwerke/s. Lösung habe ich noch nicht.

FHEM läuft in einem eignen Docker-Netzwerk (172.31.31.60). Ich greife aus meinem Netzwerk per Portfreigabe zu.

RapberryMatic hat eine Macvlan-Adresse aus meinem Netz (172.31.31.62). Ich kann aus meinem Netz also direkt zugreifen.

Außerdem läuft noch deconz in einem eigenen Contailner mit 172.31.30.30. Die Kommunikation von fhem aus dem anderen Container ist kein Problem.

Was wäre nun einzutragen, zu ändern?
FHEM mit Macvlan-Adresse? Portweiterleitungen?

2025.01.22 18:46:19.865 2: HMCCU [vccu] RPC server start: 0 started, 0 already running, 0 failed to start
2025.01.22 18:46:19.865 1: HMCCU [vccu] HMCCU: vccu Start of RPC server failed
2025.01.22 18:46:46.728 1: HMCCU [vccu] Delayed I/O device initialization
2025.01.22 18:46:50.734 2: HMCCU [vccu] HMScript failed. http://192.168.31.62:8181/tclrega.exe: Select timeout/error:
2025.01.22 18:46:50.734 1: HMCCU [vccu] No RPC interfaces found on CCU 192.168.31.62
Auch funktionierende Lösungen kann man hinterfragen.

passibe

Wie gesagt:

Zitat von: passibe am 22 Januar 2025, 21:18:47Ist das Docker-Netzwerk, in dem die CCU ist, ein Macvlan-Netzwerk? Dann wird das sowieso nicht funktionieren, weil du auf die IP vom Host aus schon nicht zugreifen kannst, siehe: https://forum.fhem.de/index.php?topic=137599.msg1308023#msg1308023

Macvlan ist das Problem. (Wenn alles auf demselben Computer läuft.)

rabehd

#7
Das war wohl der entscheidende Tipp, allen anderen Danke, ich denke die Summe hat mir geholfen.
Zitat von: zap am 22 Januar 2025, 21:13:15Die RPC Server können über das IO Device gestartet werden. Ist in der Commandref und auch im Wiki beschrieben.

Beim Einsatz von Docker Containern liegt es meist am IP Adressmapping. In dem Fall muss das Attribut rpcserveraddr auf die korrekte IP Adresse gesetzt werden. Eine Suche nach dem Attribut hier im Forum zusammen mit Docker sollte einige Treffer liefern
Ich habe also so zielgerichteter gelesen.
attr vccu rpcserveraddr 192.168.31.60 und "set vccu on" führt zu
2025.01.23 09:45:37.855 2: HMCCU [vccu] RPC device for interface VirtualDevices: d_rpc031062VirtualDevices
2025.01.23 09:45:37.855 2: HMCCU [vccu] RPC device for interface BidCos-RF: d_rpc031062BidCos_RF
2025.01.23 09:45:37.859 2: HMCCURPCPROC [d_rpc031062VirtualDevices] RPC server process started for interface VirtualDevices with PID=6344
2025.01.23 09:45:37.866 2: HMCCURPCPROC [d_rpc031062VirtualDevices] Initializing RPC server CB9292031060031062 for interface VirtualDevices
2025.01.23 09:45:37.882 1: HMCCURPCPROC [d_rpc031062VirtualDevices] RPC server starting
2025.01.23 09:45:37.890 2: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server process started for interface BidCos-RF with PID=6345
2025.01.23 09:45:37.900 2: HMCCURPCPROC [d_rpc031062BidCos_RF] Initializing RPC server CB2001031060031062 for interface BidCos-RF
2025.01.23 09:45:37.902 1: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server starting
2025.01.23 09:45:37.904 2: HMCCU [vccu] RPC server start: 2 started, 0 already running, 0 failed to start
2025.01.23 09:45:37.907 2: HMCCURPCPROC [d_rpc031062VirtualDevices] Callback server CB9292031060031062 created. Listening on port 14702
2025.01.23 09:45:37.909 2: HMCCURPCPROC [d_rpc031062VirtualDevices] CB9292031060031062 accepting connections. PID=6344
2025.01.23 09:45:37.911 2: HMCCURPCPROC [d_rpc031062VirtualDevices] RPC server CB9292031060031062 enters server loop
2025.01.23 09:45:37.913 2: HMCCURPCPROC [d_rpc031062VirtualDevices] Registering callback http://192.168.31.60:14702/fh9292 of type A with ID CB9292031060031062 at http://192.168.31.62:9292/groups
2025.01.23 09:45:37.926 1: HMCCURPCPROC [d_rpc031062BidCos_RF] Can't create RPC callback server CB2001031060031062. Port 7411 in use?
2025.01.23 09:45:37.926 1: HMCCURPCPROC [d_rpc031062BidCos_RF] Can't initialize RPC server CB2001031060031062 for interface BidCos-RF
Nach den ich den Port 7411 als rpcserverport eingetragen und erhalte nach "set vccu on" running/OK, sowie 2 HMCCURPCPROC-Device.
Damit bin ich scheinbar weiter und kann mich mit der nächsten Frage beschäftigen.
2025.01.23 09:46:37.098 2: HMCCU [vccu] RPC device for interface BidCos-RF: d_rpc031062BidCos_RF
2025.01.23 09:46:37.098 2: HMCCU [vccu] RPC device for interface VirtualDevices: d_rpc031062VirtualDevices
2025.01.23 09:46:37.103 2: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server process started for interface BidCos-RF with PID=6413
2025.01.23 09:46:37.110 2: HMCCURPCPROC [d_rpc031062BidCos_RF] Initializing RPC server CB2001031060031062 for interface BidCos-RF
2025.01.23 09:46:37.128 1: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server starting
2025.01.23 09:46:37.130 2: HMCCU [vccu] RPC server start: 1 started, 1 already running, 0 failed to start
2025.01.23 09:46:37.141 2: HMCCURPCPROC [d_rpc031062BidCos_RF] Callback server CB2001031060031062 created. Listening on port 9422
2025.01.23 09:46:37.141 2: HMCCURPCPROC [d_rpc031062BidCos_RF] CB2001031060031062 accepting connections. PID=6413
2025.01.23 09:46:37.142 2: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server CB2001031060031062 enters server loop
2025.01.23 09:46:37.144 2: HMCCURPCPROC [d_rpc031062BidCos_RF] Registering callback http://192.168.31.60:9422/fh2001 of type A with ID CB2001031060031062 at http://192.168.31.62:2001
2025.01.23 09:46:37.152 1: HMCCURPCPROC [d_rpc031062BidCos_RF] RPC server CB2001031060031062 running
2025.01.23 09:46:37.153 1: HMCCU [vccu] All RPC servers running
2025.01.23 09:46:37.154 2: HMCCU [vccu] Found no devices to update
2025.01.23 09:46:37.156 1: HMCCURPCPROC [d_rpc031062BidCos_RF] Scheduled CCU ping every 300 seconds
Auch funktionierende Lösungen kann man hinterfragen.

rabehd

Ergänzung:
Wenn man beim Neustart des RaspberryMatic-Container den Container härtet, dann klappt es auch nicht mehr.  8)
Auch funktionierende Lösungen kann man hinterfragen.

Otto123

Da spielen jede Menge Ports mit, nicht alle sind mMn gut dokumentiert ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz