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
- Nainstaluj Mosquitto z App Store (kategorie automatizace). Pokud chceš Zigbee2MQTT, Umbrel ho bez Mosquitto nenainstaluje.1
- Založ uživatele. V terminálu umbrelOS spusť nástroj
mosquitto_passwd, který je v image brokeru.2 Kontejner se jmenujemosquitto_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-csoubor 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 - Uprav konfiguraci:
sudo nano ~/umbrel/app-data/mosquitto/data/config/mosquitto.conf.1 Místoallow_anonymous truea zakomentovaného#password_filedej:
Od 2.1 jeallow_anonymous false plugin /usr/lib/mosquitto_password_file.so plugin_opt_password_file /mosquitto/data/mosquitto.password_filepassword_filezastaralý a nahrazuje ho plugin password-file, ve verzi 3.0 zmizí.3 Cesta k pluginu a volbaplugin_opt_password_filejsou podle oficiálního Docker image.2 Bezper_listener_settingsplatí ověření pro oba listenery, tedy i pro WebSockets na 9021.2 - Restartuj broker:
sudo docker restart mosquitto_broker_1, nebo restart aplikace v UI Umbrelu. Paksudo docker logs --tail 30 mosquitto_broker_1: broker musí běžet bez chyb. Chybný soubor s hesly broker v 2.1 ukončí.3 - Home Assistant: Settings → Devices & services → Add integration → MQTT, zadej broker, port 1883, uživatele
haa heslo.4 Jako broker zadej127.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 - 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 - Zigbee2MQTT → broker s heslem. Aplikace nastavuje jen adresu serveru.1 Doplň do
~/umbrel/app-data/zigbee2mqtt/data/configuration.yaml(složkadataje v kontejneru/app/data)1:
a heslo domqtt: user: z2m password: '!secret.yaml password' homeassistant: enabled: truesecret.yamlvedle (password: …).5homeassistant.enabledzapne MQTT discovery do HA.5 Pak restartuj aplikaci Zigbee2MQTT. - ZHA vypni. Coordinator obsluhuje vždy jen jedna služba. Objevenou ZHA integraci v HA smaž a ignoruj.7
Ověření
- Log brokeru po restartu bez chyb, při připojení klientů v něm vidíš jejich jména (
sudo docker logs -f mosquitto_broker_1). Syntéza - MQTTX Web: nové spojení na
umbrel.local, port 9021 (WebSockets), uživatel a heslo. Bez hesla se nepřipojíš, s heslem odebírej#.1 - HA: integrace MQTT bez chyby. V jejím nastavení „Listen to a topic“ s
#ukáže provoz.4 - Z2M: frontend ukáže coordinator a v HA se po spárování objeví zařízení přes discovery.
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
- Vrať
allow_anonymous true, zakomentuj oba řádkyplugina restartuj broker. - Soubory s hesly a ACL nech na místě, ať jde změnu zopakovat.
Troubleshooting
- Broker nenastartuje: špatná cesta k souboru nebo pluginu. Vždy cesta v kontejneru (
/mosquitto/...), ne na hostiteli (~/umbrel/...).2 Od 2.1 jde konfiguraci zkontrolovat přes--test-config.3 - „not authorised“ / odmítnuté připojení: špatné jméno nebo heslo, nebo klient ještě běží bez hesla (typicky Z2M po kroku 3). Syntéza
- Velké zprávy padají: od 2.1 je
max_packet_sizevýchozí 2 MB místo 256 MB.3 - Přístup zvenku: broker do internetu nevystavuj, vzdálený přístup přes VPN, viz Mosquitto. Umbrel sám doporučuje při vystavení autentizaci.1
Souvislosti
- Mosquitto, MQTT, Zigbee2MQTT, Home Assistant, Home Assistant Connect SLZB, Umbrel Home, Raspberry Pi, SLZB-MR3, ZHA (Zigbee Home Automation), Docker
Zdroje
- Umbrel App Store: aplikace Mosquitto ↗ — aplikace Mosquitto, Zigbee2MQTT, Home Assistant a MQTTX Web v Umbrel App Store.
- Eclipse Mosquitto: Docker image 2.1 a mosquitto.conf(5) ↗ — oficiální Docker image Mosquitto 2.1 (pluginy, cesty) a mosquitto.conf(5).
- Mosquitto blog: release notes 2.0.19–2.1.2 ↗ — změny v 2.1.
- Home Assistant documentation (instalace, pojmy, zálohy, MQTT, ZHA, SMLIGHT, UniFi) ↗ — nastavení integrace MQTT.
- Zigbee2MQTT documentation (Zigbee network, stabilita, binding, párování) ↗ — MQTT, adaptér, integrace s HA, úvodní průvodce.
- SLZB-OS (SMLIGHT Manuals) ↗ — socket síťového coordinatoru.
- Home Assistant Connect ZBT-2 (Nabu Casa Support) ↗ — ZHA vedle Z2M.
Intellihome