[Docker] Von FHEM-Docker auf anderen Container zugreifen

Begonnen von balli1187, 19 August 2020, 11:39:16

Vorheriges Thema - Nächstes Thema

balli1187

Hallo Community,

ich bräuchte mal etwas Hilfe mit Docker und hoffe, dass ich hier im richtigen Bereich gelandet bin...

Ich nutze das offizielle FHEM-Image auf einem QNAP NAS - funktioniert soweit sehr gut.
Parallel habe ich eine Nextcloud laufen und würde gern deren Push-Notification-Dienst "missbrauchen", um mir Nachrichten von FHEM schicken zu lassen.
Mir ist bekannt, dass es für diesen Zweck Dienst wie Pushover, Pushbullet oder Telegram gibt aber ich würde lieber die vorhandenen Möglichkeiten nutzen, anstatt mich wieder irgendwo zu registrieren und eine weitere App auf mein Telefon zu packen.

Innerhalb der Nextcloud (also im Container) kann ich eine Notification über die Console durch Aufruf eines bestimmten php-Skriptes (OCC-Komando) triggern - funktioniert.

Ich suche eine Möglichkeit diesen Befehl aus einem anderen Container (FHEM) heraus abzusetzen. Die Contaienr befinden sich aktuell in unterschiedlichen Docker-Netzwerken.
im Thread zum Docker-image habe ich diese Frage auch schon mal kurz aufgeworfen aber es kamen dann andere Sachen dazwischen und es betrifft das Image selbst ja auch nur am Rande - daher der eigene Thread.

Ich hoffe ich konnte einigermaßen verständlich ausdrücken was ich machen möchte und wie die Voraussetzungen aussehen....

Viele Grüße,
Stephan
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Wernieman

Jeder Docker-COntainer hat eine IP. Du könntest versuchen, darüber zu gehen. Ich weiß nur nicht, ob NextCloud per IP zum versenden von Nachrichten zu bringen ist ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

balli1187

Zitat von: Wernieman am 22 August 2020, 11:28:42
Jeder Docker-COntainer hat eine IP. Du könntest versuchen, darüber zu gehen. Ich weiß nur nicht, ob NextCloud per IP zum versenden von Nachrichten zu bringen ist ...
Die Nextcloud lässt sich so konfigurieren, dass sie auch per IP erreichbar ist.

Du schlägst quasi vor, dass ich den Befehl dann über einen ssh-Tunnel rüberschicke, richtig?

Dazu müsste ich beide Container wiederum in ein Netzwerk packen, oder geht es auch in getrennten Netzen?
Falls möglich, möchte ich nicht zu viel durchmischen.
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Wernieman

Läuft denn auf NextCloud ssh? Ich dachte nativ über Netzwerk.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

balli1187

Zitat von: Wernieman am 26 August 2020, 08:00:00
Läuft denn auf NextCloud ssh? Ich dachte nativ über Netzwerk.
Das müsste ich prüfen....

Ich bin jetzt nicht soooo bewandert was die tiefere Netzwerktechnik angeht. Wie würde es "nativ über Netzwerk" gehen.
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Wernieman

"nativ über Netzwerk" meinte ich: kann man bei NextCloud genau das übers Netzwerk machen?
Ich kenne mich mit NextCloud nicht aus ...

Und bitte beachte: Docker <> VM. Eigentlich sollte in einem Docker-Container nur ein Dienst sein. Wenn Du jetzt zusätzlich noch ssh laufen lässt, hast Du 2 Dienste in einem Container ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Udomatic

Hi,

könnte mir jemand behilflich sein und sagen, was ich in der Container Station in der QNAP im Wizard zum Download des FHEM Docker eintragen muss, dass es läuft?

Bekomme es nicht zum Laufen und finde keine gute Anleitung dazu. Docker ist auch recht neu für mich, sodass ich mit .yml Files bisher gar nicht zureckt komme, die im Netz zu finden sind.

Danke vorab!
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

balli1187

@Udomatic:
Was hast du denn bisher probiert und was kommt dabei raus?

Ich finde die Oberfläche in der Container Station auch etwas unübersichtlich.
Ich bin daher dazu übergegangen die umfangreicheren Dienste in compose-files zu schreiben.
Ich starte dann alles von der Konsole aus aber man soll das compose auch in der Container Station unter application oder so reinkooppieren können. Hab ich aber selbst noch nicht gemacht.

Falls interessant, kann ich dir auch mein compose schicken bzw. Hier posten.
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Wernieman

Unabhängig vom Threadersteller, würde ich mich einfach über Info von docker-compose.yml interessieren ...

Habe selber (seit 1 Monat) auch eine triviale hier liegen ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

balli1187

Mein compose, inklusive aller weiteren Dienste, sieht so aus:


version: '2'

services:
# =============== Datenbank ===============
    FHEM-DB:
        image: mariadb
        container_name: FHEM-DataBase
        hostname: FHEM-DataBase
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        restart: always
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
            - "com.centurylinklabs.watchtower.lifecycle.post-update=/home/watchtower/watchtower.sh"
        volumes:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/DataBase:/var/lib/mysql
            - /etc/localtime:/etc/localtime:ro
            - /share/CACHEDEV1_DATA/Docker_Daten/Basic/Watchtower:/home/watchtower
        environment:
            - MYSQL_ROOT_PASSWORD=Top_secret
        env_file:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/DataBase/DataBase.env
        networks:
            fhem-net:
                ipv4_address: 172.29.8.5

# =============== FHEM ===============
    FHEM:
        image: fhem/fhem-amd64_linux
        container_name: FHEM
        hostname: FHEM
        restart: always
        ports:
            - "8083:8083"
            - "8090:8090"
            - "3002:3002"
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
            - "com.centurylinklabs.watchtower.lifecycle.post-update=/home/watchtower/watchtower.sh"
        volumes:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/fhem:/opt/fhem
            - /var/run/docker.sock:/var/run/docker.sock
            - /share/CACHEDEV1_DATA/Docker_Daten/Basic/Watchtower:/home/watchtower
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TZ: Europe/Berlin
            MYSQL_HOST: FHEM-DB
        env_file:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/DataBase/DataBase.env
        depends_on:
            - FHEM-DB
            - MQTT
        networks:
            fhem-net:
                ipv4_address: 172.29.8.3

# =============== MQTT ===============
    MQTT:
        restart: always
        container_name: MQTT
        hostname: MQTT
        ports:
            - "1883:1883"
#            - "9001:9001"
        image: toke/mosquitto
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
            - "com.centurylinklabs.watchtower.lifecycle.post-update=/home/watchtower/watchtower.sh"
        networks:
            fhem-net:
                ipv4_address: 172.29.8.4
        volumes:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/mqtt/config:/mqtt/config/
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/mqtt/log:/mqtt/log/
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/mqtt/data:/mqtt/data/
            - /share/CACHEDEV1_DATA/Docker_Daten/Basic/Watchtower:/home/watchtower

# =============== Node Red ===============
    NodeRed:
        image: nodered/node-red:latest
        restart: always
        container_name: NodeRed
        hostname: NodeRed
        ports:
            - "9083:1880"
        environment:
            - TZ=Europe/Berlin
        labels:
            - "com.centurylinklabs.watchtower.enable=true"
        networks:
            fhem-net:
                ipv4_address: 172.29.8.7
        volumes:
            - /share/CACHEDEV1_DATA/Docker_Daten/FHEM/NodeRed/data:/data/

networks:
    fhem-net:
        external: true
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Wernieman

O.K. Du nimmst das Offizielle Build. Was mir persönlich zu heftig war.
Habe aktuell am laufen (Verbesserung fähig):

version: "3"

services:
  fhem:
    container_name: fhem
    hostname: fhem.docker
    build:
      context: .
      dockerfile: ./docker/fhem-Dockerfile
    ports:
      -  "XXX:1883:1883"        # MQTT
      -  "XXX.3.5:8086:8086"        # ESPEasy
      -  "11303:11303"                  # CCU2 Virtual Devices
      -  "4012:4012"                    # CCU2 BidCos
      -  "4021:4021"                    # CCU2 HmIP
      - "7072:7072"                     # Telnet
      - "7073:7073"                     # TelnetSSL
    networks:
      net:
        ipv4_address: 172.28.5.2
    environment:
      DOCKER_PROXY_VIRTUAL_HOST: 'FHEM'
      DOCKER_PROXY_TEMPLATE: 'defaultNULL.template'
    volumes:
      - './fhem:/opt/fhem'
    restart: unless-stopped


networks:
  net:
    ipam:
      driver: default
      config:
        - subnet: 172.28.5.0/24


DOCKER_PROXY_.* sind variablen, um den davorliegenden nginx-Proxy automatisch konfigurieren zu können
XXX: ist die IP des WLANS der ESPs. Der Server hat einen eigenen hostapd

Habe aber auch keine health-Überwachung im Docker drin
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Udomatic

Zitat von: balli1187 am 28 Februar 2021, 09:27:05
@Udomatic:
Was hast du denn bisher probiert und was kommt dabei raus?

Habe immer den Container Wizard der QNAP genutzt. Überraschenderweise hat es jetzt gerade funktioniert  8)
Ich weiss leider nicht mehr, was ich zuletzt für Parameter genutzt habe, weshalb es nicht ging. Habe jetzt nur

Port
TZ
Volume

definiert und das reichte jetzt.
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,