Zigbee MQTT-silta ja sen yhdistäminen Home Assistanttiin

Löysin Home Assistantin foorumilta ja Githubista projektin, missä on tehty edullisilla osilla oma Zigbee MQTT silta, joka sitten yhdistetty Home Assistanttiin.

Markkinoilla on tarjolla erilaisia Zigbee Gateway-tuotteita, mutta tulee usein ongelmana etteivät nämä ole kovinkaan hyvin yhteensopivia keskenään. Esimerkiksi Ikean Trafdri Gateway on hyvin suljettu ja rajoittunut ominaisuuksiltaan verrattuna Philipsin Huen Gateway. Kuitenkin Ikean lamput ovat Zigbeen standaridin mukaisesti mahdollista liittää Philips Huen Gateway:hyn. Kuitenkin haluaisin käyttää Xiaomin sensoreita, koska ovat edullisempia mutta en haluaisi käyttää Xiaomin omaa Gateway:tä sillä se lähettää tietoja Kiinaan. Tästä syystä olen päättänyt hankkia avoimen Gateway:n johon voin liittää kaikki laitteet kerralla ja nämä myös keskustelevat toistensa kanssa.

Ainoana huonona puolena tässä on, että Home Assistanttiin tulee määrittää paljon enemmän automaatioita ja konfigurointeja. Kannattaa myös tarkistaa varmuuden vuoksi että zigbee2mqtt silta tukee kaikkia päätelaitteitasi.

Tarvittavat välineet

Tilasin nämä Aliexpressistä:

Työvaiheet

  • Kytke CC Debugger -> Downloader cable CC2531 -> CC2531 USB Snifferiin
  • Kytke CC2531 USB Snifferi ja CC debugger tietokoneesi USB-porttiin.
  • Mikäli CC debuggerin valo on punainen, niin paina RESET painiketa niin tällöin valo vaihtuu virheäksi.
  • Lataa firmare täältä.
  • Käynnistä Flash Programmer ja määritä seuraavanlaiset asetukset ja valitse Perform actions.

Kun tila on CC Debugger firmware update OK niin voit sulkea sovelluksen.

Tämän jälkeen voit irrottaa USB-kaapelit ja kytkeä CC2531 Raspberry Pi-laitteen USB-porttiin. Tämän voi myös liittää muualle Linux-PC:lle mutta ohje on tehty Raspian-käyttöjärjestelmälle.

Asennetaan zigbee2mqtt silta

Tarkista komentorivillä, että löydät CC2531-laitteen /dev-polusta.

[email protected]:~ $ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 May 16 19:15 /dev/ttyACM0  # <-- CC2531 on /dev/ttyACM0

Asenna zigbee2mqtt-työkaluja

# Setup Node.js repository
sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

# Install Node.js
sudo apt-get install -y nodejs git make g++ gcc

# Verify that the correct nodejs and npm (automatically installed with nodejs) 
# version has been installed
node --version  # Should output v8.X.X (at time of writing v8.11.2)
npm --version  # Should output > 5.X.X (at time of writing 5.6.0)

# Clone zigbee2mqtt repository
sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

# Install dependencies
cd /opt/zigbee2mqtt
npm install

Kaikki on OK kun tulostuu npm install-komennon jälkeen (numero ja aika voi olla eri)

node-pre-gyp info ok
added 529 packages in 79.641s

Huomaa, että asennuksessa voi tulla joitakin virheilmoituksia jotka voi ohittaa.

Konfiguroidaan zigbee2mqtt configuration.yaml-tiedoston avulla

nano /opt/zigbee2mqtt/data/configuration.yaml

Konfigurointitiedostossa konfiguroi MQTT-palvelimen osoite ja todennukseen liittyvät asetukset. Varmista että Serial-portti on oikeassa polussa. Tämän voit tarkistaa esimerkiksi dmesgin avulla.

homeassistant: true
permit_join: false
# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password
serial:
  port: /dev/ttyACM0

Tallenna ja sulje tiedosto

Tämän jälkeen voit käynnistää sovelluksen npm start-komennolla

cd /opt/zigbee2mqtt
npm start

Automaattinen käynnistyts systemctl:n avulla. Luo tiedosto zigbee2mqtt.service

sudo nano /etc/systemd/system/zigbee2m
[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

 

Tallenna ja sulje. Tarkista että tämä toimii

# Käynnistä zigbee2mqtt
sudo systemctl start zigbee2mqtt

# Näytä tila
systemctl status zigbee2mqtt.service

# Ota automaattinen käynnistys bootissa käyttöön
sudo systemctl enable zigbee2mqtt.service

Suojaa Zigbee-verkko

Zigbee-verkko on oletuksena konfiguroitu oletus salausavaimella, joten suositus on vaihtaa se ennen käyttöönottoa.

Generoi tällä komennolla salausavain

dd if=/dev/urandom bs=1 count=16 2>/dev/null | od -A n -t x1 | awk '{printf "["} {for(i = 1; i< NF; i++) {printf "0x%s, ", $i}} {printf "0x%s]\n", $NF}'

Aseta salausavain configuration.yaml tiedostoon (ÄLÄ KÄYTÄ TÄTÄ AVAINTA) vaan korvaa sen generoidulla avaimella.

advanced:
  network_key: [7, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 11, 12, 13]

Verkon salausavaimen pituus on 128-bittiä. Mikäli vaihdat salausavainta, sinun tulee parittaa Zigbee-laite uudelleen verkkoon.

Lisää Zigbee-laitteen tähän USB Snifferiin ja Home Assistanttiin

Sinun tulee nollata Zigbee-laitteen tehdas-asetuksiin. Kannattaa katsoa valmistajan ohjeiden mukaisesti kuinka nollata tehdas-asetuksiin. Lisätietoa täältä.

Varmista, että sinulla on permin_join määritetty ”true”:ksi ennen kuin alat liittämään laitteita. Muuten tämä zigbee2mqtt ei salli yhdistämistä.

permit_join: true

Käynnistä palvelu uudelleen. Muuta tämä takaisin falseksi kun olet liittänyt kaikki laitteesi tähän USB-Snifferiin.

Itsellä on Ikean älyvalaisinsarja ja muutamia älylamppuja. Näiden tehdasasetuksiin nollaus onnistuu katkaisemalla virtoja lampusta 6 kertaa ja pitämällä sitten päällä. Kun lokiin tulee merkintä ”New device with address…”  niin uusi laite on yhdistetty.

Tämän jälkeen suosittelen konfiguroimaan Home Assistantin configuration.yaml tiedostoon mqtt-laitteiden automaattisen haun, niin ei tarvitse konfiguraatiota käsin syöttää.

mqtt:
  discovery: true

Käynnistä Home Assistant uudelleen ja sitten sinun tulisi nähdä entity-listassa tämä lampun ja tunnistetiedon.

4 kommenttia artikkeliin “Zigbee MQTT-silta ja sen yhdistäminen Home Assistanttiin”

  1. Itselläni olisi kiinnostusta luoda Home Assistant, mutta onko laiteraja zigbee2mqtt:n kohdalla 15 kpl? Omaan korvaan kuulostaa vähäiseltä (lämpötilasensorit eri huoneisiin, ovi/ikkuna- ja värinäsensoreita jne. plus Philips Hue -valaistuksen lukuiset lamput, kytkimet ja sensorit), vai meneekö tässä jokin ohi?

Kommentoi