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ä: