Gå til innhold
  • Bli medlem

Nordpool sensor for Home Assistant


hellowlol

Anbefalte innlegg

Boulder skrev (6 minutter siden):

Jeg har Nordpool-sensoren satt opp via Hacs, og alt fungerer supert.

MEN, jeg klarer ikke finne konfigurasjonen, og husker ikke hvordan jeg satte den opp. Siden det ikke er spor etter den i configuration.yaml antar jeg det må være via webui, men hvor i all verden er det?

Du må se på selve integrasjonen (innstillinger/enheter og tjenester). Men det greieste er vel å slette den og heller opprette den på nytt ved å legge inn i configuration.yaml

Det er beskrevet her: https://github.com/custom-components/nordpool
 

Endret av stigvi
Lenke til kommentar
Del på andre sider

stigvi skrev (2 timer siden):

Du må se på selve integrasjonen (innstillinger/enheter og tjenester). Men det greieste er vel å slette den og heller opprette den på nytt ved å legge inn i configuration.yaml

Det er beskrevet her: https://github.com/custom-components/nordpool
 


Takk, burde jeg hatt et valg her?

På andre integrasjoner står det Configure på selve kortet for integrasjonen (ikke i menyen)

 

392DC3B0-FB8F-4C39-8BA0-118C3082FB75.png

Lenke til kommentar
Del på andre sider

Boulder skrev (8 timer siden):

Takk, burde jeg hatt et valg her?

Hvis Nordpool integrasjonen var laget for UI konfigurering så hadde du hatt noe der. Men det er den tydeligvis ikke. Når en henter integrasjoner i fra HACS så er det ofte så som så med kvalitet / brukervennlighet. Som nevnt: Slett den og heller legg inn i configuration.yaml

Endret av stigvi
Lenke til kommentar
Del på andre sider

Hei

 

Jeg trenger litt hjelp med additional costs.

Har søkt litt rundt, kopiert litt kode og kommet frem til dette, som baserer seg på Elvia og min strøm leverandør.

 

I configuration.yaml : 

 

 additional_costs: '{% set s = {
    "grid_day": 0.4310,
    "grid_night_weekend": 0.3685,
    "grid_yearly_cost": 2400,
    "psub_monthly_cost": 49,
    "psub_kwh_cost": 0.6950
}
%}
{% if now().weekday() in (0,1,2,3,4) %}
    {% if now().hour >=6 and now().hour <22 %}
        {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_day+s.psub_kwh_cost)+fixed_cost|float }}
    {% else %}
        {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_night_weekend+s.psub_kwh_cost)+fixed_cost|float }}
    {% endif %}
{% endif %}'

 

 

image.thumb.png.58d5c06a78b8dd0c3456fa3fe8e4f134.png

 

Det ser ut om koden etter "else" ikke blir kjørt, så får ikke noe verdi i helga.

 

 

Endret av JAH
Lenke til kommentar
Del på andre sider

8 hours ago, Boulder said:

Noen som vet hva "cert" verdien i tariff-eksempelet er?

Med tanke på prisen som ligger inne i eksempelet vil jeg tro det er elsertifikat. Tibber tar f.eks. maks 1 øre/kWh for elsertifikatene. Følgende er lånt fra Tibbers nettside:
 

"Elsertifikat

Elsertifikater er en støtteordning for strøm produsert fra fornybare energikilder. Strømkundene finansierer ordningen over strømregningen gjennom at kraftleverandørene legger elsertifikatkostnaden inn i strømprisen. Hensikten med ordningen er å gjøre det mer lønnsomt for dem som produserer strøm å investere i fornybar produksjon. Elsertifkat er et lovpålagt påslag for alle strømkunder."

Lenke til kommentar
Del på andre sider

1 hour ago, ThoStaKa said:

Med tanke på prisen som ligger inne i eksempelet vil jeg tro det er elsertifikat. Tibber tar f.eks. maks 1 øre/kWh for elsertifikatene. Følgende er lånt fra Tibbers nettside:
 

"Elsertifikat

Elsertifikater er en støtteordning for strøm produsert fra fornybare energikilder. Strømkundene finansierer ordningen over strømregningen gjennom at kraftleverandørene legger elsertifikatkostnaden inn i strømprisen. Hensikten med ordningen er å gjøre det mer lønnsomt for dem som produserer strøm å investere i fornybar produksjon. Elsertifkat er et lovpålagt påslag for alle strømkunder."

Akkurat som om strømproduksjon ikke er lønnsomt uansett med dagens strømpriser.

Lenke til kommentar
Del på andre sider

JAH skrev (På 9.9.2022 den 18.47):

Hei

 

Jeg trenger litt hjelp med additional costs.

Har søkt litt rundt, kopiert litt kode og kommet frem til dette, som baserer seg på Elvia og min strøm leverandør.

 

I configuration.yaml : 

 

 additional_costs: '{% set s = {
    "grid_day": 0.4310,
    "grid_night_weekend": 0.3685,
    "grid_yearly_cost": 2400,
    "psub_monthly_cost": 49,
    "psub_kwh_cost": 0.6950
}
%}
{% if now().weekday() in (0,1,2,3,4) %}
    {% if now().hour >=6 and now().hour <22 %}
        {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_day+s.psub_kwh_cost)+fixed_cost|float }}
    {% else %}
        {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_night_weekend+s.psub_kwh_cost)+fixed_cost|float }}
    {% endif %}
{% endif %}'

 

 

image.thumb.png.58d5c06a78b8dd0c3456fa3fe8e4f134.png

 

Det ser ut om koden etter "else" ikke blir kjørt, så får ikke noe verdi i helga.

 

 

 

Jeg har lagt inn en ekstra else linje for å få med verdier for helg. 

Linjene dine tar kun for seg ukedager og kveld.

 

    additional_costs: '{% set s = {
      "energiledd_dag": 0.4735,
      "energiledd_natt_helg": 0.3935,
      "nettleie5kw": 0.486,
      "energifondet": 0.0125,
      "spotpris": 0.01
    }
    %}
    {% if now().weekday() in (0,1,2,3,4) %}
      {% if now().hour >=6 and now().hour <23 %}
      {{s.energiledd_dag+s.nettleie5kw+s.energifondet+s.spotpris|float}}
    {% else %}
      {{s.energiledd_natt_helg+s.nettleie5kw+s.energifondet+s.spotpris|float}}
    {% endif %}
    {% else %}
      {{s.energiledd_natt_helg+s.nettleie5kw+s.energifondet+s.spotpris|float}}
  {% endif %}'

 

Lenke til kommentar
Del på andre sider

Jeg løste det med å samle følgende i en linje:

{% if now().weekday() in (0,1,2,3,4) %}
    {% if now().hour >=6 and now().hour <22 %}

 

 

 

    additional_costs: '{% set s = {
    "grid_day": 0.4310,
    "grid_night_weekend": 0.3685,
    "grid_yearly_cost": 2400,
    "psub_monthly_cost": 49,
    "psub_kwh_cost": 0.0695
}
%}
{% if now().weekday() in (0,1,2,3,4) and now().hour >=6 and now().hour <22 %}
    {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_day+s.psub_kwh_cost)+fixed_cost|float }}
{% else %}
    {% set fixed_cost = (((s.grid_yearly_cost+(12*s.psub_monthly_cost))/365)/24)|float %}{{(s.grid_night_weekend+s.psub_kwh_cost)+fixed_cost|float }}
{% endif %}'

 

Lenke til kommentar
Del på andre sider

Noen Apex-eksperter der ute som forstår hvorfor grafen bugger hver dag ved å ikke vise kveldens timepriser, og hvorfor forbruket blir tegnet opp som noe annet enn null fremover i tid? (Det er riktig med 0 mellom 09-20, men ikke ca 0,25 resten av kvelden, dette har jo ikke skjedd enda...)

 

Visualiseringen funket fint tidligere, men har nå oppført seg slik noen dager.

graf.PNG.5bad3274d22c6ae438633156e4009cfd.PNG

 

type: custom:apexcharts-card
apex_config:
  chart:
    stacked: true
graph_span: 1d
update_interval: 15s
span:
  end: day
header:
  show: true
  colorize_states: true
  standard_format: true
  title: Forbruk og pris per time i dag
now:
  show: true
yaxis:
  - id: forbruk
    decimals: 1
    min: 0
    max: ~3
  - id: pris
    decimals: 2
    min: 0
    max: ~1.5
    opposite: true
series:
  - entity: sensor.kwh_current_hour
    name: Forbruk inneværende time
    type: line
    curve: stepline
    stroke_width: 3
    yaxis_id: forbruk
    show:
      legend_value: false
    group_by:
      func: max
      duration: 1h
  - entity: sensor.nordpool_kwh_trheim
    type: column
    color: 00B3F4
    yaxis_id: pris
    name: Pris inneværende time
    show:
      extremas: true
      legend_value: false
    data_generator: |
      return entity.attributes.raw_today.map((start, index) => {
        return [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]];
      });

 

Lenke til kommentar
Del på andre sider

Boulder skrev (12 minutter siden):

Noen Apex-eksperter der ute som forstår hvorfor grafen bugger hver dag ved å ikke vise kveldens timepriser, og hvorfor forbruket blir tegnet opp som noe annet enn null fremover i tid? (Det er riktig med 0 mellom 09-20, men ikke ca 0,25 resten av kvelden, dette har jo ikke skjedd enda...)

 

Visualiseringen funket fint tidligere, men har nå oppført seg slik noen dager.

graf.PNG.5bad3274d22c6ae438633156e4009cfd.PNG

 

type: custom:apexcharts-card
apex_config:
  chart:
    stacked: true
graph_span: 1d
update_interval: 15s
span:
  end: day
header:
  show: true
  colorize_states: true
  standard_format: true
  title: Forbruk og pris per time i dag
now:
  show: true
yaxis:
  - id: forbruk
    decimals: 1
    min: 0
    max: ~3
  - id: pris
    decimals: 2
    min: 0
    max: ~1.5
    opposite: true
series:
  - entity: sensor.kwh_current_hour
    name: Forbruk inneværende time
    type: line
    curve: stepline
    stroke_width: 3
    yaxis_id: forbruk
    show:
      legend_value: false
    group_by:
      func: max
      duration: 1h
  - entity: sensor.nordpool_kwh_trheim
    type: column
    color: 00B3F4
    yaxis_id: pris
    name: Pris inneværende time
    show:
      extremas: true
      legend_value: false
    data_generator: |
      return entity.attributes.raw_today.map((start, index) => {
        return [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]];
      });

 

Hvordan ser dataene som er grunnlag for kurven ut ?

Lenke til kommentar
Del på andre sider

stigvi skrev (1 time siden):

Hvordan ser dataene som er grunnlag for kurven ut ?

 

Slik (hvis det er dette du mener):

 

kwh.thumb.PNG.acab8907f43c7871a8e06516de9ef89b.PNGkwh2.thumb.PNG.c4e743d744e8bddcc4b4b3922491f2e8.PNG

 

 

 

 

Prisene (blå søyler) dukker opp en etter en når man treffer aktuell time:

graf2.PNG.1920556933789a3133e84c0153212d53.PNG

 

 

Og her ligger det av en eller annen grunn et forbruk frem i tid igjen, klokken er nå 22, men her ligger et datapunkt i fremtiden:

 

datapunkt.PNG.aacec096ed72c6492b7a314b25a9dff1.PNG

 

 

 

 

 

 

 

 

 

Lenke til kommentar
Del på andre sider

Jeg prøver å finne en måte å beregne snittsprisen for inneværende måned, men kommer til kort. Er det noen som har regnet ut dette eller har en annen finurlig løsning? Jeg bruker HA og har prøvd med Utility, Statistics og fandens oldemor, men ingen av disse gjør som jeg ønsker innenfor gjeldende måned.

 

Målet er å unngå storforbruk når strømstøtten går over månedsgjennomsnitt. Her er utregningen jeg har knotet meg til selv:

 

{% set cost = states('sensor.monthly_cost_hjemme')  | int %}
{% set timer_hele_dager = (now().strftime("%d") | int - 1) * 24 %}
{% set timer_i_dag = now().strftime("%H") | int %}
{{ cost / (timer_hele_dager + timer_i_dag)}}

 Dette gir 3,18 mens f.eks. Aftenbladet oppgir 4,68. Tibberprisen er inkl. MVA, så det mangler tydeligvis noe her.

Endret av egronnes
  • Like 1
Lenke til kommentar
Del på andre sider

egronnes skrev (2 minutter siden):

Jeg prøver å finne en måte å beregne snittsprisen for inneværende måned, men kommer til kort. Er det noen som har regnet ut dette eller har en annen finurlig løsning?

 

Jeg brukte Pyscript til det. I korte trekk har jeg en sensor der jeg lagrer prisene fra raw_today i attributtene hver gang raw_today oppdateres, og så beregner jeg snittet fra alle timene så langt i måneden. Tenker man må finne en løsning som beholder eventuelle mellomlagrede data etter en restart, og da er Pyscript veldig praktisk pga. state.persist.

 

Kunne sikkert også brukt aggregateWindow i InfluxDB hvis man har det satt opp.

Lenke til kommentar
Del på andre sider

On 24/08/2022 at 18:30, thoralex said:

Etter litt om og men fikk jeg lagt inn strømforbruk også, kjekt å ha pris og forbruk i samme graf.

 

Hvordan laget du en sensor for strømforbruket? Prøvde å bruke tibber-entiteten, men det funket ikke.

Lenke til kommentar
Del på andre sider

egronnes skrev (3 timer siden):

Jeg prøver å finne en måte å beregne snittsprisen for inneværende måned, men kommer til kort. Er det noen som har regnet ut dette eller har en annen finurlig løsning? Jeg bruker HA og har prøvd med Utility, Statistics og fandens oldemor, men ingen av disse gjør som jeg ønsker innenfor gjeldende måned.

Dette gir 3,18 mens f.eks. Aftenbladet oppgir 4,68. Tibberprisen er inkl. MVA, så det mangler tydeligvis noe her.

Ikke helt i mål med min løsning men denne gir en snitt på ca 4,83

Da er nordpool sensoren lagt inn som input sensor i utility meter og avkrysset for delta values og monthly reset

+ denne koden: 

- platform: template
  sensors:
    stromstotte1:
      friendly_name: "stromstotte1"
      value_template: >-       
        {% set antall_timer = now().day * 24 %}
        {% set timer_dag = 24 - now().hour %}
        {% set sum_timer = antall_timer - timer_dag %} 
        {% set sum_timer2 = sum_timer + 1 %} 
        {{  states('sensor.nordpool_snitt_utility') | float  / sum_timer2 | float }}

 

  • Like 2
Lenke til kommentar
Del på andre sider

egronnes skrev (5 timer siden):

Det går langt ut over mine evner. Er det noe du kan dele?

 

Pyscript:

 

@state_trigger("sensor.nordpool_kwh_krsand_nok_3_095_025")    
def calculate_monthly_average_price():
           
    date = sensor.nordpool_kwh_krsand_nok_3_095_025.raw_today[0]['start'].strftime('%Y-%m-%d')
    pyscript.electricity_monthly_average_price.stored_values[date] = [n['value'] for n in sensor.nordpool_kwh_krsand_nok_3_095_025.raw_today]
    
    avg_num, avg_den = 0, 0

    for k,v in pyscript.electricity_monthly_average_price.stored_values.items():
        avg_num += sum(v)
        avg_den += len(v)

    pyscript.electricity_monthly_average_price = round(avg_num / avg_den, 3)
    
@time_trigger("cron(@monthly)")
def reset_monthly_average_price():
    pyscript.electricity_monthly_average_price.stored_values = {}

 

  • Like 2
Lenke til kommentar
Del på andre sider

RVM skrev (18 timer siden):

 

Pyscript:

 

@state_trigger("sensor.nordpool_kwh_krsand_nok_3_095_025")    
def calculate_monthly_average_price():
           
    date = sensor.nordpool_kwh_krsand_nok_3_095_025.raw_today[0]['start'].strftime('%Y-%m-%d')
    pyscript.electricity_monthly_average_price.stored_values[date] = [n['value'] for n in sensor.nordpool_kwh_krsand_nok_3_095_025.raw_today]
    
    avg_num, avg_den = 0, 0

    for k,v in pyscript.electricity_monthly_average_price.stored_values.items():
        avg_num += sum(v)
        avg_den += len(v)

    pyscript.electricity_monthly_average_price = round(avg_num / avg_den, 3)
    
@time_trigger("cron(@monthly)")
def reset_monthly_average_price():
    pyscript.electricity_monthly_average_price.stored_values = {}

 

Takk, RVM!! Jeg måtte endre cron-triggeren fra

@monthly

til

0 0 0 1 * *

på grunn av feil i loggen. 

 

MEN! Den trigger ikke på endringer fra NordPool. Må denne trigges på noe annet vis? Jeg er som sagt ingen ekspert på pyscript eller python.

Men den trigger ikke på endring fra NordPool. Må den trigges manuelt på noe vis?

expression

expression

Lenke til kommentar
Del på andre sider

egronnes skrev (7 minutter siden):

Men den trigger ikke på endring fra NordPool. Må den trigges manuelt på noe vis?xpression

expression

Den skal trigge hver gang entityen i @state_trigger har en ny state, du har sikkert en annen Nordpool sensor entity enn meg? Oppdater i så fall sensoren inni funksjonen også med din Nordpool-sensor.

 

Og husk å legg til state.persist('pyscript.electricity_monthly_average_price') øverst i fila. Hvis den pyscript-entityen ikke er definert, må den defineres første gang.

Endret av RVM
Presisering
Lenke til kommentar
Del på andre sider

Enkelt spørsmål, har strømprisen oppgitt i øre. Har satt antall desimalar til 0, men ser ut til at den returnerar ein float verdi for strømprisen og HA automatisk gir den en desimal i dashbordet. 

 

Ein enkel måte å bli kvitt detta på? Kanskje returnere pris som int dersom det ikkje er valgt med desimalar?

Lenke til kommentar
Del på andre sider

  • 2 uker senere...

 

Sorry for being en pyscript noob, men jeg sliter med å få denne til å fungere.. Jeg kopierte den rått, la inn state.persist'en du nevnte, korrigerte sensor.nordpool-navnet, og endte da opp med scriptet /srv/home-assistant/config/pyscripts/electricity_monthly_average_price.py :

 

state.persist('pyscript.electricity_monthly_average_price')

@state_trigger("sensor.nordpool_kwh_krsand_nok_3_10_025")
def calculate_monthly_average_price():

    date = sensor.nordpool_kwh_krsand_nok_3_10_025.raw_today[0]['start'].strftime('%Y-%m-%d')
    pyscript.electricity_monthly_average_price.stored_values[date] = [n['value'] for n in sensor.nordpool_kwh_krsand_nok_3_10_025.raw_today]

    avg_num, avg_den = 0, 0

    for k,v in pyscript.electricity_monthly_average_price.stored_values.items():
        avg_num += sum(v)
        avg_den += len(v)

    pyscript.electricity_monthly_average_price = round(avg_num / avg_den, 3)

@time_trigger("cron(0 0 0 1 * *)")
def reset_monthly_average_price():
    pyscript.electricity_monthly_average_price.stored_values = {}

 

men når jeg trigger det, feiler det med python NameError. Noen ide om hva jeg kan mangle her ? Kanskje det mangler en "state.set('pyscript.electricity...')" eller noe slikt ?

 

Oct 07 14:27:01 podnix podman-hass-start[3251478]: 2022-10-07 14:27:01.008 ERROR (MainThread) [custom_components.pyscript.file.electricity_monthly_average_price.calculate_monthly_average_price] Exception in <file.electricity_monthly_average_price.calculate_monthly_average
_price> line 11:
Oct 07 14:27:01 podnix podman-hass-start[3251478]:         pyscript.electricity_monthly_average_price.stored_values[date] = [n['value'] for n in sensor.nordpool_kwh_krsand_nok_3_10_025.raw_today]
Oct 07 14:27:01 podnix podman-hass-start[3251478]:         ^
Oct 07 14:27:01 podnix podman-hass-start[3251478]: NameError: name 'pyscript.electricity_monthly_average_price' is not defined
Oct 07 14:27:01 podnix conmon[3251546]:         ^
Oct 07 14:27:01 podnix conmon[3251546]: NameError: name 'pyscript.electricity_monthly_average_price' is not defined

 

Endret av janfrode
Lenke til kommentar
Del på andre sider

janfrode skrev (13 minutter siden):

 

Sorry for being en pyscript noob, men jeg sliter med å få denne til å fungere.. Jeg kopierte den rått, la inn state.persist'en du nevnte, korrigerte sensor.nordpool-navnet

 

 

Ifølge feilmeldingen eksisterer ikke pyscript.electricity_monthly_average_price, så du glemte kanskje å definere den første gang før state.persist?

 

Prøv å endre begynnelsen av scriptet til:

pyscript.electricity_monthly_average_price = 0.0
pyscript.electricity_monthly_average_price.stored_values = {}
state.persist('pyscript.electricity_monthly_average_price')

@state_trigger("sensor.nordpool_kwh_krsand_nok_3_10_025")
def calculate_monthly_average_price():

 

...og så lagre fila. Deretter fjerner du de to første linjene, slik at det ser slik ut før du lagrer igjen:

 

state.persist('pyscript.electricity_monthly_average_price')

@state_trigger("sensor.nordpool_kwh_krsand_nok_3_10_025")
def calculate_monthly_average_price():

 

Endret av RVM
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...