Ennustava jäähdytys

Ennustava jäähdytys

Aikaisemmassa kirjoituksessa selvitin laskennallisesti geneettisen algoritmin avulla optimaalisempia tapoja talon lämmittämiseksi ja jäähdyttämiseksi sekä sisälämpötilan vaihteluiden tasaamiseksi. Tällä kertaa tarkoitus on siirtää teoria käytäntöön.

Selvityksessä helpoimmin toteutettava vaihtoehto oli pitää lattialämmityksen ohjaus ennallaan Uponor Control System:n ohjaamana ja tehdä muutokset PILP:n ilmalämmityksen/-jäähdytyksen avulla. Vastaavaa menetelmää voi soveltaa hyvin siis myös tavallisen ilmalämpöpumpun ohjaamiseen.

PILP optimoitu, lattialämmitys ei
PILP optimoitu, lattialämmitys ei

Tuloksien tarkemmassa analyysissä tunnistettiin kuusi erilaista tilannetta, joissa PILP:n tilaa vaihdettiin. Neljä näistä olivat perussäädön mukaisia: jäähdytyksen tai lämmityksen käynnistys tai sammutus sisälämpötilan mukaan. Näiden lisäksi kaksi voitiin pohjata lämpötilaennustukseen: lämmityksen sammutus kuusi tuntia ennen kuin ulkolämpötila nousee tavoitelämpötilan tasolle ja jäähdytyksen aloitus neljä tuntia ennen kuin ulkolämpötila nousee tavoitelämpötilan tasolle.

Jäähdytyksen sammuttukselle tai lämmityksen käynnistykselle ei havaittu yhteyttä lämpötilaennustukseen, vaan ne tehtiin tarkastelujaksolla aina sisälämpötilan niin vaatiessa.

Jos PILP:n halutaan lämmittävän, asetetaan laitteen lämpötilapyyntö reilusti nykylämpötilaa lämpimämmäksi. Jos PILP:n halutaan jäähdyttävän, asetetaan lämpötilapyyntö reilusti nykylämpötilaa kylmemmäksi. Jos lämmitys tai jäähdytys halutaan pysäyttää ja siirtyä pelkkään ilmanvaihtoon, asetetaan lämpötilapyyntö samaksi kuin huonelämpötila.

Jotta lämpötilansäätö saadaan ennustavaksi, järjestelmän täytyy tietää lähituntien paikallissääennuste. Tätä varten asensin Githubista komponentin Home Assistantiin, joka hakee tiedot Ilmatieteenlaitoksen ennusteista. Tämän jälkeen esimerkiksi lämpötilaennuste neljän tunnin päästä saadaan selville queryllä:

{{states.weather.fmi.attributes.forecast.4.temperature}}

PILP:n lämmityksen ja jäähdytyksen säätöä varten Home Assitantiin tehtiin neljä eri automaatiota: jäähdytyksen käynnistys, jäähdytyksen sammutus, lämmityksen käynnistys ja lämmityksen sammutus. Kaikki automaatiot suoritetaan 15 minuutin välein. PILP:n oma yhden asteen hystereesi ohitetaan hieman tarkemmalla muokattavalla arvolla.

  - alias: 'Jäähdytys päälle'
    trigger:
      platform: time_pattern
      minutes: "/15"
    condition:
      condition: and
      conditions:
        - condition: or
          conditions:
            - condition: template
              value_template: "{{ states('sensor.nilan_t15_temp')|float > states('input_number.nilan_adaptive_setpoint')|float + states('input_number.nilan_hystereesi')|float }}"
            - condition: template
              value_template: "{{ states.weather.fmi.attributes.forecast.4.temperature > states('input_number.nilan_adaptive_setpoint')|float }}"
        - condition: state
          entity_id: sensor.nilan_compressor_state
          state: '0'
    action:
      - service: input_number.set_value
        data_template:
          entity_id: input_number.nilan_lampotilapyynto
          value: 15

Jäähdytyksen käynnistyksen ehtona on että sisälämpötila on suurempi kuin tavoitelämpötila + hystereesi tai että neljän tunnin päästä ulkolämpötila on ennusteen mukaan korkeampi kuin tavoitelämpötila. Lisäksi PILP:n kompressori ei saa olla päällä eli laite vain vaihtaa ilmaa. Tällöin PILP:n lämpötilapyyntö asetetaan 15 asteeseen, jolloin se alkaa jäähdyttää.

  - alias: 'Jäähdytys pois'
    trigger:
      platform: time_pattern
      minutes: "/15"
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: "{{ states('sensor.nilan_t15_temp')|float < states('input_number.nilan_adaptive_setpoint')|float }}"
        - condition: template
          value_template: "{{ states.weather.fmi.attributes.forecast.4.temperature < states('input_number.nilan_adaptive_setpoint')|float }}"
        - condition: state
          entity_id: sensor.nilan_compressor_state
          state: '1'
        - condition: or
          conditions:
            - condition: state
              entity_id: sensor.nilan_state
              state: '8'
            - condition: state
              entity_id: sensor.nilan_state
              state: '11'
    action:
      - service: input_number.set_value
        data_template:
          entity_id: input_number.nilan_lampotilapyynto
          value: "{{ states.sensor.nilan_t15_temp.state | float }}"

Jäähdytyksen sammutuksen ehtona on että huonelämpötila on pienempi kuin tavoitelämpötila ja että neljän tunnin päästä ulkolämpötilan ennuste on pienempi kuin tavoitelämpötila. Lisäksi PILP:n täytyy olla jäähdyttävässä tilassa. Tällöin PILP:n lämpötilapyyntö asetetaan samaksi kuin huonelämpötila.

  - alias: 'Lämmitys päälle'
    trigger:
      platform: time_pattern
      minutes: "/15"
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: "{{ states('sensor.nilan_t15_temp')|float < states('input_number.nilan_adaptive_setpoint')|float - states('input_number.nilan_hystereesi')|float }}"
        - condition: template
          value_template: "{{ states.weather.fmi.attributes.forecast.6.temperature < states('input_number.nilan_adaptive_setpoint')|float }}"
        - condition: state
          entity_id: sensor.nilan_compressor_state
          state: '0'
    action:
      - service: input_number.set_value
        data_template:
          entity_id: input_number.nilan_lampotilapyynto
          value: 30

Lämmityksen käynnistyksen ehtona on että sisälämpötila on pienempi kuin tavoitelämpötila – hystereesi ja että kuuden tunnin päästä ulkolämpötila on ennusteen mukaan pienempi kuin tavoitelämpötila. Lisäksi PILP:n kompressori ei saa olla päällä eli laite vain vaihtaa ilmaa. Tällöin PILP:n lämpötilapyyntö asetetaan 30 asteeseen, jolloin se alkaa lämmittää.

  - alias: 'Lämmitys pois'
    trigger:
      platform: time_pattern
      minutes: "/15"
    condition:
      condition: and
      conditions:
        - condition: or
          conditions:
            - condition: template
              value_template: "{{ states('sensor.nilan_t15_temp')|float > states('input_number.nilan_adaptive_setpoint')|float }}"
            - condition: template
              value_template: "{{ states.weather.fmi.attributes.forecast.6.temperature > states('input_number.nilan_adaptive_setpoint')|float }}"
        - condition: state
          entity_id: sensor.nilan_compressor_state
          state: '1'
        - condition: or
          conditions:
            - condition: state
              entity_id: sensor.nilan_state
              state: '7'
            - condition: state
              entity_id: sensor.nilan_state
              state: '9'
    action:
      - service: input_number.set_value
        data_template:
          entity_id: input_number.nilan_lampotilapyynto
          value: "{{ states.sensor.nilan_t15_temp.state | float }}"

Lämmityksen sammutuksen ehtona on että huonelämpötila on suurempi kuin tavoitelämpötila tai että kuuden tunnin päästä ulkolämpötilan ennuste on suurempi kuin tavoitelämpötila. Lisäksi PILP:n täytyy olla lämmittävässä tilassa. Tällöin PILP:n lämpötilapyyntö asetetaan samaksi kuin huonelämpötila.

Ensimmäisten päivien kokemusten perusteella järjestelmä vaikuttaisi reagoivan lämpötilaennusteisiin odotetulla tavalla ja pitävän huonelämpötilan tasaisempana kuin aikaisemmin. Tarvittaessa tavoitelämpötilan, hystereesin suuruutta ja lämpötilaennusteiden etäisyyttä voidaan muuttaa tarpeen mukaan ja hienosäätää järjestelmää.

Vastaa

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