HomeAssistant ja sähköpörssiohjaus

Mikki

Hyperaktiivi
EDIT3:
Eli onko tämä joku serverikuormitusta vähentävä hommeli ? Sinänsä harmi, jos kestää ns. tunteja, kun itse ainakin normaalisti kahden maissa näitä huomisen hintoja alan tarkkailemaan.

Tuossa HA YAMLssa taitaa olla haku tasan klo 14 ja siihen päälle pieni random delay. Ja jos sitten ei ole tullut, niin se kai yrittää tunnin päästä uudestaan. Rajapinnan puolelta Entso-E ei palauta ihan niin nopeasti tietoja kuin mitä jostain muualta ehkä löytää.

Yleensä ne on klo 14 mennessä siellä, mutta ei läheskään aina. Voi olla vartin yli tms.

Mutta viive siis tuli sinulle @heebo1974 todennäköisesti siksi että HA ekalla haulla ei löytänyt niitä ja sitten on ehkä turhankin pitkä tauko ennen uutta yritystä.
 

Temez

Aktiivinen jäsen
Niin, tein tuon noin alunperin kohteliaisuussyistä Mikin APIa kohtaan, jotta hakukertojen määrä olisi mahdollisimman pieni eikä pommitettaisi APIa, kun en tiennyt, että ottaako tämän käyttöön 10 vai 10000 HA-harrastajaa. Shellyistä kyselyitä taitaa tulla jo mukavasti :) En ajatellut, että olisi automatisointimielessä väliä, että tuleeko huomisen hinnat kello 14 vai kello 15. Tunnin välein tuo yrittää hakea, jos huomisen dataa ei ole vielä. Ja tuo Delay siinä ennen haun käynnistämistä on sitä varten, ettei kaikki HomeAssistantit hakisi täsmälleen samalla hetkellä vaan olisi pieni ajallinen hajautus.

Joskus taisi olla, että uusien hintojen saapumisessa kesti pidempäänkin (Entso-E:n vika?), mutta käytännössä aina kello 15 mennessä ovat?

Jos tuo ajastus tuottaa harmaita hiuksia, niin voidaanhan tuota kirittääkin tietysti tiukemmaksi oletuksena. Tai voit tehdä kopion tuosta säännöstä, joka hakee ne vaikka vartin välein. Useimmille varmaan riittää, että työpäivän jälkeen on katsottavissa eikä ole tunnin päälle. Etenkin kun automaatiot varmaan monella sitten ajautuvat seuraavana yönä halpaan aikaan.

EDIT: Siis pääsääntöisesti kuitenkin onnistunut hintojen haku tapahtuu siinä 15-15:05 kuitenkin eli ei "tunteja myöhemmin".
 

heebo1974

Aktiivinen jäsen
EDIT: Siis pääsääntöisesti kuitenkin onnistunut hintojen haku tapahtuu siinä 15-15:05 kuitenkin eli ei "tunteja myöhemmin".
Joo ehkä oli hiukan negatiivissävyinen kommentti. ;D Ei ollut tarkoitus ja itseasiassa olin ajatuksissani ja luulin että kello oli silloin jo melkein neljä. Jokatapauksessa hyvää duunia ja toivottavasti jatkuu samalla mallilla.

Olikos niitä lisäsensoreita muuten nyt sitten tulossa jossain vaiheessa ? Vai onko se vielä mietinnässä, että tehdäänkö ne serveripäässä vai lokaalisti ?
 

Temez

Aktiivinen jäsen
Ei ole vielä toteutuksessa. Mitäs antureita olikaan siis toivomuksissa ja mikä niiden tuottama lisäarvo olisi eli miten Pertti Peruskäyttäjä ja hänen sata kaveriansa niistä hyötyisi?
 

heebo1974

Aktiivinen jäsen
Ei ole vielä toteutuksessa. Mitäs antureita olikaan siis toivomuksissa ja mikä niiden tuottama lisäarvo olisi eli miten Pertti Peruskäyttäjä ja hänen sata kaveriansa niistä hyötyisi?
Muutamasta lisäsensorista voisi olla iloa graafeihin.
Eli kuluvan päivän min ja max hinnat. Seuraavan päivän min, max ja average hinnat.
 

Mikki

Hyperaktiivi
Muutamasta lisäsensorista voisi olla iloa graafeihin.
Eli kuluvan päivän min ja max hinnat. Seuraavan päivän min, max ja average hinnat.

Minulla on serverikoodit noille about valmiit. Mutta mikä on HA hyväksymä "null" arvo desimaalille. Käykö suoraan null.

Ja toinen. Jos lisään tiedot päätasolle Jsoniin niin hajoaako nykyinen Yaml? Siis samalle tasolle "data" arrayn kanssa? Siitä pitäisi ainakin HA saada ne luettua helposti.
 

heebo1974

Aktiivinen jäsen
OK. Mulla on ongelma toisin päin, osaan koodata mutta HA ei ole vielä riittävän tuttu, että tietäisin mitä pitää koodata.
No sinä varmaan osaat auttaa tässä. Eli miten apex chartin data generatorilla saisi muutettua tämän sensorin senteiksi?

sensor.shf_electricity_price_now

Sensorihan on euroja ja pitäisi siis kertoa 100:lla. En vain tajua tuosta javascriptistä hölkkäsen pöläystä.
Kokeilin kopioida sitä data generatoria joka on tuossa tekemässäsi graafissa, mutta eihän se toimi, kun tuossa _now sensorissa ei ole mitään atribuutteja, vaan se on vain se yksi arvo. Eli kaiken järjen mukaan tuon scriptin pitäisi olla vielä yksinkertaisempi.

EDIT: Kun tarpeeksi hakkaa päätä seinään, niin ratkaisut tuppaavat löytyvän. :)
Taikasana oli näin yksinkertainen ilman koko datageneratoria.

Koodi:
  - entity: sensor.shf_electricity_price_now
    transform: return x * 100;

EDIT2:
Tällähetkellä tämän näköinen.
1669983937105.png
 
Viimeksi muokattu:

atomato

Tulokas
Oliko jollain valmiina HA-Husdata pörssiohjausta. Jonkin verran täytynee koodia muokata. Omassa pumpussa säädetään Husdata ohjeen mukaan ulkolämpötilan offsetillä. Pumppuna ICT C5 rego 1000 älyllä. Pääsen siis jo HAlla säätämään pumpun toimintaa.
 

Temez

Aktiivinen jäsen
Jollakin saattaa olla valmista ideaa, mutta sitä odotellessa: selvitä, mitä sillä Husdatalla voi tehdä (säätää pyyntilämpötiloja, kytkeä päälle pois, jne?) ja määrittele, että mitä haluat tarkalleen saada aikaan.

Tuolla tekemälläni paketilla saat hintatiedot ja voit käyttää niitä sitten Home Assistantin automaatioissa. Yksi lähestymistapa voisi olla muuttaa pyyntilämpötilaa ylös/alas riippuen nykyisestä Rankista (olettaen, että Husdatalla saisi muokattua tuota pyyntilämpötilaa tai lämmityskäyrän siirtoa).

Kuulosti siltä, että sinulla olisi mahdollisesti tarvittava data ja ohjausmahdollisuus, mutta näiden välinen liima eli Home Assistantin automaatiosääntö puuttuu?
 

Ville-Veikko

Aktiivinen jäsen
Tekasin toissapäivänä huvikseni tuollaisen pyyntilämpösäätimen. Ei se mulla vielä mitään säädä, mutta olen kattellut graafilta olisko tuossa jotain tolkkua. Ideana on siis laskea menossa olevan tunnin poikkeama päivän keskihinnasta ja korjata samalla prosentilla menoverkon lämpötilaa vastakkaisieen suuntaan. Tuo voi olla turhan jyrkkä jos ei ole iso varajaa välissä. Tässä eilinen ja tämänpäiväinen säätö.

Koodi käyttää shf -sensoreita + 1 helper jolla saa säätää offsettina korjatun käyrän korkeutta suhteessa tarpeeseen.
1670083557396.png


Tässä sensorikoodit:

YAML:
    spotpoikkeama:
      unique_id: "340"
      friendly_name: Kuluvan tunnin %ero keskihinnasta
      unit_of_measurement: "%"
      value_template: "{{((states('sensor.shf_electricity_price_now') | float
                         - states('sensor.shf_average_price_today') | float)
                         / states('sensor.shf_average_price_today') | float * 100 )
                         | round(2)}}"

    spotkompensointu:
      unique_id: "350"
      friendly_name: Spot -hintakompensoitu tavoitelämpö
      unit_of_measurement: "°C"
      device_class: temperature
      value_template: "{{(states('sensor.spotpoikkeama') | float
                          * -0.01
                          * states('sensor.oumanpyynto') | float)
                          + states('input_number.lampokayran_offset') | float
                          + states('sensor.oumanpyynto') | float}}"
 

Temez

Aktiivinen jäsen
Tekasin toissapäivänä huvikseni tuollaisen pyyntilämpösäätimen.
Tästä voisi ehkä olla hyötyä usealle laitteiden ohjaamisessa, jos laitteeseen haluaisi syöttää tuota poikkeamaa keskihinnasta. Ehkä pitäisi miettiä, että onko mediaani vai keskiarvo hyvä vertailuarvo.

Voisin ehkä ympätä mukaan tuohon spotprices2ha peruspakettiin version, jossa olisi yksi helper kertoimen määrittelyyn ja sitten yksi anturi, joka ottaisi mediaanin/keskiarvon ja vertaisi nykyhintaa esimerkkisi lailla siihen kertoen tuolla helperin kertoimella. Loppuosa toteutuksesta jäisi sitten käyttäjälle, kun tilanteita ja käyttötapauksia on monia eli mitä ohjaaja missä muodossa se haluaa syötteen (ja sitä en lähde arvailemaan, kun niitä löytyy varmaan tuhansia).

Saako ideasi kopioida mukaan pakettiin?
 

Temez

Aktiivinen jäsen
Muutamasta lisäsensorista voisi olla iloa graafeihin.
Eli kuluvan päivän min ja max hinnat. Seuraavan päivän min, max ja average hinnat.
Tähän liittyen tein vähän kokeilua ja suht simppelinä tuo YAML pysyi. Lisäsin nuo min/max jne. arvot tuonne nykyisen hintasensorin attribuuteiksi. Koodi on nyt branchissa https://github.com/T3m3z/spotprices2ha/tree/statistics_attributes , josta sitä saa kokeilla.
1670135070203.png


Mikin ehdotus, että arvot olisivat suoraan saatavilla API:ssa oli minusta kyllä hyvä, mutta päädyin nyt ainakin aluksi sille tielle, että mitä vähemmän API-kutsuja, niin sitä parempi. Ja samalla mahdollistuu sitten tuosta "Today prices" -listasta laskea jotain muuta, jos käyttäjällä on jokin erikoistarve (pitää vaikkapa saada keskiarviohinta tunneilel 0-8 tai vastaavaa).

En laita tätä vielä Githubissa tuonne main-haaraan. Jos joku kokeilisi, että vaikuttaako hyvältä eli jatkoon/ei jatkoon?

Kuvaajaan voisi toimia esim. jotain tämmöistä vaikkakin uskon, että foorumilaiset saavat aikaan parempia graafeja kuin minä:
1670136710886.png

YAML:
type: custom:apexcharts-card
graph_span: 48h
experimental:
  color_threshold: true
show:
  last_updated: true
header:
  title: Electricity price (c/kWh)
  show: true
  show_states: true
  colorize_states: true
span:
  start: day
yaxis:
  - min: 0
    decimals: 2
    apex_config:
      forceNiceScale: true
now:
  show: true
  label: Now
series:
  - entity: sensor.shf_electricity_price_now
    name: Average Price
    show:
      in_header: false
      extremas: false
    type: line
    color: "blue"
    float_precision: 2
    stroke_width: 2
    data_generator: |
      return [[start, entity.attributes.today_avg*100], [moment(end).subtract(1, 'days'), entity.attributes.today_avg*100], []];
  - entity: sensor.shf_electricity_price
    show:
      in_header: false
      extremas: true
    type: column
    color: lightgray
    float_precision: 2
    data_generator: |
      return entity.attributes.data.map((d, index) => {
        return [new Date(d["DateTime"]).getTime(), entity.attributes.data[index]["PriceWithTax"]*100];
      });
    color_threshold:
      - value: 0
        color: 368f39
      - value: 10
        color: a3b34d
      - value: 20
        color: ffd57e
      - value: 30
        color: f18c56
      - value: 40
        color: de425b
  - entity: sensor.shf_electricity_price
    show:
      in_header: true
      header_color_threshold: true
      in_chart: false
    type: line
    color: lightgray
    float_precision: 2
    stroke_width: 0
    data_generator: |
      var currentTime = new Date().setMinutes(0, 0, 0);
      let currentPrice = entity.attributes.data.find(d => {
        return new Date(d["DateTime"]).getTime() === currentTime;
      })["PriceWithTax"];
      return entity.attributes.data.map((d, index) => {
        return [new Date(d["DateTime"]).getTime(), currentPrice*100];
      });
    color_threshold:
      - value: 0
        color: 368f39
      - value: 10
        color: a3b34d
      - value: 20
        color: ffd57e
      - value: 30
        color: f18c56
      - value: 40
        color: de425b
 

Temez

Aktiivinen jäsen
Sattuiko jo joku kokeilmaan yleisesti ja etenkin graafien kanssa, että onko noista min/max/avg-arvoista hyötyä?
 

Temez

Aktiivinen jäsen
Olisikohan tämmöinen hyvä Ville-Veikon ajatusta vähän modifioiden. Eli olisi anturi, josta saisi -1 ja 1 välillä kertoimen riippuen hinnan etäisyydestä maksimihintaan ja sitten slider, jolla määritetään vapaamuotoinen kerroin. Alla karu kaavio asiasta. Tällä voisi tehdä ohjauksen vaikka ilmalämpöpumppuun, että "aseta lämpötilaksi 22 + <edellä mainittu anturi>". Tällöin halvimmalla tunnilla pyyntilämpötila olisi 24 ja kalleimmalla 20. Ja muut tunnit sitten jotain siitä välistä.

1670160799723.png
 

heebo1974

Aktiivinen jäsen
Sattuiko jo joku kokeilmaan yleisesti ja etenkin graafien kanssa, että onko noista min/max/avg-arvoista hyötyä?
Itselläni pienimuotoinen ongelma niiden kanssa. Olen tällä hetkellä jakanut graafin kahteen osaan ja huomisen osalta käytän apex chartissa offset +24h:ta, mutta se jostain kumman syystä rikkoo nuo tomorrow_min max ja avg arvot.

Koodi:
graph_span: 23h
span:
  start: day
  offset: +24h

1670168473076.png


Mietin, että pystyisikö tuota huomista lukemaan jollain eri datagenerator rimpsulla, ettei tarvitsisi käyttää offsettiä apexissa ?
 

Temez

Aktiivinen jäsen
Millaiselta se yaml-konffisi nyt näyttää? Voitko laittaa tänne? Sillä data generatorillahan tuo pitää jotenkin tehdä, mutten nyt osaa arvata, että miten. Pitää kokeilla.
 

heebo1974

Aktiivinen jäsen
Millaiselta se yaml-konffisi nyt näyttää? Voitko laittaa tänne? Sillä data generatorillahan tuo pitää jotenkin tehdä, mutten nyt osaa arvata, että miten. Pitää kokeilla.
Toki!

Koodi:
type: custom:apexcharts-card
experimental:
  color_threshold: true
apex_config:
  chart:
    height: 165%
header:
  show: true
  title: Pörssisähkön hinta huomenna
  show_states: true
  colorize_states: true
all_series_config:
  float_precision: 3
now:
  show: true
  color: cyan
  label: ''
graph_span: 23h
span:
  start: day
  offset: +24h
series:
  - entity: sensor.shf_electricity_price
    type: column
    curve: stepline
    color: rgb(140, 140, 210)
    name: Tänään
    show:
      in_header: false
      extremas: true
      legend_value: false
    color_threshold:
      - value: 0
        color: '#63FD02'
      - value: 4
        color: '#378D01'
      - value: 8
        color: '#FBFB02'
      - value: 12
        color: '#8D8D01'
      - value: 18
        color: '#FE7303'
      - value: 25
        color: '#8E3F00'
      - value: 30
        color: '#F80300'
      - value: 35
        color: '#8E0100'
      - value: 40
        color: '#9A171A'
      - value: 45
        color: '#7B1315'
    stroke_width: 1
    data_generator: |
      return entity.attributes.data.map((d, index) => {
        return [new Date(d["DateTime"]).getTime(), entity.attributes.data[index]["PriceWithTax"]*100];
      });
    yaxis_id: default
  - entity: sensor.shf_electricity_price_now
    attribute: tomorrow_min
    transform: return x * 100;
    color: lightgreen
    name: Huomenna min.
    unit: c/kWh
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
  - entity: sensor.shf_electricity_price_now
    attribute: tomorrow_max
    transform: return x * 100;
    color: red
    name: Huomenna maks.
    unit: c/kWh
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
  - entity: sensor.shf_electricity_price_now
    attribute: tomorrow_avg
    transform: return x * 100;
    color: gray
    name: Huomenna keskim.
    unit: c/kWh
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
yaxis:
  - id: default
    show: true
    min: 0
    max: ~20
    decimals: 2
    align_to: 1
  - id: labels
    show: false
 

Temez

Aktiivinen jäsen
Ilmeisesti tämmöinen toimisi. Data generator antaa tuolla kyseiselle seriesille vain yhden arvon ilman edes aikaleimaa. Näyttäisi toimivan tässä tapauksessa, mutten tiedä miten hajoaa huomenna, kun ei ole enää huomisen dataa saatavilla.

EDIT: Kuva vielä tähän väliin.
1670170023455.png

YAML:
type: custom:apexcharts-card
experimental:
  color_threshold: true
apex_config:
  chart:
    height: 165%
header:
  show: true
  title: Pörssisähkön hinta huomenna
  show_states: true
  colorize_states: true
all_series_config:
  float_precision: 3
now:
  show: true
  color: cyan
  label: ''
graph_span: 23h
span:
  start: day
  offset: +24h
series:
  - entity: sensor.shf_electricity_price
    type: column
    curve: stepline
    color: rgb(140, 140, 210)
    name: Tänään
    show:
      in_header: false
      extremas: true
      legend_value: false
    color_threshold:
      - value: 0
        color: '#63FD02'
      - value: 4
        color: '#378D01'
      - value: 8
        color: '#FBFB02'
      - value: 12
        color: '#8D8D01'
      - value: 18
        color: '#FE7303'
      - value: 25
        color: '#8E3F00'
      - value: 30
        color: '#F80300'
      - value: 35
        color: '#8E0100'
      - value: 40
        color: '#9A171A'
      - value: 45
        color: '#7B1315'
    stroke_width: 1
    data_generator: |
      return entity.attributes.data.map((d, index) => {
        return [new Date(d["DateTime"]).getTime(), entity.attributes.data[index]["PriceWithTax"]*100];
      });
    yaxis_id: default
  - entity: sensor.shf_electricity_price_now
    color: lightgreen
    name: Huomenna min.
    unit: c/kWh
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
    data_generator: |
      return [[, entity.attributes.tomorrow_min*100]];
  - entity: sensor.shf_electricity_price_now
    color: red
    name: Huomenna maks.
    unit: c/kWh
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
    data_generator: |
      return [[, entity.attributes.tomorrow_max*100]];
  - entity: sensor.shf_electricity_price_now
    color: gray
    name: Huomenna keskim.
    unit: c/kWh
    float_precision: 2
    show:
      in_header: true
      in_chart: false
      legend_value: false
    yaxis_id: labels
    data_generator: |
      return [[, entity.attributes.tomorrow_avg*100]];
yaxis:
  - id: default
    show: true
    min: 0
    max: ~20
    decimals: 2
    align_to: 1
    apex_config:
      forceNiceScale: true
  - id: labels
    show: false
 

heebo1974

Aktiivinen jäsen
Ilmeisesti tämmöinen toimisi. Data generator antaa tuolla kyseiselle seriesille vain yhden arvon ilman edes aikaleimaa. Näyttäisi toimivan tässä tapauksessa, mutten tiedä miten hajoaa huomenna, kun ei ole enää huomisen dataa saatavilla.
Hmm. En huomannut tuossa rimpsussa mitään eroa alkuperäiseen ?
Eikä toiminut.. Eli pastesitko väärän sittenkin ? :D
 

Temez

Aktiivinen jäsen
Kokeilin uudestaan kopioimalla foorumilta tänne nuo tiedot. Sain samanlaisen graafin uudestaan:
1670172002071.png

Miltäs näyttää, jos menet katsomaan SHF Electricity Price Now -sensorin attribuutteja? Eli näkyvätkö arvot täällä alhaalla Attributesin alla:
1670172065729.png
 

heebo1974

Aktiivinen jäsen
Kokeilin uudestaan kopioimalla foorumilta tänne nuo tiedot. Sain samanlaisen graafin uudestaan:

Miltäs näyttää, jos menet katsomaan SHF Electricity Price Now -sensorin attribuutteja? Eli näkyvätkö arvot täällä alhaalla Attributesin alla:
No kopioin myös kokonaan uudestaan tuon conffin, niin rupesi toimimaan. En sitten tiedä missä oli vika, mutta pääasia että toimii. :)
 

Temez

Aktiivinen jäsen
Vaikutti nuo min/max/avg toimivan tuon ApexChartin kanssa ihan suht OK, vaikka pistin tuohon "unknown" HA-tyyliin tuntemattomaksi arvoksi. NaN lienee noissa charteissa ihan OK, jos arvoja ei vielä ole.
1670221043059.png

Tämä oli yksi syy, miksi Mikki jäin empimään sen rajapintatoteutuksen kanssa, kun en ollut ihan varma sopivasta arvosta sille huominen null/ei ole huomisen tietoja -tilanteelle.

Edit: Mergeän ne sensorit tuonne Github-repon main-haaraan.
 

Temez

Aktiivinen jäsen
Kokeilin tuossa, että mitä tapahtuu, jos datanlatausyrityksen hetkellä netti on alhaalla. Sensori SHF Electrity Price (eli se datanlataukseen käytettävä sensori) menee tilaan "unavailable". Tämä rikkoi sensorin päivitysautomaatiossa olevan Template-sensorin ehdon niin, että käsittääkseni se ei olisi osannut ladata dataa sisään.

Korjattu versio 0.1.2 laitettu jakoon: https://github.com/T3m3z/spotprices2ha
 

Temez

Aktiivinen jäsen
Olisikohan tämmöinen hyvä Ville-Veikon ajatusta vähän modifioiden.
Tein nyt hiukan kokeiluja tätä ideaa jatkokehitellen. Pyörittelin excelissä, että jotain tämmöistä voisi tehdä. Ulos saisi kahdesta sensorista arvon nollan ja ykkösen välillä (vaikkapa jonkin suntin ohjaamisen avuksi) tai sitten -1 ja +1 välillä (vaikkapa ilmalämpöpumpun keskilämpötilasta ylös- tai alaspäin säätö). Mukana slider, jolla voi vaikutta kertoimeen = saa esim. halvimmille osuuksille ohjaussignaaliksi ykköstä ulos.

1670234214065.png

UI:ssa näyttäisi tältä:
1670234431632.png


Ja sitten tämän päivän pörssisähköhinnoilla excel-harjoitelmana tältä:
1670234539401.png


Tuo katsoo nyt suhteellista etäisyyttä päivän maksimihintaan. Olisiko käyttökelpoista ja mitä mieltä olette tuosta, että olisiko jokin muu laskentatapa parempi?
 

heebo1974

Aktiivinen jäsen
Tein nyt hiukan kokeiluja tätä ideaa jatkokehitellen.
Itse en oikein ymmärtänyt mitään, mutta ei se haittaa. :) Olen tilannut muutamat älylattianlämmitystermostaatit ?
Voisiko tuota hyödyntää niiden ohjaamisessa ? Alunperin vain ajattelin mennä pelkillä Rankeillä, mutta miksei jotain vieläkin älykkäämpää?
 

Temez

Aktiivinen jäsen
Ehkä voisikin. Ajattelin esimerkiksi, jos haluaisi ohjata ILPin lämpötilaa ylös/alas hinnan mukaan. Alla kaavio, jossa peruslämpö 22 ja sitten 2 astetta * ohjaussignaali välillä -1 ja +1 -> pyyntilämpötila vaihtelisi 20-24 asteen välillä riippuen siitä, että miten kaukana ollaan päivän maksimihinnasta (+ kertoimesta, jolla saa menemään halvassa päässä tuon tappiin, kuten alla kuvassa tunnit 1-7 ja toiseen päähän 16-21). Kai tätä voisi käyttää myös älytermostaattien kanssa.

1670251153371.png


Ei minulla nyt mitään spesifiä käyttötarkoitusta ollut mielessä vielä. Ajattelin vain, että nuo Price/Rank-perustaiset ohjaukset käy hyvin ON/OFF-tyyppisille, mutta Ville-Veikko tuossa herätti ajatuksen, että jos olisi tämmöisten jatkuvasäätöisten laitteiden ohjaukseen jokin valmis anturi avuksi. Ville-Veikko taisi Oumanin pyyntilämpötilaa tuolla säätää?

Sitä voisi sitten käyttää melko aloittelijaystävällisesti esim. näin ILPin ohjaamiseen (sama kaava kuin yllä excel-graafissa):
1670251457169.png
 

Ville-Veikko

Aktiivinen jäsen
Ei minulla nyt mitään spesifiä käyttötarkoitusta ollut mielessä vielä. Ajattelin vain, että nuo Price/Rank-perustaiset ohjaukset käy hyvin ON/OFF-tyyppisille, mutta Ville-Veikko tuossa herätti ajatuksen, että jos olisi tämmöisten jatkuvasäätöisten laitteiden ohjaukseen jokin valmis anturi avuksi. Ville-Veikko taisi Oumanin pyyntilämpötilaa tuolla säätää?
Itse asiassa mulla ei ole tarkoitus kajota Oumannin säätökäyriin, Ouman jakaa lämpöä patteri- ja lattialämmityspiireihin 1100 litran varaajasta ulkolämpötilan perusteella. Sen sijaan ajattelin ryhtyä säätämään varaajan lataamista. Ideana siis se että puskuroin varaajaveteen halvemmalla sähköllä tuotettua lämpöä jota sitten kalliiden tuntien aikana puretaan lämmitysverkkoon. Jos oikein hyvin onnistuisi optimointi, säätö ei tunnu sisälämpötilassa mitenkään, mutta silti hieman sähkölaskua keventäen.

Minulla homma on vielä virtuaaliasteella. Pannuhoneessa palaa viimeiset pelletit ja korvaava 18kW Daikin Altherma 3 HT on vielä tehtaan toimitusjonossa, asennus toivottavasti kesäkuussa ;) Siinä onkin vielä muutama avoin kysymys miten se saadaan ohjauksen piiriin. Ehkä toisen ketjun aihe kesemmällä...
 
Viimeksi muokattu:

atomato

Tulokas
Jollakin saattaa olla valmista ideaa, mutta sitä odotellessa: selvitä, mitä sillä Husdatalla voi tehdä (säätää pyyntilämpötiloja, kytkeä päälle pois, jne?) ja määrittele, että mitä haluat tarkalleen saada aikaan.

Tuolla tekemälläni paketilla saat hintatiedot ja voit käyttää niitä sitten Home Assistantin automaatioissa. Yksi lähestymistapa voisi olla muuttaa pyyntilämpötilaa ylös/alas riippuen nykyisestä Rankista (olettaen, että Husdatalla saisi muokattua tuota pyyntilämpötilaa tai lämmityskäyrän siirtoa).

Kuulosti siltä, että sinulla olisi mahdollisesti tarvittava data ja ohjausmahdollisuus, mutta näiden välinen liima eli Home Assistantin automaatiosääntö puuttuu?
Kyllä " liima puuttuu". Joku äly tähän pitää vielä tehdä tai lainata muualta.

Sain nuo pörssihinnan tuonne HA ja kokeeksi laitoin yksinkertaisen triggerin 40c/kWh jonka pitäisi lisätä pumpun ulkolämpöä +5c eli laskee samalla lämmityspyyntiä sen mukaisesti. Iltapäivällä näkee toimiiko. Husdata sivulla suositeltiin näille Rego 1000 pohjaiseille pumpuille tekemään lämmityksen muutokset tuota kautta. Tämän ajattelin tehdä vielä toiseen suuntaa eli jos on todella halpaa sähköä niin kerron pumpulle että pakkanen kiristyy ja lasken ulkolämpöä keinotekoisesti 5c.

Toinen vaihtoehto olisi hankkia pumppuun sisälämpötila tunnistin ja tehdä sen kautta. Nyt sitä ei ole niin menen tuolla.

LVV on niin pieni että ajattelin jättää sen vain päälle "normaalisti" ainakin aluksi. Oma ajatus on että laskisin vedenlämpöä tuosta 65c->45c ja kerran viikossa nostaisin sen 65c.
 

heebo1974

Aktiivinen jäsen
Ehkä voisikin. Ajattelin esimerkiksi, jos haluaisi ohjata ILPin lämpötilaa ylös/alas hinnan mukaan. Alla kaavio, jossa peruslämpö 22 ja sitten 2 astetta * ohjaussignaali välillä -1 ja +1 -> pyyntilämpötila vaihtelisi 20-24 asteen välillä riippuen siitä, että miten kaukana ollaan päivän maksimihinnasta (+ kertoimesta, jolla saa menemään halvassa päässä tuon tappiin, kuten alla kuvassa tunnit 1-7 ja toiseen päähän 16-21). Kai tätä voisi käyttää myös älytermostaattien kanssa.
Ei kyllä tule äkkiseltään mieleen, miksi tämä ei toimisi älytermostaattien kanssa ? Itse sain juuri ensimmäisen älytermarin asennettua ja pari vielä odottelee asennusta. Lattialämmityksiä pitäisi ohjailla. Onko tuo ko. toiminnallisuus vielä ihan ajatuksen tasolla, vai onko se siis jo jossain testiversiossa rakennettuna ?
 

Temez

Aktiivinen jäsen
Ei kyllä tule äkkiseltään mieleen, miksi tämä ei toimisi älytermostaattien kanssa ? Itse sain juuri ensimmäisen älytermarin asennettua ja pari vielä odottelee asennusta. Lattialämmityksiä pitäisi ohjailla. Onko tuo ko. toiminnallisuus vielä ihan ajatuksen tasolla, vai onko se siis jo jossain testiversiossa rakennettuna ?
No on minulla valmis proto itsellä. Voisin julkaista sen kyllä Githubissa. En lähtenyt keulimaan, kun oli vähän epäselvää, että olisiko tästä hyötyä miten monelle ja että onko "ohjauslogiikka" järkevä.
 

B12

Aktiivinen jäsen
Ehkä voisikin. Ajattelin esimerkiksi, jos haluaisi ohjata ILPin lämpötilaa ylös/alas hinnan mukaan. Alla kaavio, jossa peruslämpö 22 ja sitten 2 astetta * ohjaussignaali välillä -1 ja +1 -> pyyntilämpötila vaihtelisi 20-24 asteen välillä riippuen siitä, että miten kaukana ollaan päivän maksimihinnasta (+ kertoimesta, jolla saa menemään halvassa päässä tuon tappiin, kuten alla kuvassa tunnit 1-7 ja toiseen päähän 16-21). Kai tätä voisi käyttää myös älytermostaattien kanssa.
Oma havainto on vähän sellainen, että ilmalämpöpumpulla ei oikein toimi lämpöjen tiputtaminen ja nostaminen pakkaskeleillä. Laskee toki, mutta ei jaksa enää nostaa ja käy täysillä tuntikausia. Plussakeleillä toimii hyvin.
 

mobbe

Vakionaama
Oma havainto on vähän sellainen, että ilmalämpöpumpulla ei oikein toimi lämpöjen tiputtaminen ja nostaminen pakkaskeleillä. Laskee toki, mutta ei jaksa enää nostaa ja käy täysillä tuntikausia. Plussakeleillä toimii hyvin.
Myös ilpin sammuttaminen ei ole kannattavaa jos päällä 12 tuntia ja pois 12 tuntia sähkönkulutus ei laske puoleen jatkuvasta käytöstä
 
K

korsteeni

Vieras
ihan vaan kevennys, jos sallitaan
vanha sananlasku
sutta kun lähdet karkuun, niin karhu tulee vastaan

ja vielä kehut, hiton hyvä oivallus tuo shf_ etuliite, ei sekotu muihin, helpottaa iäkkään dementikonkin elämää kummasti
 

Sukke

Aktiivinen jäsen
Fingridin API:sta laitoin tuulivoimaennusteen pörssisähkön kanssa samaan kuvaajaan. Ennuste päivittyy kerran tunnissa. API vaatii rekisteröitymisen, jolloin saa API-keyn. Ei tuolla varsinaisesti taida mitään tehdä, mutta ihan kiva lisätieto. Luulisin löytyvän myös toteutuneet määrät, mutta niitä en vielä katsonut.
 

EJMV

Tulokas
Myös ilpin sammuttaminen ei ole kannattavaa jos päällä 12 tuntia ja pois 12 tuntia sähkönkulutus ei laske puoleen jatkuvasta käytöstä
Tarkoitus ei ole ensisijassa sammutteluilla/ lämpötilan vaihteluilla laskea sähkönkulutusta, vaan siirtää sitä edullisemmille tunneille. Sähkönkulutuksen lasku tapahtuu laskemalla keskilämpöä pysyvästi sen asteen pari tuon vaihtelun lisäksi.
 

Sukke

Aktiivinen jäsen
Fingridin API:sta laitoin tuulivoimaennusteen pörssisähkön kanssa samaan kuvaajaan. Ennuste päivittyy kerran tunnissa. API vaatii rekisteröitymisen, jolloin saa API-keyn. Ei tuolla varsinaisesti taida mitään tehdä, mutta ihan kiva lisätieto. Luulisin löytyvän myös toteutuneet määrät, mutta niitä en vielä katsonut.

Tähän vähän taustaa. Valitettavasti itselläni ei ole niin hyvää osaamista, että saisin näistä mitään järkevää jaettavaa aikaiseksi.

Linkki tuulivoiman tuotantoennusteen tunnittaiseen päivitysaineistoon: https://data.fingrid.fi/fi/dataset/wind-power-generation-forecast-updated-every-hour

Tuosta API-tietoa: https://data.fingrid.fi/fi/dataset/...resource/389cda12-9438-42d4-a5dd-0499b346a8c0

Tuosta APIn yleistä ohjeistusta, API-avaimen saa automaattisesti heti rekisteröitymisen jäleen: https://data.fingrid.fi/fi/pages/api

Tuossa JSON-muotoisen haun parametreistä teknisempää tietoa: https://data.fingrid.fi/open-data-api/#!/events-controller/getEventsJsonUsingGET

Olen toteuttanut tuon itse siten, että Node Red hakee HTTP requestilla kerran tunnissa päivitetyt tiedot. Halutussa formaatissa (apexcharts-cardin ymmärtämässä) tyrkkään tiedot HAn MQTT-sensoriin, josta tiedot haetaan apexcharts-cardille näytettäväksi. API on siitä hyvä, että myös historiatieto löytyy.

HA_tuntihinnat ja tuulivoimaennuste – kopio.jpg
 

Temez

Aktiivinen jäsen
Mallailin vähän tuonne HomeAssistantin puolelle nyt tuota siirtomaksua. Privachatissa oli puhetta Mikin kanssa siitä, että tekisikö tuota suoraan API:n puolelle, mutta tuntui syntyvän suht helposti tänne Home Assistantin päähänkin.

1671178870937.png


Tosin kävi käpy äsken ja onnistuin ylikirjoittamaan kyseisen konffin. Mutta olisiko tämmöiselle tilausta? Yö/päiväsiirto + samalla saa spottisähkön marginaalin myös mukaan.
 
Back
Ylös Bottom