FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: maddhin am 23 November 2022, 14:46:30

Titel: HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 14:46:30
Hi,

ich weiß nicht, ob das eine Rolle spielt, aber ich habe FHEM und RaspberryMatic in 2 Containern auf einem RPI4 laufen.

Mein Problem:
Ich habe mehrere Homematic-IP Thermostate, die alle in FHEM sind und sobald ich den RPC-Server starte, werden alle Readings aktualisiert. Auch funktioniert die Steuerung der Thermostate aus FHEM heraus problemlos, d.h. ich kann die Temp erhöhen, etc pp.

Was aber nicht funktioniert ist, dass die Readings aktualisiert werden. D.h. wenn ich manuell am Thermostat die Temp ändere oder sich die Temperatur ändert, wird dies in FHEM nicht angezeigt...

Ich verstehe nichts von der Kommunikation zw. RPC-Server und RaspberryMatic, aber irgendwas stimmt da icht. Hat jemand eine Idee?

Im Log von RaspberryMatic steht Folgendes:

2022-11-23 14:30:59,136 io.vertx.core.impl.ContextImpl ERROR [vert.x-worker-thread-10] Unhandled exception
de.eq3.cbcs.legacy.communication.rpc.RpcIOException: java.net.ConnectException: Connection refused (Connection refused)
at de.eq3.cbcs.legacy.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:110) ~[HMIPServer.jar:?]
at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.sendRequest(RpcClient.java:94) ~[HMIPServer.jar:?]
at de.eq3.cbcs.legacy.communication.rpc.internal.rpc.RpcClient.invoke(RpcClient.java:82) ~[HMIPServer.jar:?]
at com.sun.proxy.$Proxy40.event(Unknown Source) ~[?:?]
at de.eq3.ccu.virtualdevice.service.internal.rega.vertx.RegaClientWorker.handleEvent(RegaClientWorker.java:73) ~[HMIPServer.jar:?]
at de.eq3.ccu.virtualdevice.service.internal.rega.vertx.RegaClientWorker.access$000(RegaClientWorker.java:13) ~[HMIPServer.jar:?]
at de.eq3.ccu.virtualdevice.service.internal.rega.vertx.RegaClientWorker$1.handle(RegaClientWorker.java:35) ~[HMIPServer.jar:?]
at de.eq3.ccu.virtualdevice.service.internal.rega.vertx.RegaClientWorker$1.handle(RegaClientWorker.java:26) ~[HMIPServer.jar:?]
at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100) ~[HMIPServer.jar:?]
at io.vertx.core.impl.WorkerContext.lambda$emit$0(WorkerContext.java:59) ~[HMIPServer.jar:?]
at io.vertx.core.impl.WorkerContext.lambda$execute$2(WorkerContext.java:104) ~[HMIPServer.jar:?]
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) ~[HMIPServer.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_342]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_342]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[HMIPServer.jar:?]
at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_342]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_342]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[?:1.8.0_342]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_342]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_342]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_342]
at java.net.Socket.connect(Socket.java:613) ~[?:1.8.0_342]
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120) ~[HMIPServer.jar:?]
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179) ~[HMIPServer.jar:?]
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[HMIPServer.jar:?]
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[HMIPServer.jar:?]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) ~[HMIPServer.jar:?]
at de.eq3.cbcs.legacy.communication.rpc.internal.transport.http.HttpTransport.sendRequest(HttpTransport.java:106) ~[HMIPServer.jar:?]
... 15 more



Hilft das weiter?
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 15:07:36
Zitat von: maddhin am 23 November 2022, 14:46:30
aber ich habe FHEM und RaspberryMatic in 2 Containern auf einem RPI4 laufen.
Beide Container im gleichen Docker Netzwerk?
Hintergrund meiner Frage: Es braucht mehrere Ports für die Kommunikation, die Firewall der RaspberryMatic muss offen sein usw.

Gruß Otto
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 15:20:05
Ja, beide Container sind im gleichen Docker-Netzwerk und unter rpcServerAddr habe ich den (Docker-)Hostnamen (homematic-raspi) eingetragen. Die richtige Docker-IP wird auch unter ip, etc. angezeigt.

In RaspberryMatic sind Ports offen, 2x Homematic-API-Vollzugriff und unter IP-Adressen mit eingeschränktem Zugriff:

192.168.0.1;
192.168.0.0/16;
fc00::/7;
fe80::/10


Es wundert mich, dass eigentlich alles funktioniert, nur die Werte dann nicht mehr aktualisiert werden. Irgendwo fehlt hier noch ein Häckchen... :)
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 17:08:26
typischerweise haben die container im docker 172.er Adressen  ???
Beide Container laufen im Hostmodus?

Aber vielleicht geht meine Idee in die falsche Richtung ...
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 17:57:03
mit der 172er IP-Adresse habe ich es auch probiert, hat aber am Verhalten nichts geändert. Der Hostname ist mir lieber, falls sich die Docker-IPs mal ändern.

Hostmodus sagt mir leider nichts  :-[ Ich habe etwas darüber gegooglet, aber da FHEM und RaspberryMatic über die LAN IP erreichbar sind, sollte das eigentlich richtig konfiguriert sein, oder?

Theoretisch muss das Problem da sein, wo sich der RPC-Server zum 2. Mal die Daten von RaspberryMatic holen will. Das funkt ja nicht. Der initiale Abruf und die Kommunikation zu RaspberryMatic geht ja problemlos. Vielleicht sind das aber andere Kommunkationswege und die Verbindung mit dem RPC-Server geht bei mir grundsätzlich nicht. Da bin ich überfragt.
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: zap am 23 November 2022, 18:04:04
Normalerweise rpcServerAddr auf die IP-Adresse des Docker Containers setzen, in dem FHEM läuft. Hostnamen werden vermutlich nicht unterstützt.
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 18:04:32
Zitat von: maddhin am 23 November 2022, 17:57:03
aber da FHEM und RaspberryMatic über die LAN IP erreichbar sind, sollte das eigentlich richtig konfiguriert sein, oder?
Nein, da liegst Du falsch.
Wie sieht Deine docker Definition aus? Dort definierst Du normal port mappings!
Innerhalb vom docker Netzwerk sind alle Ports erreichbar, von außen (vom Host) nur die gemappten!

Das Thema mit den Ports hatten wir schon mal
https://forum.fhem.de/index.php/topic,129310.msg1236166.html#msg1236166
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 19:11:59
Aus der Docker Compose von Fhem:

version: '3.8'

services:
    ##FHEM
    fhem:
        #image: fhem/fhem:latest
        #image: ghcr.io/fhem/fhem-experimental:dev
        image: ghcr.io/fhem/fhem/fhem-docker:bullseye
        container_name: fhem
        privileged: true
        restart: unless-stopped
        ports:
            - "8083:8083"
            - "7072:7072"
            - "3002:3002"
        volumes:
            - ./fhem/core/:/opt/fhem/
        networks:
            - fhem-network
        #devices:
        #    - "/dev/ttyUSB0:/dev/ttyUSB0"
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
            APT_PKGS: "python3 python3-pip python3-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev git libprotocol-websocket-perl libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl librpc-xml-perl"
            NPM_PKGS: "alexa-fhem alexa-cookie2"
            CPAN_PKGS: "Net::MQTT::Constants Net::MQTT::Simple"
            #PIP_PKGS: "fhempy"
        depends_on:
            - "mariadb"
            - "mqtt"

networks:
    fhem-network:
        driver: bridge



Docker-Compose für RasberryMatic:

version: '3.8'

services:
    ## GENERAL

    raspberrymatic:
         image: ghcr.io/jens-maus/raspberrymatic:latest
         container_name: ccu
         #Achtung der Hostname ist als Ziel IP in FHEM eingetragen
         hostname: homematic-raspi
         privileged: true
         restart: unless-stopped
         stop_grace_period: 30s
         volumes:
             - ./ccu_data:/usr/local:rw
             - /lib/modules:/lib/modules:ro
             - /run/udev/control:/run/udev/control
         ports:
             - "8086:80"
             - "2001:2001"
             - "2010:2010"
             - "9292:9292"
             - "8181:8181"

#RaspeberryMatic zu FHEM-Netzwerk hinzufügen um erreichbar zu sein
networks:
  default:
    name: fhem-docker_fhem-network
    external: true



Ich habe jetz auch noch

      - 7411:7411 # rpc for hmccu only hm
      - 7420:7420 # rpc for hmccu hm-ip

in FHEM Docker Compose freigegeben, das macht aber leider auch keinen Unterschied.

Könnte ich in irgendeinem Log ein Indiz finden, wo das Problem sein könnte?
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 19:21:24
die beiden Netzwerk Abschnitte sind mir zu kompliziert - ich behaupte: damit sind beide nicht im gleichen Netzwerk:
Zitatnetworks:
    fhem-network:
        driver: bridge
Zitat#RaspeberryMatic zu FHEM-Netzwerk hinzufügen um erreichbar zu sein
networks:
  default:
    name: fhem-docker_fhem-network
    external: true
Die würde ich beide streichen ;)
Mal meine als Beispiel https://github.com/heinz-otto/raspberry/tree/master/Docker
pivccu.yml und fhem.yml
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 21:17:46
beide gestrichen und jetzt habe ich definitiv 2 Netzwerke. Eines mit 172.20.0.X und eines mit 172.21.0.x. - wohl weil ich ccu und fhem in unterschiedlichen Ordnern auf der HDD habe.

D.h. ich muss ein Netzwerk definieren.

Ich könnte es jetzt nochmal mit "network_mode: host" bei allen Containern probieren. Aber ist das Problem wirklich das Netzwerk? Die Kommunikation zw. FHEM und CCU funktioniert per se ja.
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 21:23:03
nö - weil Du zwei compose Dateien hast. Warum betreibst Du das nicht in einer?
Das ist doch gerade der Vorteil von docker compose: Das zusammengehörige Netzwerk, die zusammengehörigen Container in einer config!?
Das mit dem Host mode ist unnötig.

BTW: man kann auch einzelne compose Dateien zusammenstarten:
docker-compose -f deconz.yml -f sonos.yml -f fhem.yml -f pivccu.yml up

Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 23 November 2022, 23:17:45
jain, ich wollte FHEM und z.B. Backup, Portainer, phpmyadmin, etc. eigentlich als separate Pakete. Wahrscheinlich ne philosophische Frage...

Habe jetzt das nach Deiner Art umgestellt, aber da tut sich nichts. Im Gegenteil, jetzt werden die devices nicht mal mehr beim Starten des RCP-Servers aktualisiert.

Ein
HMCCU [d_ccu] Error during CCU request. read from http://172.20.0.4:8181 timed out
ist mal aufgetaucht. Vielleicht ein Indiz, aber der RPC-Server meckert sonst nicht und alles fährt ohne Fehlermeldung hoch.

Werde weitersuchen...
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 23 November 2022, 23:53:03
Sorry ich will nicht alles durcheinander wirbeln.
Aber nochmal zum Verständnis: innerhalb des docker Netzwerkes sind die Maschinen auf allen Ports erreichbar. Von außerhalb, also über das Hostnetzwerk musst Du jedes Port definieren. Der Host hat natürlich jedes Port nur einmal, d.h. mehrere Container können das gleiche Port intern verwenden, mappen zum gleichen Hostport kann es nur einer!
Du sagst immer Netzwerk geht ja: Das mag für einen Port stimmen, muss aber nicht für alle notwendigen gelten.
Namensauflösung innerhalb des docker Netzwerkes ist auch noch mal eine andere Geschichte.
Also arbeite erstmal mit IP Adressen. Und führe Kommunikation von Container zu Container nicht unnötig außen herum.
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Wernieman am 24 November 2022, 10:55:43
Du kannst übrigens die IPs der Container per docker-compose.yml auch festlegen.

Am besten ist immer, wenn man ein "Projekt" in "einer" docker-compose.yml packt. Insofern hat Otto definitiv Recht.

Namensauflösung bei verschiedenen docker-compose.yml ist ein seeeehr schwieriges Thema. Würde ich deshalb nicht machen.

Kannst Du uns ml Deine Zusammengefasste yml geben?

Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 24 November 2022, 12:46:24
Hallo, ich habe jetzt mal alles in eine docker-compose.yml gepackt und jeglichen Netzwerkskram rausgenommen (hatte ich davor auch schon, aber jetzt ist ccu explizit in der gleichen .yml):

version: '3.8'

services:
    ##FHEM
    fhem:
        #image: fhem/fhem:latest
        #image: ghcr.io/fhem/fhem-experimental:dev
        image: ghcr.io/fhem/fhem/fhem-docker:bullseye
        container_name: fhem
        hostname: fhem
        privileged: true
        restart: unless-stopped
        ports:
            - "8083:8083" # fhem-web
            - "3002:3002" # echo devices
            - "7072:7072" # fhem-telnet
            - "7411:7411" # rpc for hmccu only hm
            - "7420:7420" # rpc for hmccu hm-ip
        volumes:
            - ./fhem/core/:/opt/fhem/
        #networks:
        #    - fhem-network
        #devices:
        #    - "/dev/ttyUSB0:/dev/ttyUSB0"
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
            APT_PKGS: "python3 python3-pip python3-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev git libprotocol-websocket-perl libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl librpc-xml-perl"
            NPM_PKGS: "alexa-fhem alexa-cookie2"
            CPAN_PKGS: "Net::MQTT::Constants Net::MQTT::Simple"
            #PIP_PKGS: "fhempy"
        depends_on:
            - "mariadb"
            - "mqtt"

   
    ##fhempy
    fhempy:
        #image: ghcr.io/fhem/fhempy-docker:latest
        image: ghcr.io/fhem/fhempy-docker:releases-1.3-beta
        container_name: fhempy
        hostname: fhempy
        restart: unless-stopped
        ports:
            - "15733:15733"
        #networks:
        #    - fhem-network
        depends_on:
            - "fhem"


    #habridge:
    #    restart: always
    #    image: habridge/ha-bridge-raspberrypi3
    #    volumes:
    #        - ./habridge/data/:/ha-bridge/data
    #        - /etc/localtime:/etc/localtime:ro
    #        - /etc/timezone:/etc/timezone:ro
    #    network_mode: host


    homebridge:
        restart: unless-stopped
        container_name: homebridge
        hostname: homebridge
        #image: oznu/homebridge:raspberry-pi
        image: oznu/homebridge:latest
        ports:
            - "8581:8581"
            - "8081:8081"
        volumes:
            - ./homebridge:/homebridge
        security_opt:
            - seccomp:unconfined       
        environment:
            - TZ=Europe/Berlin
            - PGID=1000
            - PUID=1000
            - HOMEBRIDGE_CONFIG_UI=1
            - HOMEBRIDGE_CONFIG_UI_PORT=8081
        #network_mode: host
        logging:
            driver: json-file
            options:
                max-size: "10mb"
                max-file: "2"
        depends_on:
            - "fhem"


    mariadb:
        #image: hypriot/rpi-mysql
        image: lscr.io/linuxserver/mariadb:latest
        container_name: mariadb
        hostname: mariadb
        restart: unless-stopped
        expose:
            - "3306"
            - "33060"
        ports:
            - "3306:3306"
            - "33060:33060"
        volumes:
            #- ./mysql/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
            #- ./mysql/data:/var/lib/mysql
            - ./mariadb:/config
            - ./init/create_fhem_db_mysql.sql:/docker-entrypoint-initdb.d/init.sql
        environment:
            - TZ=Europe/Berlin
            - PGID=1000
            - PUID=1000
            - MYSQL_ROOT_PASSWORD=XXXXXX
            - MYSQL_DATABASE=fhem
            - MYSQL_USER=fhemuser
            - MYSQL_PASSWORD=XXXXXX
        #networks:
        #    - fhem-network


    mqtt:
        container_name: mqtt
        hostname: mqtt
        restart: unless-stopped
        expose:
            - "1883"
            - "9001"
        ports:
            - "1883:1883"
            - "9001:9001"
        #image: pascaldevink/rpi-mosquitto
        image: eclipse-mosquitto:latest
        #networks:
        #    - fhem-network
        volumes:
            - ./mqtt/config/:/mosquitto/config/
            - ./mqtt/log/:/mosquitto/log/
            - ./mqtt/data/:/mosquitto/data/


    nodered:
        container_name: nodered
        hostname: nodered
        restart: unless-stopped
        expose:
            - "1880"
        ports:
            - "1880:1880"
        #image: elzekool/rpi-nodered
        image: nodered/node-red
        volumes:
            - ./nodered/data/:/root/.node-red/
        #networks:
        #    - fhem-network
        depends_on:
            - "mqtt"


    grafana:
        image: grafana/grafana:latest
        container_name: grafana
        hostname: grafana
        expose:
            - "3000"
        ports:
            - "4000:3000" #port change because of Alexa-Skill port 3000
        restart: unless-stopped
        user: "1000"
        volumes:
            - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
            - ./grafana:/var/lib/grafana
        environment:
            #- GF_PATHS_CONFIG="./grafana/etc/grafana.ini"
            - GF_SECURITY_ADMIN_PASSWORD=XXXXXX
            - GF_AUTH_ANONYMOUS_ENABLED=true
            - GF_AUTH_ANONYMOUS_ORG_NAME=Main Org.
            - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
            - GF_AUTH_ANONYMOUS_HIDE_VERSION=true
            - GF_SECURITY_ALLOW_EMBEDDING=true
        #networks:
        #    - fhem-network

    duplicati:
        image: duplicati/duplicati:latest
        container_name: duplicati
        hostname: duplicati
        restart: unless-stopped
        # Recommendation: Duplicati needs root user to get access to all files
        #user: "ROOTPUID:1000:ROOTPGID:1000"
        #network_mode: bridge
        ports:
            - "8200:8200"
        volumes:
            - ./duplicati:/data:rw
            - /docker/backups:/backups:rw
            - ./:/source:ro
        environment:
            - TZ=Europe/Berlin
        #networks:
        #    - fhem-network

    #alexa-fhem:
    #    #image: fhem/alexa-fhem:latest
    #    image: ghcr.io/fhem/fhem/alexa-fhem:2
    #    restart: unless-stopped
    #    ports:
    #        - "3000:3000"
    #    volumes:
    #        - ./alexa-fhem/:/alexa-fhem/
    #    environment:
    #        - ALEXAFHEM_UID=1000 #6062
    #        - ALEXAFHEM_GID=1000 #6062
    #        - TZ=Europe/Berlin
    #    networks:
    #        - fhem-network
    #    depends_on:
    #        - "fhem"
   
    raspberrymatic:
        image: ghcr.io/jens-maus/raspberrymatic:latest
        container_name: ccu
        hostname: ccu #Achtung der Hostname ist ggf als Ziel IP in FHEM eingetragen
        privileged: true
        restart: unless-stopped
        stop_grace_period: 30s
        volumes:
            - ./ccu_data:/usr/local:rw
            - /lib/modules:/lib/modules:ro
            - /run/udev/control:/run/udev/control
        ports:
            - "8086:80"
            - "2001:2001"
            - "2010:2010"
            - "9292:9292"
            - "8181:8181"
        #networks:
        #    - fhem-docker_fhem-network


#networks:
#    fhem-network:
#        driver: bridge


Stur wie ich bin, bin ich immernoch skeptisch, dass es an einem nicht verfügbaren Port liegt, lasse mich aber sehr sehr gerne eines besseren belehren;)))

Meine Linux-Kenntinisse sind beschränkt, aber ich kann gerne irgendwie testen, welche Ports offen oder nicht sind.

Ich neige jetzt dazu, HMCCU in FHEM nochmal komplett neu aufzusetzen. Vielleicht hat sich irgendwo, irgendwann, irgendwie was verhaspelt. Da ich im Log, etc. keine Fehlermeldungen finde, liegt es vielleicht daran, dass irgendwo ein Attribut oder ähnliches gesetzt wurde, was die Readings nicht schreibt o.ä.

Lieben Dank für Eure Hilfe!
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: zap am 24 November 2022, 12:57:31
Zitat von: maddhin am 23 November 2022, 23:17:45
jain, ich wollte FHEM und z.B. Backup, Portainer, phpmyadmin, etc. eigentlich als separate Pakete. Wahrscheinlich ne philosophische Frage...

Habe jetzt das nach Deiner Art umgestellt, aber da tut sich nichts. Im Gegenteil, jetzt werden die devices nicht mal mehr beim Starten des RCP-Servers aktualisiert.

Ein
HMCCU [d_ccu] Error during CCU request. read from http://172.20.0.4:8181 timed out
ist mal aufgetaucht. Vielleicht ein Indiz, aber der RPC-Server meckert sonst nicht und alles fährt ohne Fehlermeldung hoch.

Werde weitersuchen...

Diese Meldung hat nichts mit RPC zu tun. Hier kann FHEM nicht auf die CCU zugreifen. Ist denn 172.20.0.4 die IP der CCU? Ist auf der CCU die Firewall freigeschaltet?
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 24 November 2022, 13:13:12
Heureka! Ich habe jetzt die ccu in das host Netzwerk (network_mode: host in docker-compose) "gestellt" und die IP des RPI als DEF angegeben und es funktioniert nun! Bei homebridge ist das auch so. Wieso genau, weiß ich nicht, aber es funktioniert nun *glücklich*
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Wernieman am 24 November 2022, 13:30:02
Was wir sagten, Netzwerkproblem

Du solltest Dich mit Netzwerk in Docker nochmals beschäftigen.
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 24 November 2022, 14:17:22
Zitat von: Wernieman am 24 November 2022, 13:30:02
Was wir sagten, Netzwerkproblem

Du solltest Dich mit Netzwerk in Docker nochmals beschäftigen.

Naja, gut, ich habe aber jetzt ja genau das getan, was Ihr gesagt habt, was ich nicht tun soll: ich habe die ccu aus dem Docker-FHEM-Netzwerk rausgenommen und greife jetzt ja über die externe IP auf die ccu zu. Als wäre die ccu extern. Eigentlich nur ein Workaround.

Wieso das funktioniert und wieso es nicht im "internen" Docker-Fhem-Netzwerk (172.x.x.x) verstehe ich in der Tat nicht und muss das mal lernen. Was mir aber überhaupt nicht einleuchtet: wieso funktioniert die Docker-Fhem-Netzwerk-Lösung bei anderen, aber bei mir nicht? Offensichtlich muss man da noch irgendwo was anders einstellen...
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 24 November 2022, 16:30:25
ich stelle fest: ich muss das auch alles nochmal durchspielen und noch besser dokumentieren. Meine derzeitige Doku von einer Installation von vor einem Jahr ist lückenhaft.

Was mir noch einfällt: Der ccu Container muss laufen bevor man FHEM startet. Ansonsten kann sich FHEM nicht verbinden. Trotz Timeout hat das bei mir damals nicht funktioniert. Ich hatte dann die Startreihenfolge abhängig gemacht, finde aber gerade nicht wie ich das gemacht habe.  :(

Ich finde Deine Konfiguration jetzt sehr dahin gebastelt das es irgendwie läuft, da gäbe es noch viel zu verbessern. Und Du solltest vor allem wissen warum es läuft ;)

Ich wäre immer nur in Ausnahmefällen dazu bereit sowas wie network_mode: host oder privileged einzusetzen. Das ist wie: alles einfach unter root laufen lassen ;)
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: OdfFhem am 24 November 2022, 17:03:29
Zitat von: Otto123 am 24 November 2022, 16:30:25
Ich hatte dann die Startreihenfolge abhängig gemacht, finde aber gerade nicht wie ich das gemacht habe.  :(

"... You can control the order of service startup and shutdown with the depends_on option ..."

fhem:
  depends_on:
    - "mqtt"
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 24 November 2022, 17:07:56
Wenn die Doku die unter HMCCU ist, dann habe ich mich daran gehalten. Ich fand die eigentlich gut:)

Im Grund muss man auch mal bei Homebridge gucken, da ist ja genau das gleiche Problem.

Ich stimme auch voll zu, was die Flickschusterei angeht. Das ist allerdings ein Kompetenz- und Zeitproblem. Ich kenne mich zum Einen nicht gut genug aus und zum Anderen fehlt mir die Zeit die technisch perfekte Lösung zu erarbeiten (es geht -> fertig). Der Wille zum Erarbeiteten ist da bei mir zum Glück nicht das Problem.

Gerade was Docker angeht, würde ich mir eigentlich auch mehr in der Fhem-Community ,,erwarten". Ich meine das jetzt nicht unbedingt negativ sondern als Plus. Wenn man z.B. ein schön sauber konfiguriertes docker-compose zur Verfügung stellen würde und ggf immer das docker-compose im Wiki hätte, wäre das für alle ein Gewinn. Meiner Meinung nach können auch viele Fragen im Forum durch Docker gelöst werden, wenn jeder das gleiche Image benutzt, etc.

Aber meine Intension ist nicht hier zu kritisieren, aber ich habe immer etwas den Eindruck, dass Docker immernoch etwas stiefmütterlich behandelt wird. Das ist aber rein philosophisch und hat jetzt mit diesem Thema eigentlich nichts direkt zu tun :)) Bitte nicht falsch verstehen!
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: maddhin am 24 November 2022, 19:30:51
Zitat von: Otto123 am 24 November 2022, 16:30:25
Was mir noch einfällt: Der ccu Container muss laufen bevor man FHEM startet. Ansonsten kann sich FHEM nicht verbinden.

Das war der entscheidende Tipp!!

Mit
fhem:
  depends_on:
    - "ccu" #hier entsprechenden Namen des RaspberryMatic Prozesses lt. docker-compose eintragen


funktioniert es auch ohne network_mode: host!
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: OdfFhem am 24 November 2022, 19:46:52
Zitat von: maddhin am 24 November 2022, 19:30:51
Das war der entscheidende Tipp!!

Klingt erst mal gut, aber was macht man, wenn nicht alle abhängigen docker-Container auf demselben Host laufen ?

Bei mir liegt FHEM auf Host1; MQTT,UniFi auf Host2; usw.
Nachweislich sorgt auch ein reboot eines benötigten Host nicht für den Verlust der Funktionalität - lediglich für eine kurze Unterbrechung.

Ist ccu diesbezüglich empfindlicher ?
Titel: Antw:HMCCU/Docker: Readings werden nicht aktualisiert
Beitrag von: Otto123 am 24 November 2022, 22:25:38
Zitat von: maddhin am 24 November 2022, 17:07:56
Wenn man z.B. ein schön sauber konfiguriertes docker-compose zur Verfügung stellen würde und ggf immer das docker-compose im Wiki hätte, wäre das für alle ein Gewinn.
Es gibt ja Beispiele auf Github https://github.com/fhem/fhem-docker/blob/dev/docker-compose.yml
Die Welt ist eben bunt. Sieht man ja an Deiner Zusammenstellung. Am Ende gibt es genau so viele Beispiele für docker-compose wie Anwender ;)

ZitatIst ccu diesbezüglich empfindlicher ?
Das weiß ich nicht, aber die Spezialität ist die RPC Kommunikation.
[OT] Seit dem ich diese kenne (hat Kleinstweich mal irgendwann in den ersten Windows Versionen implementiert) lief die theoretisch ganz einfach und praktisch hat es immer geklemmt und einen Haufen Randbedingungen gegeben. Ich bekomme immer ein Kratzen im Hals, wenn ich RPC höre. [/OT]
Mit dieser Erfahrung sage ich, man muss für RPC Kommunikation Bedingungen einhalten. Und hier scheint es so zu sein: Die CCU muss laufen wenn der FHEM RPC andocken will.