zigbee2mqtt |
#569 |
Zigbee2MQTT
zigbee2mqtt je sada nástrojů, které umožní propojit Zigbee periferie s MQTT. Ke zprovoznění je potřeba:
- Počítač – obvykle to jede na počítači, kde je nainstalovaný Shipard Node, který řídí LAN.
- Nějaký USB Zigbee dongle – používám CC2652RB, ale asi to jede s ledasčím. USB dongle musí být připojen přes USB kabel (prodlužku) – přímo v USB portu počítače to nefunguje!
Instalace
Instalace je popsaná na https://www.zigbee2mqtt.io/…nstallation/ respektive https://www.zigbee2mqtt.io/…1_linux.html.
Ve většině případů je na řídícím počítači již nainstalován
nodejs
, takže pro vlastní instalaci stačí dát pouze
cd /opt/ git clone https://github.com/Koenkk/zigbee2mqtt.git cd /opt/zigbee2mqtt npm ci
POZOR: celé to neběží pod uživatelem root
– tj. nedělá
se to pod sudo
. Takže je třeba to pustit buď pod sebou samým,
případně si na to udělat zvláštního uživatele (což je pro domácí
podmínky asi zbytečné).
Základní nastavení
Nastavení se nachází v souboru
/opt/zigbee2mqtt/data/configuration.yaml
.
Pro základní nastavení by mělo stačit něco jako:
mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost' serial: port: /dev/ttyACM0 frontend: port: 8099 advanced: network_key: GENERATE
frontend/port
říkáhttp
port, na kterém bude běžet webové rozhraní, tj. v prohlížeči se zadá adresa typuhttp://10.x.y.z:PORT
serial/port
říká cestu na USB dongle. Ideální je použít plnou cestu, tj. něco jako/dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_11_22_33_44_55_66_77-if00-port0
. Pro zjištění cesty stačí pustitls /dev/serial/by-id/
– obvykle tam bude jen jedno zařízení.
První spuštění
Pro otestování funkčnosti stačí pustit
cd /opt/zigbee2mqtt npm start
Chvíli to trvá a průběžně se vypisují ladící hlášky. Nemělo by to
skončit chybou a mělo by to zůstat běžet (přerušit se to musí pomocí
ctrl+c
).
Pokud to zafunguje, mělo by fungovat i webové rozhraní.
Zároveň by mělo jít sledovat pomocí
mosquitto_sub -t "#" -F '@Y-@m-@d @H:@M:@S : %t : %p'
provoz na
MQTT serveru.
Spárování prvního zařízení
Ideální je začít žárovkou. V podstatě by mělo stačit:
- Ve webovém rozhraní povolit párování (nahoře je roletka Permit Join (All)).
- Zapnout žárovku v blízkosti USB donglu (blízkost je cca 20cm, ale jsou žárovky, kde to jede i na cca 3 metry – tohle je prostě různé). Úspěšné spárování je potvrzeno tím, že žárovka obvykle zabliká.
Spárované zařízení se objeví ve webovém rozhraní a jde si s ním hrát, tj. zapínat/vypínat, řídit jas apod.
Spuštění po startu
Pokud všechno funguje, je potřeba nastavit, aby se to celé spouštělo po staru počítače – tj. aby o běželo jako služba.
K tomu je potřeba vytvořit soubor
/etc/systemd/system/zigbee2mqtt.service
s obsahem
[Unit] Description=zigbee2mqtt After=network.target [Service] User=USER Group=USER ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit StandardError=inherit Restart=always [Install] WantedBy=multi-user.target
V souboru je potřeba nastavit správně položky User
a
Group
, tj. dát tam sám sebe, případně speciálního
uživatele, kterého jsme vytvořili.
Službu nastartujeme pomocí
sudo systemctl start zigbee2mqtt
a funkčnost ověříme pomocí
systemctl status zigbee2mqtt.service
Pokud všechno běží, povolíme automatické spouštění služby po startu počítače:
sudo systemctl enable zigbee2mqtt.service