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.