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

Gratis åpent API for å få times-strømpris for de forskjellige sonene i norge


Anbefalte innlegg

Bare gå til https://norway-power.ffail.win/?zone=NO1&date=2020-02-19 for å få den dagens priser. Prisene blir publisert kl 14 dagen før.

 

 

Sonene er fra NO1 --> NO5: https://www.nordpoolgroup.com/the-power-market/Bidding-areas/

(Er vanskelig å finne ut akuratt hvilken zone du er i hvis du er i grenseland, men til info så er i alle fall Haugesund og omegn NO2)

 

Denne er basert på åpne data fra EU (entsoe.eu) og ikke nordpool sitt mobil app API, så mindre sjanse for at det forsvinner hvis nordpool finner ut hva folk gjør med mobil api-et deres...

 

Dette kan brukes av hvem som helst, jeg ber bare om at dere ikke spør mer en 1 gang om dagen (prisene endrer seg ikke, så ingen poeng i å gjøre flere kall uansett)

 

Tjenesten er basert på dette innlegget av ArnieO.

 

Hvis du ønsker å kjøre denne på egen hånd ligger koden her: github.com/karl-gustav/power_price

Endret av funny0frank
Added "Gratis" to headline
  • Like 6
  • Thanks 2
Lenke til kommentar
Del på andre sider

  • 2 uker senere...
On 03/03/2020 at 23:37, Stian79 said:

Ser det er en del som har laget litt sånt.

Hva er det som finnes ferdig som kan brukes i python?

Roter med en pi.

Kommer veldig ann på hva du mener med "ferdig" :)


Du kan jo enkelt gjøre http spørringer fra python.

  • Like 1
Lenke til kommentar
Del på andre sider

  • 1 år senere...
  • 4 uker senere...

Hei, jeg skulle gjerne ha benyttet meg av dette. Jeg har akkurat satt opp varmestyrings-systemene igjen etter at de har ligget ubrukt et par år - motivert av de økte strømprisene. Sist jeg gjorde dette programmerte jeg alt i Lua men har siden da blitt mye flinkere i python kombinert med at alt av Lua er glemt, så tenker å programmere i hvertfall delvis i python denne gangen. Men uansett hvilket språk så stopper det litt opp når det kommer til å hente ned data fra nettet.

@funny0frank hvordan bør jeg gå frem for å hente ned denne informasjonen fra siden din? Å få koden til å skifte dato hver dag og bare laste ned én gang i døgnet, det fikser jeg, men jeg er litt usikker på hvordan jeg skriver selve koden for å hente ned dataene? Bør jeg skrive en kode som går til nettsiden og lagrer det som står der eller er det mer hensitsmessig å laste ned noe av koden du postet på github og kjøre den i domoticz? I såfall hvilken del av koden?

Og takk for at du delte dette - det hadde vært kult om jeg kunne benyttet meg av dette for å styre oppvarming i disse tider da timesprisene er så forskjellige fra dag til dag og uke til uke! (ja jeg vet man kan bytte til Tibber og få hjelp, men jeg liker å være uavhengig)

Lenke til kommentar
Del på andre sider

Hei, jeg har brukt APIet (takk!) til å lage et AppDaemon-script som henter inn data og lager en sensor av det i Home Assistant. Sikkert mye teit kode, men:

 

i apps.yaml:

spotpris:
  module: spotpris
  class: Spotpris
  sensor: "sensor.spotpris_nok"
  zone: "NO3"
  timezone: "Europe/Oslo"
  multiplier: 1.25
  adder: 0.01
  sensor_attributes:
      state_class: measurement
      device_class: monetary
      unit_of_measurement: "NOK/kWh"

 

spotpris.py:

import requests
from datetime import datetime
from datetime import timedelta
import zoneinfo
import hassapi as hass

"""

Fetch spot price data and expose as a sensor

Uses funny0frank's REST API from ~https://www.hjemmeautomasjon.no/forums/topic/6096-gratis-%C3%A5pent-api-for-%C3%A5-f%C3%A5-times-str%C3%B8mpris-for-de-forskjellige-sonene-i-norge/

Agruments:
     - zone: string Which electricity zone to fetch price from
     - multiplier: float To apply sales tex etc., value is multiplied with this
     - adder: float Added to value after multiplication, i.e. "påslag"
     - tz: string Timezone e.g. "Europe/Oslo"
     - sensor: string Name of generated sensor
     - sensor_attributes: dict Attributes of generated sensor, e.g.
           state_class: measurement
           device_class: monetary
           unit_of_measurement: "NOK/kWh"
"""

class Spotpris(hass.Hass):
    def initialize(self):
        self.zone = self.args["zone"]
        self.multiplier = self.args["multiplier"]
        self.adder = self.args["adder"]
        self.tz = zoneinfo.ZoneInfo(self.args["timezone"])
        self.sensor = self.args["sensor"]
        self.attributes=self.args["sensor_attributes"]
        self.price_info = {}
        self.price_info_date = ''

        now = datetime.now(self.tz) + timedelta(seconds=5)
        self.run_every(self.updateState, now, 60)

    def updateState(self, foo, kwargs=None):
        today = datetime.now(self.tz).date().isoformat()

        if (not self.price_info_date == today):
            self.fetch_price_info(today)

        now = datetime.now(self.tz).strftime("%G-%m-%dT%H:00:00+01:00")
        price = self.price_info[now]["NOK_per_kWh"]*self.multiplier+self.adder

        self.set_state(self.sensor, state=price, attributes=self.attributes)

    def fetch_price_info(self, today):
        response = requests.get(f"https://norway-power.ffail.win/?zone={self.zone}&date={today}")
        self.price_info = response.json()
        self.log(f"fetched new price info: {self.price_info}", level="INFO") 
        self.price_info_date = today

 

Det tilfredsstiller "bare hent en gang i døgnet" siden den gjør on-demand oppslag, det minuttet det begynner på en ny dag slår den opp, og da er det vel garantert at de datane finnes også. Det er veldig utestet, jeg hacket det sammen på et par timer her nettopp, men ser ut til å kanskje funke? Jeg har f.eks. ikke kjørt den i et døgn for å se at den faktisk bytter dato ennå... Den genererte sensoren kan så brukes som kilde for home assistant sin "Bruk ei oppføring med gjeldande pris" i Konfigurasjon -> Energi -> Straumnett i home assistant for å gi utregning av effektiv kostnad.

 

Vet ikke helt rett måte å beregne kostnad på, her har jeg jo bare tatt * 1.25 (for moms) og lagt på 1 øre (påslag).

 

Tror jeg bare kan anbefale denne metoden for folk som allerede har satt opp AppDaemon... Det tok meg mye lengre tid enn å lage det over.

 

@AMelbye, der ser du forresten hvordan man henter inn dataene i python. (=

Lenke til kommentar
Del på andre sider

  • 2 uker senere...

Hei folkens! hjemmeautomasjon har sluttet å sende meg mail av en eller annen grunn så har ikke fått med meg at dere har skrevet her.

Grunnen til at jeg gikk inn for å sjekke er at noen kaller API-et 16.000 ganger til dagen... Hvis ikke dette tar slutt så må jeg legge på API nøker på dette API-et. 

Lenke til kommentar
Del på andre sider

uffda!

Det er jo ikke sikkert det er en registrert bruker - jeg kom over denne tråden på google og registerte meg deretter på forumet

Og jeg har dessverre ikke kommet noe videre - rakk akkurat å ta en titt på koden til @alge før jeg klarte å pådra meg hjernerystelse på en skitur og har vært satt ut av spill siden da...

Om du må gjøre dette litt mer lukket - er det mulig å få en nøkkel tilsendt på PM? 😇

Lenke til kommentar
Del på andre sider

 

3 minutes ago, AMelbye said:

uffda!

Det er jo ikke sikkert det er en registrert bruker - jeg kom over denne tråden på google og registerte meg deretter på forumet

Og jeg har dessverre ikke kommet noe videre - rakk akkurat å ta en titt på koden til @alge før jeg klarte å pådra meg hjernerystelse på en skitur og har vært satt ut av spill siden da...

Om du må gjøre dette litt mer lukket - er det mulig å få en nøkkel tilsendt på PM? 😇

Neida, den er fortsatt gratis og tilgjengelig for alle, jeg må bare opprette en mail som jeg gir ut i "du mangler API-key" feilmeldingene og så får du en key når du kontakter meg der. (du kan seff få key i PM, men på generell basis så tenkte jeg å gjøre det slik)

Endret av funny0frank
  • Thanks 1
Lenke til kommentar
Del på andre sider

funny0frank skrev (36 minutter siden):

Hei folkens! hjemmeautomasjon har sluttet å sende meg mail av en eller annen grunn så har ikke fått med meg at dere har skrevet her.

Grunnen til at jeg gikk inn for å sjekke er at noen kaller API-et 16.000 ganger til dagen... Hvis ikke dette tar slutt så må jeg legge på API nøker på dette API-et. 

 

Huffsann! Jeg sjekket loggene mine og den har sagt "fetched new price info" 38 ganger, så jeg tror ikke de 16000 gangene kommer fra meg. (Tipper mine forespørsler er logget som å være fra 2a04:981:3300:... hvis du har logger). Tar gjerne imot en API-nøkkel hvis du går for den løsningen, forstår deg godt!

Lenke til kommentar
Del på andre sider

4 hours ago, Alexander Frøyseth said:

@funny0frank takk for at du tilbyr dette! Men har du stengt api'et? Får feilmelding om å vente til kl 14 uansett hvilken dato som brukes nå

 

Edit:

Og der fungerte det igjen 😊

Hehe, driver å fikser på det slik at jeg ikke blir stengt ute av API-et jeg bruker igjen, den har ikke cache på spørringer den ikke finner dataer for (dvs når folk spør for langt frem i tid). Det var ikke noe jeg trodde var nødvendig med nå får jeg drøye antall spørringer som spør for langt frem i tid 🤦‍♂️
Nå har jeg lagt på sjekk hos meg som blokerer spørringer for neste dag før kl 14:00, istedenfor å spør EU om de dataene...

 

 

On 19/12/2021 at 00:12, erikolaulvestad said:

@funny0frank Er grunndata frå Entso-e oppgitt i NOK, eller har du kalkulert med valutakurs for EUR?

Sent fra min SM-G991B via Tapatalk
 

@erikolaulvestad Hei! Dataene er i EUR og så bruker jeg API til Norges bank for å regne fra EUR-->NOK (en svakhet i koden nå er at på gamle data så brukes forsatt dagens kurs) https://github.com/karl-gustav/power_price/blob/master/main.go#L19

Endret av funny0frank
  • Thanks 1
Lenke til kommentar
Del på andre sider

 

On 05/01/2022 at 15:36, alge said:

Huffsann! Jeg sjekket loggene mine og den har sagt "fetched new price info" 38 ganger, så jeg tror ikke de 16000 gangene kommer fra meg. (Tipper mine forespørsler er logget som å være fra 2a04:981:3300:... hvis du har logger). Tar gjerne imot en API-nøkkel hvis du går for den løsningen, forstår deg godt!

 

 

@alge Har du IP 79.160.6.188?

Lenke til kommentar
Del på andre sider

funny0frank skrev (50 minutter siden):

Hehe, driver å fikser på det slik at jeg ikke blir stengt ute av API-et jeg bruker igjen, den har ikke cache på spørringer den ikke finner dataer for (dvs når folk spør for langt frem i tid). Det var ikke noe jeg trodde var nødvendig med nå får jeg drøye antall spørringer som spør for langt frem i tid 🤦‍♂️
Nå har jeg lagt på sjekk hos meg som blokerer spørringer for neste dag før kl 14:00, istedenfor å spør EU om de dataene...

 

 

@erikolaulvestad Hei! Dataene er i EUR og så bruker jeg API til Norges bank for å regne fra EUR-->NOK (en svakhet i koden nå er at på gamle data så brukes forsatt dagens kurs) https://github.com/karl-gustav/power_price/blob/master/main.go#L19

Jeg regnet nesten med det ja :D Igjen takk for at du hoster denne tjenesten. Hvis du skal legge til en API nøkkel for oss som bruker dette, hadde du orka å gitt et headsup her hvis man må sende en epost for å få nøkkel? Så slipper automatikken min å feile unødvendig :) 

 

Lenke til kommentar
Del på andre sider

Da kan dere slenge en mail til [email protected] for å få API nøkkel (legges inn i url `?key=<insert key here>`)

Kommer ikke til å stenge på en dag og to slik at folk får tid til å lese denne meldingen. (pluss at det står en forklaring i feilmeldingen)

 

Poke: @alge @Alexander Frøyseth @AMelbye @Vuevu

Endret av funny0frank
Endret mail tll [email protected]
  • Thanks 2
Lenke til kommentar
Del på andre sider

3 hours ago, ZoRaC said:


Som moderator kan jeg søke etter IP på forumet - det er ikke registrert noen brukere eller innlegg fra den IPen, så personen er trolig ikke her på forumet. 

Wow, det var service 😄 Problemet blir løst så snart jeg skrur på API-nøkkel uansett 😉 Tenkte bare at jeg skulle gi beskjed om at eieren av den IP-en blir auto-bokert selv om han har API-nøkkel pga enorme mengder requester...

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.