Minulla on Home Assistantin yhteydessä erilaisia antureita, joita olen tehnyt käyttäen ESP32, ESP8266 ja Wemos D1 -mikrokontrollereita. Näitä minulla on mm. lukemassa sähkömittarin pulssia, erilaisina sensoreina kuten lämpötila, ilmankosteus, ilmanpaine, valoisuus tai mittaamassa auringon UV-säteilyä. Yhteistä näissä on se, että olen käyttänyt niissä ESPHome -firmwarea.
ESPHome on monipuolinen firmware ja se on myös tehty hyvin yhteensopivaksi Home Assistantin kanssa. ESPHomen asetukset tehdään yaml
-tiedostoon samaan tapaa kuin voidaan tehdä myös Home Assistantissa. Lisäksi Home Assistant löytää automaattisesti ESPHome -laitteet ja vaihtoehtoisesti näissä voidaan myös käyttää MQTT -protokollaa. ESPHomelle on olemassa myös muitakin firmware -vaihtoehtoja kuten Tasmota ja ESPEasy, OpenMQTTGateway sekä myös muita, mutta tässä ei käydä niitä läpi vaikka niitäkin olen näissä mikrokontrollereissa kokeillut.
ESPHomen asennus Link to heading
Seuraavaksi mennään asiaan eli käydäään läpi ESPHomen asennus päätteen kautta Linux -käyttöjärjestelmälle sekä se, miten firmwarea voidaan muokata ja miten se asennetaan mikrokontrolleri -kortille.
Minulla Home Assistant on asennettuna Docker-Composen avulla, joten en voi käyttää tätä lisäosaa, joka olisi normaalisti käytössä Home Assistantin omassa käyttöjärjestelmässä. Ja nyt kun ESPHome asennetaan päätteen kautta, niin sen voi asentaa myös muillekin koneille kuin tälle koneelle, johon Home Assistant on asennettu.
ESPHomen voi asentaa myös Windowsille, mutta minä asennan sen kannettavaan tietokoneeseen, jonka käyttöjärjestelmänä on Devuan Linux. ESPHome voidaan asentaa myös Docker-Composen avulla, mutta minä teen asennuksen perinteisesti päätteessä.
Aluksi täytyy kuitenkin tarkistaa, että mikä versio Pythonista asennettu, koska ESPHome vaatii tällä hetkellä versiota 3.9. Eli tarkistetaan asennettu versio komennolla
python3 --version
Mikäli versio on jotain muuta kuin 3.9.x alkuinen, niin tällöin Python täytyy päivittää tai jos se puuttuu, niin tällöin se tulee asentaa. Minulla versio oli 3.9.2 eli asennus onnistuu. Seuraavaksi luodaan virtuaaliympäristö ESPHomea varten antamalla seuraavat käskyt
python3 -m venv venv
source venv/bin/activate
Tämän jälkeen vielä varmistetaan, että python3-pip
on asennettu eli annetaan komento
sudo apt install python3-pip
Seuraavaksi voidaankin sitten asentaa ESPHome antamalla seuraava käsky
pip3 install esphome
HUOM! Tässä on tärkeää, että komento annetaan normaalina käyttäjänä, koska pääkäyttäjänä annettuna (sudo
-komennolla) asennus voi rikkoa käyttöjärjestelmän. Seuraavaksi tarkistaan, että ESPHome on asennettu eli annetaan komento
esphome version
Mikäli järjestelmä antaa virheilmoituksen "Command not found"
, johtuu se todennäköisesti siitä, että ESPHomen tietoja ei PATH -tiedostossa. Tämä voidaan tehdä komennolla `echo 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc`
, jonka jälkeen pitää vielä kirjautua ulos ja takaisin sisään.
Firmwaren kääntäminen Link to heading
Seuraavaksi luodaan oma hakemisto esphome
-tiedostoille esim. kotikansioon komennolla mkdir esphome
, jonka jälkeen siirrytään ko. kansioon komennolla cd esphome
.
Tämän jälkeen voidaan sitten kääntää ensimmäinen firmware antamalla komento esphome wizard testi.yaml
, joka ohjaa sinua tekemään firmwaren alkuasetukset neljässä eri vaiheessa.
Vaiheessa yksi ESPHome pyytää antamaan nimen
Kuva: ESPHome vaihe 1
Vaiheessa kaksi valitaan mikrokontrollerin tyyppi eli ESP32 tai ESP8266
Kuva: ESPHome vaihe 2
Vaiheessa kolme annetaan WIFI-verkon tiedot eli SSID ja salasana
Kuva: ESPHome vaihe 3
Lopuksi vaiheessa neljä annetaan OTA -päivityksien salasana
Kuva: ESPHome vaihe 4
Tämän jälkeen tehtyä tiedostoa voidaan muokata eli päätteessä annetaan komento
nano testi.yaml
Eli muodostettu tiedosto näyttää alla olevan mukaiselta
Kuva: ESPHome testi.yaml -tiedosto
Seuraavaksi tiedostoa voidaan vielä muokata sen mukaiseksi, mitä mikrokontrollerilla on tarkoitus tehdä ja kun asetukset ovat valmiina, niin tämän jälkeen annetaan komento
esphome run testi.yaml
Tämä komento kääntää firmawaren ja asentaa sen mikrokontrolleri -kortille. Vaihtoehtoisesti voidaan myös antaa alla olevat komennot, jolloin ensimmäisellä komennolla ESPHome kääntää koodin ja toisella komennolla lataa sen mikrokontrolleri -kortille
esphome compile testi.yaml
esphome upload testi.yaml
Ensimmäinen asennus täytyy kuitenkin tehdä USB -yhteydellä, mutta sen jälkeen päivitykset voidaan ajaa verkon yli suoraan laitteelle.
Seuraavissa tarinoissa voidaan sitten käydä läpi esim. RFID-tagin lukijan tekeminen ja sen yhdistäminen Home Assistantin hälytysjärjestelmän kanssa.
Jaa tämä: