Mosquitto na Umbrelu krok za krokem

Cíl: rozběhnout Mosquitto z Umbrel App Store jako zaheslovaný MQTT broker a připojit k němu Home Assistant a Zigbee2MQTT. Aplikace po instalaci pouští anonymní klienty, takže nejdůležitější krok je zapnout hesla.1
Předpoklady: Umbrel (např. Umbrel Home nebo Raspberry Pi s 8 GB a víc), přístup do Settings → Advanced settings → Terminal, u Zigbee síťový coordinator (např. SLZB-MR3) s pevnou IP.

Potřebné aplikace

Aplikace (Umbrel App Store) Verze Potřeba K čemu
Mosquitto 2.1.2 vždy broker, port 1883 (MQTT) a 9021 (web a MQTT přes WebSockets)1
Home Assistant 2026.10.0 obvykle integrace MQTT, běží v síti hostitele (network_mode: host)1
Zigbee2MQTT 2.14.2 pro Zigbee přes MQTT má Mosquitto jako závislost a připojí se na mqtt://mosquitto_broker_1:18831
MQTTX Web 1.13.1 volitelně MQTT klient v prohlížeči na ladění, připojuje se přes WebSockets1

Syntéza: HA na Umbrelu je kontejner bez aplikací (dřív add-ony), takže „Mosquitto broker“ z HA OS tu není a HA neumí broker zaheslovat sám. Uživatele zakládáš ručně podle kroku 2.

Postup

  1. Nainstaluj Mosquitto z App Store (kategorie automatizace). Pokud chceš Zigbee2MQTT, Umbrel ho bez Mosquitto nenainstaluje.1
  2. Založ uživatele. V terminálu umbrelOS spusť nástroj mosquitto_passwd, který je v image brokeru.2 Kontejner se jmenuje mosquitto_broker_11:
    sudo docker exec -it mosquitto_broker_1 mosquitto_passwd -c /mosquitto/data/mosquitto.password_file ha
    sudo docker exec -it mosquitto_broker_1 mosquitto_passwd /mosquitto/data/mosquitto.password_file z2m
    
    -c soubor vytvoří (a přepíše), proto jen u prvního uživatele. Heslo se zadává interaktivně. Syntéza: každá služba svého uživatele, ať jde jednu odpojit bez dopadu na ostatní. Na hostiteli soubor najdeš v ~/umbrel/app-data/mosquitto/data/mosquitto/.1
  3. Uprav konfiguraci: sudo nano ~/umbrel/app-data/mosquitto/data/config/mosquitto.conf.1 Místo allow_anonymous true a zakomentovaného #password_file dej:
    allow_anonymous false
    plugin /usr/lib/mosquitto_password_file.so
    plugin_opt_password_file /mosquitto/data/mosquitto.password_file
    
    Od 2.1 je password_file zastaralý a nahrazuje ho plugin password-file, ve verzi 3.0 zmizí.3 Cesta k pluginu a volba plugin_opt_password_file jsou podle oficiálního Docker image.2 Bez per_listener_settings platí ověření pro oba listenery, tedy i pro WebSockets na 9021.2
  4. Restartuj broker: sudo docker restart mosquitto_broker_1, nebo restart aplikace v UI Umbrelu. Pak sudo docker logs --tail 30 mosquitto_broker_1: broker musí běžet bez chyb. Chybný soubor s hesly broker v 2.1 ukončí.3
  5. Home Assistant: Settings → Devices & services → Add integration → MQTT, zadej broker, port 1883, uživatele ha a heslo.4 Jako broker zadej 127.0.0.1: HA běží v síti hostitele a Mosquitto má port 1883 publikovaný na hostitele.1 Discovery prefix nech výchozí homeassistant.4
  6. Zigbee2MQTT (volitelně): nainstaluj a projdi úvodního průvodce. Spustí se, dokud neexistuje configuration.yaml, a umí najít adaptér přes mDNS, jinak zadáš port a typ ručně.5
    • síťový coordinator: port: tcp://<ip>:6638, výchozí socket SLZB je 66386
    • typ: ember pro Silicon Labs (EFR32), zstack pro TI (CC26xx). Hodnoty vypíše generátor konfigurace v SLZB-OS.5,6
  7. Zigbee2MQTT → broker s heslem. Aplikace nastavuje jen adresu serveru.1 Doplň do ~/umbrel/app-data/zigbee2mqtt/data/configuration.yaml (složka data je v kontejneru /app/data)1:
    mqtt:
      user: z2m
      password: '!secret.yaml password'
    homeassistant:
      enabled: true
    
    a heslo do secret.yaml vedle (password: …).5 homeassistant.enabled zapne MQTT discovery do HA.5 Pak restartuj aplikaci Zigbee2MQTT.
  8. ZHA vypni. Coordinator obsluhuje vždy jen jedna služba. Objevenou ZHA integraci v HA smaž a ignoruj.7

Ověření

Volitelně: ACL

Plugin acl-file omezí, kdo smí číst a psát do kterých topiců: plugin /usr/lib/mosquitto_acl_file.so a plugin_opt_acl_file /mosquitto/data/mosquitto.aclfile.2 Řádky user <jméno> a pod nimi topic [read|write|readwrite|deny] <topic>.2

user z2m
topic readwrite zigbee2mqtt/#
topic readwrite homeassistant/#

user ha
topic readwrite #

Syntéza: se zapnutými ACL je všechno ostatní zakázané, takže Z2M potřebuje i homeassistant/# kvůli discovery. ACL přidávej až po ověření, že bez nich všechno funguje.

Rollback

Troubleshooting

Souvislosti

Zdroje

  1. Umbrel App Store: aplikace Mosquitto ↗ — aplikace Mosquitto, Zigbee2MQTT, Home Assistant a MQTTX Web v Umbrel App Store.
  2. Eclipse Mosquitto: Docker image 2.1 a mosquitto.conf(5) ↗ — oficiální Docker image Mosquitto 2.1 (pluginy, cesty) a mosquitto.conf(5).
  3. Mosquitto blog: release notes 2.0.19–2.1.2 ↗ — změny v 2.1.
  4. Home Assistant documentation (instalace, pojmy, zálohy, MQTT, ZHA, SMLIGHT, UniFi) ↗ — nastavení integrace MQTT.
  5. Zigbee2MQTT documentation (Zigbee network, stabilita, binding, párování) ↗ — MQTT, adaptér, integrace s HA, úvodní průvodce.
  6. SLZB-OS (SMLIGHT Manuals) ↗ — socket síťového coordinatoru.
  7. Home Assistant Connect ZBT-2 (Nabu Casa Support) ↗ — ZHA vedle Z2M.