Rajapinta
Home Assistant
Yksi haku viiden minuutin välein riittää. Dokumentti on litteä, joten jokainen kenttä on yhden mallineen päässä sensorista tai ehdosta, ja se kasvaa uusilla lohkoilla vain kun niitä pyytää.
Rajapinta voi olla poissa käytöstä tai antaa väärän arvon. Anna lämmitykselle alaraja ja lataukselle takaraja, jotka eivät riipu hinnasta, niin katkos ei jätä taloa kylmäksi eikä autoa tyhjäksi. Käyttö on omalla vastuulla; käyttöehdot.
Kaksi tapaa
Integraatio (HACS)
Asetusvirta kysyy marginaalin, siirron, jakson pituuden ja hintarajan,
ja luo sensorit valmiina ilman YAML:ää. Lähdekoodi ja asennusohje ovat
sivuston koodivarastossa hakemistossa homeassistant/.
REST-sensori (YAML)
Ei asennettavaa. Alla oleva lohko configuration.yaml-tiedostoon,
ja sensorit ovat olemassa uudelleenkäynnistyksen jälkeen. Tämä sivu
kuvaa tämän tavan.
Sensori
Korvaa margin ja transfer omilla luvuillasi sopimuksesta ja
siirtohinnastosta, molemmat sis. alv. hours=4&before=07:00 tuo
window-lohkon (halvin yhtenäinen neljä tuntia ennen aamua),
slots=4 tuo slots-lohkon (neljä halvinta tuntia hajautettuina)
ja threshold=8 tuo threshold-lohkon. Jätä pois ne, joita et tarvitse.
rest:
- resource: https://wattiplus.fi/api/v1/homeassistant?vat=1&margin=0.49&transfer=3.2&hours=4&before=07:00&slots=4&threshold=8
scan_interval: 300
sensor:
- name: "Pörssisähkö nyt"
unique_id: wattiplus_price_now
value_template: "{{ value_json.price_now }}"
unit_of_measurement: "snt/kWh"
state_class: measurement
json_attributes:
- level_now
- total_now
- price_next
- rank_today
- today
- tomorrow
- tomorrow_published
- cheapest
- window
- slots
- threshold
- today_prices
- tomorrow_prices
- name: "Sähkön kokonaishinta nyt"
unique_id: wattiplus_total_now
value_template: "{{ value_json.total_now }}"
unit_of_measurement: "snt/kWh"
state_class: measurement
- name: "Sähkön päästökerroin"
unique_id: wattiplus_co2_now
value_template: "{{ value_json.co2_now }}"
unit_of_measurement: "g/kWh"
state_class: measurement
- name: "Sähköpulan tila"
unique_id: wattiplus_grid_alert
value_template: "{{ value_json.grid_alert_level }}"
json_attributes:
- grid_alert_label
binary_sensor:
- name: "Halvin 3 h käynnissä"
unique_id: wattiplus_cheapest_3h_active
value_template: "{{ value_json.cheapest['3h'].active }}"
- name: "Halvin jakso ennen aamua käynnissä"
unique_id: wattiplus_window_active
value_template: "{{ value_json.window.active }}"
- name: "Halvimmat vartit ennen aamua käynnissä"
unique_id: wattiplus_slots_active
value_template: "{{ value_json.slots.active }}"
- name: "Hinta alle rajan"
unique_id: wattiplus_below_threshold
value_template: "{{ value_json.threshold.below_now }}"
- name: "Puhtain 3 h käynnissä"
unique_id: wattiplus_cleanest_3h_active
value_template: "{{ value_json.cleanest['3h'].active }}"
cheapest sisältää jaksot 1 h, 3 h ja 6 h tästä hetkestä eteenpäin yli
keskiyön. rank_today kertoo, kuinka mones halvin päivän vartti kuluva
vartti on: 1 on päivän halvin. today_prices ja tomorrow_prices
ovat listoja kentillä start, end, value ja total,
samassa muodossa kuin yhteisön ApexCharts-kortit odottavat.
Reseptit
Jokainen automaatio on sama kaava: laite seuraa yhtä binäärisensoria. Ero on siinä, mitä sensori mittaa.
Sähköauto: neljä halvinta tuntia ennen aamua
Lataus saa katketa ja jatkua, joten hajautetut vartit ovat parempi kuin yhtenäinen
jakso. Sensori slots.active on päällä juuri niinä vartteina.
automation:
- alias: "Auton lataus halvimmilla varteilla"
trigger:
- platform: state
entity_id: binary_sensor.halvimmat_vartit_ennen_aamua_kaynnissa
condition:
- condition: state
entity_id: binary_sensor.auto_kytketty
state: "on"
action:
- service: "switch.turn_{{ 'on' if trigger.to_state.state == 'on' else 'off' }}"
target:
entity_id: switch.latausasema
Lämminvesivaraaja: halvin yhtenäinen jakso yöllä
Varaaja lämpenee kerralla, joten yhtenäinen jakso. Kun sensorin osoitteessa on
hours=3&after=22:00&before=07:00, window.active on
päällä yön halvimmat kolme tuntia.
automation:
- alias: "Varaaja yön halvimmalla jaksolla"
trigger:
- platform: state
entity_id: binary_sensor.halvin_jakso_ennen_aamua_kaynnissa
action:
- service: "switch.turn_{{ 'on' if trigger.to_state.state == 'on' else 'off' }}"
target:
entity_id: switch.varaaja
Lattialämmitys: pois kun hinta on yli rajan
Lattia pitää lämpönsä tunteja, joten kalleimmat tunnit voi hypätä yli. Sensori
threshold.below_now vertaa kokonaishintaa rajaan, kun tariffi on annettu.
automation:
- alias: "Lattialämmitys vain rajan alla"
trigger:
- platform: state
entity_id: binary_sensor.hinta_alle_rajan
action:
- service: "climate.set_hvac_mode"
target:
entity_id: climate.lattia
data:
hvac_mode: "{{ 'heat' if trigger.to_state.state == 'on' else 'off' }}"
Sauna: ilmoitus, kun tunti on halpa
Saunaa ei ajasteta, ihminen päättää. Ilmoitus puhelimeen, kun halvin tunti alkaa illalla, riittää.
automation:
- alias: "Saunatunti alkaa"
trigger:
- platform: state
entity_id: binary_sensor.halvin_3_h_kaynnissa
to: "on"
condition:
- condition: time
after: "16:00:00"
before: "22:00:00"
action:
- service: notify.mobile_app_puhelin
data:
message: "Sähkö on nyt halvimmillaan: {{ states('sensor.porssisahko_nyt') }} snt/kWh."
Sähköpula: pudota kuormat
automation:
- alias: "Sähköpulavaroitus"
trigger:
- platform: numeric_state
entity_id: sensor.sahkopulan_tila
above: 0
action:
- service: switch.turn_off
target:
entity_id:
- switch.varaaja
- switch.latausasema
- service: notify.mobile_app_puhelin
data:
message: "Fingrid: {{ state_attr('sensor.sahkopulan_tila', 'grid_alert_label') }}. Varaaja ja lataus pois."
Ilman pollausta
Kirjautuneena voit antaa Home Assistantin webhook-osoitteen, jolloin huomisen
hinnat ja sähköpulan tilan muutos tulevat viestinä sillä hetkellä kun ne
tapahtuvat. Sama tili antaa myös osoitteen /api/v1/me, jossa on omat
tariffisi ja ilmoitusrajasi sensoreiksi laskettuina. Ohjeet ovat
tilisivulla.