Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
# Start pack for Spot Price control.
# UNOFFICIAL VERSION
#
# This is a copy-paste approach in order to get Finnish Electricity Spot Prices to Home Assistant.
# Initial implementation by Temez but feel free to further develop this.
# Special thanks to Mikki who has created the API where data is fetched. For more information see https://spot-hinta.fi/
# This is just a loader for the data which is stored in sensor attributes. Template sensors present actual data.
sensor:
- platform: rest
resource: https://api.spot-hinta.fi/TodayAndDayForward?HomeAssistant=true
name: "SHF electricity price"
scan_interval: 604800 # 7 days, update logic is in the automation
value_template: "OK" # static value as sensor is not updated regularly
json_attributes:
- "data"
- platform: statistics
name: "SHF Average Price 7 Days"
entity_id: sensor.shf_electricity_price_now
state_characteristic: mean
unique_id: shf_average_7days
precision: 4
max_age:
days: 7
template:
- sensor:
- name: "SHF Idx" # Helper for other sensors to get correct price/rank from array
state: >
{% if state_attr("sensor.shf_electricity_price_now", "data") %}
{% if state_attr("sensor.shf_electricity_price_now", "data")[0]["DateTime"][8:10] | int == now().day %}
{{ 0 }}
{% else %}
{{ 24 }}
{% endif %}
{% endif %}
- sensor:
- name: "SHF Rank now"
unit_of_measurement: Rank
state: >
{% if state_attr("sensor.shf_electricity_price_now", "data") %}
{% set json_key = states("sensor.shf_idx") | int + now().hour %}
{{ state_attr("sensor.shf_electricity_price_now", "data")[json_key]["Rank"] }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Electricity price now"
unit_of_measurement: "snt/kWh"
device_class: monetary
state: >
{% if state_attr("sensor.shf_electricity_price_now", "today_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "today_prices")[now().hour] | float }}
{% else %}
{{ 0 }}
{% endif %}
attributes:
data: >
{{ state_attr("sensor.shf_electricity_price", "data") if state_attr("sensor.shf_electricity_price", "data") else state_attr("sensor.shf_electricity_price_now", "data") }}
all_prices: >
{% if state_attr("sensor.shf_electricity_price_now", "data") %}
{% set output = namespace(prices=[]) %}
{% for value in state_attr("sensor.shf_electricity_price_now", "data") | map(attribute="PriceWithTax") | list %}
{% if ((loop.index - 1) % 24) >= state_attr("input_datetime.shf_price2_start", "hour") and ((loop.index - 1) % 24) < state_attr("input_datetime.shf_price2_stop", "hour") %}
{% set output.prices = output.prices + [ value + states('input_number.shf_price2_slider') | float] %}
{% else %}
{% set output.prices = output.prices + [ value + states('input_number.shf_price1_slider') | float] %}
{% endif %}
{% endfor %}
{{ output.prices if output.prices | length > 0 else state_attr("sensor.shf_electricity_price_now", "all_prices") }}
{% else %}
{{ 0 }}
{% endif %}
today_prices: >
{% if state_attr("sensor.shf_electricity_price_now", "all_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "all_prices")[states("sensor.shf_idx")|int:states("sensor.shf_idx")|int+24] | list }}
{% else %}
{{ 0 }}
{% endif %}
tomorrow_prices: >
{% if state_attr("sensor.shf_electricity_price_now", "all_prices") %}
{{ (state_attr("sensor.shf_electricity_price_now", "all_prices"))[states("sensor.shf_idx")|int+24:] | list }}
{% else %}
{{ 0 }}
{% endif %}
today_min: >
{% if state_attr("sensor.shf_electricity_price_now", "today_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "today_prices") | min }}
{% else %}
{{ 0 }}
{% endif %}
today_avg: >
{% if state_attr("sensor.shf_electricity_price_now", "today_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "today_prices") | average | round(4) }}
{% else %}
{{ 0 }}
{% endif %}
today_max: >
{% if state_attr("sensor.shf_electricity_price_now", "today_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "today_prices") | max }}
{% else %}
{{ 0 }}
{% endif %}
tomorrow_min: >
{% if state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") | min }}
{% else %}
{{ 0 }}
{% endif %}
tomorrow_avg: >
{% if state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") | average }}
{% else %}
{{ 0 }}
{% endif %}
tomorrow_max: >
{% if state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") %}
{{ state_attr("sensor.shf_electricity_price_now", "tomorrow_prices") | max }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Average price today"
unit_of_measurement: "€/kWh"
device_class: monetary
state: >
{% if state_attr("sensor.shf_electricity_price_now", "today_avg") %}
{{ state_attr("sensor.shf_electricity_price_now", "today_avg") }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Average price next hours"
unit_of_measurement: "€/kWh"
device_class: monetary
state: >
{% if state_attr("sensor.shf_electricity_price_now", "all_prices") %}
{% set idx = states("sensor.shf_idx")|int + now().hour + 1 %}
{{ state_attr("sensor.shf_electricity_price_now", "all_prices")[idx:idx+states("input_number.shf_price_avg_slider")|int] | average | round(3) }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Cheapest period start helper"
state: >
{% if state_attr("sensor.shf_electricity_price_now", "all_prices") %}
{% set output = namespace(prices=[], period=[]) %}
{% set data = state_attr("sensor.shf_electricity_price_now", "all_prices")[15:39] %}
{% set hours = states("input_number.shf_cheapest_period_slider") | int %}
{% for inval in data[:min(-hours+1, -1)] %}
{% set j = loop.index -1 %}
{% for i in range(hours) %}
{% set output.prices = output.prices + [data[j+i]] %}
{% endfor %}
{% set output.period = output.period + [output.prices | average] %}
{% endfor %}
{% set data2 = state_attr("sensor.shf_electricity_price_now", "data")[15:39] %}
{{ data2[output.period.index(output.period|min)]["DateTime"] }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Control Factor zero to one"
unit_of_measurement: factor
icon: mdi:gauge
state: >
{% if state_attr("sensor.shf_control_factor_zero_to_one", "today_values") %}
{{ state_attr("sensor.shf_control_factor_zero_to_one", "today_values")[now().hour] }}
{% else %}
{{ 0 }}
{% endif %}
attributes:
today_values: >
{% if state_attr("sensor.shf_control_factor_negative_one_to_one", "today_values") %}
{% set output = namespace(factors=[]) %}
{% for value in state_attr("sensor.shf_control_factor_negative_one_to_one", "today_values") %}
{% set newValue = value | float / 2 + 0.5 %}
{% set output.factors = output.factors + [ newValue ] %}
{% endfor %}
{{ output.factors }}
{% else %}
{{ 0 }}
{% endif %}
- sensor:
- name: "SHF Control Factor negative one to one"
unit_of_measurement: factor
icon: mdi:gauge
state: >
{% if state_attr("sensor.shf_control_factor_negative_one_to_one", "today_values") %}
{{ state_attr("sensor.shf_control_factor_negative_one_to_one", "today_values")[now().hour] }}
{% else %}
{{ 0 }}
{% endif %}
attributes:
today_values: >
{% set output = namespace(factors=[]) %}
{% for pnow in state_attr("sensor.shf_electricity_price_now", "today_prices") %}
{% set pmin = state_attr("sensor.shf_electricity_price_now", "today_min") | float %}
{% set pmax = state_attr("sensor.shf_electricity_price_now", "today_max") | float %}
{% set value = max(min((2*(pmax - pnow) / (pmax - pmin)-1) * states('input_number.shf_control_function_factor') | float,1),-1) %}
{% if states("input_select.shf_control_function" ) == "Linear" %}
{% set output.factors = output.factors + [value | round(2)] %}
{% else %}
{% set output.factors = output.factors + [sin(value*pi/2) | round(2)] %}
{% endif %}
{% endfor %}
{{ output.factors }}
- binary_sensor:
- name: "SHF Rank acceptable"
device_class: power
state: >
{% set value = state_attr("sensor.shf_electricity_price_now", "data")[states("sensor.shf_idx")|int+now().hour] %}
{{ value["Rank"] <= states("input_number.shf_rank_slider") | int }}
- binary_sensor:
- name: "SHF Price acceptable"
device_class: power
state: >
{% set value = state_attr("sensor.shf_electricity_price_now", "today_prices")[ now().hour ] %}
{{ value <= states("input_number.shf_price_slider") | float }}
- binary_sensor:
- name: "SHF Price or Rank acceptable"
device_class: power
state: '{{ is_state("binary_sensor.shf_rank_acceptable", "on") or is_state("binary_sensor.shf_price_acceptable", "on") }}'
input_select:
shf_control_function:
name: SHF Control Function
options:
- Linear
- Sinusoidal
icon: mdi:gauge
input_number:
shf_control_function_factor:
name: SHF Control Function Factor
min: 1
max: 3
step: 0.01
icon: mdi:gauge
mode: box
shf_rank_slider:
name: SHF Max Rank allowed
min: 1
max: 24
step: 1
shf_price_slider:
name: SHF Max Price allowed
min: 0
max: 4
step: 0.01
unit_of_measurement: €/kWh
icon: mdi:cash-lock
mode: box
shf_price_avg_slider:
name: SHF Average price hours
min: 1
max: 24
step: 1
unit_of_measurement: h
icon: mdi:cash-clock
shf_cheapest_period_slider:
name: SHF Cheapest period hours
min: 1
max: 24
step: 1
unit_of_measurement: h
icon: mdi:cash-clock
shf_control_factor:
name: SHF Control Factor
min: 0
max: 1000
mode: box
shf_price1_slider:
name: SHF Price1
min: 0
max: 1000
step: 0.0001
unit_of_measurement: €
icon: mdi:cash-lock
mode: box
shf_price2_slider:
name: SHF Price2
min: 0
max: 1000
step: 0.0001
unit_of_measurement: €
icon: mdi:cash-lock
mode: box
input_datetime:
shf_cheapest_period_start:
name: SHF Cheapest period start
has_date: true
has_time: true
shf_price2_start:
name: SHF Price2 start
has_date: false
has_time: true
shf_price2_stop:
name: SHF Price2 stop
has_date: false
has_time: true
#Automation for automatic updating of the sensor. Tries to reduce API load.
automation:
- id: "1669453089221"
alias: Intelligent update of electricity price sensor
description: "Tries to fetch new data every 15mins after 14 oclock local time. Condition stops unnecessary requests. Random delay disperses API calls."
trigger:
- platform: time_pattern
minutes: /15
alias: Trigger every 15mins
condition:
- condition: template
value_template: '{{ is_state("sensor.shf_electricity_price", "unavailable") or is_state("sensor.shf_idx", "unavailable") or (now().hour >= 14 and (states("sensor.shf_idx") | int > 0 or state_attr("sensor.shf_electricity_price", "data") | length <= 24)) }}'
alias: Check if there isn't data for tomorrow and time is after 14 o'clock
action:
- delay: "{{ range(60, 600)|random }}"
alias: Random delay in order to reduce API congestion
- service: homeassistant.update_entity
alias: Trigger the update of the sensor
target:
entity_id: sensor.shf_electricity_price
mode: single
- id: "1669453089222"
alias: "Copy cheapest period to datetime sensor"
description: "Copies cheapest period start from helper to datetime sensor for easier automations."
mode: single
trigger:
- platform: state
entity_id:
- sensor.shf_cheapest_period_start_helper
condition: []
action:
- service: input_datetime.set_datetime
data:
datetime: '{{ states("sensor.shf_cheapest_period_start_helper")[:19] | replace("T", " ") }}'
target:
entity_id: input_datetime.shf_cheapest_period_start
state: '{{ (states("sensor.shf_control_factor_1") | float /2 + 0.5) | default(none) }}'
# state: '{{ (states("sensor.shf_control_factor_1") | float /2 + 0.5) | default("Unknown") }}'
state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default(none) }}'
# state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default("Unknown") }}'
MIe otin tuon TK:n viestin YAML:n ja viskasin koneeseen. No se loi duplikaatit kaisiksta sensoreista kun ei ollut enää unique_id -arvoja. Vähän aikaa ihmettelin tuota ja hoksasin ettei tuo TK:n parsima versio toimi vanhemmassa HA -versiossa. Joten tapani mukaan ammuin norsupyssyllä ja pistin uusiksi koko setupin tähän tyyliin:Hmm. Mitkä kaikki korjaukset nyt tulee tehdä, että uskaltaa päivittää HA:n ? Voisiko joku kerätä yhteen postaukseen kaikki "pätsit" ?
Ajelen siis edelleen HA versiolla 2023.4.6
Joo kirjoitinkin tuohon, että ei ole semmoisenaan yhteensopiva, mutta juuri tuollalailla ”tyhjästä asennettuna” se toimii ihan ok ottaen huomioon ne edellisen postauksen puutteet. Toki poistaa kaiken historiatiedon, mutta toisaalta en kyllä itse välttämättä keksi syytä tallentaa sähkön hintatietoja omaan tietokantaan kun ne saa aina haettua virallisista lähteistä vuosikausia taaksepäin.MIe otin tuon TK:n viestin YAML:n ja viskasin koneeseen. No se loi duplikaatit kaisiksta sensoreista kun ei ollut enää unique_id -arvoja. Vähän aikaa ihmettelin tuota ja hoksasin ettei tuo TK:n parsima versio toimi vanhemmassa HA -versiossa. Joten tapani mukaan ammuin norsupyssyllä ja pistin uusiksi koko setupin tähän tyyliin:
Jotenkin noin se meni, ei tietenkään tullut kirjoitettua dokumenttia tehdessä, mut ehkä mä vielä puolen päivän jälkeen muistan mitä tein...
- Päivitin HAn versioon 2023.5.4
- Poistin väliaikaisesti viittauksen spot-price.yaml tiedostoon Kommentoi nuo punaisessa lootassa olevat rivitkatso liitettä 86913
- Restarttasin HA:n
- Delaasin kaikki SHF jutut -entities -listalta. Helppo löytää kun niiden perässä on nyt punainen huutomerkki.
- Ylikirjoiin spot-price.yaml TK:n koodilla
- Palautin kommentoidur rivit configuration.yaml -tiedostossa
- Restarttasin HA:n toisen kerran
- Ihaile toimivaa SHF -koodia
Nämä seuraavat:Hmm. Mitkä kaikki korjaukset nyt tulee tehdä, että uskaltaa päivittää HA:n ? Voisiko joku kerätä yhteen postaukseen kaikki "pätsit" ?
Ajelen siis edelleen HA versiolla 2023.4.6
Sales julkaisi paremman korjauksen SHF sensoriin.
kts: https://github.com/T3m3z/spotprices2ha/issues/15#issuecomment-1538883956YAML:# state: '{{ state_attr("sensor.shf_electricity_price_now", "today_prices")[now().hour] }}' state: '{{ state_attr("sensor.shf_electricity_price_now", "today_prices")[now().hour] | default(none) }}'
hmm.. Itsellä SHF Control Factor 0-1 toimii seuraavalla muutoksella, jossa unknown korvataan none:lle
ja SHF Control Factor +-1 samalla muutoksellaKoodi:state: '{{ (states("sensor.shf_control_factor_1") | float /2 + 0.5) | default(none) }}' # state: '{{ (states("sensor.shf_control_factor_1") | float /2 + 0.5) | default("Unknown") }}'
Koodi:state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default(none) }}' # state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default("Unknown") }}'
No Temez on jostain syystä estynyt tekemään mitään ko. koodille.eikö noita saisi siihen oikeaan koodiin? jotta saisi uuden version..
data:
temperature: >-
{{ (17 + 3*states('sensor.shf_control_factor_0_1') | float) |
round(0) }}
target:
device_id:
Tuo virhe viittaa siihen, että tuo control_factor-sensori ei sisällä mitään oikeaa arvoa, vaan siellä on arvona ”unknown”. Eli vika ei ole tuossa automaatiossa. Se korjaantuu kun tuon templaatin korjaa niin, että tuo control_factor -sensori saa arvon.Osaisiko joku auttaa automaationi kanssa, koska se kyllä hajosi tuon control factorin takia.
Eli minulla on tällainen rimpsu joka ohjaa lattialämmitystä:
YAML:data: temperature: >- {{ (17 + 3*states('sensor.shf_control_factor_0_1') | float) | round(0) }} target: device_id:
Huomasin nyt, ettei lattilämmöt enää säädy ja kokeilin ajaa manuaalisesti tuota komentoa, niin tulee tällainen herja:
katso liitettä 86932
Ei olisi sittenkään pitänyt päivittää HA:ta.
Kappas, en tajunnut että tuolla oli toinen control factor rivi joka piti myös korjata ! Kiitos!Tuo virhe viittaa siihen, että tuo control_factor-sensori ei sisällä mitään oikeaa arvoa, vaan siellä on arvona ”unknown”. Eli vika ei ole tuossa automaatiossa. Se korjaantuu kun tuon templaatin korjaa niin, että tuo control_factor -sensori saa arvon.
state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default(none) }}'
# state: '{{ state_attr("sensor.shf_control_factor_1", "today_values")[now().hour] | default("Unknown") }}'
# Control factor based on relative difference of current price from daily max price
# Original functionality based on SHF Control factor in spotprices2ha delevoped by Temez
- sensor:
- name: porssari_control_factor
unit_of_measurement: factor
icon: mdi:gauge
state: >
{% if is_state('binary_sensor.porssari_json_prices', 'on') %}
{% set ns = namespace(factor=[]) %}
{% set pnow = states("sensor.porssari_price_now") | float %}
{% set pmin = states("sensor.porssari_min_today") | float %}
{% set pmax = states("sensor.porssari_max_today") | float %}
{% set val = max(min((2*(pmax - pnow) / (pmax - pmin)-1) * states('input_number.porssari_control_function_factor') | float,1),-1) %}
{% if states("input_select.porssari_control_function" ) == "Linear" %}
{% set ns.factor = val | round(2) %}
{% else %}
{% set ns.factor = sin(val*pi/2) | round(2) %}
{% endif %}
{% if states("input_select.porssari_control_function_output" ) == "Negative one to one" %}
{{ ns.factor }}
{% else %}
{{ ns.factor | float /2 + 0.5 }}
{% endif %}
{% else %}
{{ 0 }}
{% endif %}
Näinhän se taitaa tehdä. Muutenkin se on todella kovakourainen.Eli onko niin, että tällaisena päivänä kun sähkö on ollut muutaman tunnin huomattavan kallista, niin tuon kuuluukin saada lähes koko päivän arvo lähelle 1?
Ei meitäkään toki ole kuin 2, ja itse olen enemmänkin harrastelijakoodari. Toinen meistä on sentään ihan sähköalalla työskentelevä automaatioinsinööri.Näinhän se taitaa tehdä. Muutenkin se on todella kovakourainen.
Hmm. pörssäri, pitää vissiin alkaa miettiä vaihtoehtoja tälle, kun taas kerran ollaan tilanteessa, että "lisäosat" eivät enää päivity. Enkä tässä ketään syyttele, koska kaikki perustuu vapaaehtoisuuteen. Josko pörssärissä olisi useampia ylläpitäjiä ? Parastahan olisi kun lisäosat yleensäkin olisivat sellasia, joissa olisi parviylläpitoa.
100% olen tähän ollut tyytyväinen, mutta mitä helpompaa päivitysten kanssa on, sen parempi. Ja onhan tässä ollut hyviä innovaatioita.
Mikä tuossa Home Assistantissa on se pihvi että sitä kannattaa käyttää pörssiohjauksessa jos se on epäluotettava niin että väliin saa resetoida?Jotain rikki kun ei päivity huomisen hinnat
Tällä näkyy https://api.spot-hinta.fi/TodayAndDayForward
Voiko tuon vaan laittaa yamlin ylemmän tilalle?
Edit: nyt se korjaantui HAkin korjaantui toisella restartilla
Tämänpäiväinen liittyy siihen, että nuo hintatiedot oli myöhässä kun markkinat avattiin uudelleen. Tuli ne sieltä noin 8h ennen seuraavaa vuorokautta, eli ei tuon kanssa hätää olisi ollut. Spot-hinta oli ensimmäisiä missä ne oli sitten saatavilla julkaisun jälkeen.Mikä tuossa Home Assistantissa on se pihvi että sitä kannattaa käyttää pörssiohjauksessa jos se on epäluotettava niin että väliin saa resetoida?
Omassa ohjelmassani päivitys säie kokeilee aina uudelleen pienen viiveen jälkeen ilta yhteentoista saakka, jolloin asettaa varaohjelmat käyttöön ja jää sitten nukkumaan siihen asti kunnes on aika hakea taas seuraavat eli ylihuomisen hinnat.Paitsi sitten taas fb:ssa on porukka keskustellut siitä, että Nordpool-lisäosa ei päivity enää muuta kuin manuaalisesti jos hinnat tulee liian myöhään.
Itse virittelen tuota Pörssäriä eikä siinä ole kyllä ollut mitään ongelmia. Ja kunhan saadaan tuo meidän hintasivusto valmiiksi, niin teen vielä yamlin joka hakee vain nuo hinnat sivuston asetusten mukaan ja jättää nuo (suurelle?) osalle turhat ohjauskanavasensorit tekemättä.
Ei se kai kovin raskas ole? Monellahan se pyörii Raspberryssä. Itsellä on unraidin virtuaalikoneena, rautana siinä pohjalla on mini-itx -emo integroidulla celeronilla ja ei tuo monta sekuntia tosiaan reboottaa. Toki järjestelmälevynä on nvme, ja varmaan asiaan vaikuttaa sekin paljonko erilaisia lisäosia tuossa Home Assistantissa pyörii.Omassa ohjelmassani päivitys säie kokeilee aina uudelleen pienen viiveen jälkeen ilta yhteentoista saakka, jolloin asettaa varaohjelmat käyttöön ja jää sitten nukkumaan siihen asti kunnes on aika hakea taas seuraavat eli ylihuomisen hinnat.
Onko Home Assistant kuinka raskas ohjelmisto käytössä? Itse olen omassa toteutuksessani pyrkinyt siihen, että kun resetoin ohjaimen niin graafinen Nuklear pohjainen hallintaliittymä olisi käytettävissä jokusen sekunnin päästä siitä.
Sama täällä.Omituista tämänpäivän hintoja ei näy, mutta huomisen näkyy ? Mites muilla ?
Sama täällä.
Jossain on katkos hintojen siirtymisessä.
Jaahas... On tosiaan outo ongelma että huomiset hinnat tulevat mutta ei tämänpäiväistä.Siellä on jotain häikkää tietojen siirtymisessä, alla toisesta ketjusta lainattu viesti. En tiedä liittyykö puute tuohon samaan.
ENTSO-E:stäkään ei löydy tämän päivän tunteja.
Olin tehnyt jo hieman pohjaa tuntihintojen syöttämisestä manuaalisesti 24 h ajalle HA:n kautta. Nyt tuli sekin tehtyä loppuun ja kokeiltua sahko.tk:n hinnoilla. Eli vaihtoehtoina on nyt ENTSO-E, spot-hinta.fi tai manuaalisesti syötetyt hinnat. Näistä käytetään "laadukkainta" tietoa.
Täytyisi vielä varmistaa, että ohjaukset toimii jotenkin fiksusti, vaikka hintatieto puuttuisi. Ohjausten pitäisi mennä pääsääntöisesti normaalitilaan ilman ohjausta, mutta voi olla tarkastuksen paikka.
Jaahas... On tosiaan outo ongelma että huomiset hinnat tulevat mutta ei tämänpäiväistä.
En ollut koodissa tähän varautunut joten se hukkas tämän päivän hinnat kun huomiset hinnat tuli.
Samaa ihmettelen. Api.spot-hinta.fi kyllä palauttaa mielestäni oikeat hinnat, mutta jostain syystä HA on eri mieltä.Mikähän pielessä kun rank now näyttää tunnin pieleen, mutta price now on kuitenkin ihan oikein?
heh.. Näytti auttavan.Outo ongelma kun ainakin mitä katsoin tulisi rajapinnasta hinnat oikein.
Oletteko buutannut HAta jos se eilinen 00:00-01:00 tunnin puutos edelleen sotkee jotain.
Eilen illalla buuttasin, mut pitääpä koittaa vielä tänään uudelleen.Outo ongelma kun ainakin mitä katsoin tulisi rajapinnasta hinnat oikein.
Oletteko buutannut HAta jos se eilinen 00:00-01:00 tunnin puutos edelleen sotkee jotain.
Joo ehkä tuo on se yksinkertaisin ratkaisu. Ja toisaalta se sopii taas sitten helpommin myös useamman laitteen triggeröintiin päälle ja pois. Aika epätodennäköinen skenaariohan se olisi, että juuri sen minuutin kun poiskytkentä pitäisi tapahtua, olisi HA boottaamassa ja siihen menisi se koko minuutti.>Onko tähän jollakulla vielä jotain järkevämpiä ratkaisuja käytössä?
Minulla on helperit LVV On aika ja LVV Off aika.
LVV On aika asetetaan pörssisähkön hinnan mukaan. LVV Off aika on LVV On aika + 3 h.
Lisäksi on automaatio mikä kytkee LVV On ja toinen automaatio mikä kytkee LVV Off noiden helpereiden mukaisesti.
Lisäksi on helperi missä kerron kuinka pitkää (tuntia) halpaa jaksoa etsitään.
(Normaalisti tosin LVV lämpiää asetusarvoon ennen Off aikaa, jolloin LVV:n oma termostaatti kytkee sen Off.)
Hyvin on tuolla nyt puolivuotta toiminut.