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

Beste lovelace-kort for Tibber Custom


havnegata

Anbefalte innlegg

Det er ikke helt det du etterspør. Prisene er nemlig i fra Nordpool integrasjonen fordi Tibber gir ikke ut prisene i Home Assistant på en måte som gjør de lett anvendelige. Kun via den grafikken som du har.

Så det jeg har er Nordpool integrasjonen og apexcharts-card, begge installert via HACS. Konfig for kortet er her:

 

      - type: custom:apexcharts-card
        series:
          - entity: sensor.nordpool
            group_by:
              duration: 1h
              func: first
            name: Pris
            type: column
            curve: stepline
            extend_to_end: false
            float_precision: 4
            stroke_width: 3
            opacity: 0.2
            color: rgb(255,111,0)
          - entity: sensor.nordpool
            name: Pris
            type: column
            curve: stepline
            extend_to_end: false
            float_precision: 4
            stroke_width: 3
            opacity: 0.2
            color: rgb(2,93,136)
            data_generator: |
              return entity.attributes.raw_today.map((p) => {
                return [new Date(p.start), (new Date() > new Date(p.start)) ? null : p.value];
              });
          - entity: sensor.nordpool
            name: Pris
            type: column
            curve: stepline
            extend_to_end: false
            color: rgb(2,93,136)
            float_precision: 4
            stroke_width: 3
            opacity: 0.2
            data_generator: |
              return entity.attributes.raw_tomorrow.map((p) => {
                return [new Date(p.start), p.value];
              });
        now:
          show: true
        graph_span: 2d
        span:
          start: day
        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
          xaxis:
            type: datetime
            labels:
              datetimeFormatter:
                month: ddd
                day: ddd
          yaxis:
            tickAmount: 8
            forceNiceScale: true
            min: 0
          tooltip:
            fixed:
              enabled: true
              position: bottomLeft

 

  • Like 5
Lenke til kommentar
Del på andre sider

  • 9 måneder senere...

Er denne fortsatt gyldig @stigvi? Har installert Apexcharts, men får en del feilmeldinger. Tips til løsning?

 

Evt - er det mulig å kjøre .py scripts i HA OS? Trenger så vidt jeg skjønner å kjøre create_template.py for å få inn timesprisene.

Endret av Teknor
Lenke til kommentar
Del på andre sider

Teknor skrev (38 minutter siden):

Er denne fortsatt gyldig @stigvi? Har installert Apexcharts, men får en del feilmeldinger. Tips til løsning?

 

Evt - er det mulig å kjøre .py scripts i HA OS? Trenger så vidt jeg skjønner å kjøre create_template.py for å få inn timesprisene.

Apexchart har endret seg litt så helt gyldig er den ikke. I tillegg har jeg endret litt på utseende. Men her er det jeg har nå

 

type: custom:apexcharts-card
series:
  - entity: sensor.nordpool
    name: Pris
    type: area
    curve: stepline
    float_precision: 4
    stroke_width: 1
    opacity: 0.5
    color: rgb(255,111,0)
    data_generator: >
      return entity.attributes.raw_today.map(p => [new Date(p.start), p.value])
      .concat( entity.attributes.raw_tomorrow.map(p => [new Date(p.start),
      p.value]))
now:
  show: true
graph_span: 2d
span:
  start: day
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
  xaxis:
    type: datetime
    labels:
      datetimeFormatter:
        month: ddd
        day: ddd
  yaxis:
    forceNiceScale: false
    min: 0



Du trenger ikke kjøre noe skript for å bruke denne

  • Like 2
Lenke til kommentar
Del på andre sider

Teknor skrev (1 time siden):

Takk @stigvi

 

Trenger jeg kjøre scriptet create_template.py for å få timespriser fra Nordpool? Sliter med å finne ut hvordan jeg kjører .py script i Home Assistant OS.


Fra nordpool dokumentasjonen: "run the create_template script if you want one sensors for each hour."

Jeg kan ikke si noe om du "trenger" det. Det dreier seg om hva du har lyst til eller ikke

Endret av stigvi
Lenke til kommentar
Del på andre sider

Takk for hjelp. Fikk inn kortet nå. 
 

Mangler fortsatt entitet for hver time. Ønsker å bruke disse til å kalkulere gjennomsnittspris for døgnet og identifisere de timene som har pris under gjennomsnittet for døgnet. 

Lenke til kommentar
Del på andre sider

Gjest Teknor skrev (14 minutter siden):

Takk for hjelp. Fikk inn kortet nå. 
 

Mangler fortsatt entitet for hver time. Ønsker å bruke disse til å kalkulere gjennomsnittspris for døgnet og identifisere de timene som har pris under gjennomsnittet for døgnet. 

Prisene finnes som attributter. Der finnes også snittpriser.

image.thumb.png.08c8b7ac6db2726ad33e5f433922656c.png

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

Hei stigvi!

 

Tusen takk for deling av kode, fikk det meste til å virke nå! Eneste er at jeg får N/A øverst på pris nå pr kWh. Noen ide på hva det kan være? Når jeg trykker meg inn på grafen kommer timeprisen opp, så det virker jo som at sensoren virker som den skal?

Lenke til kommentar
Del på andre sider

Gjest ken skrev (2 minutter siden):

Hei stigvi!

 

Tusen takk for deling av kode, fikk det meste til å virke nå! Eneste er at jeg får N/A øverst på pris nå pr kWh. Noen ide på hva det kan være? Når jeg trykker meg inn på grafen kommer timeprisen opp, så det virker jo som at sensoren virker som den skal?

Usikker på hva du mener. Kan du legge ut et bilde av det?

 

Lenke til kommentar
Del på andre sider

Ser jeg har surret litt med kode her. Har klart å inkludere dette øverst i din kode:

 

header:
    show: true
    title: Nordpool OSLO
    show_states: true
    colorize_states: true

 

Kan jo egentlig bare fjerne det, men det hadde jo igrunn vært ganske nice å ha med prisen akkurat nå øverst. 

 

Litt usikker på hvilken verdi "states" har, men den har i alle fall riktig format (NOK/kWh). Mulig verdien er den siste i diagrammet, som akkurat nå er "null" (før priser for morgendagen har kommet).  

Lenke til kommentar
Del på andre sider

Gjest ken skrev (30 minutter siden):

Ser jeg har surret litt med kode her. Har klart å inkludere dette øverst i din kode:

 

header:
    show: true
    title: Nordpool OSLO
    show_states: true
    colorize_states: true

 

Kan jo egentlig bare fjerne det, men det hadde jo igrunn vært ganske nice å ha med prisen akkurat nå øverst. 

 

Litt usikker på hvilken verdi "states" har, men den har i alle fall riktig format (NOK/kWh). Mulig verdien er den siste i diagrammet, som akkurat nå er "null" (før priser for morgendagen har kommet).  

Ja, den er siste verdi i kurven. Vet ikke helt hvordan en skal få dette til å virke, men det er kanskje en løsning på det.

Legg inn show: in_header: before_now

 

series:
  - entity: sensor.nordpool
    show:
      in_header: before_now

 

Endret av stigvi
Lenke til kommentar
Del på andre sider

Ok, den er grei. Tusen takk for svar uansett 🙂

 

Klarte forresten å endre så den viser 24t klokke og ikke am/pm. Synes det er lettere å lese.

 

Prøver også å kvitte meg med de to bokstavene (To = Torsdag) som gjemmer seg bak tiden av og til, men skjønner ikke helt hvordan datetimeFormatter: som du bruker virker. Har forsøkt å finne litt dokumentasjon på det, men har ikke funnet noe om det i apexcharts eller noe annet sted.

 

datetimeFormatter:
        month: ddd
        day: ddd

 

Tar jeg bort en d i day, viser den to siffer i dato for torsdag, tar jeg bort en til viser den kun et siffer i dato for torsdag. Tar jeg bort alle feiler hele koden. Vet du hvordan man kan formatere bort dagen helt så det kun står klokkeslett?

Lenke til kommentar
Del på andre sider

Gjest ken skrev (5 minutter siden):

Ok, den er grei. Tusen takk for svar uansett 🙂

 

Klarte forresten å endre så den viser 24t klokke og ikke am/pm. Synes det er lettere å lese.

 

Prøver også å kvitte meg med de to bokstavene (To = Torsdag) som gjemmer seg bak tiden av og til, men skjønner ikke helt hvordan datetimeFormatter: som du bruker virker. Har forsøkt å finne litt dokumentasjon på det, men har ikke funnet noe om det i apexcharts eller noe annet sted.

 

datetimeFormatter:
        month: ddd
        day: ddd

 

Tar jeg bort en d i day, viser den to siffer i dato for torsdag, tar jeg bort en til viser den kun et siffer i dato for torsdag. Tar jeg bort alle feiler hele koden. Vet du hvordan man kan formatere bort dagen helt så det kun står klokkeslett?

Tror dette er styrt en god del av din nettleser. Du må velge riktig region og format der.

 

 

PS. Du så at jeg endret svaret mitt ovenfor ang pris i tittel?

Lenke til kommentar
Del på andre sider

Hei igjen!

 

En ting jeg la merke til etter midnatt, var at verdiene for i morgen ikke var der og grafen ble fylt ut med siste verdi for i dag. Regner med dette retter seg når morgendagens priser kommer inn, men er det mulig, hver gang ved midnatt, og fylle ut morgendagens priser med 0 frem til de faktiske prisene dukker opp midt på dagen?

 

spacer.png

 

spacer.png

Lenke til kommentar
Del på andre sider

Faktisk endret jeg litt på dette hos meg selv i morrest. Det er ikke testet 100%, må se hva som skjer i ettermiddag når prisene kommer.

 

data_generator: >
      let p = entity.attributes.raw_today.map(p => [new Date(p.start),p.value]);

      if(entity.attributes.raw_tomorrow != null &&
      entity.attributes.raw_tomorrow.length > 0 &&
      entity.attributes.raw_tomorrow[0].value != null)

      {
        p = p.concat( entity.attributes.raw_tomorrow.map(p => [new Date(p.start), p.value]));
      }

      return p;




Edit: En må legge inn 

 

extend_to: now

 

også


 

    extend_to: now
    data_generator: >
      let p = entity.attributes.raw_today.map(p => [new Date(p.start),p.value]);

      if(entity.attributes.raw_tomorrow != null &&
      entity.attributes.raw_tomorrow.length > 0 &&
      entity.attributes.raw_tomorrow[0].value != null)

      {
        p = p.concat( entity.attributes.raw_tomorrow.map(p => [new Date(p.start), p.value]));
      }

      return p;

 

Endret av stigvi
Lenke til kommentar
Del på andre sider

Se det ja. Takk!

 

La det inn jeg også, så får vi se når prisene kommer inn og eventuelt etter midnatt.

 

BTW, jeg har også lagt inn color_threshold så man lett kan se når det er billig og dyrt. Hva som er billig og hva som er dyrt er subjektivt, men 🙂 

 

color_threshold:
      - value: 0
        color: green
      - value: 1.5
        color: orange
      - value: 3
        color: red

Lenke til kommentar
Del på andre sider

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.