Näytetään tekstit, joissa on tunniste ATK. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste ATK. Näytä kaikki tekstit

maanantai 7. syyskuuta 2015

Valoautomaatio - valmistelut ja rautapuoli

Muutamassa edellisessä blogipostauksessa olinkin jo maininnut, että jossain vaiheessa ryhdyn valoautomaationkin kimppuun. Ja lomaviikoilla ehdin pikkuisen taas projektiin antaa vapaa-aikaani. Talvella jo koitin yleismittarilla ihmetellä, että miten teknisessä tilassa oleva matalasähköimpulsseilla toimiva valojen kytkentätaulu toimii. Mutta tulokset olivat laihoja kun en saanut kunnollisia arvoja mitattua. Mutta sitten tajusin, että hetkinen kokoajan olen yrittänyt tasavirtaa mitata, mutta noi valokatkaisijat voivat myös toimia vaihtovirralla. Joten yleismittarin vipu vaihtovirralle ja uusi mittaus, ja johan alkoi lyyti kirjoittamaan. Muutama ärräpää pääsi, kun AC:n ohjaus on pikkuisen kinkkisempää kuin DC:n (mutta enpä speksausvaiheessa tajunnut sähkärille sanoa, että tasavirtaa haluaisin ohjausimpulssien olevan).

40 kaksikärkistä relettä siis hoitaa teknisessä tilassa valojen ohjausta. Huoneissa on Schneiderin Exxact-sarjan impulssikytkimet, joilla voi valoja ohjata normaalisti. Sen lisäksi nyt on siis tarkoitus lisätä automaatio, että pystyn katsomaan ja ohjaamaan valojen tiloja tietokoneelta. Vaihtovirran seuraamiseen tilasin sitten kymmenen 16-pinnistä (4-kanavaa) octocoupleria. Neljä euroa ei ole paha hinta näille (ebay URL). Näillä siis olisi tarkoitus lukea noita kaikkien releiden mahdollista 24V AC virtaa ja generoida siitä 3.3V DC signaali BeagleBone Blackin GPIO:lle. Nämä osat ovat vielä tilauksessa, joten siitä erillinen blogipostaus myöhemmin.

Signaalin ohjauspuolella minulla oli osat hankittuna jo ennestään, ja olinkin maininnut niistä edellisissä blogipostauksissa (http://omakotikotitalomme.blogspot.fi/2015/01/internet-shoppailua-tekniikkaharpakkeita.html#mcp23017 ja kolme http://omakotikotitalomme.blogspot.fi/2013/12/tekniikkaa.html#relelevy).


Nyt kun tässä on jonkin aikaa ollut mietintämyssy päässä, että miten automaation toteuttaisin. Joten eikun pistetään kolvi tulille ja katsotaan mitä saadaan aikaiseksi. I2C:n yli olisi tarkoitus 3.3V signaaleilla ohjata noita relelevyjä MCP23017:aa apuna käyttäen. Olin jo aikaisemmin testaillut tuota yhdistelmää, joten periaatteessa systeemin pitäisi toimia. Joten koputetaan puuta ja toivotaan parasta.

Aika siistin näköisen tuloksen sain kolvaillulla aikaan. 5x7cm levylle mahtui nätisti kolme MCP23017 mikrokontrolleria, jossa on yhteensä 48 GPIO:ta. Talossamme kun on tällähetkellä vain 40 kaksikärkistä relettä, niin toi riittää vallan hyvin ja on laajennusvaraakin. Nurkkaan pistin kaksi pinniä, johon voi raspberrystä pistää 3.3V ja GND. Ja I2C pinnit pistin kahteen paikkaan, jolloin voi tarvittaessa I2C läpiviennin jatkaa muihinkin laitteisiin. Levyn takapuoli ei olekaan niin valokuvauksellinen (ja mulla ei ollut SMD vastuksia hyllyssä) kun kolvikäsi vapisee ja kuumaliimalla varmistettiin kolvausvetojen toimivuus. Mutta siis pistin jokaisen GPIO pinnin perään pistin 2.2kΩ vastuksen, niin ei ole vaaraa, että Raspberrystä otettaisiin liikaa virtaa, ja relelevyt toimivat silläkin virralla. Tämän levyn osien hinnaksi tuli alle 5 euroa, ei ole kovin paha jos vertaa kaupallisiin KNX automaatiojärjestelmien tuhansien eurojen hintalappuun.

Tietenkään omalle työlle ei laske hintaa, ja vaikka laskisikin, niin paljon halvemmaksi tulee tehdä itse. Jos koko talon olisi tehnyt KNX-tekniikalla, niin sähkötöiden kokonaiskustannukset olisi olleet 10000-20000e kalliimpi kuin perinteisellä tekniikalla toteutettuna (kuten minun kaksikärkisillä releillä). Ja itse tehtynä kaikkien ohjauslaitteiden (kuten Raspberryt, Beaglebonet, äänen vahvistimet, Android tabletit yms.) yhteishinta on edelleen alle 1000e. Eli tavoitteena on saada yli 10-20ke säästöt tekemällä koko valoautomaatio itse.

Nopeasti testailin tuota ekana työhuoneen Raspberryllä ja hyvin tuntui toimivan. Seuraavaksi pitäisi sitten testata itse teknisessä tilassa oikeaa systeemiä. Jotenkin kiehtoo, että automaatio olisi myös näkyvillä, joten ajattelin, että laitteet voisi kiinnittää sähkökaappia suojaavaan muovikanteen (ja mahdollisesti suojata se sitten läpinäkyvällä muoviplexillä). Jolloin sitä voi ihailla ulkoapäin ja sitä on helppo laajentaa. Sitten olisi hyvä että sen kannen saisi myös irti, joten ajattelin että sähkökaapin liittimien läpiviennit toteutettaisiin vaikka vanhoilla kovalevykaapeleilla, kun lättäkaapeleissa on 40 pinniä ja semmoisten liittimien läpivienti kannen läpi ei ole vaikeaa ja semmoisen kaapelin kiinnitys/irroitus on helppoa.

Yllä on tilannekuva kun kolvailin 20-pinnistä rimaa signaalikaapeleille, kahdella tuommoisella saa 2x20 pinnirivin johon voi kovalevykaapelin pistää kiinni. Ja seuraavassa kuvassa sitten itse kaapeli on kiinnitetty teknisessä tilassa olevaan matalajänniteohjaustauluun. Nyt kun se on kiinnitetty, niin pitäisi olla talon jokaisen kaksikärkisen releen ohjaus mahdollista.

Ohjauksen lisäksi olisi kiva tietokoneen aina tietää, että on valo päällä tai ei. Sitä varten on kaksikärkiset releet, eli toisessa kärjessä menee 220V ja toisessa 24V AC vaihtovirta (jolla normaalisti ohjataan seinäkatkaisijan lediä). Tämän ledisignaalinen väliin olisi tarkoitus päästä ilman että ledit lakkaisivat toimimasta. Tämän ongelman ajattelin ratkaista octocouplereilla, jolloin 24V AC vaain triggeröi Raspberryn 3.3V signaalin, eikä tuhoa koko tietokonetta :-)

Eli hankin ebaysta kasan TLP521-4GB octocoupleita (ebay link). Neljällä eurolla pystyy lukemaan ja generoimaan 40 signaalia, eli aika edullinen ratkaisu. Kolvailin kasaan tommosia pikku emolevyjä, jotka voivat lukea 8 kaapelia kerralla. Viidellä tuommoisella lukee kaikki 40. Noiden viiden levyn GPIO pinnit on tarkoitus kiinnittää 40-pinniseen lattakaapeliin, jolla tehdään läpivienti sähkökaapista Raspberryn puolelle.

Kaikki ei mennyt kuin Strömsössä, kun oli postissa joku astunut optocoupler lähetyksen päälle, ja kaikki pinnit olivat vääntyneet. Vääntelin niitä suoriksi, mutta lopulta kuitenkin suurimmassa osassa oli joku pinni sisäisesti katkennut. Joten kolvailuja pitänee vielä korjailla jälkeenpäin. Kun nyt taitaa vain 30 signaalia toimia. Joten sitä joutuu odottelemaan hetken, että varaosat saapuu... Ja lopulta osat saapuivatkin, niin pääsi jatkamaan tämän postauksen kanssa näpertelyä.

Sitten itse sähkökaapin kanteen, jonne kasasin automaation, niin että koko komeutta voi ihailla ulkoapäin. Yläosaan kuumaliimasin kuusipaikkaisen jatkojohdon. Alanurkkaan liimasin 40-pinnisen kovalevykaapelin liittimen, josta menee sitten piuhoitus kolmeen 16-releen levyyn. Näillä levyillä voi lähettää valoille 24V AC ohjaussignaaleja. Relelevyjen yläpuolelle sitten MCP23017 GPIO levy, jonka vieressä on kaiken ohjauksen sydän eli Raspberry Pi 2-minitietokone. Samoin väkersin toisen MCP23017 GPIO levyn (ja 40-pinnisen liittimen), jolla voi sitten lukea kaksikärkisten releiden tilaa. Kannen sisäpuolelle pistin viisi tuommoista 8-kanavan optocoupler levyä, joilla 24V AC vaihtovirtasignaali tunnistetaan, ja josta generoidaan 3.3V DC tasavirtasignaali edellä mainitulle GPIO levylle. Tällä tavalla Raspberryllä voi ohjata 96:tta GPIO:ta, joka riitää talon jokaisen valon ohjaus- ja tilasignaalille.

Edellisillä optocoupler levyillä saa heittää vesilintua, kun Internetin ihmeellisestä maailmasta luin kolvailua seuraavana päivänä, että optocouplerit saattaa kärvähtää yli 5V signaalista (joten taittuneiten pinnien lisäksi saatoin itse kärventää muutaman piirin). Muutaman illan kolvaukset meni hukkaan, mutta aina oppii jotain uutta. Siispä avasin virtapiiri simulaattorin ja piirsin itselleni 24V AC -> 3.3V DC muuntajan, jolla pitäisi optocouplereitten toimia ilman ilman savua. Tässä suunnitelma piirrettynä ja oscillaattorin laskelma, että voltit olisi raja-arvojen sisällä ja tilavaihtumat tunnistettaisiin 4ms:n viivellä kun käyttää 100uF:n capaa.

Selitän vielä ton suunnitelman aukikin, eli neljällä 1N4001 diodilla (diodi-silta) ekana muutetaan tuo +-24V sinikäyrä niin, että negatiiviset arvot katoaa. Jolloin AC muuttuu DC muotoon, mutta GPIO:n kannalta tämä olisi hieman huonoa kun silloin arvot muuttuisivat päälle (sininen huippu alla olevassa kuvassa) ja pois (sininen nollatasossa eli vastaa sitä punaisen negatiivista virtaa jonka diodi leikkasi pois) 60 kertaa sekunnissa. Sitten laskemme 100kOhm resistansilla ekana virran minimiiin kun GPIO ei tarvitse mA:ta enempää ja 10kOhm resistanssilla (hiilikalvovastus) laskemme voltit 3.3V-2.0V:n välille, jota Rasperryn GPIO syö sisäänsä. Ja sitten ekan resistanssin jälkeen pistämme vielä 100uF:n capan maahan, jolla sitten saamme yllä olevan kuvan mukaisen sahalaitakuvioinnin. Eli kondensaattori (capasitor) tasoittaa tuon siniaaltoisen DC virran siten, että varaus ei pääse laskemaan nollaan saakka. Tästä tietenkin seuraa muutaman millisekunnin viive tunnistukseen, mutta samalla se poistaa ton on/off hyppimisongelman tunnistuksessa. Teoriassa 15kOhm:lla päästään lähemmäksi 3.3V:tä, valitsin 12kOhm, että mennään lähemmäksi 2.5V:tä, jolloin AC piiristä saa tulla isompia peak arvojakin ilman savupilveä. Tämä siksi että 24VAC joten peak-arvo DC volteille on itseasiassa 24 *  2  = 34V, jolloin 100kOhm ja 12kOhm kombinaatiolla peak arvoksi tulee 3.6V. Lisätietoa tälläisen diodisillan (aka. rectifier) toiminnasta voi lukea esim täältä: http://electronicsclub.info/powersupplies.htm#rectifier

Aika monen yrityksen ja erehdyksen kautta sain testiympäristossäni AC tunnistuksen toimimaan yhdellä lampulla. Muutamassa prototyypissä tuli savut pihalle, ihan omien lukihäiriöiden takia, mutta lopulta tuli toimiva diodisilta design valmiiksi. Nyt pitää vaan odotella, että hong kongista tulee sopivasti osia joilla voi kolvata kaikkien 40 releen AC-tilatunnistuksen.

Tässä valmistelu postauksessa valojen tilan lukeminen ja ohjaus on vielä aika komentorivipohjaista, kun käyttöliittymän koodaus on vielä vaiheessa. Mutta kunhan koodaus etenee, niin lupaan tehdä jatkopostauksen, jossa esitellään automaation integrointi käyttöliittymään, jota voi ohjata tietokoneella, kännykällä ja tabletista.

Tässä sitten 'valmis' ohjauslogiikka kuumaliimattuna sähkökaapin kanteen (vasemmalla puolella 48 relettä ja oikealla puolella diodisiltalevyt valojen tilojen lukemiseen). Aikamoinen johtoviidakko siitä tuli, mutta toimii, joten riittää minulle. Diodisiltoina käytin KBP206:sia, jotka hankin ebaystä.

Tässä on pieni demovideo jossa Raspberryllä ohjataan 48 relettä päälle ja pois i2c:n yli. Tuommoinen pulssin pitäisi riittää ohjaamaan kaksikärkisiä releita (eli talon kaikkia valoja).

tiistai 9. kesäkuuta 2015

100000 ja HP:n takuuhuolto loistaa

Kävijälaskurissa tuli 100000 täyteen. Kiitos kaikille lukijoille!!! Tarkoitus on kyllä jatkaa vielä seuraaviinkin virstanpylväisiin.

Kämpän verkkoinfraa olen tässä pikkuhiljaa päivittänyt. Linksysin 48-porttinen kytkin kadotti portteja aika-ajoin, eli kyllästyin sitä reboottailemaan (http://omakotikotitalomme.blogspot.fi/2013/03/linksys-srw2048-48-port-gigabit-managed.html), joten siirsin sen eläkkeelle hyllylle pölyttämään (nyt on halvalla myynnissä giganen 48 porttinen kytkin).

Eli nytten päivitettynä rautana minulla on Asus RT-AC66U uplinkissa ja teknisessä tilassa kaksi 24 porttista Zyxelin GS1900-24E:tä. Varaston puolella on sitten HP ProCurve V1910-24 kytkettynä kiinni täyskorkeaan serveriräkkiin. Sen lisäksi on neljässä huoneessa HP ProCurve 1810-8G. Näihin 1810 malleihin kun päivittelin uusimmat firmikset sisään, niin yksi yksilö noista ei millään suostunut uutta firmistä huolimaan ja heitti vain erroria.

Muistin sitten jostain foorumilta lukeneeni, että HP:n ProCurve kytkimissä on elinikäinen takuu, joten päätin kokeilla, että pitääkö se paikansa ja soitto palvelunumeroon, menut läpi suomeksi ja call center vastaa kuitenkin englanniksi. Noh onneksi en ollut ummikko, jolta ei muu kuin finska suju, joten sain asiani kyseltyä (osoitteeni pistin sähköpostilla, kun kuulemma suomalaisia kadunnimiä on vaikea englantilaisen kirjoitella) ja sieltä tuli vastauksena, että joo, pistetään lähetti tuomaan sulle uusi tilalle, pitäisi olla huomenna perillä. Joten täytyy kyllä sanoa, että on loistavaa palvelua. Pikkuisenhan noilla on normaalikuluttajavehkeitä korkeampi hinta, mutta jos on elinikäinen takuu ja vaihto uuteen laitteeseen seuraavaksi päiväksi, niin ei voi muuta kuin hymyillä. Jos noi mun Zyxelit joskus mätänee takuuajan jälkeen, niin tietää ostaa HP:t elinikäisellä takuulla tilalle.

Nytten on sitten päivitetyssä kytkinarsenaalissa 104 kappaletta gigasta ethernet porttia, kaikki on hallittavan web managementin takana, raudoissa riittää teho tiedonsiirtoon 48+Gbps per switch, IPv6 tuki ja tuulettimet ei mölyä. Vielä seuraavaksi on vuorossa WLAN puolen päivitys jossain vaiheessa. Ton Asus boxin 5GHZ ja AC puolen wlan toimii hienosti, mutta b/n/g-puolen WLAN on pikkuisen pätkinyt. Joten tarkoitus on vähän tehdä load balancea, eli custom boxit 2.4GHz nopeuksille ja vielä yksi 5Ghz AC boxi lisää, niin saadaan langattomat vehkeet toimimaan joka huoneesta ja myös pihalta. Tällä hetkellä kotiverkossa on noin 50 laitetta jotka vastaavaat pingiin, joten kytkimissä riittää vielä paljon tilaa kasvuun.

Niin olen minä leikkinyt Mikrotikin RB951G-2HND boxilla, sillä saisi tuon toisen wlanin hoidettua, ja samalla se osaisi hoitaa suoraan varayhteyden LTE:n yli (50Mbits) jos Soneran (100Mbit) valokaapeli sattuisi menemään alas. Kiva boxi nörttihenkisille ihmisille, kun boxissa on säätömenuja enemmän kuin laki sallii :)

maanantai 16. maaliskuuta 2015

Saunan audion etäohjaus, osa2

Saunan audion etäohjauksesta olinkin jo aikaisemmin tehnyt blogipostauksen. Muistia voi virkistää täältä: http://omakotikotitalomme.blogspot.fi/2014/05/saunan-audion-etaohjaus.html

Vaikkakin ratkaisu on toiminut hyvin, niin tuon vastaanottimen protolevy oli aika ruman näköinen häkkyrä. Joten päätin kolvata hieman kompaktimman ja paremman näköisen ratkaisun, jonka pitäisi toimia pitkälle tulevaisuuteen. Ebaysta olin keväällä huutanut itselleni neljäkanavaisina 5V<->3.3V bidirectional level shiftereitä, jotka maksoi alle euron kipale (ebay URL).

Kuumaliimasin signaalitasonmuuttajan nätisti kiinni vastaanottimen pohjaan. Kolvasin vastaanottimesta lyhyet kaapelit 5V nastoihin ja 3.3V nastoihin kolvasin kiinni dupont-kaapelit jotka menee Raspberryyn. 3.3V input kaapeliin pistin kutistussukan sisään vielä 470Ω vastuksenkin, niin ei ole vaaraa GPIO:n hajoamiselle vaikka kytkisi väärin. Kohtuullisen nätti lupputulos varsinkin jos vertaa sitä aikaisemman postauksen protolevyyn. Hyvin toimii kake tällä uudella versiolla vähän kauempaakin, testasin 15 metrin päästä kolmen seinän läpi.

maanantai 9. maaliskuuta 2015

Danfoss-lämpöpumpun salaisuudet

Olinkin jo edellisissä postauksissa maininnut, että haluaisin automaatioprojektissani myös ohjata maalämpöpumppuani. Mutta Danfossin edustaja ei halunnut kertoa, miten heidän nelipinninen liitin ulkoisille laitteille toimii. Niinpä totesin:

Jos ei muu auta, niin TermIQ:lla tuota tulen ohjaamaan, mutta olisihan sen lisäksi kiva tietää, mitä pinnit oikeasti tekee. Joten otin yleismittarin ja ekana katsoin TermIQ:n puolelta statistiikkaa. Neljäs pinni (alin) on GND, ja kolmessa muussa pinnissa oli 2.45V kun USB-piuha on kytkettynä sisään (ilman että on Danfossissa kiinni).

Ekana luulin, että liittimessä kulkisi serial TTL liikennettä 9600 8N1, kun Talologger projektin sorsissa vähän niin annettiin ymmärtää. Joten ekana kun ThermiQ:n pistin laitteeseen kiinni, niin minulla oli signaalianalysaattorit pistetty sarjaliikenne muotoon. Ja ekana luulin että pinnit olisi tx,rx,vcc,gnd järjestyksessä, joten olin analysaattoriin pistänyt tallennuksen alkuun pulssin triggeriksi ekaan pinnin. Se olikin väärä arvaus ja sitä triggeriä ei laukaistu missään vaiheessa. Joten siirsin triggerin sitten toiseen ja kolmanteen pinniin. Johan alkoi lyyti kirjoittamaan, mutta eipä analysaattori tunnistanut sitä sarjaliikenteeksi. Joten päättelin (olammin kommentin perusteella, kiitos siitä) sitten, että talologgerin sorsien ThermiaSerial koodi käyttää "Husdata"-kaapelin StatLink.exen formaattia ja kyseistä kaapelia ei enään voi ostaa mistään uutena.

Joten tämänhetkinen arvaukseni on 5V logiikalla toimiva I2C seriaali (8-bittinen signalointi). Vaihtoehtoisesti liikenne olisi voinut olla COMLI-protokolla (eräs ruotsalainen sivusto näin väittää) joka myös on I2C:n päällä. Ja voihan se ollakin COMLI:n joku variaatio, jossa komennot on yleensä 12-bittisiä, voi olla että analysaattori pilkkoo ne vain 8-bittiseen formaattiin (COMLI:stä esimerkki c-toteutusta löytyy esim.: http://fossies.org/linux/nut/drivers/al175.c ja Java referenssi toteutus: http://www.avineas.org/index.php?page=abb-comli). Itse kyllä I2C seriaalina tuota tällähetkellä kohtelen koodissani (ja sillä myös tuntuu toimivan).

Eli nykyinen arvaukseni (tai siis tieto mittausten jälkeen kytkettynä Danfossiin) pinnien järjestyksestä on:



VCC 5V
SCL
SDA
GND

Ja totta tosiaan, tuolla oletuksella kun conffaa analysaattorin kiinni pinneihin, niin logeihin jää oikean näköistä dataa, joka matchaa ThermIQ terminaalin AT-komentojen tuottamaan dataa. Eli kuka vain voisi ottaa sopivan edullisen 5V Arduinon tai Raspberryn (kunhan käyttää 3.3V<->5V bidirectional level convertteria.) ja rakentaa I2C:n päälle oman kaapelin ihan murto-osalla kaupallisten vaihtoehtojen hinnasta. Itse asiassa normaalit Raspberryt ei tue I2C slave modea, joten Raspberry käyttö menee vaikeaksi. Uusimmissa B+ malleissa GPIO19 (CLK) on jo saatavilla, mutta edelleen se taitaa vaatia omaa I2C koodia, kun normaali I2C kirjasto tukee vain master modea. Tässä pistän mietintämyssyn päähän, että jos minulla olisi tarpeeksi vapaa-aikaa, niin voisin rakentaa ja myydä omia custom kaapeleita tuohon. Katsotaan mitä saan tämän kanssa aikaiseksi (jos haluat ostaa minulta custom Thermia/Danfoss-kaapelin, niin blogin sähköpostiosoitteeseen vain yhteydenottoja. Lupaan olla yli puolet halvempi kuin ThermIQ. Tällähetkellä työn alla on kaapeli joka emuloi suoraan ThermIQ sarjaportin AT-komentoja (jolloin voi olemassa olevia softia käyttää suoraan). Osien tilaus Kiinasta saattaa kestää muutaman viikon, jos minulla ei juuri sillähetkellä ole osia hyllyssä.).

Mutta tässä nykyinen tilanneraportti, ThermIQ toimii hienosti Danfossin lämpöpumpun kanssa, tuossa ylenpänä on piuhan pinnijärjestys kirjattuna. Ja tässä screenshotti analysaattorin maagisesta toiminnasta:

Tuon kun zoomaa auki, niin näkee, että Danfoss masterin ja I2C slaven välisessä liikenteessä kulkee neljä tavua 0x5C, 0x06, 0x18, 0x0 ([7-bittinen osoite + read|write bitti], rekisterin osoite, rekisterin arvo vähiten merkitsevät bitit, rekisterin arvo eniten merkitsevät bitit(yleensä 0x0 koska arvot on < 256)) eli tuossa tapauksessa Danfossin rekisterin nro 6 arvo on 0x18. Ja esim. Talologgerista tai googlaamalla löytää mitä eri rekisterin arvot tarkoittaa. Samantyylisiä arvauksia dataformaatissa on myös maalämpöfoorumissa, vaikkakin olettavat datan olevan 9600 serial muodossa (tai sitten ovat mitanneet ThermiQ/Husdata:n usb puolen sarjaliikennettä, joka on 9600 8n1 seriaali), vaikka oikeasti se on I2C kortin ja pumpun välillä. Tässä tapauksessa "['return line temp', 6, TYPE_INT16]," -> paluuveden lämpötila on 24C.

Avataan I2C protokollan ensimmäistä tavua vielä hieman lisää, tässä vaiheessa on hyvä olla calculaattori joka osaa näyttää hex-numerot myös binaarina.

0x5C = 0b01011100 -> I2C 7-bit osoite desimaalina on 46 (0b00101110 -> 0x2e)
0x5D = 0b01011101 -> I2C 7-bit osoite desimaalina on 46 (0b00101110 -> 0x2e)

Eli viimeinen bitti punaisella merkittynä on 1=read 0=write, ja 7 ensimmäistä bittiä on itse I2C osoite. Tuon perusteella pitäisi jo pystyä koodaamaan oma kaapeli :-)

Mutta ihan vaan akateemisessa mielessä avataanpas tätä viestiliikennettä hieman enemmänkin, ettei tule semmoista mielikuvaa, että pitäisin osan salassa omaa kaapelitoteutusta varten. Eli kun rekisterin luku on edellä käsitelty (ATR), niin pitäähän sitä varmaan rekisteriin kirjoituskin käsitellä, että voi etänä ohjata haluttuja arvoja.

Analysaattori kiinni ja katsotaan mitä write (ATW370001) pitää sisällään (Tällä kertaa ajoin analysaattoria Macissä):

0x5D = 0b01011101 Setup Read to [] (0x5D] + ACK
0xB7 = 0b10110111 Red == Write/Set Value, Blue (0x00110111 == 0x37 == 55 == ['curve +5', 55, TYPE_INT16])
0x01 = 0b00000001 Vähiten merkitsevä tavu (low byte)
0x00 = 0b00000000 Eniten merkitsevä tavu (high byte)

Joten rekisteriin kirjoitus on aika suoraviivaista; 0x5D, kohde rekisteri|0x80 ja seuraavat on vähiten merkiksevä tavu ja sitten eniten merkitsevä tavu.

Ainiin ja menee tuolla linjalla myös jotain keepalive/ping tyylisiä viestejä, 11111111(0xFF) && 11111110(0xFE), villi arvaus että noi on jotain propriatary broadcast tyylisiä pollaus viestejä read/write lipuilla (koodasin kaapelin vastaamaan pong(FF) noihin ping(FE) viesteihin, jos jonossa ei ole komentoja).

Nyt kun on read ja write komentojen salat kaivettu esille, niin seuraavaksi katsotaan ja varmistetaan, että liikenne tosiaan on I2C:tä, eli pistetään linjan perään Raspberry Pi tai Arduino ja tehdään I2C scanni ja katsotaan montako laitetta vastaa linjan perästä.... ja eikun tuumasta toimeen. Rakensin 3.3V <-> 5V bidirectional level converter piuhan ja kytkin sen Raspberryyn kiinni: i2cdetect ei löydä mitään, joten taisi sittenkin tulla väärä arvaus protokollan suhteen tai vaatii jonkun salaisen kättelyn linjan herättämiseksi. Nostan hetkeksi kädet pystyyn, kunnes ehdin taas jatkamaan debuggausta eli to be continued. Toistaiseksi ohjailen tuota ThermiQ:n läpi, kunnes keksin miten tuo ThermiQ laittaa tuon väylän I2C tilaan.

Päivän verran olin lannistuneena tuosta ekan yrityksen epäonnistumisesta, mutta sitten pistin mietintämyssyn päähän ja päätin aloittaa debuggauksen uudestaan eri näkökulmasta. Rakensin ethernet-kaapelista splitterin, jonka pistin pumpun ja näytön väliin, yleismittarilla kun mittaa signaalintasot niin 12V näyttää olevan ainakin kahdessa johtimessa, ja minun halpa signaalianalysaattori on max 5V jännitteille, joten jätin ethernet portin tutkimisen toistaiseksi jäähylle. Otin uudeksi lähestymistavaksi mitata ensimmäiset 10 sekunttia laitteen käynnistymisestä, joten pistin TermiQ:n kiinni analysaattorin ja käynnistin laitteen, kiva logi tuli. Sitten päätin vielä ottaa toisen boottilogin ilman TerhmiQ:ta, sillä oletuksella että linjan pitäisi olla hiljainen. Mutta eipä ollutkaan, joten bingo välähti mielessäni.

ThermIQ laite ei olekaan masteri vaan se toimii slavena, joten ei olekaan ihme, ettei i2cdetect suoraan portissa löytänyt mitään, kun linjassa ei olekaan muuta kuin pumppu, joka on masteri. Logia kun katsoo, niin se on itse asiassa pumppu, joka lähettää pingia väylälle ja etsii, että onko siellä laitteita. Se etsii 0x2e:tä (jota ThermiQ oikeasti emuloi, joten minun omakin koodin pitää olla 0x2e osoitteessa oleva slave. Samoin se vielä kyselee, että onko 0x2e olemassa, ekana 1.5s bootin kohdalla lähettämällä 0xFD ja 0xFE 7.3s:stä lähtien, johon ThermiQ sitten vastaa 0xFF. Pumppu myös etsii myös 0x32- ja 0x37-laitteita 0x00-viestillä, en sitten ruvennut tutkimaan, että mitä laitteita se etsii: mahdollisesti extra näyttöjä, verkkokortteja, modeemeja tms. Lähinnä akateemisessa mielessä kerron, että pumppu scannaa kolmea eri laitetta väylältä. Meitä lähinnä kiinnostaa matkia ThermiQ:n toimintaa, joten keskityn 0x2e:hen. Joku toinen voi halutessaan koittaa ihmetellä, mitä nuo muut osoitteet ovat.

Tästä sitten syntyi uusi teoria, että I2C:n päällä pumppu on masteri, joka pollaa rekisteriä 0xFE 110millisekunnin välein ja slave vastaa 0xFF, jos jonossa ei ole mitään komentoja. Eli pumppu kysyy, "hei, halutko tietoa mistään?"(0xFE) ja slave vastaa "Moro, en tarvi mitään?"(0xFF), tai sitten se voi vaikka vastata, että "Joo, annappa vaikka rekisterin 50 arvo"(0x32). Näin pollaamalla saa noin 9 rekisterin arvoa sekunnissa. Eli teorian todistaminen todeksi vaatii vain I2C slave devicen koodaamisen noilla oletuksilla. Joten se oli seuraavaksi vuorossa.

Eli otin sopivan 5V logiikalla toimivan mikrokontrollerin ja koodasin sarjapinneihin AT-modeemikomento emulaation ja I2C pinneihin sitten rekisterien luku- ja kirjoituslogiikan, ja tein syntaksin matchaamaan ThermIQ kortin komentoja, jolloin nykyisiä softia pystyy käyttämään halutessaan suoraan. RTC osuuden tein euron patterivarmistetun I2C RTC kellon avulla (Vaihtoehtoisesti voisin suoraan koodata softaemuloinnin Raspberry Pi:llä, jolloin ei tarvittaisi mitään ulkoisia kontrolleja, I2C kaapelin pituudella on vain rajoituksia, eli siinä tapauksessa pitäisi Raspberry jättää Danfossin pumpun sisäpuolelle, ja vaan pistää eetteripiuha ulospäin). Mutta siis koska Raspberry toteutuksen tekeminen on vaivalloista (koska ei ole vielä mitään valmista helppokäyttöistä i2c slave kirjastoa julkaistu), niin keskityin tekemään helpomman serial<->I2C AT modeemi-emuloinnin. Wire I2C kirjasto ei suorilta kyennyt juttelemaan pumpun kanssa, koska pumppu lähettää hieman epästandardin start-bit sequenssin. Mutta muutaman illan koodaus- ja debuggaus-session jälkeen, löytyi oikea paikka Wiren puukotukseen ja nyt näyttää tältä:

Hyvältä näyttää, mokkulani vastaa AT-komentoihin samalla tavalla kuin ThermIQ:n kanssa. Minun moduulissani nostin sarjaliikenteen nopeuden 9600:sta 115200:aan, joten vastailee kyselyihin teoriassa hieman nopeammin kuin ThermIQ. Samoin kun mikrokontrolleri nyt tarjoaa serial pinnit ulospäin, niin siihen voi liittää minkä vaan usb<->serial palikan, ja voi valita käyttöjärjestelmän perusteella sopivimman yhdistelmän (Windows, Linux ja OSX).

Ja nälkähän kasvaa syödessä, joten ajattelin, että mitähän jos pistäisin vielä muutamaan ylimääräiseen pinniin toisen sarjaportin pyörimään, että siihen pääsee käsiksi vaikka kahdella usb<->ttl tikulla, niin silloin tietokoneella olisi esim /dev/ttyUSB0 ja /dev/ttyUSB1, jolloin voi toiseen deviceen pistää kiinni esim ThermIQ:n oman softan ja toisen kiinni vaikka Talologgeri-softaan. Joten ei kun koodausmyssy päähän, ja nyt minulla on myös softaversiot kahden ja kolmen sarjaliikenneportin versiosta (että voin yhtä aikaa pitää ThermIQ:ta ja Talologgeria päällä, ja pystyn vielä kolmannella muuttelemaan arvoja ennakoivasti omasta softasta esim. viiden päivän sääennusteen mukaan, niin voi kokeilla muka säästää sähköä sääennusteilla.

Seuraavaksi kun kaikki omasta mielestäni toimii, on vuoro testata, että toimiiko se nykyisten softien kanssa yhteen. Joten sitten vaan asentelemaan ja testaamaan toimintaa... Olin kakkos-seriaalin pistänyt 9600 nopeuteen ihan vaan yhteensopivuuden vuoksi, ettei tarvi configeja muuttamaan. Asensin ThermIQ-softan Raspberry Pi:hin (asennus käyttää vielä yhtä dokumentoimatonta AT komentoa, mutta sen nopeasti koodasin) ja tämmöiseltä web-liittymä näyttää:

Näyttää toimivan ihan kivasti, vielä pitää testata kuinka kauan toi mokkula toimii ilman, että sitä tarvitsee rebootata. Eli vielä en tiedä, pysyykö toi pystyssä kuukausia ilman ongelmia. Mutta toistaiseksi olen tyytyväinen tämän haasteen lopputulokseen. ;-) Muoviläystäkkeen sain kaksipuoleisella teipillä hyvin kiinni lähelle EXT-liitintä.

PS. Tässä olen kuukauden päivät ajanut ThermIQ softaa raspberryssa tolla mun omalla arduino pohjaisella kaapelilla, ja muutaman oman koodausbugin korjaamisen jälkeen tuntuu toimivan kuin junan vessa. Hyllyssä löytyy osat viiteen kaapeliin, joten nyt on tarvittaessa kaapeleita saatavilla.
PS2. Tässä on kuva uusimmasta kaapeliversiosta, on mukavasti pienemmän kokoinen kuin ensimmäinen versio.

Nytten tuota kaapelia on testattu Raspberryn perässä TaloLoggerilla, ThermIQ ja ThermIQv2 softilla, ja hyvin tuntuu toimivan. Myyntisivu: http://omakotikotitalomme.blogspot.fi/p/myydaan-tavaraa.html
Disclaimer: I2C liikennettä ei ole salattu mitenkään, joten tämä blogipostaus ei pura mitään teknistä suojausta (laitteen valmistajan haluttomuus kertoa liittimen toiminnasta ajaa heidän omia intressejään). I2C specifikaatio on vapaasti luettavissa netissä UM10204.pdf. Samoin en ota mitään vastuuta, jos onnistut hajoittamaan oman pumppusi tämän blogipostauksen johdosta.

sunnuntai 8. helmikuuta 2015

WIP: Raspberry Pi kosketusnäyttömodaus

WIP (Work In Progress) statuspäivitystä kotiautomaatioraudoistani. Tällä kertaa tunkkauksen alla on Raspberry Pi B model, eli hieman vanhempi malli kuin kaikkein uusimmat. Ajattelin pistää siihen kehitysympäristön yms. systeemit pystyyn ja samalla minulla oli hyllyssä jo aikaisemmin hankkimani 2.8 tuuman PiTFT kosketusnäyttöpaneeli (kasausohjeet: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/assembly).

Minulla on myös läpinäkyvä kotelo RPi:lle, mutta siihen ei PiTFT mahdu sisälle. Joten sulatin kolvinpäällä sopivasti lisää aukkoja lattakaapelille ja PiTFT:n vaatimalle näytölle ja mattoveitsellä tasoittelin sulaneet pinnat. Vaikka Raspberry kosketusnäytöllä on jo pelkästään hyödyllinen, niin halusin, että minulla on ainakin yksi raspberry, jolla voi testailla erilaisia komponentteja ja automaatioprojektien protoja. Joten liitin lattakaapelin RPi-UEXT:in ja RPi:n väliin (sai mattoveitsellä vuolla kaapelin kiinnikettä hieman, että mahtui kotelon sisään hyvin).

Tässä kuva lopputuloksesta, jossa on PiTFT koteloituna ja lattakaapelin perässä protolevy jossa voi komponentteja tastailla. Extrakuvassa erinäisiä Raspberry kikkareita (näyttö, liikkeentunnistin yms protolevyjä), joita tulen keväällä testailemaan:

lauantai 7. helmikuuta 2015

WLAN lämpötilamittari

Sain tuossa aikaiseksi pistää kolvin lämpiämään ja rakensin itselleni lämpötilamittarin joka langattomasti siirtää lämpötilan ja kosteusprosentin WLANin yli minun automaatiokoneelleni, joka ottaa datan vastaan, josta se voidaan sitten näyttää webissä tai vaikka puhelimessa.

Osat kokonaisuudessaan maksoivat alle 6 euroa, joten kohtuu edullinen verme siitä lopulta tuli. Eli käytin ESP-8266 (ESP-01) wlan kikkulaa joka maksoi 2.5e, DHT11 lämpötilasensori 0.8e ja virransyöttö "MB102 breadboard power module"(osaa muuntaa 5-12V:n 3.3V:ksi) 0.95e ja 220V->12V virtälähde 1.7e.

Vetäsin kuumaliimalla sensorin ja wlan kikkulan kiinni tuohon virtamoduulin alapintaan kiinni, ja sitten kolvasin asianmukaiset piuhat kiinni pinnien alapuolelle ja 4.7kΩ resistanssi datapinnin ja 3.3V VCC:n väliin (jooh, olisi ne voinut kolvata nätimminkin, mutta toimii(tm), joten riitti minulle). Pinnien yläpuolet ovat edelleen vapaat, joka mahdollistaa piirien uudelleen ohjelmoimisen ja mahdollisten ongelmien debuggauksen tietokoneella. Ja tuossa on bonuksena vielä toi valkoinen painonappi, jolla koko vehkeen voi sammuttaa ja käynnistää tarvittaessa nopeasti.

Kirjoittelin tuohon NodeMCU:lla koodinkin nopsaan, nyt se osaa liittyä automaattisesti kodin wlan verkkoon, ja se raportoi 30 sekunnin välein sensorin arvot automaatiokoneelle MQTT protokollan yli kodin wlan verkossa. Esimerkkinä mainittakoon vaikka tämä projekti http://nathan.chantrell.net/20141230/wifi-mqtt-display-with-the-esp8266/. Tuommoinen näyttö (ebay 3.8e) on itselläkin tilauksessa, mutta siitä sitten lisää kunhan se saapuu.

Tämän vehkeen on tarkoitus pöristä varastossa, niin voin koodata hälytykset, jos varaston lämpötila laskeee kohti nollaa kovilla pakkasilla. Varsin tyytyväinen olen esp8266:n toimintaan, tulen käyttämään noita erinäisissä rakenteluprojekteissa kevään mittaan...

maanantai 26. tammikuuta 2015

Internet shoppailua... tekniikkahärpäkkeitä

Taas olen pikkuisen hankkinut tekniikkapuolen osasia netistä, joita on tarkoitus käyttää talon automaatioprojekteissa. Mitään en ole viimeaikoina ehtinyt koodaamaan, mutta talvilomalla ja viimeistään kesälomalla on tarkoitus laittaa toimintaan. Mutta tässäpä listaa ihmeteltäväksi blogin tekniikkapuolesta kiinnostuneille.

ESP8266 ESP-01

Sormenpään kokoinen wlan mikropiiri, jossa on kaksi GPIO:ta, ja joka maksaa vain 2.5e/kpl.


Esimerkkejä ESP8266:n (ebaystä) käytöstä:
http://vaasa.hacklab.fi/2015/01/12/esp8266-ds18b20-thingspeak-nodemcu/
https://importhack.wordpress.com/2014/11/22/how-to-use-ep8266-esp-01-as-a-sensor-web-client/

Tuon halvan hinnan ansiosta hankin ensiksi tuommoisen viiden kappaleen satsin, ja jos osottautuu toimivaksi, niin sitten pistän vielä lisää tilaukseen. Noita voi ripotella ympäri taloa esim.langattomien lämpömittarien, liikkeentunnistuksen, sähkökytkimen (kaupalliset wlan sähköpistokkeet maksavat yli 50e kappale, niin itse hackaamalla säästää aika paljon rahaa) yms merkeissä. Esimerkkejä tulen postaamaan tässä kevään kuluessa, kunhan pääsen noilla leikkimään.

DS18B20 Temperature Measurement Sensor New Module


DS18B20 (ebay) 1.3e lämpötilasensori, voi yhdistää tuohon edelliseen wlan palikkaan.

ESP8266 ESP-03

Samanlainen kuin ESP-01, mutta tässä versiossa on on 7 GPIO pinniä tuon ESP-01 mallin kahden pinnin sijasta. Hinta 2.7e/kpl, joten ei paha. ESP-03 (ebay)

Vertailu kaikkien ESP mallien välillä: http://l0l.org.uk/2014/12/esp8266-modules-hardware-guide-gotta-catch-em-all/

MCP23017-E/SP DIP28 16-Bit I/O Expander

Bongasin internettilästä, että miten I2C:n yli lisätä GPIO määrää 16:sta kerrannaisilla. 16:sta GPIO:ta maksaa 1.05e, jolloin yhden GPIO:n hinnaksi tulee 6 senttiä. Mikä deali, joten heti pistin tilaukseen 5 kappaletta. Katsotaan, jos näillä tekisi sitten valoreleitten ohjauksen halvalla. 5x MCP23017 (ebay)

Ohessa esimerkki miten ihmiset ovat tuota piiriä kytkeneet. Kolmella piirillä saa jo 48 GPIO:ta, joka riittäisi nykyiseen kytkentätauluuni.

ThermIQ

Tilasin myös piruuttain ThermIQ kortin, koska Danfossin lämpöpumppujen product manageri ei halunnut kertoa, miten heidän pumpuissaan nelipinninen liitin ulkoisille laitteille toimii. Ja sanoin mielessäni "challenge accepted", ja selvitän pinnien salat tässä tämän vuoden aikana kun automaatiota koodailen valmiiksi (http://www.thermiq.net/).

Danfossin oma ulkoinen online laite on törkeän hintainen (800+e) ja jonka webbisivuilla on vielä vuosimaksukin. Aika kusetusta, jos sarjaliittimen osat itse tehtynä on kymmenen euron pintaan. Mielummin rakennan kaapelin itse tai käytän ThermIQ moduulia, joka maksaa murto-osan Danfossiin omaan verrattuna.

lauantai 6. joulukuuta 2014

Tekniikkapäivitystä: koodaus etenee

Vähän aikaa on ollut hiljaiseloa tekniikkapostauksissa, se ei tarkoita, etteikö tekniikkaprojekti etenisi. Kokoajan tulee pientä edistystä talotekniikan suhteen, aikataulu valmistumisesta vaan hieman on venynyt. Mutta toivon, että valo-ohjaus yms automaation koodaus valmistuisi kesällä.

Tässä hieman päivitystä tekniikan suhteen. Siis tarkoituksena on, että talon kaikkia valoja voi ohjata puhelimilla, tableteilla, tietokoneilla yms teknisillä wimpaimilla. Samoin valoja voisi ajastaa, tietyt valot reagoisivat liikkeentunnistukseen, etäisyyteen ja ääneen. Samoin tietenkin käyttöliittymässä olisi saunan audion ohjaus, mielellään myös koko talon audion ohjaus (ja audion synkronointi niin, että kaikissa huoneissa soisi sama biisi tismalleen samaan aikaan). Ja lämpötila, kosteusmittari yms data olis myös saatavilla.

Koodauspuolella minulla on jo valmiina serveripuoli, eli puhelimet, tabletit ja tietokoneet voivat jo kommunikoida keskenään. Käyttöliittymä ei ole valmis, lähinnä olen viskonut laatikoita ruudulle, jotka kuvastaa eri valoja ja saunan kiukaan tilaa. Saunan spotify ohjain toimii puhelimesta (ruudulle tulee Spotifyn album artit ja biisin tiedot extra infona) ja rf-kaukosäätimellä.

Tekniikka ostoksiakin olen tehnyt pikkuisen. Raspberry Pi julkaisi A+ mallinsa edulliseen 20$ hintaan, joten pistin semmoisenkin tilaukseen, kun posteineen alle 30euron tietokone on mielestäni aika hyvä deal. Tietenkin riippuu mitä haluaa, Raspberry Pi B+-malli, jossa on myös ethernet ja tuplasti muistia on alle 40e kotiin postitettuna, mutta se on myös pikkuisen isompi.

Itse olen hankkinut jo värisuoran, joten minulta löytyy A, A+, B ja B+, noilla on tarkoitus hoitaa saunan rf kauko-ohjaimet, kosteus- ja liiketunnistimet. Samoin noilla voisi hoitaa valo-ohjauksen, mutta tällähetkellä olen suunnitellut, että valo-ohjauksen hoitaisivat 2x BeagleBone Blackia jotka olen hankkinut, koska niissä on tuplasti enemmän vapaita GPIO pinneja, jotka myöskin kotiin postitettuna maksaa vain 50e kipale, joten ovat halvempi kuin raspberryt per vapaa GPIO pinni.

Mutta tosissaan, nyt minulla on kuusi tuommoista pikkuista vähän luottokorttia isompaa tietokonetta, jolla automaatio olisi tarkoitus hoitaa. Noitten rinnalle on tullut tilattua kaikenlaisia halpoja lisähärpäkkeita, joita voi noihin kytkeä kiinni: raspberry pi hd-kamera moduuli 16e, USB nano wlan-moduuli 4e, USB nano Bluetooth-module 1e, USB RJ45 verkkokortteja 3e, liikkeentunnistajia 1e, kosteusmittareita 1e, hälytyssireenejä 3e/kpl ja rasperry kosketusnäyttömoduuli jne...

Nälkä kun kasvaa syödessä, saunan äänentoisto on toiminut varsin mallikkaasti, muta rupesin tutkimaan, että miten rakentaa äänentoisto niin, että sama musiikki voisi soida kaikissa huoneissa, ja vielä niin että ne olisivat synkassa keskenään. Muutaman hullunkalliin ratkaisun löysinkin netistä, mutta lopulta valinta päätyi Squeezeboxin suuntaan vaikka Logitech onkin tuoteperheen jo haudannut, niin siinä on laaja opensource community takana pitämässä sitä hengissä ja ovat myöskin tehneet playerit ja controllerit kaikille platformeille (esim Raspberry Pi voi olla Squeezebox server ja player). Tässä olen viikon aikana tehnyt nopeaa protoilua Logitech Media Serverin ja rpi:n kanssa, ja toi tuntuu varsin lupaavalta. Serveri osasi indexoida levyvarastoni, integroituu Spotifyhin yms nettiradioihin. Ja tosiaan Raspberryn hinnalla saa audion langattomasti laitteeseen kuin laitteeseen. Ja eipä siinä vielä kaikki, Logitechin Squeezebox rautojakin saa vielä edullisesti käytettynä. Itse juuri tilasin vielä joululahjaksi itselleni Squeezebox Boomin ja Squeezebox Duetin. Amazonissa näyttää noiden hinta uutena olla yhteensä $965 (780e plus verot), joten käytettynä posteineen kotiin tekemäni 140e deali on kohtuu hyvä.

Noilla kattaa jo kolme huonetta, joissa ei ole tietokonetta. Tietokoneellisiin huoneisiin voi asentaa playeri-softan suoraan koneeseen. Tai tarpeen vaatiessa voi hankkia/rakentaa vielä lisää playereita tai tuunata vanhoista puhelimista playeri. Itse asiassa juuri testasin, että mun vanhoista N900, N950 ja N9 puhelimista saa hyvin Squeezelite playerin. Aika täydellinen paketti jopa, hyvä wlan/usbnet ja audio-outputissa ei ole häiriötä (vastaavasti rpi:n joissakin malleissa on pientä säröä outputissa), kestää sähkökatkot sisäisen akun ansiosta jne. Ja bonuksena tietenkin vielä ilmaisia, kun ovat olleet kaapissa pölyttymässä :)

Tässä muutama kuvakaappaus UI protosta Nexus5:lla, tosiaan ei viimeisteltyjä grafiikkoja vaan sen sijaan laatikkoja, lähinnä vaan testaukseen, että data liikkuu tietokoneserverin ja puhelimen välillä oikein. Lista kaikista valoista, saunan Spotify soittimen tilanäkymä (jota voi myös radio kaukosäätimillä ohjata) ja scrollattava pohjapiirros jossa näkyy lamppujen statukset.

Tämmöistä tällä kertaa, lisää on tulossa kunhan projektit etenee... :)