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

Nordpool API - Mulig å laste ned morgensdagens strømpriser uten å være nordpool-kunde?


Anbefalte innlegg

Lurer på om det er noen som har kontroll på Nordpool sitt API.

Jeg ønsker å laste ned prisene direkte, ikke via Home Assistant eller tilsvarende systemer. Jeg er dermed ute etter HTTP REQUEST informasjonen for å laste ned det jeg trenger.

 

Bruker jeg https://www.nordpoolgroup.com/api/marketdata/page/23?currency=NOK så får jeg alle prisene som jeg trenger. Men jeg skulle gjerne vite hvordan jeg filtrerer slik at jeg kun sitter igjen med området jeg tilhører. Jeg sliter med at min logikk går i stå fordi svaret fra nordpool blir for langt. Håpet er at en filtrert versjon skal kunne fungere.

Som dere ser er det allerede spesifisert "currency=NOK" og det fungerer. Men har ikke fått til å spesifisere mer.

 

Jeg forsøker også å lese litt på https://github.com/custom-components/nordpool uten å bli klok på hvordan requestene der sendes.

 

PS! Spørsmålet er ikke om hva Tibber kan og ikke 😉

Endret av bergen77
Lenke til kommentar
Del på andre sider

23 minutes ago, stigvi said:

Tipper nordpool komponenten du har sett på hos github bruker en eller annen nordpool sak hos pypi.org

Den bruker nok akkurat samme adresse om jeg leser koden rett, det refereres til side 23 for norske priser blandt annet. Utfordringen er at det blir så svært, 4700 linjer!
Skulle gjerne filtrert bort områdene jeg ikke skal bruke iallefall.

Lenke til kommentar
Del på andre sider

Har ikkje Nordpool restriksjoner på datascraping?
Få deg heller api nøkkel her https://m-transparency.entsoe.eu/transmission-domain/r2/dayAheadPrices/show?name=&defaultValue=false&viewType=GRAPH&areaType=BZN&atch=false&dateTime.dateTime=08.11.2021+00:00|CET|DAY&dateTime.timezone=CET_CEST&dateTime.timezone_input=CET+(UTC+1)+/+CEST+(UTC+2)&biddingZone.values=CTY|10YNO-0--------C!BZN|10YNO-1--------2&resolution.values=PT60M


Sent fra min SM-G991B via Tapatalk

  • Like 1
Lenke til kommentar
Del på andre sider

Nordpool har ikke restriksjoner på akkurat denne så den kan i utgangspunktet fungere. Men jeg sliter med at systemet mitt ikke takler alle de 4700 linjene i svaret som kommer fra Nordpool. Ser man nederst i svaret kan det se ut som at man ikke kan endre på mere enn dato, valuta og side (land).

Entsoe har merkelig oppsett og mangler norsk valuta. 

Lenke til kommentar
Del på andre sider

Nordpool har ikke restriksjoner på akkurat denne så den kan i utgangspunktet fungere. Men jeg sliter med at systemet mitt ikke takler alle de 4700 linjene i svaret som kommer fra Nordpool. Ser man nederst i svaret kan det se ut som at man ikke kan endre på mere enn dato, valuta og side (land).
Entsoe har merkelig oppsett og mangler norsk valuta. 
Vel, Nordpool har eksplisitt forbud mot "Automatic extraction". Tilgang til Nordpool api er relativt kostbart. Dette burde sjølvsagt vore gratis for privat bruk.

Entso format er XML, det er vel kurant?
Valuta er EUR, men mange andre valuta er lista opp i Entso-e codelist, men eg har ikkje sett på om det er mulig å bruke i query parameter.






  • Like 1
Lenke til kommentar
Del på andre sider

25 minutes ago, erikolaulvestad said:

Vel, Nordpool har eksplisitt forbud mot "Automatic extraction". Tilgang til Nordpool api er relativt kostbart. Dette burde sjølvsagt vore gratis for privat bruk.
Entso format er XML, det er vel kurant?
Valuta er EUR, men mange andre valuta er lista opp i Entso-e codelist, men eg har ikkje sett på om det er mulig å bruke i query parameter.

Tror ikke vi skal bruke tid på å diskutere det forbudet. De aller fleste requestene til Nordpool må autentiseres, med noen få unntak. Jeg regner med det er en grunn til at disse sidene er unntatt. Jeg synest det er temmelig idiotisk å tvinge frem disse strømmodellene uten å samtidig legge til rette for at sluttkundene skal kunne automatisere sitt forbruk. Jeg har forsøkt Entso før og det var rotete. Spørsmålet nå var om det var mulig å redusere nordpool sitt svar, men virker som filtrene som kan brukes er oppgitt helt på slutten av responsen.

Lenke til kommentar
Del på andre sider

  • 2 år senere...
  • 4 uker senere...
  • 9 måneder senere...
OlavT skrev (3 timer siden):

Noen andre som har hatt problemer med ENTSO-E i løpet av fredag / helgen / i dag?


Det kom en ny versjon av integrasjonen til Home Assistant for et par dager siden pga endringer i xml data. Hvordan henter du ned fra entso-e?

Lenke til kommentar
Del på andre sider

14 hours ago, stigvi said:


Det kom en ny versjon av integrasjonen til Home Assistant for et par dager siden pga endringer i xml data. Hvordan henter du ned fra entso-e?

 

De hadde oppdatert XML-formatet. Litt irriterende at de endrer slikt uten å innføre versjonering.

Lenke til kommentar
Del på andre sider

Eg kom over denne fiksen til Node-Red 🙂

https://github.com/zinen/node-red-contrib-nordpool-api-plus/issues/29
 

[{"id":"2765952914cdad1a","type":"function","z":"239899b1c9538b9e","name":"today","func":"msg.url = \"https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?market=DayAhead&deliveryArea=NO5&currency=NOK&date=\" + \n    dateAndTime.format(new Date(), \"YYYY-MM-DD\");\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[{"var":"dateAndTime","module":"date-and-time"}],"x":530,"y":1150,"wires":[["cabf2f816c7ba579"]]},{"id":"cabf2f816c7ba579","type":"http request","z":"239899b1c9538b9e","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":710,"y":1150,"wires":[["2b5aec917fc92b34"]]},{"id":"8116ad949393a27b","type":"inject","z":"239899b1c9538b9e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":380,"y":1150,"wires":[["2765952914cdad1a"]]},{"id":"51b305ddabab82db","type":"function","z":"239899b1c9538b9e","name":"tomorrow","func":"let d = new Date();\nd.setDate(d.getDate() + 1)\n\nmsg.url = \"https://dataportal-api.nordpoolgroup.com/api/DayAheadPrices?market=DayAhead&deliveryArea=NO5&currency=NOK&date=\" + \n    dateAndTime.format(d, \"YYYY-MM-DD\");\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[{"var":"dateAndTime","module":"date-and-time"}],"x":540,"y":1200,"wires":[["96e3baeb7dcb0c7f"]]},{"id":"96e3baeb7dcb0c7f","type":"http request","z":"239899b1c9538b9e","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":710,"y":1200,"wires":[["862b6d93e5d131b1"]]},{"id":"e9e72d5edfe91a01","type":"inject","z":"239899b1c9538b9e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":380,"y":1200,"wires":[["51b305ddabab82db"]]},{"id":"2b5aec917fc92b34","type":"debug","z":"239899b1c9538b9e","name":"today","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":870,"y":1150,"wires":[]},{"id":"862b6d93e5d131b1","type":"debug","z":"239899b1c9538b9e","name":"tomorrow","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":1200,"wires":[]}]

 

Så bruker eg denne til å ta ut pris denne timen

 

[{"id":"78efa3595b1c52e7","type":"function","z":"239899b1c9538b9e","name":"price_now","func":"var entries = msg.payload.multiAreaEntries;\n\n// Get current time in UTC\nvar now = new Date();\n\n// Function to convert UTC date strings to local time Date objects\nfunction utcToLocal(dateStr) {\n    var utcDate = new Date(dateStr);\n    // Get the UTC time value (milliseconds since epoch)\n    var utcTime = utcDate.getTime();\n    // Create a new Date object in local time\n    return new Date(utcTime + (now.getTimezoneOffset() * 60000));\n}\n\nfor (var i = 0; i < entries.length; i++) {\n    var entry = entries[i];\n    var deliveryStart = utcToLocal(entry.deliveryStart);\n    var deliveryEnd = utcToLocal(entry.deliveryEnd);\n\n    if (now >= deliveryStart && now < deliveryEnd) {\n        var price = entry.entryPerArea.NO5;\n        msg.payload = price;\n        return msg;\n    }\n}\n\n// If no matching entry is found, return an error message or null\nmsg.payload = \"Price not found for the current hour.\";\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":580,"y":450,"wires":[["e457769b593e9b52","3074ef57be5821f9"]]}]

 

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.