Älykodin automatisaatio osa 1. Home Assistant

Home Assistant kojelauta-näkymä.

Olemme lähteneet rakentamaan älykotiamme Home Assistant kotiautomaatioalustan päälle. Home Assistantin käyttöönotto oli yllättävän helppoa. Asennus oli nopeaa eikä ohjelman käyttöönotossa tarvinnut koodata mitään ihmeellistä.

Home assistanttia pystyy käyttämään aika pitkälle ilman koodaustaitoja. Olin tästä hieman yllättynyt ja olinkin varautunut tässä käytettävän YAML-kielen opiskeluun. Visuaalisesta käyttöliittymästä pystyy kuitenkin tekemään todella monipuolisia automaatioita ja skenaarioita ilman mitään koodaustaitoja. Logitech Harmony kaukosäätimen kohdalla, joka ei vielä alkuvuonna sisältänyt visuaalisen käyttöliittymän puolella juuri mitään toimintoja, vaati kuitenkin pientä koodausta. Onneksi tämä tarve oli hyvin pieni ja helmikuun aikana tähänkin tuli päivityksen myötä parannuksia. Nykyisin myös Harmonyyn voi tehdä hieman enemmän toimintoja visuaalisesta käyttöliittymästä.

Home Assistant skriptit - TV:n katsominen.

Syy miksi halusin lähteä testaamaan Home Assistanttia oli pääosin uteliaisuus. Halusin nähdä mihin tästä on ja mitä alustalla voi tehdä. Lisäksi kotiautomaatio on selkeästi kasvava trendi ja Home Assistant on useita tekniikoita yhdistelevä automaatiojärjestelmä. Meillä on ollut kohta vuoden käytössä Philips Hue, joka on suljettu järjestelmä. Suljetut järjestelmät ovat huomattavasti yleisempiä avoimeen järjestelmään verrattuna. Suljetulla tarkoitan tässä sitä, että vakiona esim. Samsungin Smart Things -järjestelmän valot ja ohjausjärjestelmät eivät keskustele Philips Huen vastaavien kanssa. Järjestelmät on rakennettu niin, että täytyy olla saman järjestelmän ohjausyksikkö, kytkimet ja valot.

Tämän takia on olemassa kotiautomaatiojärjestelmiä, jotka rajapintojen kautta yhdistelevat useita järjestelmiä. Tällaisia ovat mm. Cozify ja Home Assistant. Periaatteessa myös Google Home / Google Assistant tai Amazon Alexa tekevät samaa, jos käytössä oleva järjestelmä tukee näitä.

Home Assistant yleisesti

Home Assistant kojelauta-näkymä.

Home Assistant on vapaan lähdekoodin ohjelma. Sitä ei voi ostaa sellaisenaan kaupasta, vaan se pitää asentaa jollekin koneelle. Yleisin tapa lienee asentaa Home Assistant Raspberry Pi -minitietokoneelle. Itse hankin tuoreimman Raspberry Pi 4 Model B 4GB -tietokoneen vain ja ainoastaan tätä käyttöä varten. Yhdessä virtalähteen, kotelon ja 64GB muistikortin kanssa yhteishinta oli noin 144 euroa.

Raspberry Pi 4 Model B.

Tämän jälkeen päästään asentamaan itse ohjelma asennusohjeita noudattaen osoitteesta https://www.home-assistant.io/installation/. Asennus onnistui helposti ja Home Asssitant löysi heti meillä kotona olevat laitteet. Ohjelman sai siis nopeasti käyttöönotettua ja sitten vain tutkimaan ja asettamaan ensimmäisiä automaatioita!

Huomiona tähän, että päädyin vahingossa tuhoamaan muistikortin parin viikon sisällä, eikä Raspberry enää auennut ja avannut Home Assistanttia. Laitoin Raspberryä sen koteloon ja sain aikaan hyvin pienen naarmun muistikorttiin, mutta se riitti tuhoamaan koko kortin. Tätä selvitellessä huomasin, että Raspberryn saa nykyään boottaamaan muistitikulta. Se vaatii hieman enemmän hommaa, mutta kannattaa ehdottomasti tehdä. Nyt Home Assistant pyörii muistitikulta, mutta tulen siirtämään sen siirrettävälle SSD-levylle. MicroSD-muistikortit ovat erittäin kalliita, joten hankkimalla SSD-levyn saa samalla rahalla enemmän muistitilaa sekä toimintavarmuutta. Suosittelen ehdottomasti tätä vaihtoehtoa, ei tarvitse asennella kaikkea uudestaan kun muistikortti hajoaa.

Huen rajoitteet

Vaikka Philips Hue on hyvin kyvykäs järjestelmä, on silläkin rajoitteensa. Hue on rakennettu yksinkertaiseksi eli sen kyvykkyydet ovat rajoitettuja. Hyvä puoli tässä on se, että käyttöliittymä on yksinkertainen ja helppo oppia. Perusasiat hoituvat todella helposti. Huen automaatiot ovat kuitenkin hyvin yksinkertaisia ja näiden rajoitteet tulivat vastaan eritoten liiketunnistimen kanssa.

Kun valaisin on kytketty liiketunnistimeen, yliajaa liiketunnistin kaikki muut asetukset. Meillä on muun muassa eteisessä liiketunnistin, joka sytyttää kattovalaisimen päälle kun havaitsee liikettä. Tovi taaksepäin, kun kasasin eteisessä kaappia, jota varten tarvitsin valoa, asetin Huen sovelluksesta eteisen valon täysille. Kävi kuitenkin niin, että liikkuessani eteisessä, yliajoi liiketunnistin tämän aiemmin laitetun skenaarion ja himmensi valaisimen valoa liiketunnistimen antaman käskyn mukaisesti sekä sammutti sen kesken työn, koska olin hetkittäin liikkumatta. Käytännössä siis tällaisessa käyttötapauksessa minun olisi pitänyt Huen applikaatiosta käydä kytkemässä liiketunnistin pois päältä.

Home Assistant avuksi

Home Assistantilla voin tehdä monimutkaisempia automaatioita. Rajoituksena on vain oma mielikuvitus ja koodaustaidot. Visuaalisellakin käyttöliittymällä automaatioihin voi luoda paljon lisäehtoja ja YAML-koodilla vielä laajemmin. Esimerkksi liiketunnistinta varten loin automaatioon lisäehdon, joka tarkistaa onko valo päällä. Eli jos eteisen valoa ei ole ennalta sytytetty jotain muuta tarkoitusta varten, niin liiketunnistin sytyttää sen. Jos valo oli ennalta päällä, liike ei aiheuta toimenpiteitä.

Home Assistant automaation ehdot.
Home Assistant automaation toiminnot.

Sama YAML-koodina:

- id: '1612617287715'
  alias: Eteisen liike
  description: Päivällä
  trigger:
  - type: occupied
    platform: device
    device_id: 0e58a3bf1c9188b5a91f3469de1132c2
    entity_id: binary_sensor.eteistunnistin_occupancy
    domain: binary_sensor
  condition:
  - condition: time
    after: '6:00'
    before: '23:00'
  action:
  - choose:
    - conditions:
      - condition: device
        type: is_off
        device_id: a5a48377be60d789624dc5561d3b851f
        entity_id: light.eteisvalo
        domain: light
      sequence:
      - service: input_boolean.turn_on
        data: {}
        entity_id: input_boolean.eteinen_man
      - scene: scene.eteinen_himmea
    default: []
  mode: restart

Toinen automaatio tuli luoda, kun valo halutaan sammuttaa liikkeen päätyttyä. Jotta liikkeen loppuminen ei sulje valoa silloin kun valo on manuaalisesti laitettu päälle, täytyy luoda yksi virtuaalikytkin. Loin Home Assistanttiin virtuaalisen on-off -kytkimen, joka kertoo onko valot laitettu päälle automaatiolla vai manuaalisesti. Eli kun liike sytyttää valon (jos se ei ollut ennalta päällä), laittaa se samalla tämän virtuaalikytkimen päälle, joka puolestaan kertoo, että valo on sytytetty automaatiolla. Kun liike lakkaa, on tässä automaatiossa ehto, joka tarkistaa virtuaalikytkimen tilan. Jos kytkin on päällä, sammutetaan valot. Jos kytkin ei ole päällä, kertoo se siitä, että valojen halutaan olevan päällä, eikä sammuttamisautomaatio käynnisty.

Lisäksi valojen sammuttamisessa on vielä viive, jottei se katkaise valoja samantien kun liike lakkaa. Tämän voi toteuttaa muutamin eri tavoin. Itse totesin toimintavarmimmaksi tavan, joka laukaisee automaation vasta kun liikettä ei ole havaittu tiettyyn aikaan. Meillä on nyt asetettu tähän 15 s. Vasta kun liiketunnistin ei ole 15 sekuntiin antanut signaalia liikkeestä, ajetaan yllä kuvaamani toiminnot valon ja virtuaalikytkimen muutoksista.

Home Assistant automaation ehdot.
Home Assistant automaation toiminnot.

Sama YAML-koodina:

- id: '1612621415964'
  alias: Eteisen liike lakkaa
  description: ''
  trigger:
  - type: not_occupied
    platform: device
    device_id: 0e58a3bf1c9188b5a91f3469de1132c2
    entity_id: binary_sensor.eteistunnistin_occupancy
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
  condition:
  - condition: state
    entity_id: input_boolean.eteinen_man
    state: 'on'
  action:
  - service: input_boolean.turn_off
    data: {}
    entity_id: input_boolean.eteinen_man
  - type: turn_off
    device_id: a5a48377be60d789624dc5561d3b851f
    entity_id: light.eteisvalo
    domain: light
  mode: restart

Automaatioon voisi laittaa myös viiveen, joka tekee toiminnot esim. 15 sekuntia sen jälkeen kun liike loppui. Tämä oli kuitenkin käytännössä toimimaton, koska uusi liike tämän viiveen aikana ei sulkenut automaatiota. Automaatio on jo ”laukaistu”, mutta se odottaa vielä toimintojen suorittamista. Siksi valo saattoi sammua ja välkkyä kun liiketunnistimen ohi käveli edestakaisin. Kun ehtona on yllä esitetysti, että liiketunnistin ei ole tiettyyn aikaan nähnyt liikettä, ei automaatiota lähdetä suorittamaan liian aikaisin. Näin valo pysyy päällä oikein ja valot sammutetaan vasta kun liiketunnistimen edessä ei vähään aikaan ole tapahtunut mitään.

Nyt Home Assistantilla on saatu luotua haluamamme tilanne, jossa samaa valoa tai valoryhmää voidaan ohjata sekä liikkeellä että manuaalisesti ilman, että nämä vaikuttavat tahattomasti toisiinsa.

Jaa artikkeli kaverille:
Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Villa Uitto - 2020 ->