3D-tulostus- ja kahviautomatiikkaa

Kirjoittelin eräässä artikkelissani Fibaron älypistokkeista ja automatisoinnista. Artikkelin lopussa kommentoin, että tarvitsen näitä älykkäitä pistokkeita enemmänkin, jotta saisin myös muita laitteita automatisoinnin, sekä virrankulutuksen seurannan piiriin. Kävin ostamassa yhden kappaleen Fibaroita lisää ja valjastin sen 3D-tulostinkäyttöön. Tulostimen edessä aiemmin käytetty Telldusin z-wave pistoke löysi uuden kodin kahvinkeittimen luota. Aloitetaan kuitenkin ensin 3D-tulostimesta ja siirrytään sitten kahvittelemaan.

3D-tulostusta

Tulostimena käytän Creality 3 Enderiä ja se sijaitsee asuntomme autotallissa. Vaikka laite on päivitetty mm. thermal runaway protectionin osalta, niin silti 3D-tulostinta on hyvä valvoa, kun sitä käytetään. Tulostussessio saattaa kestää parikin päivää, joten autotallissa vieressä istuminen ei ole vaihtoehto. Tästä syystä tulostin on syytä kytkeä etähallittavaan pistokkeeseen, eli Fibaroon. Jos 200c suutin tai 60c ”bed” tekee jotain odottamatonta, voidaan tulostimesta kytkeä virrat etänä pois. Tämän lisäksi oma Enderini on kytketty Raspberry Pi:ssa pyörivään OctoPrint-hallintaohjelmaan ja tulostusta voidaan valvoa myös ip-kameran kautta.

Tällä kokonaisuudessa mahdollistetaan tulostimen täydellinen hallinta ja seuranta etänä. Voin tehdä, tai hakea itselleni sopivan stl:n, ladata sen Octoprintin web-interfacen kautta tulostimelle ja käskeä lopulta tulostamaan. Octoprintista näkee reaaliaikaisesti tulostuksen tilanteen ja mm. laitteen lämpötilat. Octoprintia ja IFTTT:tä käyttäen olisi mahdollista hallita älypistorasiaakin, mutta itse haluan keskittää automatisoinnin SmartThingsiin.

Virrankäytön haasteet

3D-tulostimen virrankäyttöprofiili on melkoisen ”haastava” verrattuna esim. astianpesu- tai pyykinpesukoneeseen. Astianpesukoneen ollessa standby-tilassa, virrankulutus on suhteellisen tasaista seurattavaa. Ei juurikaan piikkejä tai muuten levotonta käyttäytymistä. 3D-tulostimen käynnistyttyä standby-tilaan, tuuletin tai tuulettimet ovat oletuksena käynnissä. Tällöin kulutus näyttää olevan mitä tahansa 15W – 300W väliltä, hieman pyörimisnopeudesta ja x syistä riippuen. Enderin tuuletin pyörähtää standby-tilassa joskus vain hetkittäin nk. pumppaamalla, mutta tarpeen vaatiessa laite komentaa tuulettimen pyörimään tasaisesti. Riippuen siitä mitä tuuletin tai laite yleensäkin tekee, saattaa virrankulutus olla mitä vain. Kun 3D-mallin tulostus aloitetaan, pysyy virrankulutus tällöin 60W – 300W välillä, mutta käy tulostuksen aikana jopa alle 1W:n hieman tulostustilanteesta riippuen. Tästä syystä pistonia olisi mahdoton saada toimimaan ilman, että apuna käytettäisiin erillistä muuttujaa (printer_running).

Tulostus-piston

Alla olevassa pistonissa jos (IF) Fibaro-älypistokkeen virta nousee yli 30W ja (AND) jos (IF) muuttuja on ”false”, niin (THEN) annetaan muuttujalle arvo ”true”. Antamalla tämän arvon, estetään pistonia tekemästä THEN-osiossa määriteltyjä asioita aina uudelleen, kun 30W:n raja ylitetään. Tämä ylitys tapahtuu normaalitulostuksen aikana useita kertoja, joten kiinnostavaa on tietää vain se eksakti hetki, kun 30W:n virrankulutus ylitetään ensimmäistä kertaa. Tämän lisäksi lähetetään push-notifikaatio ”3D-tulostin käynnistetty”. Huomioithan, että käytät ”..and store in Messages”, mikäli käytössäsi on SmartThings mobiiliapplikaation uusin versio (ei Classic). Muutoin viesti eivät tule perille asti.

Kun tulostus päättyy, siirtyy tulostin standby-tilaan. Tulostuksen jälkeisessä stanby-tilassa virrankulutus on tasaisempaa n. 15W -luokkaa. Jos (IF) tulostuksen jälkeisessä standby-tilassa kulutus on 3 minuutin ajan alle 20W ja muuttuja on edelleen ”true”, niin (THEN) lähetään push-notifikaatio ”3D-tulostus on valmis” ja muuttujalle vaihdetaan arvo ”false”.

Lopuksi tehdään vielä 15min wait, jonka jälkeen älypistoke katkoo virrat tulostimelta ja lähettää push-notifikaation ”3D-tulostin sammutettu”. Odotteluajan olen pistoniin määrittänyt sen takia, että tulostan usein parikin printtiä putkeen. Kun tieto tulostuksen valmistumisesta tulee, ehdin poistamaan printin tulostimen ”bediltä” ja lähettämään uuden tulosteen Octoprintin kautta ilman, että tulostimen virrat välissä katkaistaan. Jos tulostustöitä ei ole useampia, sammutetaan virrat 15min päästä kokonaan pois eikä tuhlata kallisarvoista energiaa.

Nyt tulostin on automaation piirissä ja saan notifikaatiot tulostimen käynnistyttyä, tulostuksen valmistuttua ja tulostimen sammuttua. Jossakin vaiheessa täytyy vielä perehtyä Octoprintin saloihin ja selvittää, että olisiko mahdollista saada notifikaatioita mm. sellaisista tilanteista, joissa bedin tai suuttimen lämpötila nousee tietyn raja-arvon yläpuolelle. Myös notifikaatio esim. ”thermal runaway protectionin” kytkeytymisestä päälle olisi arvokasta tietoa vastaanottaa.

Kahville

3D-tulostimen edessä ennen Fibaro-älypistokkeen käyttöönottoa oli etähallittava Telldusin z-wave pistoke, joka ei kykene seuraamaan virrankulutusta. Käytännössä ainoa asia mitä pistokkeella voi tehdä, on kytkeä se automaation kautta päälle ja pois. Tämän lisäksi z-wave -pistoke toimii toki z-wave -verkon toistimena, joten jokin käyttötarve pistokkeelle varmasti löytyisi.

Muistan omistaneeni sellaisen kahvinkeittimen n. 15 vuotta sitten, jossa oli sisäänrakennettu ajastin. Illalla kun kahvinkeittimen latasi kuntoon ja määritteli ajastuksen sopivasti herätykseen, niin oli yllättävän mukavaa herätä kahvintuoksuun. Kahvinkeitin oli kuitenkin lyhytikäinen ja seuraavaksi hankittiin kuluttajakäytön priimaa, eli Moccamaster. Moccamaster on nyt porskuttanut 14 vuotta vahvasti ja koko tänä aikana pannu on rikottu vain kerran. Se mitä Moccamasterista kuitenkin puuttuu, on automaattinen päälle-pois -kytkentä, sekä ajastin.

Molemmat ominaisuudet saadaan käyttöön Telldusin -älypistoketta ja SmartThingsiä käyttäen. Tästä seuraavaksi lisää.

Virtual switcheja ja piston

Kahvinkeittimen ajastus on meillä tarpeellista vain aamuisin ja eritysesti aktiivisimman klo 05.30 – 08.00 välillä. Tuolloin arkisin yleensä herätään, lähdetään kouluun tai töihin, ja yleensäkin valmistaudutaan aamun askareisiin. Lähdin aluksi luomaan SmartThings-laitekantaan virtual switcheja (virtuaalisia kytkimiä) em. ajankohdalle puolen tunnin välein.

Virtual switchit luodaan siitä syystä, että ajastuksia on mahdollisuus hallita myös ActionTiles-paneelin kautta virtuaalipainiketta painamalla. Tämä ActionTiles-paneeli pyörii vanhassa tabletissa kahvinkeittimen vieressä. Virtual switvhien luonnin jälkeen siirryttiin tekemään sopivaa pistonia. Piston rakennettiin siten, että jokainen äskettäin luotu virtual switch on omassa IF-osiossaan. Jos esim. ”virtual_switch_Coffee_0530” -painiketta klikataan ActionTilesissa, lähettää se push-notifikaation ”Kahvi ajastettu klo 05.30” ja ajastaa älypistokkeen käynnistymään klo 05.30. Seuraavassa IF-lauseessa käytetään klo 06.00 switchia jne.

Viimeiset kaksi lauseketta pistonissa pyrkivät parantamaan kodin turvallisuutta. Jos (IF) pistoke on 30min päällä, (THEN) se kytketään automaattisesti pois päältä. Jos (IF) taas kukaan ei ole kotona, kytketään pistoke automaattisesti pois päältä.

ActionTiles

Seuraavaksi luodaan ActionTilesiin uusi nk. Kahviajastus-paneeli. Paneeliin lisätään kaikki äskettäin luodut virtual switchit. Kun Kahviajastus-paneelissa painetaan jotakin painiketta, ajaa se webCoREssa pistonin ja ajastaa kahvinkeittimen käynnistymään painikkeessa määriteltynä aikana. Manuaalista työtä tässä toki kuitenkin vielä on, sillä kahvinkeitin pitää illalla muistaa ladata (no shit Sherlock..), sekä kahvinkeittimen oma virtapainike pitää olla vastedes aina päällä. Tämä jälkimmäinen on alussa varmasti se haastavin asia muistaa 🙂

Valitaan Kahviajastus-paneelista haluttu ajastus, ja palataan takaisin ActionTiles-pääpaneeliin

ActionTilesin Kahviajastus-paneeli löytyy keittiössä käytettävän tabletin ActionTiles-pääpaneelista klikkaamalla.

Pääpaneelin kamerafeedit ja nimet blurrattu, Kahviajastus-painikkeella pääsee Kahviajastus-paneeliin

Lopuksi..

No tämäkin viikko onnistuttiin kehittämään kotia taas entistä älykkäämmäksi. Kahviajastusta on nyt ehditty kolmena aamuna testaamaan ja toimii moitteettomasti. Kahvi on nätisti valunut kun saavun unisena keittiöön. Vielä kun joku murskaisi sen pavuista ja kaataisi kuppiin.. ai mutta tätä varten on jo sitten ihan kahviautomaatteja olemassa. 🙂

Tulostuksen osalta Fibaron pistokkeista on kyllä suuri hyöty. Älypistoke täydentää laitteen hallittavuutta OctoPrintin ja kameravalvonnan rinnalla. Tälläkin kertaa on pakko todeta, että virrankulutusta on todella antoisaa seurattavaa, mutta enemmän olen innoissani notifikaatioista, joita virrankulutuksen pohjalta pystyn generoimaan. Olen jo ”päissäni” pohtinut seuraavaa virrankulutuksen seurantaan kytkettävää laitetta. Mikäli induktiotason ja erillisuunin virrankulutuksen saisi jotenkin seurantaan, olisi mahdollista määritellä sääntöjä uunin virtojen katkaisemiseksi kodin turvallisuuden takia. Vieläkin enemmän houkuttelee ajatus siitä, että josko huippuimurin tehoa voisi automatisoida kun induktiotaso ja uuni kytkeytyy päälle.

Lisätäänpä tämä muuten Todo-listalle -check-!

Vieritä ylös