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

Nordpool sensor for Home Assistant


hellowlol

Anbefalte innlegg

1 time siden, Teryeah skrev:

morgendagens priser

Og morgendagens priser er klare mellom 12:30 og 13:00 når børsen er ferdig med alle kjøp og salg. Forsåvidt det samme som skjer med aksjer. Prisen på en aksje endrer seg ikke utenfor børsens åpningstid og heller ikke hvis det ikke er noen omsetning på den. På Nord pool kjøpes og selges morgendagens kraft, ikke dagens (for den kraften som er relevant for oss)

Endret av stigvi
Lenke til kommentar
Del på andre sider

Her er oppdatert kode med litt flere desimaler på y-aksen og norsk språk.

 

type: 'custom:apexcharts-card'
series:
  - entity: sensor.nordpool_kwh_krsand_nok_4_10_025
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 4
  - entity: sensor.nordpool_kwh_krsand_nok_4_10_025
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 4
    data_generator: |
      return entity.attributes.raw_today.map((p) => {
        return [new Date(p.start), p.value];
      });
  - entity: sensor.nordpool_kwh_krsand_nok_4_10_025
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 4
    data_generator: |
      return entity.attributes.raw_tomorrow.map((p) => {
        return [new Date(p.start), p.value];
      });
y_axis_precision: 4
graph_span: 3d
span:
  start: day
  offset: '-1d'
apex_config:
  chart:
    zoom:
      enabled: true
    toolbar:
      show: true
      tools:
        zoom: true
        zoomin: false
        zoomout: false
        pan: false
        reset: true
    type: area
    height: 300
    locales:
      - name: nb
        options:
          months:
            - Januar
            - Februar
            - Mars
            - April
            - Mai
            - Juni
            - Juli
            - August
            - September
            - Oktober
            - November
            - Desember
          shortMonths:
            - Jan
            - Feb
            - Mar
            - Apr
            - Mai
            - Jun
            - Jul
            - Aug
            - Sep
            - Okt
            - Nov
            - Des
          days:
            - Søndag
            - Mandag
            - Tirsdag
            - Onsdag
            - Torsdag
            - Fredag
            - Lørdag
          shortDays:
            - Sø
            - Ma
            - Ti
            - 'On'
            - To
            - Fr
            - Lø
          toolbar:
            exportToSVG: Last ned SVG
            exportToPNG: Last ned PNG
            exportToCSV: Last ned CSV
            menu: Menu
            selection: Velg
            selectionZoom: 'Zoom: Velg'
            zoomIn: Zoome inn
            zoomOut: Zoome ut
            pan: Skyving
            reset: Start på nytt
    defaultLocale: nb
  stroke:
    show: true
    width: 2
    curve: stepline
  legend:
    show: false
  dataLabels:
    enabled: false
  xaxis:
    type: datetime
    labels:
      datetimeFormatter:
        month: ddd
        day: ddd
  fill:
    type: gradient
    gradient:
      shadeIntensity: 1
      inverseColors: false
      opacityFrom: 0.45
      opacityTo: 0.05
      stops:
        - 20
        - 100
        - 100
        - 100

 

  • Like 3
  • Thanks 2
Lenke til kommentar
Del på andre sider

  • 3 uker senere...

Template støtte ble lagt inn i siste oppdatering.

 

Med dette er det mulig å legge til en tariff. Nettleie, påslag, sertifikater etc.

{% set s = {
  "hourly_fixed_cost": 0.5352,
  "winter_night": 0.265,
  "winter_day": 0.465,
  "summer_day": 0.284,
  "summer_night": 0.246,
  "cert": 0.01
  }
%}
{% if now().month >= 5 and now().month <11 %}
    {% if now().hour >=6 and now().hour <23 %}
        {{s.summer_day+s.hourly_fixed_cost+s.cert}}
    {% else %}
        {{s.night+s.hourly_fixed_cost+s.cert}}
    {% endif %}
{% else %}
    {% if now().hour >=6 and now().hour <23 %}
      {{s.winter_day+s.hourly_fixed_cost+s.cert}}
  {%else%}
      {{s.winter_night+s.hourly_fixed_cost+s.cert}}
   {% endif %}
  
{% endif %}

 

Lenke til kommentar
Del på andre sider

9 timer siden, hellowlol skrev:

Template støtte ble lagt inn i siste oppdatering.

 

Med dette er det mulig å legge til en tariff. Nettleie, påslag, sertifikater etc.

Er det noe dokumentasjon på dette? Hvor skal det legges?

Edit: Kikket litt i koden og fikk et inntrykk av det.

Spørsmål: Kan en legge en entitet i malen som f.eks. en input_number ?

Endret av stigvi
Lenke til kommentar
Del på andre sider

1 time siden, stigvi skrev:

Er det noe dokumentasjon på dette? Hvor skal det legges?

Edit: Kikket litt i koden og fikk et inntrykk av det.

Spørsmål: Kan en legge en entitet i malen som f.eks. en input_number ?

 

Du kan legge til alt som er mulig å legge inn i et template så ja. Template skal legges under additional_costs via yalm eller integrations

 

Jeg kommer til å legge til en guide på readme file senere idag. Ved en temlate sensor og HAN tilgang er det mulig å finne faktisk kostnad ink linje leie etc.

Endret av hellowlol
Lenke til kommentar
Del på andre sider

1 minutt siden, hellowlol skrev:

Template skal legges under additional_costs

Når den blir tilgjengelig da for den versjonen jeg har som ble oppdatert for en uke siden har ikke dette.

Et annet spørsmål: Er det mulig å sette et fast navn på denne sensoren? Det er smått plagsom å måtte ta en søk og erstatt gjennom konfigurasjon, automasjon og skript fordi jeg endrer antall desimaler (som igjen fører til nytt navn)

Ellers må jeg si det var en god ide å komme på dette med tilleggskostnad som en mal. Det blir nok mer og mer aktuelt hvis energiselskapene innførere variabel nettleie 🙂👍
 

Lenke til kommentar
Del på andre sider

3 timer siden, stigvi skrev:

Når den blir tilgjengelig da for den versjonen jeg har som ble oppdatert for en uke siden har ikke dette.

Et annet spørsmål: Er det mulig å sette et fast navn på denne sensoren? Det er smått plagsom å måtte ta en søk og erstatt gjennom konfigurasjon, automasjon og skript fordi jeg endrer antall desimaler (som igjen fører til nytt navn)

Ellers må jeg si det var en god ide å komme på dette med tilleggskostnad som en mal. Det blir nok mer og mer aktuelt hvis energiselskapene innførere variabel nettleie 🙂👍
 

 

 

Mener du navn eller entity_id? Det er uansett mulig å endre begge via webgui. Enig, men selv uten er det bra pga pga kan få korrekt fast pris. Det som mangler er det bare et par automasjoner for å gange opp prisen med kw forbruket sist time. (pga energi leddet til linjeleia)

Endret av hellowlol
Lenke til kommentar
Del på andre sider

18 timer siden, hellowlol skrev:

Template støtte ble lagt inn i siste oppdatering.

 

Med dette er det mulig å legge til en tariff. Nettleie, påslag, sertifikater etc.


{% set s = {
  "hourly_fixed_cost": 0.5352,
  "winter_night": 0.265,
  "winter_day": 0.465,
  "summer_day": 0.284,
  "summer_night": 0.246,
  "cert": 0.01
  }
%}
{% if now().month >= 5 and now().month <11 %}
    {% if now().hour >=6 and now().hour <23 %}
        {{s.summer_day+s.hourly_fixed_cost+s.cert}}
    {% else %}
        {{s.night+s.hourly_fixed_cost+s.cert}}
    {% endif %}
{% else %}
    {% if now().hour >=6 and now().hour <23 %}
      {{s.winter_day+s.hourly_fixed_cost+s.cert}}
  {%else%}
      {{s.winter_night+s.hourly_fixed_cost+s.cert}}
   {% endif %}
  
{% endif %}

 


Hvordan skal en bruke denne malen til å korrigere prisene i raw_today og raw_tomorrow hvis det som i eksempelet ditt er forskjellige priser gjennom døgnet? Slik jeg ser det, blir det en smule komplisert å få til. Timen det skal beregnes for må på et eller annet vis gis til malen slik at en kan erstatte now() med timen det gjelder. En mal pr time blir mye styr. En mal pr prisperiode er overkommelig, men da må en kunne sette tidspunkt når en pris starter og slutter. Vel, det ble kanskje noe å tenke på?

Lenke til kommentar
Del på andre sider

1 time siden, stigvi skrev:


Hvordan skal en bruke denne malen til å korrigere prisene i raw_today og raw_tomorrow hvis det som i eksempelet ditt er forskjellige priser gjennom døgnet? Slik jeg ser det, blir det en smule komplisert å få til. Timen det skal beregnes for må på et eller annet vis gis til malen slik at en kan erstatte now() med timen det gjelder. En mal pr time blir mye styr. En mal pr prisperiode er overkommelig, men da må en kunne sette tidspunkt når en pris starter og slutter. Vel, det ble kanskje noe å tenke på?

Det hadde jeg ikke tenkt på. raw finnes bare pga jeg trengte den til lade roboten min. Poenget med PR-en var å gjøre det mulig å beregne korrekt forbruk, men ut fra alle trådene her og på face ser det ut som folk er glad i graf av strømprisene. Jeg får se hvor mye jeg må patche for å få det til 😂

Lenke til kommentar
Del på andre sider

3 timer siden, hellowlol skrev:

Jeg får se hvor mye jeg må patche for å få det til 😂

Sånn som dette er jo en mulighet?

 

{% set s = {
  "hourly_fixed_cost": 0.5352,
  "winter_night": 0.265,
  "winter_day": 0.465,
  "summer_day": 0.284,
  "summer_night": 0.246,
  "cert": 0.01
  }
%}
{% if now().month >= 5 and now().month <11 %}
    {%set p1 = s.summer_day+s.hourly_fixed_cost+s.cert%}}
    {%set p2 = s.night+s.hourly_fixed_cost+s.cert%}
{% else %}
    {%set p1 = s.winter_day+s.hourly_fixed_cost+s.cert%}
    {%set p2 = s.winter_night+s.hourly_fixed_cost+s.cert%}
{% endif %}
{% set t = [p2,p2,p2,p2,p2,p2,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p2] %}
{{ t }}

 

  • Like 1
Lenke til kommentar
Del på andre sider

1 time siden, stigvi skrev:

Sånn som dette er jo en mulighet?

 





{% set s = {
  "hourly_fixed_cost": 0.5352,
  "winter_night": 0.265,
  "winter_day": 0.465,
  "summer_day": 0.284,
  "summer_night": 0.246,
  "cert": 0.01
  }
%}
{% if now().month >= 5 and now().month <11 %}
    {%set p1 = s.summer_day+s.hourly_fixed_cost+s.cert%}}
    {%set p2 = s.night+s.hourly_fixed_cost+s.cert%}
{% else %}
    {%set p1 = s.winter_day+s.hourly_fixed_cost+s.cert%}
    {%set p2 = s.winter_night+s.hourly_fixed_cost+s.cert%}
{% endif %}
{% set t = [p2,p2,p2,p2,p2,p2,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p1,p2] %}
{{ t }}

 

 

 

Jeg endte opp med price_hour()

 

Edit bruker now() siden den er global uansett.

 

 

 

Så korrekt eksempel etter sist oppdatering skal være:

 

Sist oppdatering skal også endre raw today raw tomorrow, today og tomorrow ihht template som ble lagt inn.

 

{% set s = {
  "hourly_fixed_cost": 0.5352,
  "winter_night": 0.265,
  "winter_day": 0.465,
  "summer_day": 0.284,
  "summer_night": 0.246,
  "cert": 0.01
  }
%}
{% if price_hour().month >= 5 and price_hour().month <11 %}
    {% if price_hour().hour >=6 and price_hour().hour <23 %}
        {{s.summer_day+s.hourly_fixed_cost+s.cert}}
    {% else %}
        {{s.night+s.hourly_fixed_cost+s.cert}}
    {% endif %}
{% else %}
    {% if price_hour().hour >=6 and price_hour().hour <23 %}
      {{s.winter_day+s.hourly_fixed_cost+s.cert}}
  {%else%}
      {{s.winter_night+s.hourly_fixed_cost+s.cert}}
   {% endif %}
  
{% endif %}

 

Endret av hellowlol
Gikk for now
  • Like 1
Lenke til kommentar
Del på andre sider

1 time siden, VikingOy skrev:

Hvordan får du inn sensoren:

 


sensor.nordpool_kwh_krsand_nok_4_10_025

Det eneste jeg får opp er:

 


sensor.nordpool

 

 

Hva mener du? hvordan integrasjonen skal installeres? Det letteste ville være å installere via hacs. Se https://hacs.xyz/docs/installation/prerequisites for hvordan hacs skal installeres.

Lenke til kommentar
Del på andre sider

La inn 'master' og testet litt og det ser bra ut. Min mal er ganske rett fram med en input_number. ( additional_costs: "{{ states('input_number.pris_pr_kwh_kleppenergi')|float / 100 + 0.0083 }}" )

Kurven gjorde som forventet et lite hopp
image.png.d4fee08c9d0b662bdf0f0a17b2f99951.png

  • Like 1
Lenke til kommentar
Del på andre sider

 
Hva mener du? hvordan integrasjonen skal installeres? Det letteste ville være å installere via hacs. Se https://hacs.xyz/docs/installation/prerequisites for hvordan hacs skal installeres.
Jeg har selvsagt installert integrasjonen via HACS. Det jeg mener er at jeg finner ingen sensor som ligner på den som brukes i din automasjon.

Sent from my SM-G935F using Tapatalk

Lenke til kommentar
Del på andre sider

26 minutter siden, VikingOy skrev:

Jeg har selvsagt installert integrasjonen via HACS. Det jeg mener er at jeg finner ingen sensor som ligner på den som brukes i din automasjon.

Sent from my SM-G935F using Tapatalk
 

Jeg har default navn på min. Eneste jeg kan komme på er at du har gitt den ny entity id. Du kan jo sjekke under integrations for å finne navnet på nordpool sensoren.

Lenke til kommentar
Del på andre sider

2 timer siden, hellowlol skrev:

Jeg har default navn på min. Eneste jeg kan komme på er at du har gitt den ny entity id. Du kan jo sjekke under integrations for å finne navnet på nordpool sensoren.

Som jeg skrev - jeg har en (1) entity i min Nordpool Integrasjon og det er en sensor som heter :

sensor.nordpool

Jeg har ikke gjort noe for hverken å navngi den eller endre navnet på den. den dukket opp automatisk når integrasjonen ble installert.

Lenke til kommentar
Del på andre sider

29 minutter siden, VikingOy skrev:

Som jeg skrev - jeg har en (1) entity i min Nordpool Integrasjon og det er en sensor som heter :


sensor.nordpool

Jeg har ikke gjort noe for hverken å navngi den eller endre navnet på den. den dukket opp automatisk når integrasjonen ble installert.

Er den satt opp via yaml eller config flow? Jeg syntes det pussig pga entity_id blir laget automatisk ut i fra settings som brukeren har valgt, men det spiller egentlig ikke noe rolle hva den heter. Så lenge du finner den kan du bruke den til det du ønsker.

Lenke til kommentar
Del på andre sider

33 minutter siden, Evelen skrev:

Noen som vil dele en komplett config/lovelace for denne? :) Graf i dag og i morgen

 

Kan du ikke bruke denne? Den gir riktignok i går, i dag og i morgen, men er enkelt å fjerne en av dagene. Bruker den selv og fungerer kjempebra! :) 

 

Lenke til kommentar
Del på andre sider

1 time siden, LaStrada skrev:

Kan du ikke bruke denne? Den gir riktignok i går, i dag og i morgen, men er enkelt å fjerne en av dagene. Bruker den selv og fungerer kjempebra! :) 

 


Koden for den har blitt oppdatert flere ganger etterhvert som utviklingen på apexcard har gått videre. Sånn ser det ut nå.
Prisene her er inkl nettleie og det er fordi jeg bruker en nordpool sensor som ligger i "master" i git. Antar det ikke går mange dager før @hellowlol slipper en ny versjon 0.0.3 med støtte for å legge inn nettleie.

 


image.png.40d1b6d7a89d3c789304f59ee53ebfe9.png

 

 

type: 'custom:apexcharts-card'
series:
  - entity: sensor.nordpool
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 3
    stroke_width: 2
    opacity: 0.2
  - entity: sensor.nordpool
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 3
    stroke_width: 2
    opacity: 0.2
    data_generator: |
      return entity.attributes.raw_today.map((p) => {
        return [new Date(p.start), p.value];
      });
  - entity: sensor.nordpool
    name: Pris
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 3
    stroke_width: 2
    opacity: 0.2
    data_generator: |
      return entity.attributes.raw_tomorrow.map((p) => {
        return [new Date(p.start), p.value];
      });
y_axis_precision: 3
now:
  show: true
graph_span: 3d
span:
  start: day
  offset: '-1d'
locale: nb
apex_config:
  chart:
    height: 300px
    zoom:
      enabled: true
    toolbar:
      show: true
      tools:
        zoom: true
        zoomin: false
        zoomout: false
        pan: false
        reset: true
  legend:
    show: false
  dataLabels:
    enabled: false
  yaxis:
    min: 0
  xaxis:
    type: datetime
    labels:
      datetimeFormatter:
        month: ddd
        day: ddd
  tooltip:
    fixed:
      enabled: true
      position: bottomLeft



 

  • Like 1
Lenke til kommentar
Del på andre sider

Jeg tillot meg å gjøre noen mindre justeringer - og fikk et resultat jeg likte bedre:

image.png.70a23d87d0c70b5929258d39df65ffcc.png

 

type: 'custom:apexcharts-card'
header:
  show: true
  title: NordPool Prisutvikling
  show_states: true
  colorize_states: true
series:
  - entity: sensor.nordpool
    name: ' '
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 2
    stroke_width: 2
    opacity: 0.2
  - entity: sensor.nordpool
    name: ' '
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 2
    stroke_width: 2
    opacity: 0.2
    data_generator: |
      return entity.attributes.raw_today.map((p) => {
        return [new Date(p.start), p.value];
      });
  - entity: sensor.nordpool
    name: ' '
    type: area
    curve: stepline
    extend_to_end: false
    float_precision: 2
    stroke_width: 2
    opacity: 0.2
    data_generator: |
      return entity.attributes.raw_tomorrow.map((p) => {
        return [new Date(p.start), p.value];
      });
y_axis_precision: 2
now:
  show: true
graph_span: 85h
span:
  start: day
  offset: '-30h'
apex_config:
  chart:
    height: 300px
    zoom:
      enabled: true
    toolbar:
      show: true
      tools:
        zoom: true
        zoomin: false
        zoomout: false
        pan: false
        reset: true
    locales:
      - name: nb
        options:
          shortDays:
            - Søn
            - Man
            - Tir
            - Ons
            - Tors
            - Fre
            - Lør
    defaultLocale: nb
  legend:
    show: false
  dataLabels:
    enabled: false
  yaxis:
    min: 0
  xaxis:
    type: datetime
    labels:
      datetimeFormatter:
        month: ddd
        day: ddd
  tooltip:
    fixed:
      enabled: true
      position: bottomLeft
style: |
  ha-card {
    border: 1px solid green;
    font-size: 10px;
  }   

        
 

  • Like 1
Lenke til kommentar
Del på andre sider

Ser at jeg har valgt en litt annen løsning for grafisk presentasjon:

image.png.39707a2d8ef7dc5ae15ad5e8b9329f00.png

 

Litt mer finmasket for i dag og i morgen. Smak og behag antar jeg. (Droppet å lime inn kode da alle Apex Charts grafene mine benytter nesting av templates. Dermed har jeg ikke all yaml koden for dette kortet på et sted i samme format som over.)

 

Nysgjerrig på hvordan dere benytter prisene mest mulig intelligent til varmestyring. La opp sensor som i to nivå tar hensyn til 1. pris og 2. differanse i prosent fra snittpris dag. Tanken var å kutte forbruk i løpet av de største daglige toppene samt ved svært høy pris. Særlig intelligent er det dog ikke. Kanskje ta hensyn til pris kommende timer og legge opp maksgrenser i tid for den hardeste begrensningen..? Øke temp over normal dersom kommende stor økning? Hvordan får dere mest mulig ut av data tilgjengelig via Nordpool integrasjonen?

Endret av Noen Andre
Lenke til kommentar
Del på andre sider

Enig - jeg har også klødd meg i hodet noen dager for å komme på en enklest mulig algoritme for automatisk å kutte topper av en viss høyde (verdi) vha varmestyring.

Her må vi nok lene oss på noen som enten har tung mattematikk-kompetanse, (eller en som er en kløpper i å finne ting på Google) .

Lenke til kommentar
Del på andre sider

Når det gjelder VVB så styres den av en esp32 med esphome. Den måler temperatur i topp og i bunn og beregner oppvarmingstid. Og så får den de billigste timene fra HA (som kommer fra Nordpool) og slår på varme kun i de timene.

Varme i gulv: Disse står normalt på hele tiden, men blir pris (inkludert nettleie) større enn 115% av dagens snitt samtidig som en er i en av de 6 dyreste timene, så går varme i gulv i eco. Går prisen over 140% så settes gulvvarme i eco uavhengig av tid. Og til slutt, går prisen over 200% så settes varme i gulv helt av.

For panelovner i stue så settes temperatur ned hvis prisen går over 200%. For prisnivå som er 115% og 140% så må det være noen andre betingelser i tillegg før varmen settes ned. Som regel ønsker en å beholde komforttemperatur i stue.

Panelovn i bod og garasje slås av så snart prisen passerer 115%

Edit: i praksis bruker jeg Nordpool sine fremtidige priser kun til å styre VVB. Nå har jeg en hybridbil og den lades så snart den plugges i kontakten. Strøm er billigere enn bensin så det er 1. prioritet å lade den opp med en gang. Byttes den ut i en elbil så blir det nok endret til å kun lade i de billigste timene.

Endret av stigvi
  • 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.