Daikin + Faikout + Machine Learning

heebo1974

Aktiivinen jäsen
Ei liity faikoutiin, mutta tästä inspiroituneena tuli tehtyä pythonilla LVV:n, erilaisten Tuya-pohjaisten lattialämmitystermostaattien liittyvät skriptit pörssisähkömielessä.
Mitä näissä niinkuin haetaan ? Noihan ovat pelkkiä vastuksia, niin ainakin itse olen vain luonut automaatiot perustuen sähkön hintaan.
Kallimmalla lasketaan setpointteja ja halvalla nostetaan. :) En tosin ole ottanut mitään sellaista huomioon, että esim. ylilämmitettäisiin lattioita kun kalliit tunnit lähestyvät. No tietty tavallaan setpointeilla pelaaminenkin on tuota.
LVV on melkein vieläkin yksinkertaisempaa. Pääsääntöisesti lämmitetään yöllä halvoilla varteilla. Kesällä ei käytännössä ollenkaan, koska aurinkopaneelit hoitavat LVV lämmityksen.
 

Koelli

Aktiivinen jäsen
Mitä näissä niinkuin haetaan ? Noihan ovat pelkkiä vastuksia, niin ainakin itse olen vain luonut automaatiot perustuen sähkön hintaan.
Kallimmalla lasketaan setpointteja ja halvalla nostetaan. :) En tosin ole ottanut mitään sellaista huomioon, että esim. ylilämmitettäisiin lattioita kun kalliit tunnit lähestyvät. No tietty tavallaan setpointeilla pelaaminenkin on tuota.
LVV on melkein vieläkin yksinkertaisempaa. Pääsääntöisesti lämmitetään yöllä halvoilla varteilla. Kesällä ei käytännössä ollenkaan, koska aurinkopaneelit hoitavat LVV lämmityksen.
Laitan linkin YV:llä. Se on melko lyhyt (no, suhteellisesti) ja varmasti saat kiinni, mitä se about tekee.

Tein siis tämän (sekä lattiatermareiden ja auton latauksen) kahdesta syystä: optimoidaan, tai pyritään, valitsemaan oikea määrä tunteja tavoitteen saamiseksi JA estetään tehomaksujen karkaaminen.
 

heebo1974

Aktiivinen jäsen
En kyllä pääse jyvälle tuon nordpoolin toiminnasta. Viime yö mentiin lämmöllä. Sitten kahdeksan yhdeksän maissä alettiin pudottamaan setpointtia. No edelleen ollaan setpointin alapäässä, vaikka hinnat ovat nyt about samat kuin yöllä. 🤷‍♀️
1768586960562.png


No ehkä se kohta rupeaa nostamaan ja loppuilta on sitten isompaa setpointtia. Jotenkin ääripäissä liikutaan.

EDIT: Vaihdoin tuoreemman shotin. Edelleen sama setpointti. Pitää varmaan viritellä oma pörssi setpointin vaihtaja. Tämä ei ole mieleeni. :)
 
Viimeksi muokattu:

heebo1974

Aktiivinen jäsen
Norpool on ollut nyt pois päältä. Ihmeellisen huonosti pysyy setpointissa alakerrassa. Epäilen draft preventionia.
Yläkerrassa ei mitään ihmeellistä DC30 riittää ylilämpöön.
1768634748070.png

1768634795189.png
 

heebo1974

Aktiivinen jäsen
Olisiko yksi mahdollisuus taistella draft preventionin kanssa se, että kun se tunnistetaan olevan päällä, niin lämpöjen nosto aloitetaankin suht isolla DC:llä ja siitä sitten pudotellaan ?

Pitää ehkä miettiä luovuttamista tämän DC systeemin kanssa pelaaminen ja siirtyä pumpun normaaliin käyttöön.
Se käy sitten katkoa, mutta saattaa toimia kuitenkin paremmin.
 

heebo1974

Aktiivinen jäsen
Aloin testaamaan T3m3z:n https://github.com/T3m3z/spotprices2ha control factoriin perustuvaa setpointin asettamista.
Tämä siis ei vielä vaikuta mihinkään, vaan piirtelee vain virtuaalista setpointtia. Helpottaa hahmottamaan minkälaisia kertoimia laittaisin tuohon ohjaukseen. Lisäksi ehkä kaipaa jotain pyöristyksiä.

1768647423535.png


Automaatio siis näin säätää tuota:
YAML:
action: input_number.set_value
metadata: {}
target:
  entity_id: input_number.daikin_setpoint_base_porssi_result
data:
  value: >-
    {{ (states('input_number.daikin_setpoint_base_porssi') | float(0) +  0.5 *
    states('sensor.shf_control_factor_1') | float(0)) | round(2) }}

EDIT: Itseasiassa jo muokkasinkin kerrointa. Aiemmin oli setpoint + 1 * control factor. Joka oli aivan liian iso. 0.5:lla Päästään kivaan 23 +/-0.5 C muutokseen.

Control factorin asetukset ovat seuraavat:
1768649387842.png
 
Viimeksi muokattu:

heebo1974

Aktiivinen jäsen
Tein vielä tuosta setpoint automaatiosta 5 portaisen eri sähkön hintoihin perustuvana. Eli kun hinta on yli 25c/kWh, pudotetaan setpointtia 0.3C, yli 20c/kWh 0.2C jne jne..
Eli käytännössä niin, että kun tuo itse control factor hoitaa normaalisti päivän sisäiset setpointi, hinnoilla vielä vähän pelataan lisää.
Ja kyllähän siinä niin käy kuitenkin, että jos hinta pyörii tuollla 20c yläpuolella, niin takkaa tulee polteltua muutenkin.
Voisi melkein tähän samaan konkurssiin ottaa tuon testiin alakerrassa. :) Saahan sen pois käytöstä yhdellä vivun käännöllä.
Saa nähdä minkälaisia vaikutuksia on. Aika sekavasti tuo on muutenkin toiminut, niin eipä tässä paljoa häviä.
Yläkerta kyllä on kokoajan toiminut aika hyvin.
 
Viimeksi muokattu:

heebo1974

Aktiivinen jäsen
Vähän kun tuota käyrää olen nyt tuijotellut, niin taitaapi tässäkin olla se ongelma, että yön halvat tunnit korostuvat ja sitten ns. prime time aikaan tulee setpointit alakanttiin. Tuon control factorin asetuksilla pystyy pelaamaan kyllä vähäsen. Sinusoidal -> Lineariksi ja kerroin 1:ksi, niin tasoittuu jonkin verran. Voi olla että jää lyhyeksi kokeilu ja päädyn ns. entiseen ihan selkeään rank systeemiin setpointin asettelussa.
Voi sitäkin offsetata sähkön hinnalla. Tai sitten puhtaasti hintaperusteiseen setpointtaamiseen. Hinta on rajan x...y sisällä -> setpoint on x.
 
Viimeksi muokattu:

Luukku

Vakionaama
Pörssisähkö on hankala ilppien kanssa. Yöllä halvinta ja silloin pienempi lämpötila yleensä riittää, ainakin nukkumatiloissa. Kuitenkin ottotehot aika pieniä niin säästö marginaalista. Toista se on porealtaan lämmityksessä, auton lautauksessa ja lvv:n lämmityksessä. Niissä vähän vaikuttaakin.
 

heebo1974

Aktiivinen jäsen
Pörssisähkö on hankala ilppien kanssa. Yöllä halvinta ja silloin pienempi lämpötila yleensä riittää, ainakin nukkumatiloissa. Kuitenkin ottotehot aika pieniä niin säästö marginaalista. Toista se on porealtaan lämmityksessä, auton lautauksessa ja lvv:n lämmityksessä. Niissä vähän vaikuttaakin.
Kyllä tämä on tiedossa. Se on vaan pakkomielle.. :)
 

heebo1974

Aktiivinen jäsen
Viimeyö / aamu tuolla control factor setpointtaajalla. Sulatukset ainakin lisääntyneet, tosin lauhaa on joka osaltaan vaikuttaa.
1768725489589.png
 

heebo1974

Aktiivinen jäsen
Se on nyt testattu, nyt annoin tekoälyn luoda yksinkertaisen hintaan perustuvan automaation. Tällä mennään nyt testiin.
YAML:
alias: ILP-a Lämpötilan säätö pörssisähkön mukaan (€/kWh)
description: >-
  Säätää Daikinin pyyntiä välillä 22.3 - 23.5 kun hinta on 0.04€ - 0.25€
  välillä.
triggers:
  - entity_id: sensor.shf_rank_now
    trigger: state
conditions:
  - condition: state
    entity_id: input_boolean.ilp_a_porssisahko_off_on
    state: "on"
actions:
  - target:
      entity_id: input_number.daikin_setpoint_base
    data:
      value: >
        {# Muutetaan hinta euroiksi laskentaa varten #} {% set hinta =
        states('sensor.shf_electricity_price_now') | float(0) %} {% set
        hinta_min = 0.04 %} {% set hinta_max = 0.25 %} {% set temp_min = 22.3 %}
        {% set temp_max = 23.5 %}

        {% if hinta <= hinta_min %}
          {{ temp_max }}
        {% elif hinta >= hinta_max %}
          {{ temp_min }}
        {% else %}
          {# Lineaarinen laskenta: kalliimpi hinta laskee lämpötilaa #}
          {% set suhde = (hinta - hinta_min) / (hinta_max - hinta_min) %}
          {% set laskettu_temp = temp_max - (suhde * (temp_max - temp_min)) %}
          {{ laskettu_temp | round(1) }}
        {% endif %}
    action: input_number.set_value
mode: restart
 

heebo1974

Aktiivinen jäsen
Nyt on tehty lisää helppereitä ja plotly, josta voi seurata tulevia setpointteja.

min ja max price capit
1768733553691.png

Setpoint base, min ja max capit olivatkin jo olemassa.
1768733715918.png

graafi josta selviää tulevat setpointit vs. sähkön hinta
1768733756448.png


Koska tämä perustuu sähkön hintaan, eikä päivän sisäisiin muutoksiin on tässä paljon maltillisemmat muutokset.
Jopa niin maltilliset, ettei tämä nykyinen systeemi pysy mitenkään noissa rajoissa. :)
Todellinen lämpö kuitenkin heittelee niin paljon. Ellei koelli keksi jotain korjauskertoimia ML malliin. 😁
 

Liitteet

  • 1768733684905.png
    1768733684905.png
    15 KB · Katsottu: 10
Viimeksi muokattu:

heebo1974

Aktiivinen jäsen
Mietin myös sellaista lämpötilan yö pudotusta yläkertaan (jossa siis makuuhuone). Eli toisaalta vaikka yöllä sähkö on halpaa, ei välttämättä ole kiva että makuuhuoneessa on esim. 23.5C lämmintä. Eli noihin pörssijuttuihin olisi sitten vielä kellonaika muutos. Toisaalta kovilla pakkasilla voisi olla silti järkeää pitää halvalla korkeampaa lämpö ja ehkäistä näin rakenteiden kylmenemistä.

No pitää miettiä. Tai sitten yö pudotukseen vielä lisäksi pakkasraja. :)

No nämä eivät sinänsä liity tähän ML scriptiin, vaan enemmänkin vain tuon setpointin rakenteluun omiin mieltymyksiin.

Toisaalta melkein ilman mitään vaivaa pääsee, kun asettaa rajat vain alemmaksi yläkerrassa. Sinänsä ei haittaa, vaikka makuuhuone olisi kokoajan paljon viileämpi kuin alakerran olohuone. Nythän yläkerrassa ei ole koko pörssihomma käytössä ja se kyllä toimii niinkin.
Tai ei sille oikein voi tehdä mitään, kun DC30 kokoajan ja ylilämpöä näillä nollan tuntumassa olevilla lämpötiloilla.
 

heebo1974

Aktiivinen jäsen
Olisiko yksi mahdollisuus taistella draft preventionin kanssa se, että kun se tunnistetaan olevan päällä, niin lämpöjen nosto aloitetaankin suht isolla DC:llä ja siitä sitten pudotellaan ?
Tai sitten tarkkailtaisiin liquid temppiä ja kun se alkaa pyöriä siinä katkaisu rajalla pidemmän aikaa, niin nostetaan hetkellisesti DC:tä että saadaan nesteisiin lämpöä.
 

heebo1974

Aktiivinen jäsen
Nyt kun olen säädellyt tuota base setpointtia, niin huomasin, ettei se heti siirry tuohon daikin setpointtiin.
Millä logiikalla se siirtyy siihen ? Taitaa kestää 5min, ennenkuin se siihen siirtyy. Toisaalta voisin ohjata suoraan tuota daikin setpointtia, koska nordpool ei ole tässä ml skriptissä käytössä.

EDIT: Toki joudun ohjata molempia, koska muuten base setpoint ylikirjoittaa sen hetken kuluttua.
 

Luukku

Vakionaama
Tai sitten tarkkailtaisiin liquid temppiä ja kun se alkaa pyöriä siinä katkaisu rajalla pidemmän aikaa, niin nostetaan hetkellisesti DC:tä että saadaan nesteisiin lämpöä.
Oletko kokeillu automaattista tarveohjausta? Näyttäis siltä, että nostaa tehoa, kun puhallus laskee lähelle 30 astetta. Osaisiko tuo estää automaattisesti draft preventionin?
 

heebo1974

Aktiivinen jäsen
Laitetaas taas käppyrää. Eilen lämmitetty takkaa. Alakerrassa käytännössä ollut koko päivän draft prevenetion päällä.
Kuitenkin 10 aikoihin on alettu tarvitsemaan lisälämpöä pumpulta. Klo 16.30 saakka ei olla saatu nostettua DC:tä niin ylös että olisi lämpöä ruvennut tuottamaan. Sitten tulikin sulatus ja laitoin takkaan tulet. Eli alakerta ei tänään ainakaan toiminut käytännössä ollenkaan.
Minun tapauksessani selvästi tarvittaisiin se, että DC nostettaisiin aina kun draft prevention on päällä ja lämpöä tarvitaan, niin ainakin hetkellisesti jonnekkin DC95:een. Sitten vois alkaa laskettelu tarpeen mukaan. En tiedä onko tässä juuri ongelmana myös se oppiminen. Eli kun on opittu, että DC30 riittää (koska takkaan on polteltu), niin tämä tappaa tuon lämmön noston.

1769007999579.png


Yläkerta toimii ihan ookoo.
1769008274481.png


Molemmissa on siis disabloitu ML scriptin nordpool ja käytössä on tuo oma hintaan perustuva setpointin muuttelu.
Se voi myös vaikuttaa jotain.
 

Luukku

Vakionaama
Klo 12-14 näkyy pientä vastetta DC:llä olevan, mutta nopeasti laskee takaisin. Mikä lämpötilatavoite on ollut? Jos ollaan lähellä tavoitetta niin juuri noin se tietysti reagoi. Tuohon 14-15 väliseen lämpötilan pudotukseen ei derivaatta ole hirveästi reagoinut tai sitten ei tuosta vaan erotu. Olisiko tuollekin systeemille hyvä kertoa mikä lämpötila meillä on tunnin päästä, jos näin jatketaan? Vähän ennustetta peliin mukaan?
Edit: itse käytän ennustetta derivaatan tilalla.
 
Viimeksi muokattu:

heebo1974

Aktiivinen jäsen
Klo 12-14 näkyy pientä vastetta DC:llä olevan, mutta nopeasti laskee takaisin. Mikä lämpötilatavoite on ollut? Jos ollaan lähellä tavoitetta niin juuri noin se tietysti reagoi. Tuohon 14-15 väliseen lämpötilan pudotukseen ei derivaatta ole hirveästi reagoinut tai sitten ei tuosta vaan erotu. Olisiko tuollekin systeemille hyvä kertoa mikä lämpötila meillä on tunnin päästä, jos näin jatketaan? Vähän ennustetta peliin mukaan?
Edit: itse käytän ennustetta derivaatan tilalla.
Niin, siis tavoite näkyy tuossa toisessa käppyrässä (setpoint). Toisaalta en tiedä tarkoitatko sitä ? Faikoutissa on toki tavoitteena se 31C.
En osaa sanoa miten tuo skrpti käsittelee tuota setpoint tietoa. Jokatapauksessa draft prevention on varmaan iso syy tuohon huonoon reagointiin. Tai siis scriptin logiikka ei osaa käsitellä sitä, koska se ei tiedä milloin draft prevention on aktiivinen ja varmaan "hämmentyy" siitä, että välillä samalla DC:llä lämmittää ja välillä ei. Tietty takka vielä omana osana sotkee tilannetta. En tiedä olisiko sitten hyvä saada esim. tieto takan pintalämpötilasta scriptille. Kun se on selkeästi yli huoneen lämpötilan, niin voitaisiin olettaa jotain asioita.
Scriptissä oli muistaakseni manuaalinen asetus sille, että takka on aktiivinen, mutta taisi vain lopettaa oppimisen jos se oli kytkettynä päälle. En ole kokeillutkaan koko asetusta.
 

heebo1974

Aktiivinen jäsen
Kokeilin ihan huvikseen pakottaa DC95 tilanteessa, kun draft prevention on päällä.
Aika nopeasti puhallus aktivoituu. Eli periaatteessa kun lämmitystarvetta tulee, voisi käyttää 5-10 min DC95:ssä, jonka jälkeen hypättäisiin takaisin sinne DC alapäähän ja jatkettaisiin normikaavalla. Tai miksei dc95:stä alaspäin, niinkuin nyt tapahtui. Ehkä se alhaalta ylös olisi kuitenkin normaalimpi.
1769075647033.png


EDIT: Korostan sitä, että ei tuota draft preventionia väkisellä tarvitse kokoajan pitää poissa. Lähinnä vaan silloin, kun lämmitystarvetta tulee, niin saataisiin pois mahdollisimman pian, jolloin ei jäätäisi tuntien odotteluun ennenkuin lämpöä saadaan.
 
Viimeksi muokattu:

Luukku

Vakionaama
Korostan sitä, että ei tuota draft preventionia väkisellä tarvitse kokoajan pitää poissa. Lähinnä vaan silloin, kun lämmitystarvetta tulee, niin saataisiin pois mahdollisimman pian, jolloin ei jäätäisi tuntien odotteluun ennenkuin lämpöä saadaan.
Ihmettelen tuon herkkyyttä tuolle draft preventiolle, kun en omasta tuota bongaa ollenkaan, tosin yläkerrassa ei ole uunia lämmitetty vaikka siellä sellainenkin on. Eli pumppu hoitaa yksinään lämmityksen. Lämmöntarve ylhäällä tietysti pienempi kuin alakerrassa. Alhaalla saa uuniakin lämmittää eikä Perfera ota siitä itseensä. Onko sulla se offset säädetty mihin? Stylish ketjussa juuri mainitsin siitä, että se kannattaa laittaa kohilleen, muuttu pumppu erilaiseksi käytökseltään.
 

heebo1974

Aktiivinen jäsen
Ihmettelen tuon herkkyyttä tuolle draft preventiolle, kun en omasta tuota bongaa ollenkaan, tosin yläkerrassa ei ole uunia lämmitetty vaikka siellä sellainenkin on. Eli pumppu hoitaa yksinään lämmityksen. Lämmöntarve ylhäällä tietysti pienempi kuin alakerrassa. Alhaalla saa uuniakin lämmittää eikä Perfera ota siitä itseensä. Onko sulla se offset säädetty mihin? Stylish ketjussa juuri mainitsin siitä, että se kannattaa laittaa kohilleen, muuttu pumppu erilaiseksi käytökseltään.
Offset on vakio, mutta tuskin merkitystä koska pyynti on maksimit eli 31C. Dc:llä pelataan.
 

Luukku

Vakionaama
Kertokaas vielä miten tuo pörssihinta tuossa ohjaa? Paljonko se antaa lämpötilan laskea jos kallista? Säädetäänkö sen perusteella DC:tä? Vai onko DC säätö pelkästään ML:llä? Vai säätääkö molemmat yhtäaikaa? En oikein ole päässyt jyvälle tuosta ML:stä mikä sen logiikka on? Tuon draft prevention aiheuttaa varmaan se, kun pumpulle ei anneta lupaa tehonkäyttöön, uskoisin näin. Koska pakotettuna toimii.
 

heebo1974

Aktiivinen jäsen
Kertokaas vielä miten tuo pörssihinta tuossa ohjaa? Paljonko se antaa lämpötilan laskea jos kallista? Säädetäänkö sen perusteella DC:tä? Vai onko DC säätö pelkästään ML:llä? Vai säätääkö molemmat yhtäaikaa? En oikein ole päässyt jyvälle tuosta ML:stä mikä sen logiikka on? Tuon draft prevention aiheuttaa varmaan se, kun pumpulle ei anneta lupaa tehonkäyttöön, uskoisin näin. Koska pakotettuna toimii.
En osaa sanoa miten ML scriptin norpool toimii. En päässyt oikein jyvälle. Mutta itse käytän siis hintaan perustuvaa setpointtausta.
Eli tietyllä hinnalla tulee tietty setpoint pyynti, jonka tuo ML scripti sitten hoitaa miten hoitaa. Eli säätämällä tarpeen mukaan DC:tä.
En myöskään tajua tuota draft preventionin logiikkaa, mutta olen huomannut, että mitä korkeampi DC, niin sitä helpommin nestelämmöt nousevat kriittisen pisteen yli ja puhallus normalisoituu.

Tässä vielä oma nordpool logiikkani:
YAML:
alias: ILP-a Lämpötilan säätö pörssisähkön mukaan (Täysin Dynaaminen)
description: >-
  Säätää Daikinin pyyntiä sähkön hinnan mukaan käyttäen dynaamisia hinta- ja
  lämpötilarajoja.
triggers:
  - entity_id: sensor.shf_rank_now
    trigger: state
conditions:
  - condition: state
    entity_id: input_boolean.ilp_a_porssisahko_off_on
    state: "on"
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - target:
      entity_id:
        - input_number.daikin_setpoint_base_porssi_result
        - input_number.daikin_setpoint_base
        - input_number.daikin_setpoint
    data:
      value: >
        {# Haetaan sähkön hinta (€/kWh) #} {% set hinta =
        states('sensor.shf_electricity_price_now') | float(0) %}

        {# Haetaan dynaamiset lämpötilarajat (°C) #} {% set t_min =
        states('input_number.daikin1_min_temp_guard') | float(22.3) %} {% set
        t_max = states('input_number.daikin1_max_temp_guard') | float(23.5) %}

        {# Haetaan dynaamiset hintarajat ja muutetaan ne euroiksi (€/kWh) #} {%
        set h_min = (states('input_number.daikin_min_price_guard') | float(4)) /
        100 %} {% set h_max = (states('input_number.daikin_max_price_guard') |
        float(25)) / 100 %}

        {% if hinta <= h_min %}
          {{ t_max }}
        {% elif hinta >= h_max %}
          {{ t_min }}
        {% else %}
          {# Lineaarinen laskenta dynaamisilla rajoilla #}
          {% set suhde = (hinta - h_min) / (h_max - h_min) %}
          {% set laskettu_temp = t_max - (suhde * (t_max - t_min)) %}
          {{ laskettu_temp | round(1) }}
        {% endif %}
    action: input_number.set_value
mode: restart
input_number.daikin1_min_temp_guard = tällähetkellä 22.3C
input_number.daikin1_max_temp_guard = tällähetkellä 23.5C
input_number.daikin_min_price_guard = tällähetkellä 4c/kWh
input_number.daikin_max_price_guard = tällähetkellä 25c/kWh

Tässä vielä tämän päivän pyynnit ja pörssin hinnat:
1769101228905.png
 
Viimeksi muokattu:

Luukku

Vakionaama
mutta olen huomannut, että mitä korkeampi DC, niin sitä helpommin nestelämmöt nousevat kriittisen pisteen yli ja puhallus normalisoituu.
Näinhän se toimii. Jos pörssihinta sallii setpointin noston niin jonkun pitää sille ML:lle antaa sama tieto, että DC saa nousta.
 

Koelli

Aktiivinen jäsen
Tällaista täällä. Toimii hyvin. Tein useasta eri lämpötila-anturin antamasta tiedosta keskiarvo-sensorin, joka vaikutti olevan hyvä ratkaisu, koska lämmönvaihteluista tämä ML-malli ei tykkää.

Nordpoolin sai pelittämään parametrimuutoksilla. Pitää tietysti hakea itselleen sopiva malli. Ulkopuolinen laskenta spot-hinnan mukaan toki sekin varmasti toimiva ratkaisu, kuten @heebo1974 teki.

1769147959991.png
 
Viimeksi muokattu:
Back
Ylös Bottom