IoT ja kotiautomaatio – osa 1: Perusteet kasaan

Hieman normaalista poikkeava postaus, sillä tyypillisesti täällä on nähty lähinnä remontointiin liittyvää ja nyt hypätäänkin suoraan teollisen internetin ja kotiautomaation ihmeelliseen maailmaan. Mottona tässä hankkeessa on Keep-it-simple ja pidättäydy tutussa.Jotta tästä tulee jotain, onneksi oikeassa elämässä (siis remontin ulkopuolella) työskentelen IT-alalla ja suuressa IoT-hankkeessa, joten osa näistä asioista on aivan perusjuttuja 🙂 Mutta saas nähdä miten miehen käy.

Tavoite:

Asetin tälle pikkuprojektille kolme tavoitetta:

  1. Kevyttä kodin monitorointia, aloittaen lähinnä kosteudesta ja lämpötilasta. Lähinnä vintin, keskikerroksen ja kellarin suhteellinen kosteus kiinnostaa, etenkin talvipakkasilla.
  2. Olohuoneen tulevaa virittelyä valmistellen testailla IKEAn TRÅDFRI valoja
  3. Puheohjausvaihtoehtojen kartoittaminen (Alexa on Raspberry Pi, IBM Watson Node-Red & Raspberry Pi ja Apple Siri).

Tästä se alkaa…

Näiden kaikkien pohjalla toimii tavalla tai toisella jokin keskusyksikkö, tähän projektiin valitsin paljon käytetyn single-board-tietokoneen Raspberry Pi 3:sen.

Raspberry Pi 3 Model B, starter kit sisälsi pitkälti kaiken mitä tarvitsin.
Raspberry Pi 3 Model B, starter kit sisälsi pitkälti kaiken mitä tarvitsin.
Sensoriverkoston ajattelin rakentaa Z-Wave standardin päälle, jonka takia lähdin kokeilemaan RazBerry2 moduulia, jonka saa suoraan kiinni Raspberry Pi:hin.

Raspberryn käyttöön otto oli kohtuu helppoa, virta päälle ja laite käynnistyi nätisti. Tosin parin kämmäilyn jälkeen jouduin asentamaan ensimmäisen kerran käyttöjärjestelmän uusiksi.

Raspianin uudelleenasennus menossa…

Sekä myös parin muun kämmähdyksen jälkeen, kuten ”backuppi scenaarion” luomisen takia, tuli asennettua käyttöjärjestelmä uudestaan. Kaiken kaikkiaan taisin joutua asentamaan sen n.4krt tähän päivään mennessä. Onneksi tuo on tehty äärimmäisen yksinkertaiseksi! Vaihdoin myös vakiona tulleen 8GB kortin 16GB:n kortiksi.

Lisävarusteiksi tilasin jo Aliexpressistä USB-muistikortinlukijan toisenlaisen backup-scenaarion luomiseksi, sekä pari jäähdytyssiilä prosessorin ja piirien jäähdyttämiseksi.

Koska töissä on jonkin verran tullut käytettyä Node-Rediä, niin halusin että kaikki mitä teen tässä boksissa perustuu mahdollisimman suurilta osin Node-Red:iin (jos ei ole tuttu, lue täältä lisää). Node-Red on IBM alunperin luoma, sen jälkeen avoimeksi luovuttama UI-pohjainen ”ohjelmointityökalu”, jolla saa kohtuu helposti (minunkin kaltainen henkilö joka ei osaa koodata) luotua vaikka mitä!

Node-Red:llä + Bluemix:llä (nykyään IBM Cloud) + Watson IoT alustalla ja parilla muulla kilkkeellä rakennettu ratkaisu.

Maasta se pienikin ponnistaa. Ensin pari perus nodea paikoilleen, hieman viivoja niiden väliin ja alkoi IKEAn TRÅDFRI valo vilkkua ruokahuoneessa. Kuten kuvasta näkee, tarvittiin vain valoa ohjaava node, johon syötettiin simppelisti on / off viesti. Helppoa ja hauskaa!
Muutama päivä myöhemmin…. Nyt Raspberry Pi lähettää dataa 15min välein pilveen (kts. seuraava kuva), pilvestä pystyy MQTT-viestien avulla komentamaan simuloitua kosteus/lämpötilasensoria, sekä IKEAn TRÅDFRI valoa. Rakensin myös pari nodea, jotka tallentavat lämpötilaa ja kosteutta DB2:seen pilvessä, myöhempiä skenaarioita varten. Enää vain hieman Z-Wave sensoreita kiinni ja viivoja yms.. niin avot!

Pilveen (IBM Cloud) rakensin Node-RED starter appia käyttäen tosiaan toisen pään tästä ratkaisusta. Pilvessä hoidan sensoreilta tulevien viestien tallentamisen tietokantaan, UI-komponentin laitteiden ohjaamista ja niiden viestien visualisointia varten, jne…

Omassa UI:ssani on tällä hetkellä 3 välilehteä, joista tässä on yksi. Nämä käppyrät visualisoivat Raspberry:stä itsestään kerättyä statistiikkaa prosessin kuorma ja lämpötila, muistin ja tallennustilan tila).

Sensoriverkosto olisi tosiaan tarkoitus hoitaa Z-Wave teknologialla. Sitä varten ostin Raspberry Pi:n mukana RazBerry2 piirin (reittimeksi), sekä Aliexpressistä 2kpl kosteus- ja lämpötilasensoreita. Valitettavasti RazBerry2 vaikuttaa hajonneelta yksilöltä, sillä useiden tuntien jälkeen jouduin luovuttamaan sen kanssa. Verkkokauppa, Dustin, josta tuon tilasin, lähetti jo korvaavan yksilön joten silloin uudestaan. Jos ei ala toimimaan, niin tilaan Amazon.de:stä Aeon Labs USB-tikkupohjaisen Z-Wave reitittimen, joka tuntuu myöskin olevaan kohtuu laajasti käytössä oleva. Eli tämän Z-Waven kanssa joudutaan palaamaan vielä asiaan uudestaan.

Aliexpressistä tilattu 2kpl n.6cmx6cm kokoisia kosteus- ja lämpötilasensoreita.

Ääniohjaus

Ääniohjaukseen olen kokeillut nyt kolmea eri vaihtoehtoa:

  1. Alexa (Amazonin), jonka asensin Raspberry Pi:lle.
    • Tässä on jonkin verran rajoituksia, kuten vaatii kaiuttimen kiinni 3,5mm pluginin kautta ja mikrofonin USB:n tai Bluetoothin kautta (mutta tosiaan ei kaiutinta), eli käyttö vaatii Raspberryn samaan tilaan.
    • Myös Alexa skillit tuntuivat hieman haastavilta käyttää, vaatii merkittävästi enemmän panostusta että tuosta saa jotain kasaan
    • Saattaisi olla helpompaa ostaa Alexan Hubi (kaiutin ja mikrofoni, joka on kiinni pilvessä), ja sitten Alexa-Skillien kautta + Node-Red:llä ohjaus.
  2. IBM Watson AI API:t ja palvelut:
    • Työtaustastani johtuen tämä on hyvin luonteva väylä eteenpäin, sillä tiedän ja osaan jonkin verran Watsonin API:sta, sainkin n.30min aikana luotua toimivan puheenohjauksen IKEAn valoille (on / off) toiminnot. Watsonin ympärille saisi rakennettua myös kohtuu helposti chättibotin, jonka kanssa saisi hoidettua nämä operaatiot joustavammin.
    • Ongelmana on äänensyöttö ja äänentoisto. Vaatii niin ikään mikrofonin ja kaiuttimen raspberryyn kiinni, eli vastaava tilanne kuin Alexa:n kanssa. Watsonille ei toistaiseksi ole valmista kaiutinta ja mikrofonipakettia, kuten Alexa Hub.
  3. Apple Siri:
    • Tämä on ehdottomasti kaikista vaihtoehdoista rajoittunein, sillä vaatii AppleHomeKit tuotteita (joita IKEA TRÅDFRI valot muuten ovat!) ja Apple tuotteen jolla ohjata. Siri tosin osaa suomea, joten toimii helposti ja suoraan ilman mitään kummempaa pelleilyä. Tosin Siri ei osannut muuta kuin pistää valon päälle ja pois, kun taas Watsoniin saisin muutakin tehtyä helposti, olettaisin samaa myös Alexa:lta.
    • Oletan (en tiedä), että Applen HomeKit + Siri on kohtuu suljettu järjestelmä, joten en usko saavani sillä ohjattua muita asioita kuin HomeKit sertifioitua tuotteita, joten siksi en myöskään näe tätä lopullisena vaihtoehtona.
    • Helppo ja toimiva pelkkien IKEA valojen kanssa! Puhelin voi olla pöydällä ja riittää kun sanoo ”Hei Siri, sammuta valot”, niin valo sammuu.

Linkkipaketti, jolla pääsee pitkälle:

Olennaisinta tässä oli taustatyö, koska kuten sanoin aiemmin, halusin tehdä mahdollisimman paljon Node-Red:llä, joten googlailin etukäteen mitä kaikkea aiheeseen liittyen toimii Node-Red:llä. Esim. googlasin IKEA TRÅDFRI + Node-Rediä, Z-Wave + Node-Rediä, jne.. Node-Rediin saa siis lisättyä lukuisia paketteja suoraan UI:lta ilman mitään koodaamisosaamista!

Mitä seuraavaksi:

Seuraavaksi tosiaan:

  • Tapellaan lisää Z-Waven kanssa, kunhan seuraava reititinpiiri saapuu postissa (ke/to).
  • Säädetään lisää Node-RED:llä, parannellen pilvipään UI:ta
  • Korjataan IKEA:n TRÅDFRI, koska IKEA päivitti pari päivää sitten reitittimensä, jonka takia node-red nodet eivät toimi enää (IKEA muuttii autentikointiprosessia, joten pitää tehdä pari muutosta, jotta alkaa taas toimia).

Vastaa