Nordpool ja Entso-E API

jyrkipes

Nibe, nodered, ruuvitag, mysql, bash
Ok, selvisi että palvelimen (nordpoolgroup) heittovaihdon aikaan se ei vastannut noin varttituntiin, sopivasti just kahden maissa kun päivitys yleensä tulee. Nyt se vastaa ja uudelleenohjaa uudelle domainille mutta tuo pythonviritys ei siihen taipunut.

Massivisen (joskin aika turhan lopulta) debuggaamisen jälkeen dokumentoin itselleni että skriptin käyttämä vanha URL = http://www.nordpoolspot.com/api/marketdata/page/35?currency=,,EUR,EUR
löytyy nykyään URL = https://www.nordpoolgroup.com/api/marketdata/page/35?currency=,,EUR,EUR

Eli spot on group ja protokolla https

Junan vessa toimii taas.
 

kotte

Hyperaktiivi
Eli spot on group ja protokolla https
Oho! Ihmettelin vain sitä, että "http://...nordpoolspot..." olisi siis toiminut noinkin kauan eli aivan äskettäin. Itselläni oli ehkä virheellinen käsitys, että olisi lakannut koko vanha domain toimimasta jo vuosia sitten.
 

tj86430

Vakionaama

puuteknikko

Vakionaama
Onkohan tuo dokumentoitu jossain? Voisihan tuotakin periaatteessa käyttää, jos on luotettavampi kuin ENTSO-E (joka ei edelleenkään palauta niitä viime yön kahta tuntia)
Erikoista.. itse kun tarkistin eilen ENTSO-E:n outputtia tällä käyttämälläni Python-moduulilla, on tiedot tulleet ihan oikein. Eiköhän tuo yhtä lailla rajapinnasta kysele.
 

tj86430

Vakionaama
Erikoista.. itse kun tarkistin eilen ENTSO-E:n outputtia tällä käyttämälläni Python-moduulilla, on tiedot tulleet ihan oikein. Eiköhän tuo yhtä lailla rajapinnasta kysele.
Mielenkiintoista tosiaan. Tein juuri kutsun

Koodi:
https://web-api.tp.entsoe.eu/api?securityToken=<token>&documentType=A44&in_Domain=10YFI-1--------U&out_Domain=10YFI-1--------U&periodStart=202410082300&periodEnd=202410092300

(<token>in paikalla luonnollisesti oma security token)

ja vastauksesta puuttuu edelleen kaksi tuntia:

XML:
            <Point>
                <position>
                    1
                </position>
                <price.amount>
                    0.01
                </price.amount>
            </Point>
            <Point>
                <position>
                    2
                </position>
                <price.amount>
                    0
                </price.amount>
            </Point>
            <Point>
                <position>
                    5
                </position>
                <price.amount>
                    0.01
                </price.amount>
            </Point>

Huomisen tunnit ovat kyllä kaikki
 

puuteknikko

Vakionaama
Mielenkiintoista tosiaan. Tein juuri kutsun

Koodi:
https://web-api.tp.entsoe.eu/api?securityToken=<token>&documentType=A44&in_Domain=10YFI-1--------U&out_Domain=10YFI-1--------U&periodStart=202410082300&periodEnd=202410092300

(<token>in paikalla luonnollisesti oma security token)

ja vastauksesta puuttuu edelleen kaksi tuntia:

XML:
            <Point>
                <position>
                    1
                </position>
                <price.amount>
                    0.01
                </price.amount>
            </Point>
            <Point>
                <position>
                    2
                </position>
                <price.amount>
                    0
                </price.amount>
            </Point>
            <Point>
                <position>
                    5
                </position>
                <price.amount>
                    0.01
                </price.amount>
            </Point>

Huomisen tunnit ovat kyllä kaikki

Tällä koodilla ne tosiaan tulee oikein eikä jää aukkoja.

Python:
from entsoe import EntsoePandasClient
import pandas as pd
from datetime import datetime, timedelta

client = EntsoePandasClient(api_key='xxx')

date_base = datetime.now()
date_entsoe_start = (date_base - timedelta(1)).strftime("%Y%m%d")
date_entsoe_end = (date_base + timedelta(1)).strftime("%Y%m%d")

start = pd.Timestamp(date_entsoe_start, tz='Europe/Helsinki')
end = pd.Timestamp(date_entsoe_end, tz='Europe/Helsinki')

country_code = 'FI'

result = client.query_day_ahead_prices(country_code, start=start, end=end)

timestamps = result.index.values
prices = result.values
for i in range (len(timestamps)):
    print (timestamps[i], round(prices[i]/10, 2))

Koodi:
2024-10-07T21:00:00.000000000 1.93
2024-10-07T22:00:00.000000000 2.5
2024-10-07T23:00:00.000000000 1.84
2024-10-08T00:00:00.000000000 1.75
2024-10-08T01:00:00.000000000 1.72
2024-10-08T02:00:00.000000000 1.8
2024-10-08T03:00:00.000000000 2.36
2024-10-08T04:00:00.000000000 5.18
2024-10-08T05:00:00.000000000 4.79
2024-10-08T06:00:00.000000000 8.57
2024-10-08T07:00:00.000000000 8.24
2024-10-08T08:00:00.000000000 5.14
2024-10-08T09:00:00.000000000 4.78
2024-10-08T10:00:00.000000000 3.91
2024-10-08T11:00:00.000000000 3.08
2024-10-08T12:00:00.000000000 2.49
2024-10-08T13:00:00.000000000 2.4
2024-10-08T14:00:00.000000000 2.37
2024-10-08T15:00:00.000000000 2.28
2024-10-08T16:00:00.000000000 2.16
2024-10-08T17:00:00.000000000 1.73
2024-10-08T18:00:00.000000000 0.48
2024-10-08T19:00:00.000000000 0.3
2024-10-08T20:00:00.000000000 0.18
2024-10-08T21:00:00.000000000 0.0
2024-10-08T22:00:00.000000000 0.0
2024-10-08T23:00:00.000000000 0.0
2024-10-09T00:00:00.000000000 0.0
2024-10-09T01:00:00.000000000 0.0
2024-10-09T02:00:00.000000000 0.0
2024-10-09T03:00:00.000000000 0.34
2024-10-09T04:00:00.000000000 0.49
2024-10-09T05:00:00.000000000 0.98
2024-10-09T06:00:00.000000000 1.12
2024-10-09T07:00:00.000000000 1.14
2024-10-09T08:00:00.000000000 1.12
2024-10-09T09:00:00.000000000 0.94
2024-10-09T10:00:00.000000000 0.8
2024-10-09T11:00:00.000000000 0.72
2024-10-09T12:00:00.000000000 0.76
2024-10-09T13:00:00.000000000 0.81
2024-10-09T14:00:00.000000000 0.89
2024-10-09T15:00:00.000000000 0.94
2024-10-09T16:00:00.000000000 0.87
2024-10-09T17:00:00.000000000 0.65
2024-10-09T18:00:00.000000000 0.15
2024-10-09T19:00:00.000000000 0.0
2024-10-09T20:00:00.000000000 0.0
2024-10-09T21:00:00.000000000 -0.0
 

tj86430

Vakionaama
Web-APIa se käyttää.

Epäilemättä. Olisi kiva tietää myös parametrien documentType, in_Domain ja out_Domain arvot, koska minun käyttämilläni arvoilla (documentType=A44&in_Domain=10YFI-1--------U&out_Domain=10YFI-1--------U) noita kahta tuntia ei edelleenkään tule. (Kokeilin myös muuttaa periodia esim. hakemalla 7.10.-10.10., sama lopputulos)
 

puuteknikko

Vakionaama
Epäilemättä. Olisi kiva tietää myös parametrien documentType, in_Domain ja out_Domain arvot, koska minun käyttämilläni arvoilla (documentType=A44&in_Domain=10YFI-1--------U&out_Domain=10YFI-1--------U) noita kahta tuntia ei edelleenkään tule. (Kokeilin myös muuttaa periodia esim. hakemalla 7.10.-10.10., sama lopputulos)
Tuossa moduulissa on sisäänrakennettuna loggaus ja sen pitäisi näyttää myös kyselyt, pitääpä katsoa saanko sieltä jotain ulos kunhan työt ei haittaa harrastuksia :D
 

Mikki

Hyperaktiivi
Jos haluatte räjäyttää päänne, niin tässä on Entso-E:n dokkaria....


Eli kyllä tuo positioiiden hyppäys on ihan "as designed" ominaisuus. Säästyyhän siinä monta tavua dataa, kun hyppii "turhat rivit" ylitse:


1728539563060.png



Ja jotta homma olisi vielä varmemmalla pohjalla, voi myös sama positio monistua. Tähän kun yhdistetään vielä nuo "välihypyt", niin pakko on sanoa että on tässä kyllä taas yksi komiteoiden suunnittelema hevonen, eli kameli:

1728539634833.png
 

tj86430

Vakionaama
Selvä, siis pyyttonikoodi ei varmaankaan myöskään saa noita tunteja, mutta osaa täyttää aukot tuon speksin mukaan. Tämä selvä, pitää korjata omaa koodia vastaavasti. Kiitos Mikki.
 

Sukke

Aktiivinen jäsen
Onpahan melkoinen viritys tuo API:n vastaus. Olisi mielenkiintoista kuulla perustelut, kun yksittäisiä tunteja on päätetty hypätä yli.

Pientä askartelua vaati tuurikoodaajalta saada oma automaatio ojennukseen, mutta näyttäisi nyt toimivan.
 

puuteknikko

Vakionaama
Onpahan melkoinen viritys tuo API:n vastaus. Olisi mielenkiintoista kuulla perustelut, kun yksittäisiä tunteja on päätetty hypätä yli.

Pientä askartelua vaati tuurikoodaajalta saada oma automaatio ojennukseen, mutta näyttäisi nyt toimivan.
Tällaisissa muutoksissa korostuu viestintä erityisesti, ja sitähän ei käytännössä ollut.
 

tk-

Aktiivinen jäsen
Itseasiassa tuo modulaarinen rakenne on valmistautumista 96 aikajaksoon vuorokaudessa
Itse ymmärsin tuosta dokumentista, että käyttävät samaa rakennetta aivan kaikissa tietosisällöissä mitä sieltä saa pihalle. Nuo hintatiedot tekee pienen raportin huolimatta siitä palautetaanko kaikki hintapisteet, mutta sitten jo isommassa datajoukossa lyhyemmällä resoluutiolla asialla voisi hyvinkin olla merkitystä ettei ihan jokaista arvoa palauteta muuttumattomassa datassa.

Eli tarpeettoman hankala tässä mittakaavassa, mutta yleispätevänä tuossa voi hyvinkin olla järkeä mitä isompia datajoukkoja kohti mennään.
 

jyrkipes

Nibe, nodered, ruuvitag, mysql, bash
Nordpool ajaa vanhan APIn alas maanantaina 14.10
Nonniin, rikki meni. Nyt pitäis maksaa jotta saisi API:n nordpoolilta ja sitä rahaa ei säästä näillä sähkönkäytön optimoinneilla. Tuo ENTSO-E:kö on "ilmainen"? Menee varmaan taas joku ilta mukavasti kun keksii pyörän uudestaan.
 

Arisoft

Hyperaktiivi
Tuo ENTSO-E:kö on "ilmainen"? Menee varmaan taas joku ilta mukavasti kun keksii pyörän uudestaan.

Ilmainen on ja pitäisi sellaisena pysyä. Rekisteröityminen kesti jonkin aikaa kun aikoinaan sen tein. Piti ihan sähköpostilla se tehdä. Mutta sen jälkeen ei ole tarvinnut kuin käyttää ja korjailla kun tekevät muutoksia tai jättävät jonkin päivän pois kokonaan.
 

jyrkipes

Nibe, nodered, ruuvitag, mysql, bash
Ok, sain oman viritykseni toimimaan muikeesti ENTSO-E -lähteenä ja tuo pandas -rajapinta joka näytti tuottavan aukottoman tuntikohtaisen listan jota helppo jatkokäsitellä.
Tuli vielä paljon nopeampi (eli vähemmän sähköä kuluttava) kun siirryin bash-skriptistä pythoniin.
Kiitokset ohjaavista vinkeistä!

Tulin samalla kaivelleeksi noita skriptejä joilla olen tiskannut Fingrid/Datahub-ladattuja tietoja ja huomasin että tarjoavat kulutustietoja nyt 15min resoluutiolla. Arvelen että enteilee sen tiheämmän hinnoittelun tulemista vielä jonain päivänä.
Onko tietoa miten vaikeaa/helppoa olisi latailla noita Datahubin tietoja omasta liittymästään automaattisesti (API?) . Se mitä jaksoin ohjeita lukea, viittasi siihen että pitää perustaa sähkönjakeluyhtiö jotta pääsee valtuutettavien listalle..
Toistaiseksi latailen noita manuaalisesti jonkun kerran vuodessa. Oma mittaus on tarpeeksi tarkka joten kiinnostus lähinnä tarkastaa paljonko sähköyhtiön mittaus heittää omiin verrattuna.
 

Arisoft

Hyperaktiivi
Onko tietoa miten vaikeaa/helppoa olisi latailla noita Datahubin tietoja omasta liittymästään automaattisesti (API?) . Se mitä jaksoin ohejita lukea viittasi siihen että pitää perustaa sähkönjakeluyhtiö jotta pääsee valtuutettavien listalle..

Joo taisit päätellä ihan oikein :) hankalaksi on tehty

Itse luen mittaritiedot mittarista itsestään. Hyvin pitävät kutinsa datahubin kanssa. Kaipa se tarkoitus on että tuo oma data kaivetaan siitä omasta mittarista. Se on ainoa paikka josta sen saakin reaaliajassa.
 

tj86430

Vakionaama
Onkos muilla ongelmia ENTSO-E APIn kanssa. Minulle vastaa kun huomisia hintoja kyselen:

XML:
<Reason>
    <code>
        999
    </code>
    <text>
        No matching data found for Data item ENERGY_PRICES and interval 2025-01-14T23:00:00.000Z/2025-01-15T23:00:00.000Z
    </text>
</Reason>
 

tk-

Aktiivinen jäsen
Onkos muilla ongelmia ENTSO-E APIn kanssa. Minulle vastaa kun huomisia hintoja kyselen:

XML:
<Reason>
    <code>
        999
    </code>
    <text>
        No matching data found for Data item ENERGY_PRICES and interval 2025-01-14T23:00:00.000Z/2025-01-15T23:00:00.000Z
    </text>
</Reason>
Pörssärin serveri laittoi klo 15 viestiä käyttäneensä varajärjestelmänä toimivaa Eleringin rajapintaa, eli joku ongelma siellä selvästi tänään taas on päällä.
 

Arisoft

Hyperaktiivi
Ei ole eka kerta kun juuri poikkeuksellista hintapiikkiä edeltävänä päivänä Entso-E ei toimi. Huomasin oman systeemin antaman varoituksen ja tietojen puuttumisen huomisesta käyrästä. "Varajärjestelmänä" minulla on copy-paste Nordpoolin omalta sivulta.
 

Sukke

Aktiivinen jäsen
Kappas, enpä huomannutkaan, kun oli varalähteestä tullut hinnat käyttöön kahden aikoihin. Klo 19.30 näyttäisi entso-e:n hinnat päivittyneen Home Assistantiin. Hakikohan tuo 10 minuutin välein uusia hintoja iltapäivästä alkaen.
 

tj86430

Vakionaama
Onko taas entso-e:lla hinnat tulematta?

Näyttäisi olevan taas varalähde HA:ssa käytössä.
Samaa virhettä pukkaa:
Koodi:
<Reason>
        
        
        <code>
            999
        </code>
        
        
        <text>
            No matching data found for Data item ENERGY_PRICES and interval 2025-01-19T23:00:00.000Z/2025-01-20T23:00:00.000Z
        </text>
        
    
    </Reason>
 

Matti1965

Aktiivinen jäsen
Pörssärin serveri laittoi klo 15 viestiä käyttäneensä varajärjestelmänä toimivaa Eleringin rajapintaa, eli joku ongelma siellä selvästi tänään taas on päällä.
Mistähän Sähköseuranta-appi kännykässä ottaa tiedot? Ne tulevat aina aikalailla heti kello 14 jälkeen.

Edit: Näköjään Entso-E, onkohan varana Fingrid, koska tänäänkin tuli ajallaan.
 
Viimeksi muokattu:

Arisoft

Hyperaktiivi
Mistähän Sähköseuranta-appi kännykässä ottaa tiedot? Ne tulevat aina aikalailla heti kello 14 jälkeen.

Tuskin, koska sieltä tiedot tulee joskus klo 15 aikaan ainakin mulle. Klo 14 jälkeen saa NordPoolista hinnat. Niitä tosin voi käyttää vain luvatta ellei maksa isoja lunnaita.
 

Matti1965

Aktiivinen jäsen
Tuskin, koska sieltä tiedot tulee joskus klo 15 aikaan ainakin mulle. Klo 14 jälkeen saa NordPoolista hinnat. Niitä tosin voi käyttää vain luvatta ellei maksa isoja lunnaita.
Tänäänkin tuli heti 14 jälkeen. En tarkasti huomioinut aikaa, mutta varmuudella ennen 14:15. Sitten kun menin Pörssäriin tarkistaakseni huomisen ohjaukset siellä ei ollut vielä mitään kello 15:05, jonka jälkeen kyllä ilmestyi, joten jotain häikkää oli jossain.
Lisäksi on Muutakin-appi, ja siitä puuttui vielä pari tuntia sitten eilisen tunnit kello 20 eteenpäin, tätä ei ennen tapahtunut, vaan koko edellinen päivä tulee kokonaan sitten kun tulee.
 
Viimeksi muokattu:

maanma

Vakionaama
Minulla käytössä nordpool model (JaccoR) rekisteröityneellä entso-e api käyttäjällä HACS 2.0.2 (2.0.1 repolla) kautta.
 
Viimeksi muokattu:
Back
Ylös Bottom