Pörssisähkö – kulutuksen optimointia edullisimmille tunneille

Pörssisähkö – kulutuksen optimointia edullisimmille tunneille

Sähkön hinta uhkaa kohota viimeistään tulevana talvena ennätyslukemiin. Keskusteluissa pohditaan, riittääkö sähköä talven kylmimpinä ajankohtina ja onko odotettavissa suunniteltuja sähkökatkoja joillekin alueille.

Pörssisähköasiakkaat voivat seurata tulevien tuntien sähköhintoja ja päättää milloin kannattaa vaikkapa sauna lämmittää tai pesukone käynnistää ja saada tällä tavalla säästöjä sähkölaskuihinsa. Ja vaikka ei olisikaan pörssisähköasiakas, voi omalla toiminnallaan auttaa tasaamaan sähkön kulutushuippuja ja näin vähentää sähkökatkojen mahdollisuutta.

Pörssisähkön hinta
Pörssisähkön hinta tuulisena syyspäivänä

Sähköä käytetään luonnollisesti päivällä enemmän kuin yöllä. Vastaavasti päivällä sähkön hinta on kysynnän ja tarjonnan vuoksi korkeampi kuin yöllä. Yksinkertaisimmillaan laitteiden käyttöä voisi siis hallita kellokytkimen avulla.

Toinen vaihtoehto on antaa asia automaation hoidettavaksi. Järjestelmä seuraa sähkön pörssihintoja ja huolehtii laitteiden kytkennästä hinnan perusteella. Kytkentäraja kannattaa tällöin määritellä kiinteän hintarajan sijaan dynaamisesti muuttuvaksi. Tämän lisäksi, esimerkiksi lämmitystä ohjattaessa, voi olla järkevää määrittää lämpötilalle alaraja, jolloin laite käynnistyy hinnasta huolimatta.

Kytkentäraja voidaan määritellä monella eri tavalla. Sopivin tapa määräytyy käyttötarpeen ja säädettävän laitteen perusteella. Alla on esitelty ajatuksia muutamasta eri vaihtoehdosta:

1: Kytkentäraja lineaarisesti päivän minimi- ja maksimihinnan väliltä

Home Assistantilla tehdään aluksi Input Number -liukuvalitsin (0-100%) rajan valintaa varten. Liukuvalitsimen numeron ja Nordpool-sensorin min- ja max-attribuuttien avulla lasketaan kytkentäraja mikä ylitettäessä laite sammutetaan ja alitettaessa taas käynnistetään:

sensor:
  - platform: template
    sensors:
      kytkentaraja:
        unit_of_measurement: c/kWh
        value_template: '{{((state_attr(''sensor.nordpool'', ''max'')-state_attr(''sensor.nordpool'', ''min''))/100*float(states(''input_number.kytkentaraja''))+state_attr(''sensor.nordpool'', ''min''))*100|round(3)}}'

Tässä esimerkissä päivän minimihinta oli 0.9 c/kWh ja maksimi 1.7 c/kWh. 75% tältä väliltä on 1.5 c/kWh:

Kytkentäraja
Kytkentäraja pörssihinnan minimin ja maksimin väliltä

2: Valittu tuntimäärä päivässä

Home Assistantilla tehdään aluksi Input Number -liukuvalitsin (1-24h) tuntimäärän valintaa varten. Nordpool-sensorin tuntikohtainen hintataulukko järjestetään hinnan perusteella suuruusjärjestykseen. Kytkentäraja määräytyy tämän jälkeen valitun tuntimäärän mukaisesta taulukon solusta:

sensor:
  - platform: template
    sensors:
      kytkentaraja:
        unit_of_measurement: c/kWh
        value_template: '{{((state_attr(''sensor.nordpool'',''raw_today'')|sort(attribute=''value''))[int(states(''input_number.kytkentaraja''))-1].value)*100|round(3)}}'

Tässä esimerkissä päivän minimihinta oli 0.9 c/kWh ja maksimi 1.7 c/kWh. Kymmenenneksi halvin tuntihinta oli 1.3 c/kWh:

Kytkentäraja
Kytkentäraja tuntimäärän perusteella

3: Nordpoolin valmiiden attribuuttien hyödyntäminen kytkentärajana

Nordpool -sensorin attribuutteina on useita eri arvoja, joita voi halutessaan käyttää suoraan kytkentärajana:

  • Average, koko päivän tuntihintojen keskiarvo
  • Peak, aamukahdeksan ja iltakahdeksan välisten tuntihintojen keskiarvo
  • Off peak 1, keskiyön ja aamukahdeksan välisten tuntihintojen keskiarvo
  • Off peak 2, iltakahdeksan ja keskiyön välisten tuntihintojen keskiarvo
sensor:
  - platform: template
    sensors:
      kytkentaraja:
        unit_of_measurement: c/kWh
        value_template: '{{(state_attr(''sensor.nordpool'',''average'')*100)|round(3)}}'

4. Muita huomionarvoisia vaihtoehtoja

  • Node-RED:n käyttäjien kannattaa tutustua Power Saver node-kokoelmaan.

Käyttöesimerkki: lattialämmityksen hallinta Nilan EC9 ilmalämpöpumpulla

Nilan EC9 Ilmalämpöpumpussa on 9kW lämmityskattila vesikiertoiselle lattialämmitykselle. Lattialämmitystä säädetään ulkoilman lämpötilaan perustuvan käyrän sekä menoveden minimi- ja maksimilämpötilan perusteella. Lämmitys on mahdollista myös kytkeä kokonaan pois päältä.

Vaikka laite on Modbus -väylän avulla yhteydessä Home Assistantiin, ei lattialämmityksen säätöjä voi tehdä väylän kautta suoraan, vaan ne on tehtävä hieman hankalasti ohjauspaneelin valikoiden kautta syöttämällä näppäinpainalluksia holding-rekisteri 2000:een. Menetelmä kuitenkin toimii luotettavasti.

Alas-näppäimen painallus vaatii esimerkiksi neljä erillistä toimintoa: arvon 0x04 kirjoitus rekisteriin (=alas painike), pieni tauko, arvon 0x00 kirjoitus rekisteriin (=näppäimen nostaminen) ja pidempi tauko:

script:
  alas_painallus:
    sequence:
      - service: modbus.write_register
        data:
          address: 2000
          value:
          - 4
          - 0
          hub: nilan
          unit: 30
      - delay:
          milliseconds: 50
      - service: modbus.write_register
        data:
          address: 2000
          value:
          - 0
          - 0
          hub: nilan
          unit: 30
      - delay:
          milliseconds: 500

Tällä tavalla tehdään skriptit lattialämmityksen kytkemiseksi päälle ja pois. Skriptien lisäksi Home Assistantin käyttöliittymään tehdään lattialämmitykselle input_boolean-kytkin ja määritellään se kytkemään lattialämmitys päälle ja pois:

automation:
  - alias: Nilan, lattialämmitys päälle
    trigger:
    - platform: state
      entity_id:
      - input_boolean.lattialammitys
      to: 'on'
    action:
    - service: script.lattialammitys_paalle
    mode: single
automation:
  - alias: Nilan, lattialämmitys pois päältä
    trigger:
    - platform: state
      entity_id:
      - input_boolean.lattialammitys
      to: 'off'
    action:
    - service: script.lattialammitys_pois_paalta
    mode: single

Tämän lisäksi tehdään varsinaiset sähkön hintaan perustuvat automaatiot:

automation:
  - alias: Nilan, lattialämmitys päälle, matala hinta
    trigger:
    - platform: template
      value_template: '{{(float(states(''sensor.nordpool''),0)*100)<=float(states(''sensor.kytkentaraja''),0)}}'
    - platform: template
      value_template: '{{((as_timestamp(now()) - as_timestamp(state_attr(''automation.nilan_lattialammitys_pois_paalta_korkea_hinta'',''last_triggered'')))
      / 3600) > 3}}'
    condition:
    - condition: state
      entity_id: input_boolean.lattialammitys
      state: 'off'
    action:
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.lattialammitys
    mode: single
automation:
  - alias: Nilan, lattialämmitys pois päältä, korkea hinta
    trigger:
    - platform: template
      value_template: '{{(float(states(''sensor.nordpool''),0)*100)>float(states(''sensor.kytkentaraja''),0)}}'
    condition:
    - condition: state
      entity_id: input_boolean.lattialammitys
      state: 'on'
    - condition: template
      value_template: '{{((as_timestamp(now()) - as_timestamp(state_attr(''automation.nilan_lattialammitys_paalle_matala_hinta'',''last_triggered'')))
      / 3600) > 1}}'
    action:
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.lattialammitys
    mode: single

Automaatioiden lisäehdot varmistavat että lämmitys on pois päältä korkeintaan kolme tuntia kerrallaan ja että lämmitys on aina minimissään tunnin päällä.

25 thoughts on “Pörssisähkö – kulutuksen optimointia edullisimmille tunneille

  1. Löysin nämä sivut vasta tänään. Hime Assistant jutut alkanu kiinnostamaan tässä viimeaikoina.
    Semmoinen tuli mieleen että miten näihin HA vermeisiin pääsee kiinni kotiverkon ulkopuolelta (etänä)? Ilmeisesti reitittimen porttiohjaus on se juttu. Onko kokemusta tästä?

    1. On toki kokemusta etäkäytöstäkin. Reitittimen porttien avaamista sellaisenaan kannattaa välttää tietoturvan vuoksi. Itsellä on käytössä VPN, jonka avulla kotiverkkoon saa ulkopuolelta yhteyden. Home Assistantissa on myös oma maksullinen tilauspalvelu, Nabu Casa, jolla saa vastaavan toiminnallisuuden.

  2. Pongasin tänään tämän, kun harkitsen pörssisähköä. Mutta olen onneton säätelemään poistoilmalämpöpumppua (Nilan). Onko tämä Home assistant joku maksullinen lisäpalvelu ja mistä voi hankkia? Luin nyt tästä ensimmäisen kerran.

    1. Home Assistant on kotiverkossa olevalla palvelimella esim. Raspberry Pi:ssä ajettava kotiautomaatio-ohjelmisto, jonka avulla kodin eri älylaitteet saadaan yhdistettyä, määriteltyä niille automaatioita jne. Home Assistant ei maksa mitään lukuunottamatta valinnaista Nabu Casa -pilvipalvelua. Home Assistantiin voi tutustua sen sivuilla https://www.home-assistant.io/ tai vaikka etsimällä YouTubesta hyviä opastusvideoita.

      1. Itse pyöritän vanhalla läppärillä, jossa Linux Ubuntu ja virtuaalikoneella pyöritän Home Assistanttia. Linux pyörittää muutakin samalla mm. VPN palvelinta, Ovien lukituksen valvontaa ja yms. On vanha yritys läppäri jossa tehoa ja muistia piisaa!!! :=

        1. Jos tarkoitus on säästää sähköä, Raspberry Pi ja muut ARM-pohjaiset lienevät järkevin ratkaisu perinteisiin tietokoneisiin verrattuna, sen lisäksi ne ovat kompakteja verrattuna läppäriin ja helppo asentaa sähkö-/IT-kaappiin.

          Home Assistant ei ole niitä sovelluksia, jotka vaatisivat sen enempää paljon suoritintehoa, kuin muistia, tai edes suoranaisesti hyötyisi niistä.

          Itse pyöritän Home Assistantia RPi CM4/4Gb Lite-versiolla, tosin baseboardina on vähän paremmin varusteltu Waveshare, jossa sisäänrakennettu UPS ja varustettuna 256Gb nvme-ssd:llä, koska tarkoitus on kerätä tiedot arkistoon pitkältä ajalta analyysikäyttöön. UPS toimii kolmella 18650 kennolla ja antaa reilut 12h varakäyntiaikaa.

          Itse olen liittänyt järjestelmään kaikkea kivaa Oumanin lämmitysohjaimesta Valloxin ilmastointiin ja Honeywellin Grade III-murtohälyttimeen sekä Niben maalämpöpumppuun, päälle vielä BlueIris-valvontakamerat tavallisten valo- ja lämmitysohjausten lisäksi. RPi:n suorituskyky riittää täysin syöttämään mm. valvontavideostriimiä useammalta kameralta palvelimen kautta.

          NabuCasa-palvelun iso hyöty on, että sen kautta saa Push-ilmoitukset vaivatta niin Android- kuin IOS-sovellukseen. Toki onnistuu muutenkin, mutta vaatii turhaa jumppaamista, jonka ajan voi käyttää fiksumminkin!

          HomeAssistantin kaikissa versioissa ei ole samoja toiminallisuuksia ja osassa päivittäminen on helpompaa kuin toisissa. Ns. Supervised-asennus on kaikkein helpoin ylläpitää ja toimii mainiosti ARM-pohjaisissa ”single board compuetereissa” (SBC). SBC:sta valmiit asenuspaketit löytyy ainakin:
          – Raspberryn eri versiot
          – Odroid, eri verisoita
          – Asus Tinkerboard
          – Khadas VIM3

  3. Kiitos näistä 🙂 otin käyttöön tuon kohdan 2 (Valittu tuntimäärä päivässä) omassa automaatiossa. Saako sitä helposti muutettua vielä niin että se hakisi valitun tuntimäärän päivässä tietystä ajanjaksosta (esim klo 12-18).

    1. Itselläkin on tällä hetkellä tuo tuntimääräinen raja käytössä muutamalla lisäsäännöllä ettei lattiat pääse jäähtymään liiaksi.

      Valmista templatea kysymällesi tavalle ei tähään hätään ole tarjota, mutta tässä jotain ajatuksia jatkoon pääsemiseksi. Ajan suhteen voi toki tehdä lisäehdon automaatioon, mutta silloin valittu tuntimäärä ei kyseisenä ajankohtana toteudu.

      Lähtisin ehkä rajaamaan päivän tuntikohtaisista hinnoista kyseisen ajanjakson tuntihinnat omaan taulukkoon ja niistä etsiä kytkentäraja valitun tuntimäärän perusteella. Tämän lisäksi em. lisäehto ajan suhteen, pitäisi homman kaiketi toimia.

  4. Hei Kimmo!

    Olen aika aloittelija vielä Home Assistantin kanssa, enkä saa samaan korttiin kytkentärajan liukusäädintä ja kytkentärajan laskentaa (enkä saa laskentaa toimimaan missään muuallakaan .yaml tiedostoissa), ja sen seurauksena en voi viitata/hakea laskettu kytkentärajaa automaatioihin. Tähän asti olen tehnyt kortin näin:

    title: Lämmitysaika
    type: entities
    entities:
    – type: custom:slider-entity-row
    entity: input_number.lammitysaika

    Tuo näyttää säätimen ja antaa sille arvon, mutta kytkentärajan laskenta ei HA 2022.11.2 Supervised versiolla onnistu minulta.

    Vaikka teen viitattuun templates.yaml tiedostoon
    – platform: template
    sensors:
    kytkentaraja:
    jne…

    en saa kutsuttua sensor.kytkentaraja entiteettiä mitenkään.

    Voitko neuvoa miten tuon kortin saa tehtyä, että pääsisin eteenpäin. Tuo logiikkasi on selkeä, mutta HA ei vielä minulla taivu tähän.

    1. Moi,

      Vaikuttaisi siltä että tuo sensor.kytkentaraja -entiteetti ei ole määritelty oikein. Löytyykö se Kehittäjän työkalut -> Tilat -valikosta? Onhan tuo käyttämäsi templates.yaml ladattu configuration.yaml:ssa? Onko home-assistant.log:ssa jotain, joka johtaisi ongelman lähteelle?

  5. Hei
    Onko kellään antaa vinkkiä hyvästä lattialämmitystermostaatista jonka saisi kytkettyä home assistanttiin, mieluiten vielä zigbee tuella. Tarkoitus olisi juurikin ohjata pörssisähkön hinnan perusteella termostaatteja.

  6. Suurkiitokset Kimmolle näiden ohjeiden julkaisemisesta.

    Sain ohjauksen toimimaan sekä sopeutettua sitä edelleen omiin tarpeisiini.

    Ilman tätä oikotietä olisin yhä matkalla…

  7. Hei,
    Olen siirtymässö Cozifystä Home assistantiin ja pörssisähkön tuntiohjausta ohjausta tässä rakentelen.Sain noilla ohjeilla sähkön hinnan luettua ja myöskin tuntimäärän liukusäätimen tehtyä. Nyt onkin sitten ongelmana että mihin tuo koodin pätkä sijoitetaan jolla hinnat järjestetään ja kytkentäraja määritetään.

    1. Koodi täytyy lisätä manuaalisesti suoraan configuration.yaml -tiedostoon koska ainakaan toistaiseksi template-antureita ei käyttöliittymän kautta voi hallita.

      1. Ok. Kiitoksia tästä ja ohjeista yleensäkkin. Aloittelijakin pääsee pikku hiljaa jyvälle.

  8. Millä tuon tuntirajan saisi modattua siten, että saisi määritellä 00-08 välille 4 halvinta tuntia , jolla LVV lämmittää.

    1. Äkkiseltään kokeilisin tehdä uuden hintataulukon, johon laitetaan vain tuntien 00-08 hinnat ja järjestetään ne suuruusjärjestykseen. Näistä saadaan kytkentäraja samaan tapaan kuin jutun esimerkissä ottamalla taulukon neljäs arvo. Tämän lisäksi erillinen ehto, että päällekytkentä voi tapahtua vain kyseisenä aikana ja erillinen automaatio että lämmitys sammutetaan viimeistään kahdeksalta. Varmasti elegantimpiakin ratkaisuja toteuttamiseen löytyy.

  9. Tervehdys, ja kaunis kiitos näistä ohjeista.

    Yksi asia ihmetyttää, tai sitten en ymmärrä.
    Minulla on käytössä, tai siis yritän saada käyttöön tuota vaihtoehto nr 2, kaikki muu tuntuu toimivan, mutta automaatio näille on hieman hämärän peitossa.

    Nyt se menee niin että kun sensor norpool aistii halvemman hinnan kun kytkentäraja, se kytkee shellyn päälle, mutta mä en käsitä misttä saadaan kytkentäaika/tuntimäärä. Eli kun shelly kytkee lvv:lle virran, mistä muuttujasta se tietää irtikytkentäajankohdan?

    Mulla lvv kytkeytyy kiltisti, mutta ei kytkeydy enää pois, vaan jää päälle.
    Joku automaation osa puuttuu tai jotain, eli pitäähän automaatiossakin olla joku muuttuja minkä täyttyessä shelly kytketään irti.

    Ehkä tyhmä kysymys, jollekin päivänselvä, mutta kysymys siis kuuluu, että kun automaatio käynnistää varaajan, mikä sen lopettaa? Mistä se tieto tulee? Ja pitääkö tämä automaatiossa jotenkin siis määritellä, vai saako shelly sen jostain koodinpätkästä valitun tuntimäärän perusteella vaikka?

    1. Moi ja kiitos kommenteista. Varsinaista tuntimäärää ei tuossa menetelmässä seurata aktiivisesti vaan valitun tuntimäärän perusteella lasketaan kytkentäraja. Tuntimäärä toteutuu kun automaatioiden avulla päällekytkentä tehdään hinnan ollessa rajalla tai sen alla ja poiskytkentä kun hinta on rajan yli. Tarvitaan siis kaksi erillistä automaatiota; toinen päälle- ja toinen poiskytkentään. Jutun esimerkeissä on nuo molemmat automaatiot ja niiden trigger -arvoissa tuo mainittu vertailu. Toivottavasti tämä selkeytti 🙂

  10. Hei,

    Kiitos hyvistä artikkeleista! Innostuin itsekkin näiden ansiosta asentamaan vanhaan kannettavaan HAOS käyttöjärjestelmän ja sain sen kytkettyä Nilaniin ja jopa toimimaan.

    Itsellä käytössä veistan integraatio (https://github.com/veista/nilan) , koska sen sai asennettua HACS:n kautta.

    Olen sitä muokkaillut (siis overview), mutta nyt kun pitäisi sitten saada nilania ohjailtua lattialämmitystä jne. niin onkin hieman haasteita noiden koodien lisääminen.

    Tässä HAOS kun ei ollut valmiina mitään keinoa editoida mitään tiedostoja, joten hain file editorin ja nyt saan noita .yaml tiedostoja auki. Niissä ei kyllä kovin paljoa mitään ole.

    Oliko esim. nuo input numberit tarkoitus tehdä käyttöliittymän kautta klikkailemalla ja sitten editoida niitä vai suoraan copy paste nuo koodit johonkin? Kaikki tiedostot mitä availin sisältivät ainostaan muutaman rivin. Johtuuko siitä, että olen asentanut kaiken tuon HACS:n kautta?

    Ilmeisesti sinulla on jo uudempi nilan, mitä tämä artikkeli ei koske, mutta itsellä ainakin olisi toiveena saada ohjattua puhaltimia niin, että tuloilman lämpötila olisi suht vakio esim. +23’C ja se toteutettaisiin puhaltimien nopeutta säätämällä (koska tässä laitteessa on vain on/off kompressori, invertteri olisi ollut kyllä oikea ratkaisu). Tiedän, että nilanin valikossa on jokin vastaava ominaisuus, mutta se ei pidä tuloa ja poisto tasapainossa tai sitten ”humppaa” eli tuulettimet käy ensin kovalla ja sitten hiljaisella ja tätä melko nopeassa tahdissa.

    Olen ihan aloittelija näissä koodaushommissa, joten suo anteeksi tyhmät kysymykset =)

    1. Pahoittelut että vastaamisessa kesti,

      En ole tuota HACS:n kautta ladattavaa integraatiota itse käyttänyt, joten en valitettavasti osaa sanoa mitä Nilanin toimintoja sen kautta voi hallita.

      Input numberit tosiaan on tehty suoraan HASS:n käyttöliittymän kautta. Ennen automaatiosääntöihin perehtymistä kannattaa varmistaa että pystyt manuaalisesti säätämään puhaltimien ja lattialämmityksen toimintaa HASS:n kautta. Puhaltimien säätö onnistuu suoraan, mutta lattialämmityksen säätö voi vaatia hieman enemmän säätöä kuten jutussa mainitaan.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *