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

Nordpool sensor for Home Assistant


hellowlol

Anbefalte innlegg

Jeg har den i configuration.yaml, funka ikke med oppgradering her.

 

4 hours ago, VikingOy said:

Hvordan oppdaterer jeg til 0.0.15 når jeg er er på 0.0.14 og det ikke kommer noen automatisk oppgraderingsmelding?

 

Gå i hacs og reinstaller. Den viser feil versjon etter oppgradering, vet ikke helt hvorfor. 

Lenke til kommentar
Del på andre sider

sbarmen skrev (17 minutter siden):

Gå i hacs og reinstaller. Den viser feil versjon etter oppgradering, vet ikke helt hvorfor. 

Jeg gjorde det. Betyr det at selv om det vises 0.0.14 så har jeg egentlig 0.0.15 ??

Er det noen måte jeg kan sjekke det på?

Lenke til kommentar
Del på andre sider

Jeg fiksa det nå, fikk oppdaterte priser ved å endre til NO1 istedenfor Oslo i configuration.yaml. 

 

  - platform: nordpool
    VAT: true
    currency: "NOK"
    low_price_cutoff: 0.95
    region: "NO1"
    precision: 6
    price_type: kWh
    friendly_name: "Nordpool med Elvia"

 

Denne endringen er nok også grunnen til at mange må slette integrasjonen og legge den til på nytt. 

 

Se mer info her: https://github.com/custom-components/nordpool/pull/413 

 

Synes dette var meget dårlig dokumentert....

Lenke til kommentar
Del på andre sider

sbarmen skrev (20 minutter siden):

Jeg fiksa det nå, fikk oppdaterte priser ved å endre til NO1 istedenfor Oslo i configuration.yaml. 

 

Jeg skjønner ikke hvorfor du må ha noe i configuration.yaml  i det hele tatt? Alle disse settingene ble jeg spurt om under installasjon (i GUI) og svarte da bl.a. NO1 og alt fungerer.

Lenke til kommentar
Del på andre sider

  • 3 uker senere...
sbarmen skrev (På 16.10.2024 den 11.58):

Fordi jeg bruker masse spesielle settinger for å legge til moms, nettleie osv. Det er mye enklere i configuration.yaml.

 

Mulighet å skrive en kjapp How-to hvordan sette opp oppsettet du har med nettleie ovs priser?

Lenke til kommentar
Del på andre sider

Jeg setter opp Nordpool i GUI, og så bruker jeg denne templaten for å kalkulere reell pris. Det fungerer veldig bra hos meg…

 

{% set taxes = {
    "jan_mar_night": 0.3786,
    "jan_mar_day": 0.5025,
    "apr_dec_night": 0.4652,
    "apr_dec_day": 0.5925,
    "holiday_jan_mar": 0.3786,
    "holiday_apr_dec": 0.4652
} %}

{# Determine if today is a holiday #}
{% set today = (as_timestamp(now()) | timestamp_custom("%F")) %}
{% set holidays = state_attr('calendar.holidays', 'holidays') | list %}
{% set is_holiday = today in holidays %}

{# Determine if today is a weekend (Saturday=5, Sunday=6) #}
{% set weekday = now().weekday() %}
{% set is_weekend = weekday >= 5 %}  {# 5=Saturday, 6=Sunday #}

{# Combine holiday and weekend checks #}
{% set is_holiday_or_weekend = is_holiday or is_weekend %}

{# Determine the current season #}
{% set season = "jan_mar" if now().month <= 3 else "apr_dec" %}

{# Determine the time of day #}
{% set time_of_day = "day" if 6 <= now().hour <= 22 else "night" %}

{# Select the appropriate tax rate #}
{% if is_holiday_or_weekend %}
    {% set el_taxes = taxes["holiday_" ~ season] %}
{% else %}
    {% set el_taxes = taxes[season ~ "_" ~ time_of_day] %}
{% endif %}

{# Calculate the subsidies #}
{% set subsidy_rate = 0.9 if now().month in [1, 2, 3, 10, 11, 12] else 0.8 %}
{% if current_price > 0.70 %}
    {% set subs = (current_price - 0.70) * subsidy_rate %}
    {% set additional_cost = el_taxes - subs %}
{% else %}
    {% set additional_cost = el_taxes %}
{% endif %}

{{ additional_cost | round(4) }}

 

 

Lenke til kommentar
Del på andre sider

Jeg har også gjort det samme, men er så vanskelig å justere. Da må du slette og sette opp på nytt. For ikke lenge siden endre bl.a. Elvia sine priser og da er det lettere å gå i configuration.yaml synes jeg.

Lenke til kommentar
Del på andre sider

magnuso skrev (20 minutter siden):

Jeg setter opp Nordpool i GUI, og så bruker jeg denne templaten for å kalkulere reell pris. Det fungerer veldig bra hos meg…

 

{% set taxes = {
    "jan_mar_night": 0.3786,
    "jan_mar_day": 0.5025,
    "apr_dec_night": 0.4652,
    "apr_dec_day": 0.5925,
    "holiday_jan_mar": 0.3786,
    "holiday_apr_dec": 0.4652
} %}

{# Determine if today is a holiday #}
{% set today = (as_timestamp(now()) | timestamp_custom("%F")) %}
{% set holidays = state_attr('calendar.holidays', 'holidays') | list %}
{% set is_holiday = today in holidays %}

{# Determine if today is a weekend (Saturday=5, Sunday=6) #}
{% set weekday = now().weekday() %}
{% set is_weekend = weekday >= 5 %}  {# 5=Saturday, 6=Sunday #}

{# Combine holiday and weekend checks #}
{% set is_holiday_or_weekend = is_holiday or is_weekend %}

{# Determine the current season #}
{% set season = "jan_mar" if now().month <= 3 else "apr_dec" %}

{# Determine the time of day #}
{% set time_of_day = "day" if 6 <= now().hour <= 22 else "night" %}

{# Select the appropriate tax rate #}
{% if is_holiday_or_weekend %}
    {% set el_taxes = taxes["holiday_" ~ season] %}
{% else %}
    {% set el_taxes = taxes[season ~ "_" ~ time_of_day] %}
{% endif %}

{# Calculate the subsidies #}
{% set subsidy_rate = 0.9 if now().month in [1, 2, 3, 10, 11, 12] else 0.8 %}
{% if current_price > 0.70 %}
    {% set subs = (current_price - 0.70) * subsidy_rate %}
    {% set additional_cost = el_taxes - subs %}
{% else %}
    {% set additional_cost = el_taxes %}
{% endif %}

{{ additional_cost | round(4) }}

 

 


Er støtten forskjellig i de 12 månedene av året?

Lenke til kommentar
Del på andre sider

Nei, det er det selvsagt ikke! 🙂
Var det slik før? 

 

Oppdatert:

{% set taxes = {
    "jan_mar_night": 0.3786,
    "jan_mar_day": 0.5025,
    "apr_dec_night": 0.4652,
    "apr_dec_day": 0.5925,
    "holiday_jan_mar": 0.3786,
    "holiday_apr_dec": 0.4652
} %}

{# Determine if today is a holiday #}
{% set today = (as_timestamp(now()) | timestamp_custom("%F")) %}
{% set holidays = state_attr('calendar.holidays', 'holidays') | list %}
{% set is_holiday = today in holidays %}

{# Determine if today is a weekend (Saturday=5, Sunday=6) #}
{% set weekday = now().weekday() %}
{% set is_weekend = weekday >= 5 %}  {# 5=Saturday, 6=Sunday #}

{# Combine holiday and weekend checks #}
{% set is_holiday_or_weekend = is_holiday or is_weekend %}

{# Determine the current season #}
{% set season = "jan_mar" if now().month <= 3 else "apr_dec" %}

{# Determine the time of day #}
{% set time_of_day = "day" if 6 <= now().hour <= 22 else "night" %}

{# Select the appropriate tax rate #}
{% if is_holiday_or_weekend %}
    {% set el_taxes = taxes["holiday_" ~ season] %}
{% else %}
    {% set el_taxes = taxes[season ~ "_" ~ time_of_day] %}
{% endif %}

{# Set the subsidy threshold and rate #}
{% set subsidy_threshold = 73 %}
{% set subsidy_rate = 0.9 %}

{# Calculate subsidy only if the current price exceeds the threshold #}
{% if current_price > subsidy_threshold %}
    {% set subs = (current_price - subsidy_threshold) * subsidy_rate %}
    {% set additional_cost = el_taxes - subs %}
{% else %}
    {% set additional_cost = el_taxes %}
{% endif %}

{{ additional_cost | round(4) }}

 

Lenke til kommentar
Del på andre sider

On 06/11/2024 at 10:05, Olep said:

 

Mulighet å skrive en kjapp How-to hvordan sette opp oppsettet du har med nettleie ovs priser?

 

Jeg har satt opp min sensor med følgende config i configuration.yaml

 

  - platform: nordpool
    VAT: true
    currency: "NOK"
    low_price_cutoff: 0.95
    region: "NO1"
    precision: 6
    price_type: kWh
    price_in_cents: true
    friendly_name: "Nordpool med Elvia"
    additional_costs: >-
      {% set s = {
        "day": 0.5250,
        "night": 0.4500,
        "hourly_fixed_cost": 0.0295
      } %}
      {# Strømstøtte på 90% på priser over 91,25 øre (ink. mva) trekkes ifra #}
      {% set pb = max((current_price - 91.25) * 0.9, 0.0) %}

      {# Er det arbeidsdag? #}
      {% if is_state('binary_sensor.arbeidsdag_sensor', 'on') %}
        {% if now().hour >= 6 and now().hour < 22 %} {# dagtid mellom 6 og 22 #}
          {{ (s.day + s.hourly_fixed_cost - pb) | float }}
        {% else %} {# ellers er det natt #}
          {{ (s.night + s.hourly_fixed_cost - pb) | float }}
        {% endif %}
      {% else %} {# ellers er det helg eller fridag (helligdag) #}
        {{ (s.night + s.hourly_fixed_cost - pb) | float }}
      {% endif %}

 

Dette er for Elvia med Tibber. Sjekk dine lokale avtaler. Tidligere hadde Elvia forskjellig priser på vinter og sommer, det er tatt bort. Så da er det kun helligdager og helg, pluss dag/natt. For å ha kontroll på om det er arbeidsdag eller ikke bruker jeg integrasjonen workday. Denne lager sensoren binary_sensor.arbeidsdag_sensor som er på når det er arbeidsdag. Det eneste som ikke er 100% med denne løsningen er at morgendagens priser kan bli feil dersom i dag er en arbeidsdag og i morgen er helligdag. Dette skal jeg se om jeg finner en løsning på. Workday har også mulighet til å lage sensor for om i morgen er en arbeidsdag. Om noen har en god løsning på "i morgen" bare si ifra!

  • Like 2
Lenke til kommentar
Del på andre sider

7 hours ago, sbarmen said:

Om noen har en god løsning på "i morgen" bare si ifra!

 

Har nevnt dette tidligere for en god stund siden, men jeg syntes alt ble enklere den dagen jeg lot prisene fra Nordpool-integrasjonen kun representere spot-prisen, og håndtere nettleie og strømstøtte i andre entities.

 

Med Pyscript var det da trivielt å bruke formatet til Nordpool sine attributes der jeg beregner nettleie og strømstøtte i sine egne raw_today og raw_tomorrow attributes. Og legger alt sammen til en siste entity med netto strømpris selvfølgelig.

Lenke til kommentar
Del på andre sider

sbarmen skrev (På 9.11.2024 den 11.29):

 

Jeg har satt opp min sensor med følgende config i configuration.yaml

 

  - platform: nordpool
    VAT: true
    currency: "NOK"
    low_price_cutoff: 0.95
    region: "NO1"
    precision: 6
    price_type: kWh
    price_in_cents: true
    friendly_name: "Nordpool med Elvia"
    additional_costs: >-
      {% set s = {
        "day": 0.5250,
        "night": 0.4500,
        "hourly_fixed_cost": 0.0295
      } %}
      {# Strømstøtte på 90% på priser over 91,25 øre (ink. mva) trekkes ifra #}
      {% set pb = max((current_price - 91.25) * 0.9, 0.0) %}

      {# Er det arbeidsdag? #}
      {% if is_state('binary_sensor.arbeidsdag_sensor', 'on') %}
        {% if now().hour >= 6 and now().hour < 22 %} {# dagtid mellom 6 og 22 #}
          {{ (s.day + s.hourly_fixed_cost - pb) | float }}
        {% else %} {# ellers er det natt #}
          {{ (s.night + s.hourly_fixed_cost - pb) | float }}
        {% endif %}
      {% else %} {# ellers er det helg eller fridag (helligdag) #}
        {{ (s.night + s.hourly_fixed_cost - pb) | float }}
      {% endif %}

 

Dette er for Elvia med Tibber. Sjekk dine lokale avtaler. Tidligere hadde Elvia forskjellig priser på vinter og sommer, det er tatt bort. Så da er det kun helligdager og helg, pluss dag/natt. For å ha kontroll på om det er arbeidsdag eller ikke bruker jeg integrasjonen workday. Denne lager sensoren binary_sensor.arbeidsdag_sensor som er på når det er arbeidsdag. Det eneste som ikke er 100% med denne løsningen er at morgendagens priser kan bli feil dersom i dag er en arbeidsdag og i morgen er helligdag. Dette skal jeg se om jeg finner en løsning på. Workday har også mulighet til å lage sensor for om i morgen er en arbeidsdag. Om noen har en god løsning på "i morgen" bare si ifra!

 

Takk. Fikk ikke det helt til på første forsøk, men hvis det andre ruten som er nevnt er bedre alternativer tror jeg jeg heller stanger i veggen med den litt 🫣

RVM skrev (På 9.11.2024 den 18.38):

 

Har nevnt dette tidligere for en god stund siden, men jeg syntes alt ble enklere den dagen jeg lot prisene fra Nordpool-integrasjonen kun representere spot-prisen, og håndtere nettleie og strømstøtte i andre entities.

 

Med Pyscript var det da trivielt å bruke formatet til Nordpool sine attributes der jeg beregner nettleie og strømstøtte i sine egne raw_today og raw_tomorrow attributes. Og legger alt sammen til en siste entity med netto strømpris selvfølgelig.

 

Forsøkte å lete etter innlegget hvor du nevner hvordan du gjør det. Men kan bare finne referanse til hvordan du beregnet månedtlig spot priser i hele denne tråden.

 

Lyst til å dele hvordan du gjør det?

Lenke til kommentar
Del på andre sider

8 hours ago, Kim123 said:

Du kan sette opp workday sensor med en dag frem i tid 

Det er jeg klar over, og har satt opp denne. Skal se om jeg kan få til en løsning med templating av en ny sensor, blant annet ved hjelp av to workday sensorer for i dag og i morgen. 

Lenke til kommentar
Del på andre sider

On 10/11/2024 at 22:13, Olep said:

 

Forsøkte å lete etter innlegget hvor du nevner hvordan du gjør det. Men kan bare finne referanse til hvordan du beregnet månedtlig spot priser i hele denne tråden.

 

Lyst til å dele hvordan du gjør det?

 

Klipper og limer hovedessensen av det her. Nå er jeg bare en enkel søppeltømmer, så koden er litt grumsete, men egentlig nokså rett fram å forstå tror jeg.

 

Steg 1, beregne nettleie:

 

def calculate_grid_tariff():
    now = datetime.now(tz=tz)

    pyscript.electricity_grid_tariff = PEAK_RATE if is_peak(now) else OFFPEAK_RATE

    pyscript.electricity_grid_tariff.raw_today = sensor.nordpool_spot.raw_today.copy()
    pyscript.electricity_grid_tariff.raw_tomorrow = sensor.nordpool_spot.raw_tomorrow.copy()

    for rt in pyscript.electricity_grid_tariff.raw_today:
        rt['grid_tariff'] = PEAK_RATE if is_peak(rt['start']) else OFFPEAK_RATE

    for rt in pyscript.electricity_grid_tariff.raw_tomorrow:
        rt['grid_tariff'] = PEAK_RATE if is_peak(rt['start']) else OFFPEAK_RATE

    
def is_peak(t):
    is_holiday = t.date() in NOR_HOLIDAYS
    is_weekend = t.isoweekday() >= 6
    is_night = t.hour <= 5 or t.hour >= 22

    if is_holiday or is_weekend or is_night:
        return False
    else:
        return True

 

Steg 2, strømstøtte:

 

def calculate_subsidy():
    now = datetime.now(tz=tz)

    spot = float(sensor.nordpool_spot)
    pyscript.electricity_subsidy = get_subsidy(spot)

    pyscript.electricity_subsidy.raw_today = sensor.nordpool_spot.raw_today.copy()
    pyscript.electricity_subsidy.raw_tomorrow = sensor.nordpool_spot.raw_tomorrow.copy()
    
    for rt in pyscript.electricity_subsidy.raw_today:
        rt['subsidy'] = get_subsidy(rt['value'])

    for rt in pyscript.electricity_subsidy.raw_tomorrow:
        rt['subsidy'] = get_subsidy(rt['value'])


def get_subsidy(spot_price):
    subsidy = max((spot_price - SUBSIDY_THRESHOLD)*SUBSIDY_LEVEL, 0)
    return round(subsidy, 4)

 

Steg 3, netto strømpris:

 

@state_trigger("sensor.nordpool_spot")
def calculate_net_price():

    electricity_grid_tariff.calculate_grid_tariff()
    electricity_subsidy.calculate_subsidy()

    spot = float(sensor.nordpool_spot)
    grid_tariff = float(pyscript.electricity_grid_tariff)
    subsidy = float(pyscript.electricity_subsidy)

    pyscript.electricity_net_price = round(spot + grid_tariff - subsidy, 4)

    pyscript.electricity_net_price.raw_today = sensor.nordpool_spot.raw_today.copy()
    pyscript.electricity_net_price.raw_tomorrow = sensor.nordpool_spot.raw_tomorrow.copy()

    for i, rt in enumerate(pyscript.electricity_net_price.raw_today):
        rt['net_price'] = round(
                            sensor.nordpool_spot.raw_today[i]['value'] + \
                            pyscript.electricity_grid_tariff.raw_today[i]['grid_tariff'] - \
                            pyscript.electricity_subsidy.raw_today[i]['subsidy']
                            , 4)

    for i, rt in enumerate(pyscript.electricity_net_price.raw_tomorrow):
        rt['net_price'] = round(
                            sensor.nordpool_spot.raw_tomorrow[i]['value'] + \
                            pyscript.electricity_grid_tariff.raw_tomorrow[i]['grid_tariff'] - \
                            pyscript.electricity_subsidy.raw_tomorrow[i]['subsidy']
                            , 4)

    pyscript.electricity_net_price.net_today = [rt['net_price'] for rt in pyscript.electricity_net_price.raw_today 
                                                if type(rt['net_price']) is float]

    pyscript.electricity_net_price.net_tomorrow = [rt['net_price'] for rt in pyscript.electricity_net_price.raw_tomorrow 
                                                if type(rt['net_price']) is float]

 

Lenke til kommentar
Del på andre sider

Ok nå har jeg lekt ganske mye. Laget meg en template sensor som bruker Nordpool input, og så har jeg satt opp en gjeng med hjelpere for å ha data om nettpriser for dag/natt, moms, strømselskap osv osv. Alt kan nå konfigureres via GUI, eneste som blir litt massivt er selve template sensoren men den setter man jo opp bare en gang. 

 

Synes det ble ganske bra! Nå skal jeg bare se over litt tid om det fungerer stabilt. 

 

 

 

  • Like 1
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.