Ovikello Smartthingsiin

Asunnossa ollut verkkovirtaan kytkettävä ovikello on ollut poissa käytöstä vuosia. Epäkuntoon menneen ovikellon tilalle on laitettu Clas Ohlsonilta ostettu langaton ovikellosetti, joka sisältää yhden ohjainpainikkeen ja vastaanottimen. Käytössä tuo toimii ihan hyvin, mutta vastaanottimen sijoittaminen on tuottanut hieman haasteita. Vastaanotin on pitänyt sijoittaa asunnon keskikohtaan, jotta se kuuluisi joka puolelle asuntoa. Välillä käy kuitenkin niin, että ovikellon ääni jää taustahälyyn ja sitten arvuutellaan, että painoiko joku ovikelloa vai ei.

Hankin hetki sitten Aeotecin z-wave -hälyttimiä Smartthingsiin ja hälyttimiä on mahdollista käyttää myös lyhyempien merkkiäänten antamiseen (Beep). Aloin heti pohtimaan, että josko hankkisin etu- ja takaovelle Smartthingsiin liitettävät z-wave tai zigbee -painikkeet. Kun painiketta painettaisiin, piippaisivat asunnon kaikki kolme hälytintä ilmoittaen, että joku on etu- tai takaovella. Lisäksi perheen jäsenten puhelimeen tulisi SMS-viesti, jossa ilmoitetaan painikkeen painamisesta.

Verkkokauppa-asiointia ja tuotteen valintaa

Ykköstavoitteena oli löytää z wave -pohjainen painike, koska omien kokemusteni mukaan z-wave -verkko on toimintakykyisempi kuin zigbee-verkko. Amazonin, Gearbestin ja AliExpressin selailun jälkeen päädyin kuitenkin kustannus- ja suositussyistä Xiaomin Aqara -painikkeisiin (WXKG12LM), jotka ovat Zigbee-pohjaisia laitteita. Hintaa yhdellä painikkeella oli 10,38€ sis. toimitusmaksu Suomeen, joten hankintaan meni kaksi painiketta AliExpressista.

Xiaomi Aqara zigbee -painike (Lähde: https://www.gearbest.com/access-control/pp_626695.html)

Xiaomin Aqara -painikkeita jos verkkokaupoista metsästää tai yleensäkin Xiaomin muita sensoreita, niin kannattaa hankkia sensoreita, joissa lukee tuotteen kuvauksessa vuosimallina vähintään 2018. Esimerkiksi Xiaomin Aqara -malliston open/close -sensorit ovat olleet ensimmäisestä tuotannosta lähtien saman näköisiä, mutta tekniikka kotelon sisällä on hieman muuttunut. Xiaomi Aqara -painikkeen mallikohtaiset napin painalluksen ja toiminnan erot kuvattuna alhaalla.

Shake-ominaisuus avasi heti lisää mahdollisuuksia painikkeen käytölle. Kotona saattaisi olla tilanteita, jossa esim. ulkovalot pitäisi pystyä sytyttämään ulkopuolelta. Ovikellon ravistaminen saattaisi olla yksi vaihtoehto em. toiminnan suorittamiseen. Niin ..ja toimisihan tuo siis ovikellonakin 🙂

Tavoitteet

  • Etuovella ja takaovella omat ovikellopainikkeet
  • Napin painallus:
    • Generoi kolmelle hälyttimelle lyhyet piippaukset
    • Pyytää Alexaa ilmoittamaan, että etu-tai takaovella on joku
    • Lähettää tekstiviestit perheenjäsenten puhelimiin
  • Painikkeen ravistus voisi tehdä ”jotain” (tämä jätetään ajatustasolle..)

Meanwhile..

AliExpressin toimitusta odotellessa oli sopivasti aikaa valmistella tulevaa painikkeen kiinnitystä etu- ja takaoven viereen. Painikkeessa on kyllä kaksipuoleinen tarra takana ja tunnetusti Xiaomin tarrat ovat olleet todella tehokkaita, mutta jäin silti pohtimaan muita mahdollisia ratkaisuja. Painike itsessään on ihan ovikellopainikkeen näköinen, joten ovelle tulija kyllä nappia ymmärtää painaa riippumatta, miten se siihen kiinnitetään.

Löysin Thingiversestä kuitenkin Xiaomi Aqara -painikkeelle suunnitellun kotelon. Kotelossa olisi kiinnitystä varten ruuvipaikat ja painike liu’utetaan koteloon paikalleen. Ei muuta kuin mallin tallentaminen 3D-tulostimen muistikortille ja tulostamaan. Lopputuloksena syntyi tällaiset.

Kotelot viimeistelyä vaille valmiina..

Ovikello soi, se ovikellot toi..

Toimituksessa menikin vain viikko, joka yllätti positiivisesti. Heti vain pakettia auki ja katsomaan onko kyseessä juuri ne tuotteet, jotka tilasin. Onnekseni tuotteet olivat juuri oikeat WXKG12LM-painikkeet, sekä tuotteiden valmistuspäiväksi oli merkattu suhteellisen tuore Mar 6th 2019.

Painike ja kaksipuoleinen tarra
Tuli mukana myös ohjeetkin, mutta kieli on hieman vierasta..

Ja kukapa ohjeista muutenkaan välittää? Xiaomin parittamisen logiikkaa on käyty jo muutamassa aiemassa artikkelissa tarkemmin läpi, joten lyhykäisyydessään:

  • ST-applikaatio auki ja uuden ”Thingin” haku päälle
  • Painikkeen pienen nappulan pohjassa pito, kunnes sininen valo syttyy
  • Syklittäistä lyhyttä nappulan painamista, kunnes laite löytyy

Lopulta uudet laitteet löytyivät, mutta järjellistä device handleria ei toki vielä ollut. Siksi laitteet jäävät laitelistaan ”Thing” -tyyppisiksi saatesanoilla ”PLEASE WAIT”.

Tässä välissä hain Xiaomi Aqara buttonin device handlerin ja lisäsin sen Smartthingsiin. Sitten laitteiden asetuksista vaihdoin device handlerin Xiaomi Aqara button -tyyppiseksi ja piakkoin laitteiden ”PLEASE WAIT” olikin ”RELEASED” joka viittasi painikkeen toimintaan.

Last Event -kenttä oli tyhjä, joten painamalla nappia yhden kerran voitiin todeta, että painikkeen painallukset rekisteröityvät Smartthingsiin ja yhteys toimii. Nyt olisikin vuorossa sitten itse sääntöjen tekeminen.

Säännöt

Sääntöjen teko on melko mielekästä puuhaa, sillä suurin osa säännöistä voidaan ja halutaankin tehdä loistavaa Webcorea käyttäen.

”Generoi kolmelle hälyttimelle lyhyet piippaukset” / ”Lähettää tekstiviestit perheenjäsenten puhelimiin” / ”Pyytää Alexaa ilmoittamaan, että etu- tai takaovella on joku”

Nämä toiminnallisuudet saadaan toteutettua täysin Webcoren avulla. Ohessa Piston malliksi. Music Player 2,3 ja 4 ovat hälyttimiä. Music Player 4,5 ja 6 ovat Amazon Echoja, joita voi käyttää Smartthingsin kanssa EchoSpeaks-applikaation kautta. Tekstiviestejä voi webcoressa lähettää useampaankin numeroon, kunhan muistaa käyttää numeroiden välissä asterixia: *.

Ovikellon testaaminen ja asentaminen

Nk. savutestaus sujui ongelmitta. Istuskelin mukavasti työpöydän äärellä, painoin vuorotellen painikkeita ja katselin mitä tapahtuu. Jokainen kolmesta hälyttimestä antaa lyhyen piippausäänen, hyvä. Tämän jälkeen puhelimeen tulee tekstiviesti ”Takaoven ovikello soi” ja samaan aikaan Alexa kuuluttaa jokaisesta Echostaan ”Someone’s at the back door”. Toimii siis täydellisesti. Tehdäänpä lukuisia testejä ja varmistetaan, että tämä 99% varmuudella toimii. Webcoren lokit myös näyttävät, että homma sujuu kuin tanssi. Painikkeet hyppysiin, tulostetut kotelot, ruuvit ja ruuvimeisseli taskuun ja asentamaan.

Tulostusmateriaalina koteloissa käyttämäni PLA ei ole yhtä kovaa ja kestävää materiaalia kuin PETG. PLA-tulosteiden kanssa täytyy siksi olla asennuksissa yleensäkin tarkkana, ettei esim. ylikiristä ruuveilla tulostetta rikki tai taivuta sitä liikaa. Toisaalta näinä ”vihreinä aikoina” kannan oman korteni kekoon ja suosin tulosteissa PLA-muovia siitäkin syystä, että se on biohajoavaa.

Joka tapauksessa, nätisti ruuvit kiristämällä kotelo kiinnitettiin seinälle ja Aqara-painike istui koteloon täydellisesti. Itse asiassa painike on sen verran tiukassa kotelossa, että painikkeen irrottamisen ja shake-toiminnon voi suosiolla unohtaa. Tämä kävi minulla tosin jo aikaisemminkin mielessä, että ehkä parempi pitää painike tiukasti kotelossaan kiinni, ettei lapset ja ovella kävijät innostu irrottelemaan painiketta.

Testaaminen lopullisessa asennuskohteessa

Asentamisen olisi pitänyt päättyä jo, mutta eipä sitten päättynytkään. Painikkeet olivat nätisti seinillä koteloissaan ja ensimmäiset painallukset toimivat kuten savutestauksessakin. Toisella kierroksella etuoven painike ei enää toiminutkaan, mutta takaoven toimi. Mikähän helvetti näille nyt tuli?

Ja eipä kohta toiminut takaoven painikekaan..

Painikkeiden paritus-napin tiivistä painallusta ja Smartthings IDE:n live logging -sivun tuijottelua hiki otsalla. Molemmat painikkeet ovat ovilla, joilla on jo Xiaomin open/close -sensorit. Painikkeet eivät toimi, mutta open/close -sensorit kuitenkin näyttävät toimivan normaalisti. Voiko olla, että zigbee-verkolle tuo kummankin painikkeen välissä oleva ulkoseinä on liikaa? Nappasin painikkeet koteloistaan irti, ja pakkoparitin uudelleen ne ST-hubin kanssa. Yhteys toimii jälleen, mutta vietyäni ne omiin paikkoihinsa hetken päästä yhteys ei toiminut. Samaan aikaan ST-applikaation painikkeen virtuaalipainike toimi. Tämähän meni mielenkiintoiseksi..

Päätin pitää ruokatauon ja koota ajatukseni. Järkeilin, että ongelma vaikuttaa liittyvän vahvasti zigbee-verkon toimintaan. Vaikuttaisi siltä, että laitteet ovat ST-hubin zigbee-verkon reunoilla, jolloin yhteys painikkeen ja hubin välillä lakkaa hetken kuluttua toimimasta. Olin jo pidemmän aikaa myös huomannut, että etuoven open/close-sensori ilmoittaa joskus tuplana tai triplana etuoven tapahtumat. Kun tätä aiemmin selvittelin, sain Smartthings-communitysta parikin kommenttia, joissa yhtenä syynä ongelmalle puntaroitiin zigbee-verkon kuuluvuuden heikkoutta.

Onnekseni Philips Hue-järjestelmässä osa lampuista on Ikean Trådfri-lamppuja. Takaoven osalta vieressä oleva ulkovalo on yksi tällainen. Etuoven osalta eteisen lamppu on myös Ikean Trådfri lamppu. Ikea Trådfrit kykenevät toimimaan Smartthingsiin asennettuina zigbee-verkon toistimina, joita Xiaomi-laitteet myös ymmärtävät. Jos poistan Hue:sta eteisen Ikea-lampun ja takaoven Ikea-lampun, voisin lisätä ne Smartthingsiin ja tehdä näistä samalla toistimet.

Lamput Hue:ssa ”Deletellä” pois, Ikea lamppujen resetointi ( 6 x on) ja uuden ”Thingin” haku Smartthings-applikaatiossa. Lamput löytyivät pienen harkinnan jälkeen, jonka jälkeen löydetyille laitteille määriteltiin ST IDE:ssä ZLL dimmer bulb -device handler. Korjaisiko tämä tilanteen?

Lamput takaisin paikoilleen kiinni ja nyt oleellista olisi ottaa Smartthings-hubista virrat hetkeksi pois. Tämä tapahtuu irrottamalla virtapiuha laitteesta, mutta lisäksi hubin (v2) sisällä olevat back-up -paristot pitää poistaa. Tällä tavoin n.10min virrattomuuden tuloksena Smartthings luo käynnistyessään Zigbee-verkon uudelleen ja Xiaomin laitteet parittuvat suoraan lähimpiin ”emoihin”. Virtakatkon aikana Xiaomi eivät siis löydä ST-hubia vaan Ikean Trådfri-lamput joihin yhdistyvät. Kun hub on virroissaan, Ikean lamput sitten keskustelevat hubin kanssa toistimen roolissa. Prosessin jälkeen Zigbee-verkon uudelleen luontia voi joutua odottelemaan tuntejakin siinä mielessä, että lopulliset ”parhaimmat reitit” voivat vielä vaihtua myöhemminkin, mutta painikkeiden osalta testausta voitaisiin tehdä hetimmiten.

Ja vaikutus tällä oli merkittävä. Painikkeet toimivat täydellisesti ja lokin mukaan painikkeiden ja hubin välinen tiedonsiirto on katkotonta. Nyt muutaman päivän tilannetta seuranneena, ongelmia ei ole enää esiintynyt ja ilokseni olen myös huomannut, että open/close-sensorien tupla/tripla-merkinnät ovat tyystin poistuneet. Painikkeiden toimimattomuuden syynä oli zigbee-verkon huono kuuluvuus. Zigbee ja Z wave -verkoissa on syytä tosiaan aina muistaa, että seinän rakenteet ja välissä olevat laitteet ja asiat vaikuttavat joskus merkittävästikin siihen, miten signaali pisteen x ja y välillä kulkee.

Lopuksi

Olen todella tyytyväinen lopputulokseen. Tavoitteet toteutuivat kaikilta osin ja samalla tuli korjattua ovien sensoreiden pienimuotoiset häiriöt. Xiaomin Aqara -buttonit ovat näyttävän näköisiä ja menevät täysin ovikelloina oven pieleen kiinnitettyinä. Lisäksi uudet ominaisuudet, joita edelliseen ovikellosettiin verrattuna saavutettiin, ovat huikeita. Ei enää mm. niitä hetkiä, jolloin keittiössä mietitään, että onkohan joku ovella..

Jatkokehityksenä ajattelin myöhemmin vielä konfiguroida painikkeet Ispyn kanssa siten, että painikkeen painallus generoit still-kuvan etuoven valvontakamerasta ja se lähetetään jollakin tavalla perheenjäsenien puhelimiin ja Actiontiles-näyttöihin eri puolelle kotia. Täytynee tästä kirjoitella lisää, kun homma realisoituu. Lisäilen tämän ”Wishlistiin!” odottelemaan toteutusta.

Jos kustannuspuolta miettii, niin olemassa olevilla vermeillä ovikellojärjestelmä tuli meille maksamaan n. 22€. Omia työtunteja en laske, koska eihän niitä ikinä lasketa.. 🙂 Verrokkina varmasti hienosti toimiva Ring Doorbell-järjestelmä maksaa n. 150€, mutta jokainen taklaa tavallaan!

Update 2.4.2019: Lisäsin tekstiviestiin linkin etuoven valvontakamera-feediin. Kun tekstiviesti saapuu, voi klikata viestistä urlin auki ja näkee kuka ovella on. Tämä toimii loistavasti. Lisäksi määrittelin, että url toimitetaan tekstiviestin mukana vain niille, ketkä ovat kotona. Tämä siitä syystä, että valvontakameran url toimii vain sisäverkosta. Poissa kotoa puhelimeen tulee urliton viesti, että joku soitti ovikelloa.

Vieritä ylös