Lähtökohtaisesti meillä on Docker-Composen avulla asennettuna Home Assistant sekä Mosquitto -broker. Seuraavaksi lisäämme Home Assistanttin RuuviTag -antureita käyttäen MQTT -protokollaa ja siinä käytämme apuna Ruuvitag Discovery -ohjelmistoa.
RuuviTag on kotimainen tuote, joka toimii lämpötila-, kosteus-, ilmanpaine ja liike -anturina. RuuviTag toimii Bluetooth -yhteydellä ja se voidaan yhdistää esim. puhelimeen tai kuten tässä tapauksessa, myös Home Assistantiin tai muihin kotiautomaatiojärjestelmiin.
RuuviTagit voisi lisätä Home Assistanttiin myös erilaisilla lisäosilla, mutta me teemme sen Ruuvitag Discoveryn ja MQTT:n avulla. Tämä siksi, että meillä Home Assistant on asennettu Docker-Composen avulla, jolloin tämä lisäosat eivät toimi sellaisenaan. Jatkossa tarkoituksena on asentaa myös zigbee- ja z-wave -antureita MQTT:tä hyödyntäen, jolloin RuuviTagit menevät siinä samalla mukana.
Node.js asennus Link to heading
Aluksi meidän täytyy kuitenkin asentaa node.js, jotta saamme Ruuvitag Discoveryn asennettua. RaspberryPiOS on Debian -pohjainen käyttöjärjestelmä eli saamme asennettua node.js:n ohjelmistolähteistä, joihin löytyvät ohjeet linkin takaa.
Aluksi asennamme node.js:n ohjelmistolähteet ja myös node.js:n komennoilla
#HUOM! asennus tehdään root-käyttäjänä
sudo su
curl -fsSL https://deb.nodesource.com/setup_current.x | bash -
apt-get install -y nodejs
exit
Ruuvitag Discoveryn asennus Link to heading
Seuraavaksi haetaan Ruuvitag Discovery -tiedostot komennolla
git clone https://github.com/balda/ruuvitag-discovery
Seuraavaksi suoritetaan asennus
cd ruuvitag-discovery/
npm install
Asennukseen jälkeen voimme käynnistää Ruuvitag-Discoveryn komennolla
npm start
Voi olla, että järjestelmä ei vielä suoraan löydä RuuviTag -antureita, jolloin pitää varmistaa, että järjestelmään on asennettu tarvittavat bluetooth
-paketit sekä ajaa komento, jolloin Ruuvitag Discovery ei tarvitse root/sudo
-oikeuksia
sudo apt-get install bluetooth bluez
sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
Mikäli asennus onnistui, niin meillä pitäisi näkyä päätteessä alla olevan kaltaiset rivit, josta alimpana nähdään, että Ruuvitag Discovery on löytänyt kaksi erillistä RuuviTagia
Palvelun ruuvitag-discovery.service luominen Link to heading
Ennen kuin jatketaan asetuksien tekemistä, niin tehdään kuitenkin Ruuvitag Discoverystä palvelu, joka käynnistyy automaattisesti tietokoneen käynnistyessä. Aluksi luodaan tiedosto ruuvitag-discovery.service
komennolla sudo nano /etc/systemd/system/ruuvitag-discovery.service
ja lisätään tiedostoon alla olevat rivit
[Unit]
Description=RuuviTag Discovery
[Service]
Type=simple
Restart=always
User=pi
WorkingDirectory=/home/pi/ruuvitag-discovery
ExecStart=/usr/bin/npm start
[Install]
WantedBy=multi-user.target
Seuraavaksi käynnistetään palvelu ja tehdään siitä automaattisesti käynnistyvä komennoilla
sudo systemctl start ruuvitag-discovery
sudo systemctl enable ruuvitag-discovery
Ruuvitag Discoveryn asetus web-selaimen kautta Link to heading
Tämän jälkeen avataan selaimella osoite http://x.x.x.x:8099
, jota kautta pääsemme avaamaan web-pohjaisen konfigurointi -ikkunan. IP-osoite x.x.x.x
on sen tietokoneen IP-osoite, jolle Ruuvitag Discovery on asennettu.
Etusivulla näkyvät löydetyt anturit ja kohdasta “Targets
” päästään antamaan MQTT:n asetukset. Lisätään asetukset painamalla napista “+Home Assistant (MQTT)
” , jolloin avautuu alla olevan kaltainen ikkuna
Aluksi annetaan tarvittavat tiedot eli
kohtaan
name
jokin nimi esim.mosquitto
kohtaan
host
mosquitto -brokerin IP-osoitekohtaan
port
mosquitto -brokerin porttikohtaan
topic
otsikoksihomeassistant
kohtaan
username
käyttäjätunnuskohtaan
password
salasana
Kohdasta “Tags” voidaan ottaa käyttöön halutut anturit sekä tiedot, joita lähetetään Home Assistantille eli esim. ainakin humidity
, temperature
ja pressure
. Lisäksi valittavana on myös muitakin tietoja, joita voidaan lähetään Home Assistantille.
Lopuksi otetaan vielä “Home Assistant (MQTT)
” käyttöön valitsemalla “enable
” ja tallennetaan asetukset, jonka jälkeen pitäisi alkaa tulla anturi-dataa Home Assistantille.
Jaa tämä: