Automaatioesimerkit
Näissä esimerkeissä {name} tarkoittaa nimeä, jonka annoit asennuksen aikana. Jos asettamasi nimi on Koti, korvaa entiteettitunnuksissa {name} tekstillä koti.
Vasta aloittamassa?
Kilowahdilla on omat laukaisimet ja ehdot, jotka voit valita suoraan automaatioeditorista, eikä entiteettitunnuksia tai YAMLia tarvita. Alla olevat esimerkit rakentavat saman toiminnan entiteettien avulla, ja sitä tarvitset siinä vaiheessa, kun tarpeesi menevät laukaisimien ja ehtojen tarjoamaa pidemmälle.
Käynnistä halpoina tunteina (sijalukuun perustuva)
Yksinkertaisin tapa: käytä rank_acceptable-binäärianturia automaation ehtona. Aseta hyväksyttävän sijaluvun raja Kilowahdin asetuksissa.
Sijaluku seuraa sitä energian hintaa, jonka oikeasti maksat. Pörssisähkösopimuksessa se on markkinahintojen järjestys. Kiinteähintaisen jakson aikana jokainen tunti maksaa saman verran, joten jokaisen hintajakson sijaluku on 1 ja rank_acceptable pysyy päällä koko päivän. Näin on tarkoituksella, koska halvempaa tuntia ei ole tulossa. Jos kuitenkin haluat ehdon, joka rajaa päivää kiinteälläkin sopimuksella, käytä total_price_rank-anturia, joka sisältää siirron: joko anturin numeerisella tilaehdolla tai sisäänrakennetulla ehdolla Hinta on vuorokauden halvin ja laukaisimella Muuttui halvimmaksi jaksoksi, jotka molemmat järjestävät hintajaksot kokonaishinnan mukaan.
alias: Lämmitä vettä halpoina tunteina
triggers:
- trigger: state
entity_id: binary_sensor.kilowahti_{name}_rank_acceptable
to: "on"
actions:
- action: switch.turn_on
target:
entity_id: switch.water_heater
Laitteen pysäyttäminen, kun halpa jakso päättyy:
alias: Pysäytä varaaja, kun tunnit eivät enää ole halpoja
triggers:
- trigger: state
entity_id: binary_sensor.kilowahti_{name}_rank_acceptable
to: "off"
actions:
- action: switch.turn_off
target:
entity_id: switch.water_heater
Käynnistä, kun hinta alittaa hintarajan
Käytä price_acceptable-anturia, kun sinulle merkitsee absoluuttinen hinta eikä hinnan suhteellinen sijaluku. Aseta hintaraja Kilowahdin asetuksissa.
alias: Sähköauton lataus, kun hinta on hyväksyttävä
triggers:
- trigger: state
entity_id: binary_sensor.kilowahti_{name}_price_acceptable
to: "on"
actions:
- action: switch.turn_on
target:
entity_id: switch.ev_charger
Voit myös yhdistää molemmat ehdot price_or_rank_acceptable-anturilla:
triggers:
- trigger: state
entity_id: binary_sensor.kilowahti_{name}_price_or_rank_acceptable
to: "on"
Ajasta laite halvimpaan tulevaan aikaikkunaan
Etsi kilowahti.cheapest_hours-palvelulla halvin yhtenäinen jakso etukäteen ja ajasta laitteesi käynnistymään silloin. Tarvitset input_datetime-apurin. Luo se kohdassa Asetukset → Laitteet & palvelut → Apurit → Luo apuri → Päivämäärä ja/tai kellonaika (esim. input_datetime.cheapest_window_start).
Automaatio 1 – Etsi aikaikkuna (suoritetaan päivittäin klo 17.00):
alias: Etsi halvin 3 tunnin ikkuna yön yli
triggers:
- trigger: time
at: "17:00:00"
actions:
- action: kilowahti.cheapest_hours
data:
start: "{{ now().isoformat() }}"
end: "{{ (now() + timedelta(hours=15)).isoformat() }}" # 15 tuntia on aikaikkuna klo 17.00 → seuraavana aamuna klo 8.00
hours: 3
response_variable: result
- action: input_datetime.set_datetime
data:
datetime: "{{ result['start'] | as_datetime | as_local }}"
target:
entity_id: input_datetime.cheapest_window_start
Automaatio 2 – Käynnistä laite ajastettuna aikana:
alias: Käynnistä astianpesukone halvimpaan aikaan
triggers:
- trigger: time
at: input_datetime.cheapest_window_start
actions:
- action: switch.turn_on
target:
entity_id: switch.dishwasher
Portaaton ohjaus (termostaatti / ilmastointi)
Käytä control_factor_price-anturia asetusarvon säätämiseen sen sijaan, että kytkisit laitetta päälle ja pois. 1,0 = halvin hintajakso, 0,0 = kallein.
Tämä esimerkki säätää termostaatin asetusarvoa välillä 19 °C (kallis) ja 22 °C (halpa) 0,5 °C:n askelin:
alias: Säädä termostaattia hinnan mukaan
triggers:
- trigger: state
entity_id: sensor.kilowahti_{name}_control_factor_price
actions:
- action: climate.set_temperature
data:
temperature: >
{{ (19 + (states('sensor.kilowahti_{name}_control_factor_price') | float(0)) * 3) | round(0, "half") }}
target:
entity_id: climate.living_room
Jos tarvitset ±1-välillä toimivan bipolaarisen syötteen (esim. PID-säätimelle), käytä sen sijaan anturia sensor.kilowahti_{name}_control_factor_price_bipolar.
Note
Ohjauskertoimen käyrän muodon (lineaarinen tai sinimuotoinen) ja skaalauseksponentin voi määrittää Kilowahdin asetuksissa. Sinimuotoinen käyrä reagoi pehmeämmin ääripäiden lähellä.
Tip
Home Assistantissa on paranneltu versio Jinjan round-suodattimesta. Siihen kuuluu myös yllä käytetty "half"-menetelmä, joka pyöristää lähimpään 0,5:een. Katso Home Assistantin round-dokumentaatio.
Säädä sähköauton latausvirtaa hinnan mukaan
Sen sijaan, että kytkisit sähköauton laturia päälle ja pois, voit control_factor_price-anturilla säätää latausvirtaa portaattomasti minimin ja maksimin välillä. 1,0 = halvin hintajakso (täysi virta), 0,0 = kallein hintajakso (minimivirta).
Tämä esimerkki säätää virtaa välillä 6 A ja 16 A 1 A:n askelin:
alias: Säädä sähköauton latausvirtaa hinnan mukaan
triggers:
- trigger: state
entity_id: sensor.kilowahti_{name}_control_factor_price
actions:
- action: number.set_value
target:
entity_id: number.ev_charger_current
data:
value: >
{{ (6 + (states('sensor.kilowahti_{name}_control_factor_price') | float(0)) * 10) | round(0) | int }}
Muuta arvot 6 (minimivirta) ja 10 (vaihteluväli: maksimi miinus minimi) laturisi tukemalle alueelle. Tarkista oikea entiteetti ja sallitut arvot laturisi integraation dokumentaatiosta.
Lataa ja pura akkua kvartiilin mukaan
Ohjaa kotiakkua price_quartile-anturilla: lataa halvimpien 25 %:n hintajaksojen aikana (Q1), pura kalleimpien 25 %:n aikana (Q4) ja jätä muulloin automaattitilaan.
alias: Akun lataus ja purku hintakvartiilin mukaan
triggers:
- trigger: state
entity_id: sensor.kilowahti_{name}_price_quartile
actions:
- choose:
- conditions:
- condition: state
entity_id: sensor.kilowahti_{name}_price_quartile
state: "1"
sequence:
- action: select.select_option
target:
entity_id: select.battery_mode
data:
option: charge
- conditions:
- condition: state
entity_id: sensor.kilowahti_{name}_price_quartile
state: "4"
sequence:
- action: select.select_option
target:
entity_id: select.battery_mode
data:
option: discharge
default:
- action: select.select_option
target:
entity_id: select.battery_mode
data:
option: auto
Korvaa select.battery_mode ja valinnat niillä entiteeteillä ja tiloilla, joita akkusi integraatio tarjoaa.
Ilmoita, kun huomisen hinnat ovat saatavilla
Huomisen hinnat julkaistaan alkuiltapäivällä (noin klo 13.00 Keski-Euroopan aikaa, joillakin markkinoilla myöhemmin). Käytä laukaisimena huomisen hintojen saatavuutta kertovan binäärianturin kytkeytymistä päälle, ja lähetä push-ilmoitus päivän hintahaarukasta.
alias: Ilmoita, kun huomisen hinnat saapuvat
triggers:
- trigger: state
entity_id: binary_sensor.kilowahti_{name}_tomorrow_available
to: "on"
actions:
- action: notify.mobile_app_your_phone
data:
title: "Huomisen sähkön hinnat"
message: >
Halvin {{ states('sensor.kilowahti_{name}_tomorrow_spot_minimum') }},
keskiarvo {{ states('sensor.kilowahti_{name}_tomorrow_spot_average') }},
kallein {{ states('sensor.kilowahti_{name}_tomorrow_spot_maximum') }}
{{ state_attr('sensor.kilowahti_{name}_tomorrow_spot_minimum', 'unit_of_measurement') }}
Korvaa notify.mobile_app_your_phone omalla ilmoituspalvelullasi.
Hälytä, kun spot-hinta ylittää päivän keskiarvon
Lähetä ilmoitus aina, kun nykyisen hintajakson hinta nousee tämän päivän keskiarvon yläpuolelle. Tästä on hyötyä ennakkovaroituksena, jotta voit siirtää ei-kiireellistä kulutusta myöhemmäksi.
alias: Hälytä, kun hinta ylittää päivän keskiarvon
triggers:
- trigger: template
value_template: >
{{ states('sensor.kilowahti_{name}_spot_price') | float(0) >
states('sensor.kilowahti_{name}_today_spot_average') | float(0) }}
actions:
- action: notify.mobile_app_your_phone
data:
message: >
Sähkön hinta {{ states('sensor.kilowahti_{name}_spot_price') }}
on yli tämän päivän keskiarvon {{ states('sensor.kilowahti_{name}_today_spot_average') }}
{{ state_attr('sensor.kilowahti_{name}_spot_price', 'unit_of_measurement') }}.