ArnieO Skrevet 19. desember 2018 Skrevet 19. desember 2018 (endret) Legger dette i egen tråd i stedet for inne i andre tråder, så blir det lettere å finne for de som leter. Spot strømprisene i Norden for neste døgn (den såkalte Day-ahead prisen) besluttes hver formiddag for kommende døgn, time for time - og publiseres så vidt jeg vet klokka 12 norsk tid. Jeg har funnet tre steder de kan leses fra: Tibber, men kun om du er kunde hos de. Nord Pool publiserer Day-ahead priser for kommende døgn hver dag ca klokka 12: https://www.nordpoolgroup.com/Market-data1/Dayahead/Area-Prices/ALL1/Hourly/?view=table De er imidlertid veldig tydelige på at det ikke er tillatt å lage noen autmatisk nedlasting derfra. Man kan kjøpe en avtale med de, men det er dyrt. Entsoe: Prisene publiseres imidlertid samtidig på en Europeisk nettside hvor det er gratis både å registrere seg og få Web API token, som trengs for å bruke deres API.https://transparency.entsoe.eu/ Dette er løsningen jeg bruker, og det fungerer helt fint. Det er en beskrivelse av APIet på nettsiden der et sted. Jeg henter prisene fra Entsoe hver kveld for neste døgn. De aktuelle linjene i mitt LUA-script ser slik ut: year = os.date("%Y", tomorrow); month = os.date("%m", tomorrow); day = os.date("%d", tomorrow); urlApi = "'https://transparency.entsoe.eu/api?documentType=A44&in_Domain=10YNO-2--------T&out_Domain=10YNO-2--------T&periodStart="..year..month..day.."0000&periodEnd="..year..month..day.."2300&securityToken=SETT-INN-DIN-TOKEN-HER'" Den svarer med en XML streng som du så må hente ut dataene fra. Scriptet leser så dagens valutakurs fra Norges bank (åpent API, trenger ikke token), som brukes for å regne om til spotprisen i kroner. Her er min LUA-kode for funksjon som henter dagens EUR kurs: function eurRate() local url = "https://data.norges-bank.no/api/data/EXR/M.EUR.NOK.SP?lastNObservations=1" local XML_string_eur=XML_Capture("curl -s "..url,1) local valid = string.find(XML_string_eur, "<message:Test>false</message:Test>") if valid == nil then print ("Bad XML status read - info NOT updated [in eurRate()]") else local p = string.find(XML_string_eur,"DECIMALS=") + 10 -- read position of NoOfDecimals local dec = string.sub(XML_string_eur,p,p) p = string.find(XML_string_eur,"OBS_VALUE=") + 11 -- read position of eurRate return tonumber(string.sub(XML_string_eur,p,p+1+dec)) end end Husk at dette er ikke hele strømprisen. Nettleie og andre tillegg kommer i tillegg. Se faktura fra din leverandør om du vil regne helt om til full estimert kWh-pris. Endret 19. desember 2018 av ArnieO Fjerne token fra koden... 1 1 Siter
bjornepappa Skrevet 19. desember 2018 Skrevet 19. desember 2018 Bra! For dei av oss som har HomeSeer så har jo @Moskus utvikla det fantastiske TibberSeer ? Siter
Moskus Skrevet 19. desember 2018 Skrevet 19. desember 2018 2 timer siden, bjornepappa skrev: Bra! For dei av oss som har HomeSeer så har jo @Moskus utvikla det fantastiske TibberSeer ? Joda, og den er selvfølgelig konge. Men men som @ArnieO sier: 2 timer siden, ArnieO skrev: Tibber, men kun om du er kunde hos de. Men så er APIen dems så bra at det omtrent er verdt å være kunde bare for det. 3 Siter
ArnieO Skrevet 19. desember 2018 Forfatter Skrevet 19. desember 2018 4 minutes ago, Moskus said: Men så er APIen dems så bra at det omtrent er verdt å være kunde bare for det. Tibber er en spennende bedrift i et høyaktuelt segment! Siden jeg ikke er kunde der og ikke bruker HomeSeer har jeg ikke sett på TibberSeer, så det er fint å få den påminnelsen i tråden her! Siter
Gizmo Skrevet 19. desember 2018 Skrevet 19. desember 2018 4 timer siden, ArnieO skrev: De aktuelle linjene i mitt LUA-script ser slik ut: Takk for tips til @ArnieO. Har sett på Entsoe og skaffet meg token. Siden jeg kjører Homeseer så kan jeg vel ikke bruke LUA direkte? Men det er jo ikke umulig å lage tilsvarende med VB.net. Er ingen racer på denslags, men får vurderer å bruke litt juletid på dette. Siter
bjornepappa Skrevet 19. desember 2018 Skrevet 19. desember 2018 17 minutter siden, Gizmo skrev: Takk for tips til @ArnieO. Har sett på Entsoe og skaffet meg token. Siden jeg kjører Homeseer så kan jeg vel ikke bruke LUA direkte? Men det er jo ikke umulig å lage tilsvarende med VB.net. Er ingen racer på denslags, men får vurderer å bruke litt juletid på dette. Om du har HomeSeer, kvifor ikkje gjere det enkelt og gå for Tibber? 1 Siter
Gizmo Skrevet 19. desember 2018 Skrevet 19. desember 2018 (endret) 11 minutter siden, bjornepappa skrev: kvifor ikkje gjere det enkelt og gå for Tibber? Jeg har valgt å være rasjonell aktør i ett marked, strømmarkedet. Så kjøper kun strøm til nordpool prisen uten noen som helst påslag eller andre avgifter. Er som regel 3-4 selskaper til enhver tid som tilbyr en slik deal. De tjener jo ingenting på det, så er for å lokke kunder før de endrer dealen. Da skifter jeg leverandør. Gir glede i hverdagen, men sparer neppe så mye. Endret 19. desember 2018 av Gizmo skriveleif fjernet 2 Siter
ZoRaC Skrevet 19. desember 2018 Skrevet 19. desember 2018 7 minutter siden, Gizmo skrev: Gir glede i hverdagen, men sparer neppe så mye. Sammenlignet med Tibber så sparer du 39 kr/mnd... så du har penger til en ekstra kopp kaffe på kafé hver eneste mnd! Siter
Gizmo Skrevet 19. desember 2018 Skrevet 19. desember 2018 1 minutt siden, ZoRaC skrev: så sparer du 39 kr/mnd Eller en ekstra z-wave dings pr år. ?Skal vurdere Tibber, men sitter langt inne å binde seg til en bestemt leverandør bare for å få inne strømpriser i Homeseer. Plutselig skal de ha 70,- hver måned! Siter
ZoRaC Skrevet 19. desember 2018 Skrevet 19. desember 2018 Akkurat nå, Gizmo skrev: Eller en ekstra z-wave dings pr år. ?Skal vurdere Tibber, men sitter langt inne å binde seg til en bestemt leverandør bare for å få inne strømpriser i Homeseer. Plutselig skal de ha 70,- hver måned! Si fra hvis du skal bli kunde, så kan du få en invite-kode hos meg. Da får vi begge 500 kr hver. Hvis de skrur opp prisen kan du bytte på dagen - ingen binding hos dem. 1 Siter
ArnieO Skrevet 19. desember 2018 Forfatter Skrevet 19. desember 2018 34 minutes ago, Gizmo said: Siden jeg kjører Homeseer så kan jeg vel ikke bruke LUA direkte? Jeg kjenner ikke HomeSeer, så det vet jeg ikke. Det mest plundrete med slike API-kall er å finne ut av hvordan tekststrengen skal settes opp, og det ser du i koden min. Det må forresten justeres ørlite dersom man er i en annen tariffsone enn meg. Jeg er i den sonen Nord Pool nå kaller «Kristiansand». Det skal være greit å finne ut av den nødvendige endringen fra dokumentasjonen. Siter
Gizmo Skrevet 20. desember 2018 Skrevet 20. desember 2018 (endret) Var ikke helt lett det ja, i alle fall ikke uten bedre forståelse for vb.net. Har ikke fått til det første API kallet enda... Vurderer faktisk å heller bruke løsningen som er laget for Home assistant, og sende data fra Home assistant til Homeseer med MQTT . Endret 20. desember 2018 av Gizmo presisering Siter
Moskus Skrevet 20. desember 2018 Skrevet 20. desember 2018 1 time siden, Gizmo skrev: Vurderer faktisk å heller bruke løsningen som er laget for Home assistant, og sende data fra Home assistant til Homeseer med MQTT . Oi, da går man ikke over en bekk etter vann. Mer en elv... Siter
Gizmo Skrevet 20. desember 2018 Skrevet 20. desember 2018 24 minutter siden, Moskus skrev: da går man ikke over en bekk etter vann. Mer en elv... Gøy med rafting! ? Men burde vel gjøre en innsats på å lære meg litt VB.net Siter
Dag Sunde Skrevet 21. desember 2018 Skrevet 21. desember 2018 Nordpool Marketdata API: https://github.com/dagsunde/AMS_2/blob/master/AMS_2/DayAheadPrice.cs 1 Siter
Gizmo Skrevet 21. desember 2018 Skrevet 21. desember 2018 3 timer siden, Dag Sunde skrev: https://github.com/dagsunde/AMS_2/blob/master/AMS_2/DayAheadPrice.cs Tusen takk! Dette er jo i ytterkanten av mine begrensede programmeringskunnskaper. Men dersom jeg forstår det riktig så er dette et skript i C# som leser data via APien og parser dette til en sql database (?). Med mine kunnskaper er det jo ikke helt rett frem å få trukket ut de relevante verdiene til devicer i Homeseer, men mye nyttig lærdom i hvordan dette er bygget opp! . Forsøker å lese meg opp på dette nå. Har forøvrig sluttet med rafting, er nok enklere å kjøre det som en daglig event rett fra Homeseer. Siter
Dag Sunde Skrevet 22. desember 2018 Skrevet 22. desember 2018 Du har forstått riktig ? Bunnlinja er at det er en klasse som kan holde på verdiene. Etter API kallet, og før save, inneholder alle attributtene i klassen de verdiene du er interessert i. De andre klassene; Column, Row, Data og Wrapper er kun for å matche JSON datastrukturen som blir returnert av Nordpool. Den lange "switchen" i dobbeltloopen er for å "vri" datasettet 90 grader, da det er en rad pr. Time, med en kolonne for hvert prisområde. Jeg ville ha en rad pr. prisområde, med alle timene i en rad. Siter
Gizmo Skrevet 3. januar 2019 Skrevet 3. januar 2019 Fant en annen vei for å hente strømpriser til Homeseer (passer til det meste). Det er laget en løsning som henter data fra nordpool inn i node red: https://www.npmjs.com/package/nordpool Så med litt mekking der kan time og dagspriser sendes med f.eks MQTT dit man vil. Enkleste vei for meg var å bruke denne pakken her, slik at eksempelkoden kan brukes direkte i node red: https://www.npmjs.com/package/node-red-contrib-function-npm Siter
ASL Skrevet 12. februar 2019 Skrevet 12. februar 2019 På 4.1.2019 den 0.15, Gizmo skrev: Fant en annen vei for å hente strømpriser til Homeseer (passer til det meste). Det er laget en løsning som henter data fra nordpool inn i node red: https://www.npmjs.com/package/nordpool Så med litt mekking der kan time og dagspriser sendes med f.eks MQTT dit man vil. Enkleste vei for meg var å bruke denne pakken her, slik at eksempelkoden kan brukes direkte i node red: https://www.npmjs.com/package/node-red-contrib-function-npm Hei. Kan du dele et eksempel på kode du skriver i funksjonsnoden? Har installert og brukt koden fra eksemplene men får ikke noe ut på meldingen. Siter
Gizmo Skrevet 12. februar 2019 Skrevet 12. februar 2019 1 time siden, ASL skrev: Kan du dele et eksempel på kode du skriver i funksjonsnoden? Har installert og brukt koden fra eksemplene men får ikke noe ut på meldingen. Den må skrives litt om ja. Jeg bruker denne for å hente timeprisene. var nordpool = require('nordpool') var prices = new nordpool.Prices() var opts = { area: 'Bergen', // See http://www.nordpoolspot.com/maps/ currency: 'NOK', // can also be 'DKK', 'NOK', 'SEK' } prices.hourly(opts, function (error, results) { if (error) console.error(error) for (var i=0; i<results.length; i++) { var date = results[i].date var price = results[i].value var time = date.tz('Europe/Helsinki').format("H:mm") node.send({payload:'{ "tid":'+'"'+time+'" ,"pris"-'+price}) } return; }) Dersom du også ønsker dagspris kan det hentes med denne snutten her: var nordpool = require('nordpool') var prices = new nordpool.Prices() var opts = { area: 'Bergen', // See http://www.nordpoolspot.com/maps/ currency: 'NOK', // can also be 'DKK', 'NOK', 'SEK' } prices.daily(opts, function (error, results) { if (error) console.error(error) for (var i=0; i<1; i++) { //results.length var date = results[i].date // moment object (see http://momentjs.com/) var price = results[i].value // float, NOK/MWh node.send({payload:+price/10}) } return; }) Bør kanskje si at jeg på ingen måte er å regne som kodekyndig, er selvlært og omskrivingen er gjort ved å prøve meg frem. Men har sjekket det mot Nordpool og blir korrekt sluttresultat hos meg. Siter
Polarnor Skrevet 13. februar 2019 Skrevet 13. februar 2019 På 19.12.2018 den 16.15, ArnieO skrev: Legger dette i egen tråd i stedet for inne i andre tråder, så blir det lettere å finne for de som leter. Spot strømprisene i Norden for neste døgn (den såkalte Day-ahead prisen) besluttes hver formiddag for kommende døgn, time for time - og publiseres så vidt jeg vet klokka 12 norsk tid. Jeg har funnet tre steder de kan leses fra: Tibber, men kun om du er kunde hos de. Nord Pool publiserer Day-ahead priser for kommende døgn hver dag ca klokka 12: https://www.nordpoolgroup.com/Market-data1/Dayahead/Area-Prices/ALL1/Hourly/?view=table De er imidlertid veldig tydelige på at det ikke er tillatt å lage noen autmatisk nedlasting derfra. Man kan kjøpe en avtale med de, men det er dyrt. Entsoe: Prisene publiseres imidlertid samtidig på en Europeisk nettside hvor det er gratis både å registrere seg og få Web API token, som trengs for å bruke deres API.https://transparency.entsoe.eu/ Dette er løsningen jeg bruker, og det fungerer helt fint. Det er en beskrivelse av APIet på nettsiden der et sted. Jeg henter prisene fra Entsoe hver kveld for neste døgn. De aktuelle linjene i mitt LUA-script ser slik ut: year = os.date("%Y", tomorrow); month = os.date("%m", tomorrow); day = os.date("%d", tomorrow); urlApi = "'https://transparency.entsoe.eu/api?documentType=A44&in_Domain=10YNO-2--------T&out_Domain=10YNO-2--------T&periodStart="..year..month..day.."0000&periodEnd="..year..month..day.."2300&securityToken=SETT-INN-DIN-TOKEN-HER'" Den svarer med en XML streng som du så må hente ut dataene fra. Scriptet leser så dagens valutakurs fra Norges bank (åpent API, trenger ikke token), som brukes for å regne om til spotprisen i kroner. Her er min LUA-kode for funksjon som henter dagens EUR kurs: function eurRate() local url = "https://data.norges-bank.no/api/data/EXR/M.EUR.NOK.SP?lastNObservations=1" local XML_string_eur=XML_Capture("curl -s "..url,1) local valid = string.find(XML_string_eur, "<message:Test>false</message:Test>") if valid == nil then print ("Bad XML status read - info NOT updated [in eurRate()]") else local p = string.find(XML_string_eur,"DECIMALS=") + 10 -- read position of NoOfDecimals local dec = string.sub(XML_string_eur,p,p) p = string.find(XML_string_eur,"OBS_VALUE=") + 11 -- read position of eurRate return tonumber(string.sub(XML_string_eur,p,p+1+dec)) end end Husk at dette er ikke hele strømprisen. Nettleie og andre tillegg kommer i tillegg. Se faktura fra din leverandør om du vil regne helt om til full estimert kWh-pris. Entsoe fungerte kjempeflott. Takk for tips ? Jeg benytter PHP og skrev om koden: $datetime = new DateTime('tomorrow'); $spotdate = $datetime->format('Ymd'); $urlapi = "https://transparency.entsoe.eu/api?documentType=A44&in_Domain=10YNO-2--------T&out_Domain=10YNO-2--------T&periodStart=".$spotdate."0000&periodEnd=".$spotdate."2300&securityToken=DIN_TOKEN_HER"; $xml = @file_get_contents($urlapi); $xml = simplexml_load_string($xml); Det er vel forskjell på de ulike strømområdene? Prøvde å skrive 10YNO-5 for Bergen/Hordaland, men det fungerte ikke. Noen som vet koden for Bergen/Hordaland? Siter
ArnieO Skrevet 18. februar 2019 Forfatter Skrevet 18. februar 2019 On 13/02/2019 at 19:51, Polarnor said: Entsoe fungerte kjempeflott. Takk for tips ? Jeg benytter PHP og skrev om koden: $datetime = new DateTime('tomorrow'); $spotdate = $datetime->format('Ymd'); $urlapi = "https://transparency.entsoe.eu/api?documentType=A44&in_Domain=10YNO-2--------T&out_Domain=10YNO-2--------T&periodStart=".$spotdate."0000&periodEnd=".$spotdate."2300&securityToken=DIN_TOKEN_HER"; $xml = @file_get_contents($urlapi); $xml = simplexml_load_string($xml); Det er vel forskjell på de ulike strømområdene? Prøvde å skrive 10YNO-5 for Bergen/Hordaland, men det fungerte ikke. Noen som vet koden for Bergen/Hordaland? Bare hyggelig! Ja, du må bruke rett domain (og rette opp begge steder i http-linja). jeg husker ikke lengre hvor jeg fant rett kode. Har du forsøkt å lete her? https://transparency.entsoe.eu/content/static_content/Static content/web api/Guide.html Siter
Christopher Stenersen Skrevet 1. april 2019 Skrevet 1. april 2019 Har bearbeidet norpool noden som er nevnt tidligere i tråden til en litt enklere versjon for benyttelse i Node-Red uten function-node der man kan velge "area" og "currency" i properties i noden. Noden henter spotpris for den kommende timen. https://www.npmjs.com/package/node-red-contrib-nordpool-api mottar ideer om videre utvikling av noden med takk. 1 1 Siter
Øystein Jakobsen Skrevet 24. april 2019 Skrevet 24. april 2019 For de som bruker Home Assistant (og sikkert andre også) så har jeg laget et oppsett likt det @ArnieO skisserte i det opprinnelige innlegget, dvs. henter priser fra ENTSO-E med valutaomregning basert på kurser fra Norges Bank. Scriptet kan lett kjøres hver time via crontab og publiserer prisene på MQTT. Kode og dokumentasjon ligger her: https://github.com/oysteinjakobsen/fetch-day-ahead-price 1 Siter
Anbefalte innlegg
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.