[Gelöst] FHEM + MQTT + Docker, keine Verbindung möglich

Begonnen von Gear, 05 Januar 2023, 15:27:33

Vorheriges Thema - Nächstes Thema

Gear

#15
Guten Morgen Otto,

na ja, das mit dem Netzwerk funktioniert, wenn ich alle in dasselbe Netzwerk schiebe.
> Kann ich auch noch über Portainer machen.

Die Kommandozeilen habe ich in eine -txt geschrieben, also theoretisch noch vorhanden.
Ich vermute, Thema "docker-compose.yml" wird rein für den FHEM Container interessant werden, also für mich.

Die FHEM Dateien werde ich natürlich auch nach außen holen, das waren ja nur Container zum Testen, habe ich bei den anderen Container auch so gemacht.  ;) ;D
-v MeinPfad:/opt/fhem

Hätte nicht gedacht, mit Docker einen so großen Umstand zu machen.
Hätte ich das gleich gewusst, hätte ich das so auf dem H3 geklatscht...

Aber jetzt hab ich alles, bis auf FHEM in Docker, dann wird das schon.

Danke Otto und einen schönen Freitag.

EDIT:
Wenn ich jetzt die Adresse von MQTT in FHEM nennen möchte, wie macht man das am Besten?
Also ohne mein Netzwerk Ding.
Wenn ich die Host IP nutze, ist das blöd, wenn diese sich mal ändern sollte. (Wird sie nie, aber dennoch)

EDIT2:
Mal so doof gefragt, wenn ich alles über den Host laufen lassen würde.
z.B FHEM habe ich auf Ansicht: 80 %

Dann würde es mir die anderen Host Seiten auch auf Ansicht: 80 % ziehen.
Kann man das umgehen?
Oder wie verhält sich das bei dir?
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

docker compose macht die Umgebung in einer Datei, in portainer heisst das dann stack. Beispiel:
mosquitto
sonos2mqtt
FHEM
alexa
raspberrymatic

Alle Konfigurationsteile in eine compose.yml - damit alles an einem Ort. Alle gemappten Pfade in einem Ordner. Alles wird behandelt mit einem Befehl. usw.

Adresse von MQTT
Mehrere Möglichkeiten

  • Am Besten: ordentliche Namensauflösung (DNS)
  • Alle in einem docker Netzwerk: man braucht nicht außenrum gehen, Namensauflösung funktioniert auch im Dockernetzwerk https://docs.docker.com/compose/compose-file/#hostname
  • Feste IP Adresse (DHCP reserved) für den docker Host würde ich immer machen.
  • symbolische Namen im DNS vergeben

Deine Frage mit Ansicht 80% verstehe ich nicht  :o welche Ansicht? Im Browser?
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

Gear

Ok, danke.
Schaue ich mir an.

Ich meine den Zoom. (STRG + Mausrad)
Das ist einer der Gründe, warum FHEM eine eigene IP bekommen soll.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

 ;D Oh darauf muss man kommen, find ich schräg - aber ok.  ;D
Ich würde das nicht mit docker sondern im System lösen: Beispiel
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

Gear

Zitat von: Otto123 am 06 Januar 2023, 10:58:19
Adresse von MQTT
Mehrere Möglichkeiten

  • Am Besten: ordentliche Namensauflösung (DNS)
  • Alle in einem docker Netzwerk: man braucht nicht außenrum gehen, Namensauflösung funktioniert auch im Dockernetzwerk https://docs.docker.com/compose/compose-file/#hostname
  • Feste IP Adresse (DHCP reserved) für den docker Host würde ich immer machen.
  • symbolische Namen im DNS vergeben

Also für mein Verständnis, da ich noch nicht richtig durchblicke.

MQTT läuft, alles im selben Netzwerk.

Haben jetzt Zigbee2MQTT im Docker, das läuft, bis auf die Verbindung zu MQTT. (+ Frontend)
Wie genau bekomme ich die Verbindung hin?

In der Zigbee2MQTT Config steht:
server: mqtt://MQTT

Wenn ich das MQTT zur Container-IP ändere (nach Neustart ändert sich diese wieder) oder Host IP, dann funktioniert es.

Sry. für die vielen Fragen.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Gear

Ach, ich muss die Gateway-Adresse nehmen.

server: mqtt://Gateway-Adresse
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

#21
Ich kenne mich mit der Konfiguration im Portainer ehrlich gesagt nicht aus.
Ich meine es geht am einfachsten mit dem Servicenamen, da muss man nichts weiter tun. Ich kann gerade nicht testen, ich mache Update des dockerhosts :)

Schau mal hier ist das umfassend beschrieben: https://docs.docker.com/compose/compose-file/#aliases

Gateway-Adresse ist die Docker Netzwerk Adresse "innen"? Du kannst auch die Host Addresse "Aussen" nehmen.
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

Otto123

gerade getestet: Servicename funktioniert innerhalb des Docker Netzwerkes bei mir einwandfrei:
sonos2mqtt Container - SONOS2MQTT_MQTT=mqtt://fhem:1883
Der Container mit dem Servicenamen fhem hat den Hostnamen a6bcf80c603b
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

Gear

Danke Otto, versuche ich morgen mal.

Hab mich jetzt mit "Stack" beschäftigt und das ist ja spielend leicht.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Gear

So, jetzt funktioniert das, Danke Otto!

Hat mir jetzt keine Ruhe gelassen.  :-X

define Mosquitto MQTT mqtt:1883

version: "2"

services:

####>---- FHEM ----<####

  fhem:
    container_name: FHEM
    image: fhem/fhem:latest
    hostname: fhem
    restart: always
    networks:
      internal:
        ipv4_address: 172.18.0.2
    ports:
      - "8083:8083"
      - "7072:7072"
    volumes:
      - /MyDocker/FHEM:/opt/fhem

####>---- MQTT ----<####

  mqtt:
    container_name: MQTT
    image: eclipse-mosquitto:latest
    hostname: mqtt
    restart: always
    networks:
      internal:
        ipv4_address: 172.18.0.4
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - /MyDocker/MQTT/Data:/mosquitto/data
      - /MyDocker/MQTT/Config:/mosquitto/config
      - /MyDocker/MQTT/Log:/mosquitto/log

####>---- Network ----<####

networks:
  internal:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16
          gateway: 172.18.0.1
          ip_range: 172.18.0.1/24


Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Gear

Guten Morgen Otto!

Yup, nun scheint alles zu laufen!
Heute FHEM fertig einrichten und dann passt alles.

Vielen Dank!

Ein schönes Wochenende
Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

Guten Morgen,

klingt ja erfolgreich.  ;D Dann kann es ja morgen entspannt losgehen ;)
Noch ein Hinweis: mMn braucht man den version Eintrag am Start nicht, man sieht den immer wieder, aber ich meine zu verstehen, der ist nicht mehr wirklich empfohlen. https://docs.docker.com/compose/compose-file/#version-top-level-element

Gruß Otto
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

Gear

Ok, das mit der Version weiß ich nicht, hab mir ein paar Tutorials angeschaut und da wurde das genannt.
Ich schaue mir das mal an, danke.

Oh ja, ganz entspannt und ohne Stress.
Den Rest kann ich ja dann per VPN machen.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

ich lasse die version Zeile einfach weg und es funktioniert  8)
Der Syntax im compose File ist mit copy&paste aus Beispielen manchmal "unverständlich" aber die Doku von Docker und Docker compose finde ich ausgesprochen gut da kommt man mit suchen und lesen eigentlich immer gut weiter. Manchmal gibt es aber auch dort Fehler ;)
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