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
GNDGND
VCC3V3
NSSD8 (GPIO15)
SCKD5 (GPIO14)
MOSID7 (GPIO13)
MISOD6 (GPIO12)
RSTRST

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