Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Howto: Få estimert strømstøtte inn i HA


MrE

Anbefalte innlegg

EDIT: Regjeringen har endret hvordan strømstøtten beregnes fra og med 01. September 2023. Denne metoden er derfor utgått. Jeg lar den innlegget stå i tilfelle noen kan bruke dette til noe annet. 🙂

 

Hvordan få inn estimert strømstøtte i HA med data fra dinstrompris.no

 

1. Installer nordpool integrasjonen og konfigurer denne. (HACS -> Integrations)

 

2. Hent data fra dinstrompris.no via rest-sensor. Her opprettes sensor.stromstotte_25 og sensor.stromstotte_975

 

3. Lag sensor.estimert_stromstotte via helper som tar gjennomsnitt av Strømstøtte 2,5% og Strømstøtte 97,5%.

 

4. Lag input_number.strompris_paslag_leverandor via helper. Denne er manuell og du finner påslaget hos din kraftleverandør. HA lar meg ikke velge 0.01 som verdi, så jeg satte opp automasjon for å skrive denne verdien.

 

5. Lag input_number.nettleie_pris. Denne er manuell og du finner påslaget hos din nettleverandør. Min nettleverandør har forskjellig nettleie dag og natt, så jeg har automasjon som endrer verdi ut ifra klokkeslett på døgnet. For å velge tid på døgnet er det satt opp en times of the day sensor via helper.

 

6. Lag sensor.total_strompris_uten_stotte og sensor.total_strompris_med_stotte via configuration.yaml

 

7. Bruk sensorene som du vil. Her er YAML til mitt kort.

 

 

1. https://github.com/custom-components/nordpool/

 

 

 

 

2. Hent data fra dinstrompris.no via rest-sensor:

 

Configuration.yaml:

 

 
rest:
    scan_interval: 3600
    sensor:
      - name: "Estimert strømstøtte 2,5%"
        json_attributes_path: "$.19"
        value_template: "{{ value_json.19.compensation | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
      - name: "Estimert strømstøtte 97,5%"
        json_attributes_path: "$.26"
        value_template: "{{ value_json.26.compensation | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
      - name: "Estimert gjennomsnittspris"
        json_attributes_path: "$.16"
        value_template: "{{ value_json.16.mean_price | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
      - name: "Estimert gjennomsnittspris 2,5%"
        json_attributes_path: "$.19"
        value_template: "{{ value_json.19.mean_price | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
      - name: "Estimert gjennomsnittspris 97,5%"
        json_attributes_path: "$.26"
        value_template: "{{ value_json.26.mean_price | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
      - name: "Estimert strømstøtte 95%s"
        json_attributes_path: "$.25"
        value_template: "{{ value_json.25.compensation |float }}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"

 

3. Lag gjennomsnittssensor for strømstøtte

Gå til Settings -> Devices & Services -> Helpers:

Trykk på Create helper -> Combine the state of several sensors

Navn skriver du inn Estimert strømstøtte, og på entiteter velger du estimert strømstøtte 2,5% og estimert strømstøtte 97,5%. Velg Arithmetic mean, og trykk submit.

 

 

 

image.thumb.png.5de1cf5f7e44ad1cb779f86811c14865.png

 

 

 

 

 

 

 

 

4. Lag input_number.strompris_paslag_leverandor via helper:

Create helper - > Number -> Fyll inn. Navn skal være Strømpris påslag leverandør, min verdi 0, maks verdi 100.

 

image.thumb.png.d8b999433adaf1fb549bfa16f32a4647.png

 

 

 

Automasjonen for å endre tall:

 

alias: "Strømpris: Påslag leverandør"

description: ""

trigger: []

condition: []

action:

  - service: input_number.set_value

    data:

      value: 0.01

    target:

      entity_id: input_number.strompris_paslag_leverandor

mode: single

 

 

 

5. Lag input_number.nettleie_pris via helper:

Create helper -> Number -> Fyll inn. Navn skal være Nettleie pris, min verdi 0, maks verdi 100.

image.thumb.png.137a119af1ece765087b4dccaf86464b.png

 

Opprett så en ny helper av type Times of the day sensor.

Create helper -> Times of the day sensor -> Kall den for Nettleie dagpris, og velg tid på døgnet nettleverandøren din har dagprisen. Hos min nettleverandør har de en pris for 06:00 - 22:00, og en annen for 22:00-06:00, så jeg har valgt fra 06:00 - 22:00 her.

Denne vil altså slå seg på og av etter tid på døgnet, og er det som trigger min automasjon for å endre Nettleie pris.

 

image.thumb.png.a00b2b03cae3c86759614b818a31f33e.png

 

Automasjoner for å endre tall basert på tid på døgnet:

 

AUTOMASJON 1:

 

alias: "Strømpris: Sett nettleiepris dagtid"

description: ""

trigger:

  - platform: state

    entity_id:

      - binary_sensor.nettleie_dagpris

    from: "off"

    to: "on"

condition: []

action:

  - service: input_number.set_value

    data:

      value: 0.52

    target:

      entity_id: input_number.nettleie_pris

mode: single

 

 

AUTOMASJON 2:

 

alias: "Strømpris: Sett nettleie nattestid"

description: ""

trigger:

  - platform: state

    entity_id:

      - binary_sensor.nettleie_dagpris

    from: "on"

    to: "off"

condition: []

action:

  - service: input_number.set_value

    data:

      value: 0.42

    target:

      entity_id: input_number.nettleie_pris

mode: single

 

 

6. Template sensorer configuration.yaml:

 

template:
  - sensor:
      - name: "Total strømpris med støtte"
        unit_of_measurement: "NOK/kWh"
        state: '{{ states("sensor.nordpool_kwh_krsand_nok_2_10_025") |float +
      states("input_number.nettleie_pris") |float +
      states("input_number.strompris_paslag_leverandor") |float -
      states("sensor.estimert_stromstotte") |float }}'
 
  - sensor:
      - name: "Total strømpris uten støtte"
        unit_of_measurement: "NOK/kWh"
        state: '{{ states("sensor.nordpool_kwh_krsand_nok_2_10_025") |float +
      states("input_number.nettleie_pris") |float +
      states("input_number.strompris_paslag_leverandor") |float }}'

     

     

7: YAML til mitt kort som jeg bruker til ren info:

type: entities

entities:

  - entity: binary_sensor.nettleie_dagpris

    secondary_info: last-updated

  - entity: input_number.nettleie_pris

    secondary_info: last-updated

  - entity: input_number.strompris_paslag_leverandor

    secondary_info: last-updated

  - entity: sensor.nordpool_kwh_krsand_nok_2_10_025

    secondary_info: last-updated

    name: Nordpool spotpris NO2

  - entity: sensor.estimert_gjennomsnittspris

    secondary_info: last-updated

  - entity: sensor.estimert_stromstotte

    secondary_info: last-updated

  - entity: sensor.total_strompris_uten_stotte

    secondary_info: last-updated

  - entity: sensor.total_strompris_med_stotte

    secondary_info: last-updated

    name: Total strømpris med støtte

Endret av MrE
  • Like 3
Lenke til kommentar
Del på andre sider

ArnsteinL skrev (55 minutter siden):

Jeg får feilmelding når jeg prøver meg på denne, klarer ikke se noen feil på formateringen, noen gode tips? Jeg er virkelig nybegynner på programmering....

 

image.thumb.png.714ce78797e977a124221cb8f4532dbc.png

 

 

Legg inn dette istedenfor i configuration.yaml (steg 6):

 
 
 
template:
  - sensor:
      - name: "Total strømpris med støtte"
        unit_of_measurement: "NOK/kWh"
        state: '{{ states("sensor.nordpool_kwh_krsand_nok_2_10_025") |float +
      states("input_number.nettleie_pris") |float +
      states("input_number.strompris_paslag_leverandor") |float -
      states("sensor.estimert_stromstotte") |float }}'
 
  - sensor:
      - name: "Total strømpris uten støtte"
        unit_of_measurement: "NOK/kWh"
        state: '{{ states("sensor.nordpool_kwh_krsand_nok_2_10_025") |float +
      states("input_number.nettleie_pris") |float +
      states("input_number.strompris_paslag_leverandor") |float }}'
Endret av MrE
Lenke til kommentar
Del på andre sider

ArnsteinL skrev (På 17.1.2023 den 8.05):

Hos meg gjelder den lave nettleien både nettene og helgene. Så endte opp med å bare legge mandag-fredag inn som en betingelse i automasjonen for dagtid pris. Det ser foreløpig ut til å virke utmerket 🙂

Kan du legge ut den koden til oss "mindre begavede"?

Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Veldig gode instrukser! Takk for at du postet dette 👍🏻 Jeg lurer på hva jeg kan gjøre i rest-sensoren for å hente data for NO1. Har prøvd å telle linjer i json-fila, men er usikker på om dette blir riktig (f.eks. fra

json_attributes_path: "$.19"

til 

json_attributes_path: "$.04"

?

Ellers har jeg bare forandra henvisningene til kr.sand-sensor til oslo-sensor på de respektive feltene.

Alle felt viser verdier, men ikke korrekte for meg naturligvis.

Vet ikke helt hva jeg driver med, så jeg må få det inn med teskje. 

Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Skal være så enkelt som å endre 2 av rest sensorene til korrekt path. Husk å endre value_template også.

 

## NO1 ##
#Nr 5 i json liste
      - name: "Estimert gjennomsnittspris 2,5%"
        json_attributes_path: "$.4"
        value_template: "{{ value_json.4.mean_price | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
#nr 12 i json liste
      - name: "Estimert gjennomsnittspris 97,5%"
        json_attributes_path: "$.11"
        value_template: "{{ value_json.11.mean_price | round (2)}}"
        unit_of_measurement: "NOK/kWh"
        json_attributes:
          - "estimation_date"
          - "computation_year"
          - "computation_month"
Lenke til kommentar
Del på andre sider

  • 8 måneder senere...
stigvi skrev (2 timer siden):

Nei, den er foreldet. Nå trenger en ikke estimere strømstøtte lenger. Den er jo gitt direkte time for time ut i fra gjeldende strømpris.


Kanskje jeg ikke skjønner, men hvordan henter jeg strømprisen med strømstøtte inn i HA?

Lenke til kommentar
Del på andre sider

Olep skrev (10 timer siden):


ja, nordpool har jeg

Da kan du regne ut støtten direkte i nordpool integrasjonen. Nedenfor ser du min konfigurasjon for "additional costs". Der blir støtte regnet ut og lagt i variabelen "pb" som blir trukket fra prisen.

 

  - platform: nordpool
    VAT: true
    currency: "NOK"
    low_price_cutoff: 0.95
    region: "Kr.sand"
    precision: 6
    price_type: kWh
    friendly_name: "Nordpool"
    additional_costs: >-
      {% set s = {
        "hourly_fixed_cost": 0.0,
        "night": 0.2926,
        "day": 0.4176,
        "cert": 0.02
        }
        %}
        {% set helligdager = ["0101",
                    "0501",
                    "0517",
                    "1225",
                    "1226",
                    "0328",
                    "0329",
                    "0401",
                    "0509",
                    "0520"] %}
        {% set pb = max((current_price - 0.875) * 0.9, 0.0) %}
        {% if now().isoweekday() <= 5 and now().strftime("%m%d") not in helligdager %}
            {% if now().hour >= 6 and now().hour < 22 %}
                {{(s.day + s.hourly_fixed_cost + s.cert - pb)|float(0)}}
            {% else %}
                {{(s.night + s.hourly_fixed_cost + s.cert - pb)|float(0)}}
            {% endif %}
        {% else %}
            {{(s.night + s.hourly_fixed_cost + s.cert - pb)|float(0)}}
        {% endif %}

 

  • Like 1
Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Kjempefin template som tar høyde for strømstøtte, men har et par spørsmål:

- Tar den høyde for bevegelige helligdager? Klarer vi få til det?

- Hva med sesongjustert nettleie? Ser du har med et påslag for dag natt, men dette endrer seg (i alle fall hos BKK) med årstid.

 

Jeg lagde en template en gang som KUN regner ut den sesongjuterte nettleien, kanskje du klarer å slå de sammen til en komplett template for alle variabler?

 

https://pastes.io/ykspagokfq

Endret av MagnusO2
Lenke til kommentar
Del på andre sider

Klarte å skru sammen noe selv.

Denne templaten tar sikte på å gi deg et endelig komplett tall for kostnad på strøm, inkludert nettleie og strømstøtte.

 

Den kopieres bare rett inn i nordpool-integrasjonen.

Resultatet blir da spotprisen (nordpool-prisen) pluss nettleie og trekker fra strømstøtten per time.

 

Templaten tar utgangspunkt i BKK sine satser for nettleie, så dette må justeres om du har andre satster.

Den forutsetter også at du har Workday-integrasjonen. Denne gjør det superlett å vite om det er helligdag eller ikke. (https://www.home-assistant.io/integrations/workday/)

 

Dette er bare kastet sammen, så feil kan forekomme, gi et vink om du finner noen! 🙂

 

{% set el_taxes = 0 %}
{% set workday = states('binary_sensor.workday_sensor') %}
{% set month = now().month %}
{% set hour = now().hour %}

{# January to March - Weekend and holiday tariff #}
{% if workday == 'off' and (month >= 1 and month <= 3) %}
  {% set el_taxes = 0.3558 %}

{# April to December - Weekend and holiday tariff #}
{% elif workday == 'off' and month >= 4 %}
  {% set el_taxes = 0.4393 %}

{# January to March - Day tariff #}
{% elif (month >= 1 and month <= 3) and (hour >= 6 and hour <= 22) %}
  {% set el_taxes = 0.4738 %}

{# January to March - Night tariff #}
{% elif (month >= 1 and month <= 3) and (hour >= 23 or hour <= 5) %}
  {% set el_taxes = 0.3558 %}

{# April to December - Day tariff #}
{% elif (month >= 4) and (hour >= 6 and hour <= 22) %}
  {% set el_taxes = 0.5573 %}

{# April to December - Night tariff #}
{% elif (month >= 4) and (hour >= 23 or hour <= 5) %}
  {% set el_taxes = 0.4393 %}
{% endif %}

{% set subs = (current_price - 0.875) * 0.9 %}
{% set additional_cost = el_taxes - subs %}

{{ additional_cost }}

 

Endret av MagnusO2
Lenke til kommentar
Del på andre sider

Du må vel egentlig bruke to workday sensorer der den ene forteller om morgendagen er en helgedag eller ikke. For slik det er nå vil du få feil priser neste dag (i tomorrow tabellen). Og slik now() blir overstyrt, er det ikke lett å vite hva som er neste dag. Jeg ga opp i min template.

Subs kan i din mal bli negativ når current_price er mindre enn 0,875. Og det er jo feil. Støtten er aldri mindre enn null.

Endret av stigvi
Lenke til kommentar
Del på andre sider

Godt poeng! Det hadde jeg ikke tenkt på...

Dette løser vel at subsidiene kan være negative...?
 

{% if current_price > 0.875 %}
    {% set subs = (current_price - 0.875) * 0.9 %}
    {% set additional_cost = el_taxes - subs %}
{% elif current_price <= 0.875 %}
    {% set additional_cost = el_taxes %}
{% endif %}

 

Men om morgendagen er en helligdag....? Ikke så vanskelig å bestemme det i templaten tror jeg, men finnes det en variabel eller funksjon i nordpool-integrasjonen som kan ta til seg den infoen?

Lenke til kommentar
Del på andre sider

Jeg tror den templaten fungerer som den skal altså. Det virker som den blir evaluert på nytt for hver time, slik at både time på døgnet og helligdag vurderes riktig. Tror dette gir en komplett oversikt over totalkostnaden på strøm…

IMG_3736.jpeg

Lenke til kommentar
Del på andre sider

MagnusO2 skrev (8 timer siden):

Jeg tror den templaten fungerer som den skal altså. Det virker som den blir evaluert på nytt for hver time, slik at både time på døgnet og helligdag vurderes riktig.

Beklager, men det gjør den ikke. Når listen "Tomorrow" fylles inn med priser, så bruker du en workday som sier om dagen i dag er en helgedag. Den sier ikke hva morgendagen er. Men du har rett i at prisene oppdateres. Ved midnatt vil "Tomorrow" bli "Today" og workday vil være rett. Men klokken 14 når "Tomorrow" fylles inn med priser, har en samme problem igjen.

Lenke til kommentar
Del på andre sider

Det har du selvsagt rett i...

Har gjort en nytt forsøk som benytter seg av custom integrasjonen Holidays (https://github.com/bruxy70/Holidays). Denne holder en liste over datoer som er definerte helligdager som jeg sammenligner med.

Forutsetningen her er at nordpoolintegrasjonen bruker datoen til timen den prosesserer når man bruker now(). Har spurt utvikleren om dette, men ikke fått svar...

 

Fortsatt åpen for innspill på dette!! 🙂

 

{# January to March - Weekend and holiday taxes #}
{% if (as_timestamp(now()) | timestamp_custom("%F")) in (state_attr('calendar.holidays','holidays') | list) and (now().month >= 1 and now().month <= 3) %}
  {% set el_taxes = 0.3558 %}
  
{# April to December - Weekend and holiday taxes #}
{% elif (as_timestamp(now()) | timestamp_custom("%F")) in (state_attr('calendar.holidays','holidays') | list) and (now().month >= 4) %}
  {% set el_taxes = 0.4393 %}

{# January to March - Dyatime taxes #}
{% elif (now().month >= 1 and now().month <= 3) and (now().hour >= 6 and now().hour <= 22) %}
  {% set el_taxes = 0.4738 %}

{# January to March - Night taxes #}
{% elif (now().month >= 1 and now().month <= 3) and (now().hour >= 23 or now().hour <= 5) %}
  {% set el_taxes = 0.3558 %}

{# April to December - Day taxes #}
{% elif (now().month >= 4) and (now().hour >= 6 and now().hour <= 22) %}
  {% set el_taxes = 0.5573 %}

{# April to December - Night taxes #}
{% elif (now().month >= 4) and (now().hour >= 23 or now().hour <= 5) %}
  {% set el_taxes = 0.4393 %}
{% endif %}


{% if current_price > 0.875 %}
    {% set subs = (current_price - 0.875) * 0.9 %}
    {% set additional_cost = el_taxes - subs %}
{% elif current_price <= 0.875 %}
    {% set additional_cost = el_taxes %}
{% endif %}


{{ additional_cost }}

 

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.