Daikin + Faikout + Machine Learning

Koelli

Aktiivinen jäsen
Lähinnä tarkoitin sitä, että kun kirjoitan tuohon daikin_ml.py tiedostoon esim. oman sisälämpötilan sensorin, niin ei tarvitsisi sitä enää uudelleen kirjoittaa sinne automations.yaml conffiin ja configuration.yaml conffiin. (en nyt katsonut pitikö molemmat sitä sisälllään).
En osaa sanoa, onko sellainen edes mahdollista.

Ja kyhäelmäkin on parempi kuin ei mitään. Sitä on vaan tullut niin mukavuudenhaluiseksi. :)
Tää viritelmä on tosiaan ihan kauhea. Ehkä jonain päivänä se ei olisi.
 

heebo1974

Aktiivinen jäsen
Nyt on silmät sikkurassa väännetty omia antureita tuonne... Ja tämän sain palkaksi. :)
Koodi:
Logger: custom_components.pyscript.file.daikin_ml.daikin_ml_controller
Source: custom_components/pyscript/trigger.py:1397
integration: Pyscript Python scripting (documentation, issues)
First occurred: 16:35:14 (33 occurrences)
Last logged: 19:00:00
Exception in <file.daikin_ml.daikin_ml_controller> line 355: sp = float(state.get(SP_HELPER) or 22.5) ^ NameError: name 'input_number.daikin_setpoint' is not defined

Oma helpperini:
SP_HELPER = "input_number.faikout_comfora_setpoint"

Olihan nyt niin, että pyscript kansiossa siis nuo kaikki tarvittavat filut ? Vai pitääkö tehdä lisää alikansioita ?

Koodi:
➜  pyscript ls -la
total 44
drwxr-xr-x    2 root     root          4096 Dec 17 16:34 .
drwxr-xr-x   13 root     root          4096 Dec 17 16:24 ..
-rw-r--r--    1 root     root          7499 Dec 17 19:03 automations.yaml
-rw-r--r--    1 root     root          7433 Dec 17 18:47 configuration.yaml
-rw-r--r--    1 root     root         19520 Dec 17 18:28 daikin_ml.py
➜  pyscript

Hmmm.. Vai pitääkö noi automaatiot ja configurationssit lisäillä tuonne HA:n yleiselle puolelle ? Ilmeisesti, kun ei tuossa daikin_ml.py:ssä viitata noihin mitenkään.
 
Viimeksi muokattu:

Koelli

Aktiivinen jäsen
Nyt on silmät sikkurassa väännetty omia antureita tuonne... Ja tämän sain palkaksi. :)
Koodi:
Logger: custom_components.pyscript.file.daikin_ml.daikin_ml_controller
Source: custom_components/pyscript/trigger.py:1397
integration: Pyscript Python scripting (documentation, issues)
First occurred: 16:35:14 (33 occurrences)
Last logged: 19:00:00
Exception in <file.daikin_ml.daikin_ml_controller> line 355: sp = float(state.get(SP_HELPER) or 22.5) ^ NameError: name 'input_number.daikin_setpoint' is not defined

Oma helpperini:
SP_HELPER = "input_number.faikout_comfora_setpoint"

Olihan nyt niin, että pyscript kansiossa siis nuo kaikki tarvittavat filut ? Vai pitääkö tehdä lisää alikansioita ?

Koodi:
➜  pyscript ls -la
total 44
drwxr-xr-x    2 root     root          4096 Dec 17 16:34 .
drwxr-xr-x   13 root     root          4096 Dec 17 16:24 ..
-rw-r--r--    1 root     root          7499 Dec 17 19:03 automations.yaml
-rw-r--r--    1 root     root          7433 Dec 17 18:47 configuration.yaml
-rw-r--r--    1 root     root         19520 Dec 17 18:28 daikin_ml.py
➜  pyscript

Hmmm.. Vai pitääkö noi automaatiot ja configurationssit lisäillä tuonne HA:n yleiselle puolelle ? Ilmeisesti, kun ei tuossa daikin_ml.py:ssä viitata noihin mitenkään.
Keskitytään ensin login ongelmaan. Jos käytät input_number.faikout_comfora_setpoint input_numberina, niin tällöin koodista pitää vaihtaa se tietenkin tuohon nimeämääsi.
 

heebo1974

Aktiivinen jäsen
Automations.yaml sisältö tosiaan globaaliin automations.yaml:Iin. Ei omana tiedostona.
Jep! Noniiiiiiiin, nyt se sitten kai tekee tuolla taikojaan. Ei ainakaan enää tule erroreita logiin.

EDIT: Jotain mätää vielä, koska paljon puuttuu noita entityjä, joita sinulla on tuossa wikin screenshotissa.
Silti se jotain tekee ja muutti juuri äsken esim. tarveohjauksen arvoa.
EDIT2: Oletan, että nekin pitää luoda.
EDIT3: Kahdella pumpulla tämä tulee olemaan tuskien taival näiden entityjen kanssa.
EDIT4: Onko joku keino nollata opppimiset ?
 
Viimeksi muokattu:

Koelli

Aktiivinen jäsen
Jep! Noniiiiiiiin, nyt se sitten kai tekee tuolla taikojaan. Ei ainakaan enää tule erroreita logiin.

EDIT: Jotain mätää vielä, koska paljon puuttuu noita entityjä, joita sinulla on tuossa wikin screenshotissa.
Silti se jotain tekee ja muutti juuri äsken esim. tarveohjauksen arvoa.
EDIT2: Oletan, että nekin pitää luoda.
EDIT3: Kahdella pumpulla tämä tulee olemaan tuskien taival näiden entityjen kanssa.
EDIT4: Onko joku keino nollata opppimiset ?
Minulla on Apex Chartsilla tuon sensorin graafi, niin saa kiinni siitä, mitä se tekee. Alla koodi:

Koodi:
type: custom:apexcharts-card
style: |
  ha-card {
    border: 0px;
    background-color: var(--dwains-theme-primary);
    box-shadow: none;
  }
header:
  show: true
  title: ML
  show_states: true
  colorize_states: true
experimental:
  color_threshold: true
show:
  loading: false
graph_span: 1d
span:
  start: day
series:
  - entity: sensor.daikin_ml_learned_demand
    type: line
    curve: stepline
    stroke_width: 1
    extend_to: now
    color_threshold:
      - value: 30
        color: lime
      - value: 100
        color: purple
    show:
      name_in_header: true
      in_header: raw
      header_color_threshold: true

Mitkä entityt mielestäsi puuttuu?
Oppi voidaan nollata seuraavasti: Kehittäjät työkalut -> Toiminnot -> daikin_ml_reset -> Suorita toiminto

Tässä vielä kaikki configuration.yaml:n input_numberit (nekin, jotka liittyvät pörssisähköohjaukseen):
Koodi:
input_number:

  daikin_price_sensitivity:
    name: Daikin ML pörssisähkön herkkyys
    min: 0.0
    max: 1.0
    step: 0.05
    mode: slider
    initial: 0.4
    icon: mdi:cash-clock

  daikin_price_factor_min:
    name: Daikin ML pörssisähkö min kerroin
    min: 0.0
    max: 1.0
    step: 0.05
    mode: slider
    initial: 0.5
    icon: mdi:percent-outline

  daikin_price_factor_max:
    name: Daikin ML pörssisähkö max kerroin
    min: 0.0
    max: 1.0
    step: 0.05
    mode: slider
    initial: 1.0
    icon: mdi:percent

  daikin_price_sp_drop_max:
    name: Daikin ML max SP alipudotus
    min: 0.0
    max: 5.0
    step: 0.1
    mode: slider
    unit_of_measurement: "°C"
    initial: 1.5
    icon: mdi:thermometer-minus


  daikin_setpoint:
    name: Daikin setpoint (°C)
    min: 15
    max: 25
    step: 0.1
    unit_of_measurement: "°C"

  daikin_icing_cap:
    name: Daikin Icing Cap (%)
    min: 30
    max: 100
    step: 5
    unit_of_measurement: "%"

  daikin_kp:
    name: Kp (% per °C)
    min: 1
    max: 40
    step: 1
    unit_of_measurement: "%"

  daikin_kd:
    name: Kd (% per °C/h)
    min: 0
    max: 80
    step: 2
    unit_of_measurement: "%"

  daikin_load_gain:
    name: Load gain (% per Δ°C_out)
    min: 0
    max: 8
    step: 0.2
    unit_of_measurement: "%"

  daikin_forecast_weight:
    name: Forecast weight (0..1)
    min: 0.0
    max: 1.0
    step: 0.1
    mode: slider

  daikin_base:
    name: Base demand (%)
    min: 30
    max: 100
    step: 1
    unit_of_measurement: "%"

  daikin_step_limit:
    name: Max muutos / sykli (%)
    min: 1
    max: 30
    step: 1
    unit_of_measurement: "%"

  daikin_base_learn_rate:
    name: Base learn rate
    min: 0.0
    max: 0.5
    step: 0.05
    mode: box

  daikin_deadband:
    name: Deadband (°C)
    min: 0.0
    max: 0.5
    step: 0.05
 
Viimeksi muokattu:

Koelli

Aktiivinen jäsen
Uusi branch luotu usean Daikinin ohjaukselle, mutta en tätä pääse kokeilemaan, kun ei löydy kuin yksi Daikin. Ei tarvitse muuttaa kuin tuo daikin_ml.py :n sisältö, mikäli tätä haluaa kokeilla.

 

heebo1974

Aktiivinen jäsen
Uusi branch luotu usean Daikinin ohjaukselle, mutta en tätä pääse kokeilemaan, kun ei löydy kuin yksi Daikin. Ei tarvitse muuttaa kuin tuo daikin_ml.py :n sisältö, mikäli tätä haluaa kokeilla.

Pitää yrittää tänään saada Stylishiin myös faikoutti kiiinni, niin voipi ottaa suoraan tämän työnalle.
Nyt en ehkä lähde muuttelemaan niin radikaalisti noiden entityjen nimiä, koska tuolla näköjään on vain numerolla erotettu.
Mahdollisimman vähäisillä muutoksillä pitää yrittää mennä, koska muuten tulee vaan itselle lisää työtä. :)
 

heebo1974

Aktiivinen jäsen
Totta! En ollut ymmärtänyt asiaa tuoda ilmi. Aseta pyynti 31c. Pyyntiä ei koskaan muokata. Demandilla ohjataan kaikkea.
Mitä muuten tapahtuu kovilla pakkasilla, kun demand 100 ei riitä ? En nyt ole ihan varma, mutta mielestäni demand 100 ei ole sama asia kuin demand control kokonaan pois päältä. Entäs kesällä viilennys ? Toimiiko tämä siinäkin ? Toisaalta viilennys on jotenkin niin helppo, ettei välttämättä ole edes iloa tästä siinä käytössä.
 

Koelli

Aktiivinen jäsen
Mitä muuten tapahtuu kovilla pakkasilla, kun demand 100 ei riitä ? En nyt ole ihan varma, mutta mielestäni demand 100 ei ole sama asia kuin demand control kokonaan pois päältä. Entäs kesällä viilennys ? Toimiiko tämä siinäkin ? Toisaalta viilennys on jotenkin niin helppo, ettei välttämättä ole edes iloa tästä siinä käytössä.
Demand 100 % on täysin sama asia, kuin demand pois päältä. Tosin, se, mitä tämä ei ota huomioon, on se, että ajan itse aina Daikinia QO:lla. Jos tulisikin sellaiset olosuhteet, että 100 % + QO ei riittäisi, niin tekisin tällöin viimeistään tuonne muutoksen, jolla otetaan QO pois käytöstä, ja takaisin päälle.

Viilennystä en ole tähän toteuttanut, koska tämähän ei ohjaa Daikinin moodia. Pienin muutoksin sekin kyllä onnistunee. Katsellaan keväällä/kesällä '26 tätä uudemman kerran :)
 

Koelli

Aktiivinen jäsen
Ihan kiinnostuksesta: mitä sensoria/laitetta @heebo1974 käytät sisälämpötilan mittaamiseen?

Kysyn tätä siksikin, kun minulla on käytössä Airthings Wave+, joka raportoi HA:lle lämpötilan 6 minuutin välein, joka on turhan harva mittausväli. Kaipaisin kokemuksia tiheämmän mittauksen ohjauksesta.
 

heebo1974

Aktiivinen jäsen
Ihan kiinnostuksesta: mitä sensoria/laitetta @heebo1974 käytät sisälämpötilan mittaamiseen?

Kysyn tätä siksikin, kun minulla on käytössä Airthings Wave+, joka raportoi HA:lle lämpötilan 6 minuutin välein, joka on turhan harva mittausväli. Kaipaisin kokemuksia tiheämmän mittauksen ohjauksesta.
Muutamia erilaisia, mutta aika vastaavia kuin tämä. Tälläinen on nyt tuossa Comforan etämittarina. Taitaa olla myös n. 5min se lähetysväli.
En ole niin tarkkaan katsonut, mutta tuntuu että se välillä lähettäisi nopeamminkin.

Tuli nyt sitten laitettua Stylish myös tulille faikoutin avulla. Vielä toki conffaamista, mutta palikka on paikallaan ja toimii.
 

heebo1974

Aktiivinen jäsen
Jaa niin... tuossa on nykyversiossa bugi, jota yritän etsiä, ja toki lopulta korjata. Koneopittu Demand menee välillä tilaan NaN, joten siksi koodissa on tapa nollata oppi. Onhan se toki kätevä muissakin tilanteissa, mutta se olkoot tämän hetken hotfix :)
Täällä iski NaN bugi. No ompahan syy alkaa virittämään tuota kahden pumpun systeemiä.
Oliko nyt niin, että siihen pörssiversioon ei kannattaisi koskea ? :) Se varmaan ei tue kahta pumppuakaan vielä.
 

Koelli

Aktiivinen jäsen
Täällä iski NaN bugi. No ompahan syy alkaa virittämään tuota kahden pumpun systeemiä.
Joo. Jos saat kiinni mistä se syntyy, niin kerrohan. Tätä ajatellen olen itse päätynyt automaatioon, jossa tuo ML reset ajetaan, jos arvo on NaN. Quick&dirty, tai oikeammin, vielä kehnompi - mutta sillä mennään toistaiseksi, kunnes tuo on korjattu.
 

Koelli

Aktiivinen jäsen
Täällä iski NaN bugi. No ompahan syy alkaa virittämään tuota kahden pumpun systeemiä.
Oliko nyt niin, että siihen pörssiversioon ei kannattaisi koskea ? :) Se varmaan ei tue kahta pumppuakaan vielä.
Joo älä koske, se on ihan susi, eikä tue kahta pumppua.
 

heebo1974

Aktiivinen jäsen
Aloitin nyt tyhjästä ja siis tuolla kahden pumpun systeemillä.

Ilmeisesti joudun luomaan tuplat noista template sensoreista ja input.numbereista, koska ne vaikuttaisivat tukevan vain ensimmäistä pumppua.
 

heebo1974

Aktiivinen jäsen
Noniin, nyt säätelee kahta pumppua. Vähän on epätietoisuutta tosiaan, että sääteleekö nyt oikein tuota yläkerran pummpua, kun noi template.sensorit eivät viittaa siihen mitenkään. Lisä input.number helppereitä joutui luomaan.
Erittäin huono ajankohta testata, koska tuntuu että ylilämmittää niin perkeleesti, kun normikäytössä pumput kävisivät katkoa.

No eipä tuossa kauaa mennyt, kun oli taas NAN bugi kohdalla.. :(
 
Viimeksi muokattu:

Luukku

Vakionaama
Erittäin huono ajankohta testata, koska tuntuu että ylilämmittää niin perkeleesti, kun normikäytössä pumput kävisivät katkoa.
7 astetta ulkona niin jopas alakerran Perferakin meni huilille. Automaatio vaihtaa puhallukselle, kun sisälämpö nousee liian ylös. Ensi viikolla hyvät testikelit, pikkupakkasia.
 

Luukku

Vakionaama
Noniin, nyt säätelee kahta pumppua. Vähän on epätietoisuutta tosiaan, että sääteleekö nyt oikein tuota yläkerran pummpua,
Mä olen huomannut omien pumppujen kanssa, että yläkerran pumpulle pitää olla ihan eri asetukset kuin alakerrassa. Luonnollisesti, kun vähän sieltä alhaalta kuitenkin sitä lämpöä pääsee ylös. Siinä missä alakerran Perfera käy katkotonta käyntiä vrk ympäri niin yläkerrassa Stylish ottaa huilia välillä. Vasta -5 ulkona niin sitten siirtyy jatkuvalle käynnille ja silloinkin tarveohjaus saa olla vielä 40%. Automaatiolla saa nyt sen tiuhan pätkimisen pois ja käyntijaksot pidemmiksi.
 

heebo1974

Aktiivinen jäsen
Mä olen huomannut omien pumppujen kanssa, että yläkerran pumpulle pitää olla ihan eri asetukset kuin alakerrassa. Luonnollisesti, kun vähän sieltä alhaalta kuitenkin sitä lämpöä pääsee ylös. Siinä missä alakerran Perfera käy katkotonta käyntiä vrk ympäri niin yläkerrassa Stylish ottaa huilia välillä. Vasta -5 ulkona niin sitten siirtyy jatkuvalle käynnille ja silloinkin tarveohjaus saa olla vielä 40%. Automaatiolla saa nyt sen tiuhan pätkimisen pois ja käyntijaksot pidemmiksi.
Ymmärsin, että tämän koneoppimismallin pitäisi siis säätää molempia omina yksikköinään, mutta epäilen, että nyt vaan koodi ei ole vielä ihan valmis siihen. Siis edelleen tarkoitan sitä, että noi template sensorit ovat mielestäni vain yhdelle pumpulle. Ja ne ovat sen verran monimutkaisia, että en itse taida toistaiseksi edes yrittää kopioida niitä tuolle toiselle pumpulle.

Lisäksi tuo NAN bugi pitää kyllä huolen siitä, että ei voi jättää oikein oman onnensa nojaan vielä tätä systeemiä.
Jahka Koelli saa aikaa tutkailla, niin katsellaan uudemman kerran. Nyt siirryin takaisin omaan systeemiin.
En toki poistellut mitään, disabloin vaan tuon käytöstä nyt. Äkkiä sen saa tulille testausta varten taas.

Btw. On tuolla faikoutissa niin miljoona eri asetusta, että huh. Siellä on joku faikoutin oma automaatiokin.

Huomasin myös, että tuo nesteen lämpötila menee melkein 1:1 puhallusilmanlämpötilan kanssa.
Melkein voisi poistaa koko puhallusilman mittauksen ja käyttää anturit muualla.
Sulastuslaskuritkin, jo vaihdoin käyttämään tuota nesteen lämpötilaa.
 
Viimeksi muokattu:

Luukku

Vakionaama
On tuolla faikoutissa niin miljoona eri asetusta, että huh. Siellä on joku faikoutin oma automaatiokin
Kyllä siinä varmaan menee mukavasti joulun pyhät, kun rupeen kans tutkimaan:)
Huomasin myös, että tuo nesteen lämpötila menee melkein 1:1 puhallusilmanlämpötilan kanssa.
Melkein voisi poistaa koko puhallusilman mittauksen ja käyttää anturit muualla.
Tuosta oli jossain täällä juttuakin, että noin on. Saa sitten laittaa oman Ruuvin imupuolelle :)
 

hanks

Aktiivinen jäsen
Huomasin myös, että tuo nesteen lämpötila menee melkein 1:1 puhallusilmanlämpötilan kanssa.
Melkein voisi poistaa koko puhallusilman mittauksen ja käyttää anturit muualla.
Sulastuslaskuritkin, jo vaihdoin käyttämään tuota nesteen lämpötilaa.
Voin vahvistaa tämän, ja olen tehnyt juuri noin, että otin ne imu- ja puhallusilmaa mitanneet termarit muuhun käyttöön.

Tuon Faikinin ilmoittama nesteen lämpötila on pomminvarma sulatusindikaattori kun se menee reilusti pakkaselle.
 

Luukku

Vakionaama
Voin vahvistaa tämän, ja olen tehnyt juuri noin, että otin ne imu- ja puhallusilmaa mitanneet termarit muuhun käyttöön.

Tuon Faikinin ilmoittama nesteen lämpötila on pomminvarma sulatusindikaattori kun se menee reilusti pakkaselle.
Saako siitä imuilman lämpötilankin?
 

wannabe

Aktiivinen jäsen
Ei, mutta luulisi, että sisäyksikön lämpöanturi olisi tarpeeksi lähellä ? Jos ei, niin toki sitten voi vielä imuilmaakin mittailla.
Ja ainahan voi kokeilla.

Jos Coppia laskeskelee, niin tuota kannattaa mittailla jonkun aikaa. Mulla auttallissa Mitsun FT25 ja SY:n oman anturin näyttäessä 17, imuilman anturi näyttää ~ 21 astetta. Tulis aika hulppeat Copit, jos laskentaan käyttäs SY:n omaa anturia. Voipihan se olla, että muilla merkeillä eroa ei ole, mutta eihän tuon varmistaminen hirveä urakka ole. Ja juu, läpivienti tsekattu ja sieltä ei anturi kylmää saa.
 

Koelli

Aktiivinen jäsen
Joo toi NaN-bugi on ärsyttävä. Käytännössä sen voi nollata resetoimalla oppi automaatiolla. Selvitän, että mistä on kyse.

Kahden pumpun osalta menee vaikeaksi, kun ei ole kahta pumppua, millä testata...

Tällaista tämä aluksi on.
 

heebo1974

Aktiivinen jäsen
Joo toi NaN-bugi on ärsyttävä. Käytännössä sen voi nollata resetoimalla oppi automaatiolla. Selvitän, että mistä on kyse.

Kahden pumpun osalta menee vaikeaksi, kun ei ole kahta pumppua, millä testata...

Tällaista tämä aluksi on.
Ymmärrän toki. Ja testaamalla autan sinua/muita. Osaaminen vaan ei ole ihan niin syvällistä, että pystyisin korjaaviin juttuihin paljon vaikuttaa. Resetointi toki on purkkaratkaisu, mutta onko koneoppimisesta iloa, jos 2h välein joutuu resetoimaan opit.

Mutta noihin template sensoreihin sen verran, että pitäisikö siis nyt tuon version mukaan ne toimia sellaisenaan ? Vaikka niihin laitettavat entityt koskevat vain toista pumppua.
 
Back
Ylös Bottom