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áhttpport, na kterém bude běžet webové rozhraní, tj. v prohlížeči se zadá adresa typuhttp://10.x.y.z:PORTserial/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