Seuraavaksi ajatteli jatkaa tarinaa Home Assistantin käytöstä hälytysjärjestelmänä. Tässä tarinassa käyn läpi RFID-lukijan tekemisen ja liittämisen Home Assistantiin siten, että RFID- tagilla tai -kortilla voi laittaa hälyt päälle ja ottaa ne pois päältä.
Materiaalina tarvitaan RFID-lukija, RFID -tagi sekä jokin ESP8266 -mikrokontrolleri. Minulla on RFID -lukijana joy-it RFID-RC522 -lukija ja mikrokontrollerina Wemos D1 Mini lähinnä sen pienuuden vuoksi. Mikrokontrollerissa käytän firmiksenä ESPHome -firmwarea, koska se on hyvin yhteensopiva Home Assistantin kanssa.
RFID -lukijan rakentaminen Link to heading
Aluksi aloitetaan RFID -lukijan rakentaminen kytkemällä RFID -lukija mikrokontrolleriin seuraavasti:
Kuva: RFID -lukijan kytkentä, kuva luotu käyttäen Fritzing -sovellusta
Eli pinnien osalta kytkentä on alla olevan mukainen:
RFID-RC522 (joy-it:in lukijan pinnijärjestys) | WEMOS D1 MINI |
---|---|
GND | GND |
VCC | 3V3 |
NSS | D8 (GPIO15) |
SCK | D5 (GPIO14) |
MOSI | D7 (GPIO13) |
MISO | D6 (GPIO12) |
RST | RST |
Taulukko: Pinnien kytkentä
Seuraavaksi muokataan ESPHome -asetustiedostoa sopivaksi eli mennään ESPHomen hakemistoon, joka luotiin asennuksen yhteydessä home
-hakemistoon eli annetaan komento
cd esphome
Seuraavaksi tehdään firmiksen asetustiedosto seuraavalla komennolla
nano nodemcu-rfid.yaml
Tämän jälkeen kopioidaan tiedostoon seuraavat rivit
esphome:
name: nodemcu-rfid
platform: ESP8266
board: d1_mini
wifi:
ssid: "tähän wifi-verkon ssid"
password: "tähän wifi-verkon salasana"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "rfid Fallback Hotspot"
password: "tähän jokin salasana"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
# Enable OTA updates
ota:
# Enable web-server
web_server:
port: 80
spi:
clk_pin: GPIO14
miso_pin: GPIO12
mosi_pin: GPIO13
rc522_spi:
cs_pin: GPIO15
update_interval: 1s
# Alla oleva asetus lisää tagin automaattisesti Home Assistantiin, kun lukija lukee tagin
on_tag:
then:
- homeassistant.tag_scanned: !lambda 'return x;'
# Sensorit
text_sensor:
- platform: wifi_info
ip_address:
name: 'IP-address' # Mikrokontrollerin IP-osoite
ssid:
name: 'SSID' # Mikrokontrollerin wifi-verkko, johon se on yhdistetty
Kun asetukset ovat kunnossa, edetään samaan tapaan kuin tehtiin aikaisemmassa tarinassa, jossa luotiin pulssianturi laskemaan sähkömittarin pulsseja. Eli yhdistetään mikrokontrolleri-kortti USB-kaapelilla tietokoneeseen ja annetaan alla olevat käskyt
esphome compile nodemcu-rfid.yaml
esphome upload nodemcu-rfid.yaml
Ensimmäisenä käännetään firmis compile
-käskyllä ja tässä menee hetki aikaa riippuen tietokoneen nopeudesta. Kun kääntäminen on valmis, niin seuraavaksi annetaan käsky upload
, joka lataa käännetyn firmiksen mikrokontrollerille. Kun firmistä ladataan mikrokontrolleriin, niin valitaan se vaihtoehto, jolla firmis ladataan USB-väylän kautta.
Yhdistäminen Home Assistantiin Link to heading
Seuraavaksi voidaan yhdistää tagi Home Assistantiin eli luetaan tagi lukijalla, jonka se pitäisi ilmestyä Home Assistantiin näkyviin asetuksien alle kohtaan “Merkinnät” (kts. kuva alla)
Kuva: Home Assistant, Asetukset - Merkinnät
Luetut tagit näkyvät luettelossa ja avatessa tagin tiedot, ne näkyvät alla olevan mukaisesti (tiedoista poistettu tagin tunniste ja QR-koodi)
Kuva: Tagin tiedot
Automaatioiden luominen Link to heading
Seuraavaksi luodaan tagille automaatio eli painetaan tagin rivillä tätä “robotin pää” -kuvaketta
Kuva: Automaation lisääminen tagille
Ensimmäisenä lisätään automaatio, joka kytkee hälytykset päälle, kun tagi skannataan. Eli alla oleva automaatio tarkastaa aluksi ehdon, että hälyt eivät ole päällä ja mikäli tämä ehto toteutuu, niin automaatio laittaa ne päälle. Kuvassa näkyvä koodi asetetaan Alarmon asetuksista, kun luodaan käyttäjä, jolle tagi kohdistetaan.
Kuva: Hälyt päälle, kun tagi skannataan
Lopuksi luodaan vielä toinen automaatio, jolla hälyt otetaan pois päältä. Eli tässä automaatio tarkistaa aluksi, että hälyt ovat päällä ja mikäli tämä ehto täyttyy, niin automaatio ottaa ne pois päältä.
Kuva: Hälyt pois päältä, kun tagi skannataan
Eli nyt meillä on luotuna Home Assistantin hälytysjärjestelmään lukija, joka lukee tagin ja laittaa sen perusteella hälytykset päälle tai pois päältä.
Seuraavaksi tätä Home Assistantin avulla tehtyä hälytysjärjestelmää voidaan laajentaa esim. kameroilla, jotka voidaan laittaa ottamaan kuvia tai videoita, kun hälyt ovat lauenneet ja lähettämään ne esim. sähköpostiin, Telegram -sovellukseen tai Signal -sovellukseen. Vaihtoehtoja siis löytyy mitä vain keksii tehdä.
Jaa tämä: