Snažím se napsat návod na zprovoznění Zigbee v Shipardu - opět si už nepamatuju detailně jak jsem to dělal, takže bude potřeba vyzkoušet to a průběžně doladit.
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 Installation | Zigbee2MQTT respektive Linux | Zigbee2MQTT.
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