Aiemmin ohjasin kaikki Zigbee-laitteitani yhdellä koordinaattorilla, mistä aiheutui ongelmia kun Zigbee laitteita oli paljon (~200). Aika ajoin laitteet putosivat Zigbee verkosta tai viestin kulussa oli useiden sekuntien viiveitä. En saanut selvitettyä juurisyytä ongelmiin, mutta hypoteeseina oli:
- Koordinaattorin tilataulukolle varattu muisti loppui kesken
- Joku zigbee silmukkaverkon (mesh network) reitittimistä (router) oli pullonkaula liikenteelle
- Suuri laitteiden määrä samalla taajuudella aiheutti kilpatilanteita
Lopulta päädyin jakamaan yhden suuren verkon neljään pienempään joissa kussakin on 40-60 laitetta ja kullakin verkolla on käytössä oma kanava (kts. artikkeli ”Home Assistant – Zigbee verkon optimointi”)

Koska Home Assistant tukee ilman kikkailua, vain yhtä sisäistä Zigbee2MQTT siltaa, päädyin käyttämään Home Assistantin ulkopuolisia Zigbee2MQTT siltoja. Koska Home Assistant instanssini on virtuaalikone Proxmoxissa, oli helppoa luoda kullekin Zigbee2MQTT:lle oma Proxmox LXC kontti käyttäen valmista Proxmox VE Helper-Scriptiä (https://github.com/community-scripts/ProxmoxVE).
Zigbee2MQTT Proxmox LXC kontin asentaminen
- Avaa Proxmoxin hallintasivu ja avaa Shell
- Kirjoita komentoriville: bash -c ”$(wget -qLO – https://github.com/community-scripts/ProxmoxVE/raw/main/ct/zigbee2mqtt.sh)”



- Valitse
- ”Advanced Settings”
- ”Debian”
- ”Bookworm”
- ”Privileged”
- Aseta
- Rootin salasana
- Kontin ID
- Hostin nimi
- Levytilan koko (4GB)
- Ytimien lukumäärä (2 kpl)
- RAM (1024MB)
- Silta (wmbr0)
- Staattinen IP tai dhcp (dhcp)
- APT-Cacher (jätä tyhjäksi)
- Disabloi IPv6 (minulla ei ole IPv6:tta käytössä kotiverkoissa)
- MTU size (jätä tyhjäksi)
- DNS Search Domain (jätä tyhjäksi)
- DNS Server IP (jätä tyhjäksi)
- MAC (jätä tyhjäksi eli käytä proxmoxin arpomaa MAC:iä)
- VLAN (jätä tyhjäksi, virtuaalilaneja ei ole kotiverkossani käytössä)
- Custom tags (jätä oletukset)
- Salli rootin ssh (Ei)
- Verbose mode (Ei)


Kun konsolissa lukee ”Completed Succesfully”, voidaan siirtyä kontin konfigurointiin. Jos et ole asettanut kontille, kiinteää ip-osoitetta, vaan käytät DHCP-palvelua, kannattaa DHCP:hen määrittää staattinen ip-osoite. Tässä tapauksessa uusi kontti sai palomuurin DHCP palvelusta dynaamisen ip-osoitteen 192.168.100. Muuta osoite kiinteäksi DHCP-palvelussa ja reboottaa kontti (Huom! Älä reboottaa vhostia!), jolloin staattinen ip-osoite haetaan DHCP-palvelusta.
Kontin konfigurointi
Jos Zigbee-dongle oli liitettynä, kun asensit Zigbee2MQTT:n, ja LXC-kontti luotiin privilegoituna (privileged), skripti määrittää automaattisesti USB-läpiviennin kontille. Varmistaaksesi tämän ja selvittääksesi donglen sarjanumeron, avaa Proxmoxin shell ja anna seuraava komento:
ls -l /dev/serial/by-id

usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_bcf4367f48b6ed11afa1de0ea8669f5d-if00-port0 -> ../../ttyUSB1
usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0 -> ../../ttyUSB0
Tuloksesta nähdään, että Proxmox palvelimeen on kytkettynä kaksi USB koordinaattoria. Näiden lisäksi minulla on käytössä vielä kaksi SMLIGHT SLZB-06 koordinaattoria lähiverkossa. Näiden konfiguroinnista myöhemmin lisää.
Avaa äsken luodun kontin konsoli

ja avaa editoriin /opt/zigbee2mqtt/data/configuration.yaml tiedosto. Lisää/muuta tiedostoon punaisella korostetut kohdat.
version: 4
homeassistant:
enabled: tue
permit_join: false
frontend:
enabled: true
port: 8080 #Zigbee2MQTT hallintasivun portti
mqtt:
base_topic: zigbee2mqtt_garage #Anna kullekin Zigbee2MQTT instanssille oma base topic
server: mqtt://192.168.1.3:1883 #Homeassistant serverin ip ja MQTT palvelun portti
user: mqtt_user #Homeassistantin MQTT käyttäjätunnus
password: salasana #MQTT salasana
keepalive: 60
reject_unauthorized: true
version: 4
serial:
adapter: zstack
port: /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_bcf4367f48b6ed11afa1de0ea8669f5d-if00-port0
advanced:
pan_id: GENERATE
network_key: GENERATE
channel: 25 #Valitse kullekin koordinaattorille oma kanava
Käynnistä Zigbee2MQTT komennolla:
[root]# cd /opt/zigbee2mqtt && npm start
Viimeisimmät kommentit