Raspberry décédé j'essaie de restaurer sous Docker!

Hello à tous,

Samedi soir j’ai très bêtement tué mon Raspberry sur lequel tourné HAOS… grillé dead.

Je me suis réveillé avec l’intention d’installer HA sur Docker/ J’envisageais la solution à plus long terme mais c’était l’occasion et j’ai un MacBook M1 qui traîne la plus part du temps à la maison…

Donc depuis ce MacBook Pro M1 :

J’ai installé HA via Docker Desktop, sans problème :white_check_mark:

J’ai pu récupérer ma sauvegarde :white_check_mark:

J’ai installé Eclipse-Mosquitto avec le port 1883 :white_check_mark:

J’ai généré un fichier password, dans ce container via la ligne de commande.
J’ai vérifié que le fichier password_file était conforme et au bon endroit.
Puis j’ai configuré le Mosquitto.conf comme cela :

listener 1883
password_file /mosquitto/config/password_file

J’ai relancé le container qui m’a log ça :

1767570009: mosquitto version 2.0.22 starting

1767570009: Config loaded from /mosquitto/config/mosquitto.conf.

1767570009: Opening IPv4 listen socket on port 1883.

1767570009: Opening IPv6 listen socket on port 1883.

1767570009: mosquitto version 2.0.22 running

A priori : :white_check_mark:

Puis j’ai installé le Docker de Z2M avec le port 8080 :white_check_mark:

J’ai intégré mes fichiers config récupérés dans ma sauvegarde.
J’ai modifié le fichier configuration.yaml :

version: 4
homeassistant:
  enabled: true
advanced:
  log_level: debug
  transmit_power: 20
  ext_pan_id:...
  channel: 11
  network_key:...
  pan_id: ...
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost:1883
  user: ...
  password: ...
frontend:
  enabled: true
  port: 8080
data_path: /config/zigbee2mqtt
serial:
  port: tcp://192.168.10.114:6638
  baudrate: 115200
  adapter: ember
  rtscts: false
  disable_led: false
devices:
...

Donc j’ai changé uniquement :

  • l’adresse du server MQTT pour mqtt://localhost:1883 car il run sur la même machine.
  • et j’ai copié collé le user et le password du fichier créé sous Mosquitto

Pourtant quand je relance le container Z2M :

[2026-01-05 00:16:00] info: 	z2m: Currently 38 devices are joined.

[2026-01-05 00:16:00] info: 	z2m: Connecting to MQTT server at mqtt://localhost:1883

[2026-01-05 00:16:00] error: 	z2m: MQTT failed to connect, exiting... ()

[2026-01-05 00:16:00] info: 	z2m: Stopping zigbee-herdsman...

Donc super, il récupère bien tous mes devices :white_check_mark::white_check_mark::white_check_mark:
Mais il ne se connecte pas à MQTT ! :cross_mark::cross_mark::cross_mark:

J’ai tenté bcp de choses mais un truc m’échappe… et j’arrive pas à trouver de l’aide sur ce cas un peu spécifique.

Qu’est-ce qui foire dans cette config ?

Le localhost dans un container n’est pas le localhost de la machine, donc c’est logique.
Cette configuration est un peu particulière. Si tu veux continuer sur cette option, il faut bien connaître le fonctionnement de docker…
Pour répondre à la question posée, je créerai un réseau bridge spécifique. Une fois que c’est fait, mettre les containers qui doivent dialoguer sur ce bridge. Et ensuite, un container peut se connecter à un autre via son nom.
Et dernier point, un Mac m1 qui tourne h24 pour HA et autres, c’est peut-être un peu gâcher…

2 « J'aime »

Sans créer de réseau spécifique aux containers Dockers (qui est sans doute une bonne solution mais que je n’ai jamais vraiment appliquée) en configuration des différents serveur il faut simplement déclarer l’IP/port de la machine hôte.

Par exemple, mon serveur (machine hôte) est à 192.168.0.12
J’ai un container pour MQTT, un pour Frigate, un pour HA, un pour Z2M, un pour NTP
l’adresse du serveur MQTT à configurer dans HA, Z2M et Frigate c’est 192.168.0.12:1883
l’adresse de HA c’est 192.168.0.12:8123
l’adresse de Frigate c’est 192.168.0.12:5000
etc.

Merci pour vos messages. Je vais préciser l’ip mais je doute que ce soit le problème car quand j’ai un problème d’adresse j’ai un autre log, genre :

failed to connect (econnrest)

La j’ai bien « failed to connect() » avec 0 détail.

ok je viens de tester, ça bouge :

[2026-01-05 07:31:36] info: 	z2m: Connecting to MQTT server at mqtt://172.66.169.224:1883

[2026-01-05 07:32:06] error: 	z2m: MQTT failed to connect, exiting... (connack timeout)

[2026-01-05 07:32:06] info: 	z2m: Stopping zigbee-herdsman...

je vais chercher « connack timeout » !

j’ai essayé de me connecté via MQTT Explorer il est déconnecté directement, donc c’est un problème de configuration du Mosquitto…

regardes les logs de mosquitto pour vérifier s’il voit les demandes de connexion.

Tu as bien exposé le port 1883 depuis docker?
Si tu n’as pas exposé le port dans docker il n’est pas exposé sur l’hôte

Même si effectivement utiliser par exemple docker compose est l’idéal

Je comprends pas…

Aucun log n’apparait dans Mosquitto dans mes tentatives de connections SAUF :

Si je met « localhost:1883 » dans un navigateur

là j’ai dans Mosquitto :

1767600046: New connection from 172.66.169.224:63815 on port 1883.

1767600046: Client <unknown> disconnected due to protocol error.

1767600046: New connection from 172.66.169.224:51017 on port 1883.

1767600046: Client <unknown> disconnected due to protocol error.

1767600046: New connection from 172.66.169.224:32031 on port 1883.

1767600046: Client <unknown> disconnected due to protocol error.

1767600046: New connection from 172.66.169.224:20244 on port 1883.

1767600046: Client <unknown> disconnected due to protocol error.

oui :

Capture d’écran 2026-01-05 à 09.03.00

1 « J'aime »

Tu as installé mosquito depuis quelle source ? Parce que dans l’image de base la config par defaut fait que tu ne peux pas te connecter de l’extérieur.
Il y a une petite config pour autoriser les connexions et générer un fichier d’identifiant de connexion.

Tu parles de cette procedure (j’ai installé eclipse-mosquitto depuis docker hub dans docker desktop) :

Et donc, il y a un user/password de défini ?

oui.

C’est ce que j’ai copie/colle dans le configuration.yaml de Z2M.

Oui je parle de cette procédure. Donc a priori c’est bon.
Tu as reboot le container ?

Oui of course ;))) :

ça semble ok donc

je sais qu’il y’a certaines limitations dans docker sur MAC, mais je ne les connais pas du tout !!

deja je partirais sur docker compose plutot que docker run

OK, j’ai demandé à ChatGPT et… il a géré.

2 erreurs, formatage de l’adresse du « localhost » et du password car j’avais mis le hash et non le pw… je continue la réinstallation !