Home Assistant ja lämminvesivaraaja

Asunnon sähkönkulutuksesta jonkinlaisen osan haukkaa lämminvesivaraaja. Niinpä sitä(kin) kulua piti lähteä pörssisähkön hintavaihteluiden vuoksi optimoimaan.

Kahdeksankymmenluvulla rakennetun rivitalon sähkökaappi ei isommin älyä sisällä. Jossakin vaiheessa varaajaa on ilmeisesti saattanut lämmitellä vaihtoehtoisesti yösähköllä, mutta todennäköisimmin etäluettavien mittareiden vaihdon yhteydessä on jäänyt kuormanohjausjohto kytkemättä uudelleen… joten se ei toiminut.

Sitkeä selvitystyö (lue: kädenvääntö vastuusta) Carunan asiakaspalvelun kanssa ei tuottanut tulosta ennen isoja pakkasia, joten päätin edetä toista reittiä. Ja hyvä niin, koska lopputulos on erittäin joustava verrattuna Carunan tarjoamiin kuormanohjauksen aikavaihtoehtoihin.

Asunnon sulakekaapista löytyvä Hagerin kolmiasentoisen kytkimen ala-asennossa lämminvesivaraaja saa sähköä jatkuvasti, keskiasennossa ei ollenkaan lainkaan ja yläasennossa kytkennästä päättää nyt tuo punainen Shelly Pro 1PM etäohjattava rele. Niitä saa nykyään hyvin Suomestakin, mm. Shellykauppa.fi -verkkokaupasta.

Releen käyttöönotto

Käyttöönottoprosessi alkoi samalla tapaa kuin monen muunkin laitteen kanssa eli lataamalla puhelimeen laitevalmistajan mobiiliapp, tässä tapauksessa Shelly Cloud. Sen piti tarjota helppo tapa konfiguroida rele joko Bluetoothin tai Wifin kautta, mutta käytännössä kumpikaan ei sovelluksella kuitenkaan syystä tai toisesta onnistunut.

Etenin Shellykaupan ohjeilla liittymällä puhelimella releen tarjoamaan Wifi Access Pointiin. Osoitteesta 192.168.33.1 löytyi konfigurointiin tarvittava web-käyttöliittymä. Käytännössä releelle piti antaa Wifi-verkkoni SSID ja salasana. Shelly toimii vain 2.4 GHz wifissä ja ilmeisesti SSID ei saa olla piilossa. Näillä eväillä askare onnistui.

Onnistuneen konfiguroinnin jälkeen Shellystä kannattaa ottaa pois päältä Bluetooth ja laittaa Wifi Access Point salasanan taakse.

Seuraava askel oli ottaa Home Assistantissa Shelly-integraatio käyttöön. Integraatio löytyy helposti nimellä. Samassa verkossa nyt oleva rele tuli samantien tyrkylle.

Integraatio loi melkoisen ripakopallisen tähän laitteeseen liittyviä entiteettejä, mutta onneksi vain olennaisimmat tulivat näytille — ja releen kytkemistä saattoi kokeilla saman tien. Virtuaalivivusta vääntämällä sulakekaapista kuului kontaktorin napsahtelu. Homma siis toimi nyt manuaalisesti.

Entäs se automaatio?

Erilaisilla kotiautomaatioon liittyvillä keskusteluryhmillä (FB Älykoti-ryhmä, lampopumput.fi -sivusto, techbbs-foorumi) löytyi keskusteluja ja ajatuksia siitä, miten voisi ohjata sähkölaitteita vuorokauden tuntikohtaisen hintatiedon ja/tai tuntien keskinäisen rankingin perusteella. Etenkin spot-hinta.fi -rajapinnan kehittäjä on luonut paljon hyvää tälle alueelle!

Päätin, että haluan HA:n dashboardille liukusäätimen, jolla voisin määritellä monenako edullisimpana tuntina annan lämminvesivaraajan tehdä työtään. Liukusäädin siksi, että käytettävien tuntien määrää voisi helposti lisätä tai vähentää ilman koodikynään koskemista.

Tällaisen ratkaisun voi rakentaa takuulla monella tapaa, mutta päädyin itse seuraavanlaiseen. Määrittelin ensin configuration.yaml -tiedostoon kolme sensoria, joihin haetaan tämänhetkisistä sähkönhintatiedoista päivä ja aika, hinta verojen kanssa sekä kuluvan tunnin ranking (1-24) kuluvan päivän sisällä. Tarkalleen ottaen en tarvitsisi muuta kuin tuon ranking-tiedon (ja sellainenkin rajapintaversio löytyy api.spot-hinta.fi -palvelusta) , mutta uteliaisuuttani halusin myös aika- ja hintatiedon.

  # api.spot-hinta.fi hintasensori
- platform: rest
name: spot-hinta-api
resource: http://api.spot-hinta.fi/JustNow
method: GET
device_class: monetary
force_update: true
json_attributes:
- DateTime
- PriceWithTax
- Rank
state_class: measurement
- platform: template
sensors:
datetime:
friendly_name: "DateTime"
value_template: "{{ state_attr('sensor.spot_hinta_api', 'DateTime') }}"
pricewithtax:
friendly_name: "PriceWithTax"
value_template: "{{ state_attr('sensor.spot_hinta_api', 'PriceWithTax') }}"
rank:
friendly_name: "Ranking"
value_template: "{{ state_attr('sensor.spot_hinta_api', 'Rank') }}"

Dashboardille voidaan HA:n uudelleenkäynnistyksen jälkeen luoda entiteetti-kortti, jossa näytetään näiden sensorien tämänhetkiset tiedot.

Seuraavaksi määrittelin number-tyyppisen Helperin, johon tallentuu haluttu tuntimäärä.

Määrittelyn jälkeen helperin luoma entiteetti voidaan tuoda näytölle liukusäätimeksi. Lyhensin näytölle tulevaa otsikkoa hieman.

Kolmanneksi määrittelin configuration.yaml -tiedostoon Template-tyyppisen binary_sensorin, jonka arvo lasketaan tässä tapauksessa yksinkertaisella vertailulla, eli jos haluttujen tuntimäärien lukema on suurempi tai yhtäsuuri kuin kuluvan tunnin hintaranking, niin sensori saa arvo ’true’ eli voidaan lämmittää.

# Templatella määritelty binary sensor sen laskennalle voiko lämmitys olla päällä
template:
- binary_sensor:
- name: "LVV voisi olla päällä"
state: >
{{ states('input_number.haluttu_lvv_tuntimaara') | float >= states('sensor.rank') | float }}

Ja lopuksi loin kaksi automaatiota, jossa ensimmäisessä seurataan tuon yllä määritellyn sensorin siirtymistä off-tilasta on-tilaan, jolloin kytketään relellä veden lämmitys päälle — ja tietenkin toisessa automaatiossa juuri toisin päin.

Seurantaa varten lisäsin molempiin automaatioihin vielä Telegram-notifikaation lähettämisen lämmityksen alkamisesta ja päättymisestä.

Pikaisella kokemuksella automaatiot tuntuvat toimivan hyvin ja tämä tuo pieniä säästöjä joka päivä aikaisempaan verrattuna.

Kehitysajatuksia?

Järjestelmä tuntuu toimivan tällä hetkellä luotettavasti, mutta se nojaa siihen oletukseen, että hintatiedot ovat haettavissa rajapinnalta ympäri vuorokauden. Ratkaisu olisi robustimpi, jos haettaisiin vuorokauden hinta- ja ranking-tiedot kerralla talteen ja käytettäisiin sitten paikallisesti tallennettuja tietoja.

Foorumeilta on voinut lukea, että pörssisähkö siirtyy tuntihinnoista jatkossa varttihintoihin, jolloin tätäkin ratkaisua pitää muuttaa minimissään sen verran, että liukusäätimen maksimiarvoksi vaihdetaan 24 -> 96, jolloin sillä valitaan montako halvinta varttia halutaan käyttää. Toisaalta voi miettiä kuinka järkevää on napsutella lämmitystä pois vartin välein.

Advertisement

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s