Spot-hinta.fi - Yksinkertainen pörssiohjaus API ja sitä käyttävät automaatioskriptit

-Teme-

Vakionaama
Niitä piikkejä tulee välillä läpi vaikka on RC suodin.
Laitteelle voi aikatauluttaa rebootin vaikka joka vuorokausi jos käyttää PM laitetta ja pelkää että jää jumiin kontin aiheuttamasta piikistä
Tällä rimpsulla saa laitteen boottaamaan joka 3 vrk klo 05.11 bootti toimii mielestäni vaikka laite on muuten jumissa
Kun muuttaa 1/3 tilalle * bootti tapahtuu joka vrk
shelly_ip tilalle sen laitteen ip osoite johon tuon haluaa
Koodi:
http://shelly_ip/rpc/Schedule.Create?timespec="0 11 5 1/3 * *"&calls=[{"method":"Shelly.Reboot","origin":"shelly_service"}]
 

hanmik2

Tulokas
Periodinen uudelleenkäynnistys oli joo yks vaihtoehto mutta talvella voi olla tarpeen reagoida nopeasti ongelman tullessa.
Lisäksi olen vähän allerginen turhille rebooteille :) Siksi tämä hienostuneempi ratkaisu.
 

Mikki

Hyperaktiivi
Suunnitelma on siis, että nykyiset skriptit jatkavat toimimista ennallaan, eli keskiarvot lasketaan tunneille ja "rankit" toimivat kuten nykyään. Hyvä on myös muistaa, että suurimmalle osalle sopimuksista ei heti varttihinnat tule edes voimaan, vaan nuo keskiarvohinnat.

Tuon tarjolle varttihinnoitteluun sopivia skriptejä, mihin sitten halutessaan voi siirtyä. Ensimmäisenä nuo "vesivaaraja"-skriptit päivitän, niissä kuitenkin on helpoin potentiaali varttiohjauksille.
 

Lappanen

Hyperaktiivi
Tuossa on kyllä taas "harjoittelun" paikka, että mikä sopii invertteri-lämpöpumpulle parhaiten. 15 minuuttia varmasti liian lyhyt käyntiaika, alkaa vasta sen jälkeen kunnolla jauhamaan jos asteminuuttien mukaan pelaa eikä manipuloi niitä hintojen mukaan. 30 min jakso hiinä ja hiinä, varmaankin 45 min jakso ihan minimi minkä kannattaa pitää päällä lämmitysmoodissa.

Käyttövedessä sitten heti 60 min minimi.

Mielenkiintoisia aikoja jälkeen, vähänku kiinteistä pörssiin siirtyminen aikanaan.
 

Mikki

Hyperaktiivi
Tuo on täysin totta, että invertteripumppujen kanssa tulee miettimistä. Jonkinlainen "oletus" on, että tuntien ensimmäinen vartti olisi kallein. Näin 45 minuuttia tunneista löytyisi halvimmat vartit. Mutta on se aikalailla lyhyt käyntiajaksi invertteripumpulle.

Siksi... kun nyt "rankin" pituus on ollut tunnin, niin jatkossa menen siihen suuntaan että "rankin" pituus voi olla 15-120 minuuttia ja se olisi asettettavissa skriptissä.
 

juu-zo

Aktiivinen jäsen
Suorasähköisellä lämminvesivaraajalla todennäköisesti vartin ohjaukset taas on ihan ok. En muutenkaan usko että jos rankkaa vaikka 16 halvinta varttia että nuo osuisi kaikki erikseen vuorokaudessa vaan sinne osuu varmasti jotain putkia. Sähköauton latauksen kanssa mihin näitä skriptejä myös käytän voi olla mahdollista että keskiarvotettu tunti on järkevin niin kontaktorit ei hakkaa vartin välein aina kuormaa.
 

Husky

Hyperaktiivi
Minäpä nyt keksin, että koitan ensimmäisenä tekoälyn käyttöyrityksenäni teettää SmartHeatingiin ominaisuuden, että voisi valita montako tuntia peräjälkeen maksimissaan saa lämmitys olla pois päältä.

Ja ellei tekoäly suoriudu, niin lopunikää haukun sitä turhana kotkotuksena :cool:
 

root

Aktiivinen jäsen
Tuossa on kyllä taas "harjoittelun" paikka, että mikä sopii invertteri-lämpöpumpulle parhaiten. 15 minuuttia varmasti liian lyhyt käyntiaika, alkaa vasta sen jälkeen kunnolla jauhamaan jos asteminuuttien mukaan pelaa eikä manipuloi niitä hintojen mukaan. 30 min jakso hiinä ja hiinä, varmaankin 45 min jakso ihan minimi minkä kannattaa pitää päällä lämmitysmoodissa.

Käyttövedessä sitten heti 60 min minimi.

Mielenkiintoisia aikoja jälkeen, vähänku kiinteistä pörssiin siirtyminen aikanaan.
En jaksa uskoa, että tiettyä varttia edeltävä tai sen jälkeen tuleva vartti rajusti eroaisivat (hinnaltaan) toisistaan, joten hyvin todennäköisesti sopivia "hintaputkia" on jatkossakin. Eikä toisaalta marginaalisten hintaerojen takia kannata pätkiä laitteiden käyntiä vartin jaksoissa. Mutta kohtahan ne hinnat näkee.
 

fraatti

Hyperaktiivi
Tuo on täysin totta, että invertteripumppujen kanssa tulee miettimistä. Jonkinlainen "oletus" on, että tuntien ensimmäinen vartti olisi kallein. Näin 45 minuuttia tunneista löytyisi halvimmat vartit. Mutta on se aikalailla lyhyt käyntiajaksi invertteripumpulle.
Mistä tällainen oletus tulee? Itse ainakin mutuilen että laskevissa hinnoissa halvin on viimeinen vartti ja nousevissa ensimmäinen.
 

-Teme-

Vakionaama
Minäpä nyt keksin, että koitan ensimmäisenä tekoälyn käyttöyrityksenäni teettää SmartHeatingiin ominaisuuden, että voisi valita montako tuntia peräjälkeen maksimissaan saa lämmitys olla pois päältä.

Ja ellei tekoäly suoriudu, niin lopunikää haukun sitä turhana kotkotuksena :cool:
Eiköhän se osaa laskea kun luot tarpeeksi tarkan ja monipuolisen promptin, sekä liität kiinteistön lämpötilatiedot, säätilatiedot, lämmitysmäärät ja muut vastaavat muuttujat mukaan esim 1h välein viimeisen parin vuoden ajalta, sekä sääennusteen kohteellesi mitä se AI voi käyttää laskemiseen ja tarjota seuraavan 12-24h lämmitysplänin suhteutettuna pörssisähköön
 

Husky

Hyperaktiivi
Eiköhän se osaa laskea kun luot tarpeeksi tarkan ja monipuolisen promptin, sekä liität kiinteistön lämpötilatiedot, säätilatiedot, lämmitysmäärät ja muut vastaavat muuttujat mukaan esim 1h välein viimeisen parin vuoden ajalta, sekä sääennusteen kohteellesi mitä se AI voi käyttää laskemiseen ja tarjota seuraavan 12-24h lämmitysplänin suhteutettuna pörssisähköön
Meinasin että olemassa olevaan SmartHeat-scriptiin lisäisin ko. funktion. Ko scriptissä on jo sisässä 24h lämpötilaennuste ja lämmitysplän.
 

Mikki

Hyperaktiivi
Varttihinnoista informaatiota

Varttihinnat alkavat ilmestymään keskiviikosta 1.10. alkaen. Eli tiistaina 30.9, kun tulee seuraavan päivän hinnat, niin ne pitäisi ilmestyä varttihintoina. Mielenkiintoista on nähdä, miten hinnat varteittain vaihtelee ja saa myös nähdä, miten eri systeemit muutoksesta selviävät.

Spot-hinta.fi palvelun osalta nykyisten Shelly-skriptien on tarkoitus jatkaa toimimistaan - tuntitason keskihintoja käyttäen ja skripteihin ei siis tarvitse koskea. Samoin HomeAssistant yaml skripti ("T3m3z -skripti") toimii edelleen näin, ennen päivitetyn varttiskriptin julkaisua.

Seuraaviin suoriin rajapintoihin tulee muutos, eli 30.9. alkaen (serveri päivitetään aamupäivällä) oletuksena palautetaan varttihinnat näistä rajapinnoista: /JustNow, /Today, /DayForward, /TodayAndDayForward

Palautettava JSON formaatti ei muutoin muutu. Jos käytät jotain näistä rajapinnoista ja sinulla on edelleen tarvetta saada tuntihinnat, niin se onnistuu uudella query-parametrilla "?priceResolution=60", jolloin rajapinnat palauttavat tuntitason tiedon, laskemalla keskiarvot varteista. Esimerkiksi siis "/Today?priceResolution=60". Tämän parametrin voi lisätä omiin koodeihin vaikka heti.

Ensimmäinen Shelly "vartti-skripti" on tarkoitus myös tuoda tarjolle tiistaina 30.9. Se on päivitetty versio "Vesivaraaja - yösiirto" -skriptistä, jossa uutena ominaisuutena tulee mahdollisuus määritellä hintajakson ("rankin") pituus minuutteina (15, 30, 45, 60, 75, 90, 120). Ja halvimmat hintajaksot etsitään varttihinnoista.

Kun tilanne vakiintuu varttisiirtymässä ja mahdolliset ongelmat on taklattu, on tarkoitus tehdä varttihinta päivityksiä muihinkin Shelly-skripteihin. Elämme mielenkiintoisia aikoja ja melkoisesti riskejä tässä on, että erilaisiin ohjauspalveluihin tulee hikkoja ainakin ensipäivinä. Spot-hinta palvelun osalta yritän minimoida niitä, mutta jos ongelmia havaitsette niin yritän korjata ne asap.
 

Westcoast

Tulokas
Olen ollut hieman huolestunut jo tovin -uutisointi varttisähköhinnoittelusta vaikuttaa.
Mitä ilmeisimmin Shelly ei lakkaa toimimasta toisiksi uusimmilla skripteilläkään -ainakin kestää siihen saakka kun tilanne on vakiintunut -eikä aiheuta veden tai kämpän kylmentymistä. Ja varmasti ennen skriptin päivitystä on hyvä idea saada infoa kokemuksista ennen muutoksia.
 

Mikki

Hyperaktiivi
Ensimmäiset varttihinnat on nyt sitten saatu ja kyllähän varttiohjaukselle näyttäisi tarvetta olevan. Siksipä nyt on sitten julkaistu tuo ensimmäinen spot-hinta.fi varttiskripti, mikä sopinee erityisesti vesivaraajille tai sähköpattereille.

Löytyy Spot-hinta.fi Shelly-kirjaston kautta. Tai sitten Githubista suoraan:
 

Linnalahti

Aktiivinen jäsen
Lämmityksen ohjauksen varttihinnoilla sain toimimaan noin tunnin työllä ESP32S3 7"näytöön. Seuraavaksi pitäisi rakentaa Heatpump toimivaan ESP32S3 sirulle. Onko joku askarrellut tällä saralla? Sitä tarvitaan ILP lämpölilojen ohjaukseen. Minulla on yli viisi vuotta vanha IR purkki joka pystyy ohjamaa ILP:ä, mutta kännykkä APIt on minulle vieraita.
 
Viimeksi muokattu:

Jule

Vakionaama
Ensimmäiset varttihinnat on nyt sitten saatu ja kyllähän varttiohjaukselle näyttäisi tarvetta olevan. Siksipä nyt on sitten julkaistu tuo ensimmäinen spot-hinta.fi varttiskripti, mikä sopinee erityisesti vesivaraajille tai sähköpattereille.

Löytyy Spot-hinta.fi Shelly-kirjaston kautta. Tai sitten Githubista suoraan:
Tulkitsenko nyt oikein, jos laitan hintajakson pituudeksi 15 ja valitut hintajaksot [1, 2, 3] niin varaaja lämmittää yhteensä vain 45 minuuttia?
 

Mikki

Hyperaktiivi
Tulkitsenko nyt oikein, jos laitan hintajakson pituudeksi 15 ja valitut hintajaksot [1, 2, 3] niin varaaja lämmittää yhteensä vain 45 minuuttia?
Kyllä. "Jakson pituus" x "jaksojen lukumäärä" == kokonaislämmitysaika. Yleisenä kommenttina, niin ainakin toistaiseksi näyttäisi että 30 minuutin jaksot on aika järkeviä esim. varaajalle.

Niistä löytyy parhaiten aidosti halvimpia jaksoja ja lisäksi ei rele "naksuta" turhan tiheään.
 

Jule

Vakionaama
Kyllä. "Jakson pituus" x "jaksojen lukumäärä" == kokonaislämmitysaika. Yleisenä kommenttina, niin ainakin toistaiseksi näyttäisi että 30 minuutin jaksot on aika järkeviä esim. varaajalle.

Niistä löytyy parhaiten aidosti halvimpia jaksoja ja lisäksi ei rele "naksuta" turhan tiheään.
No mä ajattelin vasta kuukauden päästä alkaa vetää jotain johtopäätöksiä tuon varttihinnan käyttäytymisestä.

Mulla on myös suora sähköinen lattialämmitys shellyn skriptin takana, tosin näillä keleillä käytännnössä vain kylppäri, saa mun puolesta naksutella ihan sydämensä kyllyydestä, lämmityksen kontit pitäisi vaihtaa jokatapauksessa, alkavat muutaman tunnin päälläolon jälkeen murisemaan jossainmäärin häiritsevästi.
 

jmaja

Hyperaktiivi
Palautettava JSON formaatti ei muutoin muutu. Jos käytät jotain näistä rajapinnoista ja sinulla on edelleen tarvetta saada tuntihinnat, niin se onnistuu uudella query-parametrilla "?priceResolution=60", jolloin rajapinnat palauttavat tuntitason tiedon, laskemalla keskiarvot varteista. Esimerkiksi siis "/Today?priceResolution=60". Tämän parametrin voi lisätä omiin koodeihin vaikka heti.
Oisko tuo voinut laittaa oletusarvoksi, jotta ei kaikki vanhat skriptit mene rikki? Ainakin mun taisi mennä.
 

Mikki

Hyperaktiivi
Oisko tuo voinut laittaa oletusarvoksi, jotta ei kaikki vanhat skriptit mene rikki? Ainakin mun taisi mennä.

Periaatteessa tämmöinen on vähän rajatapaus. Kun rajapinta on suunniteltu palauttamaan hinnat, sehän ei siis tarkoitukseltaan muuttunut, kun se edelleen palauttaa hinnat.

Jos se nyt oletuksena palauttaisi tuntikeskiarvot, niin sittenhän se ei enää palauttaisi hintoja, vaan keskiarvoja. EleringEE teki samalla tavalla siirtymän. Toki sieltä ei keskiarvoja taida enää edes saada.

Kieltämättä tuo varmaan rikkoi joitakin hakuja, mutta korjaus on kuitenkin helppo kun yhdellä query parametrilla saa edelleen tismalleen saman sisällön.

Tuo 15min siirtymä on kuitenkin kai pysyvä juttu, niin en halunnut sitä laittaa oletuksena parametrin taakse. Kertakirpaisu, mieluummin kuin pitkäaikainen sekaannus.
 

juu-zo

Aktiivinen jäsen
Eli ymmärränkö oikein että periatteessa vanhan scriptin saa muutettua vaikka 30min ohjauksille lisäämällä parametrin ?priceResolution=30 sekä tuolaamalla rankkien määrän? Eli nykyisellään vanha skripti kun on sallinut 4 halvinta tuntia niin nyt sallitaan 8 halvinta 30min jaksoa.

Edit. Eipä tuo 30min priceresolution toimikaan. Eli olisiko mahdollisuutta tehdä tuollaista lisäystä myös rajapintaan jolloin vanhat skriptit olisi aika helposti muokattavissa?
 

Mikki

Hyperaktiivi
Eli ymmärränkö oikein että periatteessa vanhan scriptin saa muutettua vaikka 30min ohjauksille lisäämällä parametrin ?priceResolution=30 sekä tuolaamalla rankkien määrän? Eli nykyisellään vanha skripti kun on sallinut 4 halvinta tuntia niin nyt sallitaan 8 halvinta 30min jaksoa.

Edit. Eipä tuo 30min priceresolution toimikaan. Eli olisiko mahdollisuutta tehdä tuollaista lisäystä myös rajapintaan jolloin vanhat skriptit olisi aika helposti muokattavissa?

Ei valitettavasti mene ihan noin helposti. Teen päivityksiä skripteihn varttiaikaan, mutta vaatii kehitystä enemmän taustalle kuin itse skriptiin. Tavoitteena on että lokakuun aikana olisi tarvittavat temput tehty.
 

juu-zo

Aktiivinen jäsen
Selvä homma, jotain häikää mulla tuntuu olevan tuossa ?priceResolution=60 parametrissäkin. Tuntuu että joka toinen kerta palauttaa ihan oikein tunnin hakua ja joka toinen kerta sitten vaan normaalia vartin tulosta.

Ongelma taitaakin olla skriptissä missä käytetään /JustNowRank kyselyä eli tämä taitaa nyt olla lopullisesti rikki tai oikeastaan vartin ohjauksilla siis nyt kun tässä ei 60min resoluutio parametri pelitä.
 
Viimeksi muokattu:

Mikki

Hyperaktiivi
Nämä toimii kun tehdään yksittäinen haku, mutta kun tätä käytetään skriptissä niin ohjaus ei toimi, eli

Ei toimi

vs
”Toimii”

Näin:

Ensimmäinen Query-parametri aloitetaan ?-merkillä ja seuraavat aina liitetään perään &-merkillä.
 

juu-zo

Aktiivinen jäsen
Kiitokset, nyt on siis vanhat skriptit fiksattu toistaiseksi tuntikeskiarvoa käyttäviksi ainakin. Jatkossa tuo puolen tunnin ohjaus sykli kiinnostaa kyllä. Lämminvesivaraajassa ainakin varmasti ihan toimiva. Sähköauton latauksessakin kenties, siinä täytyy vähän harkita napsutteleeko tuota 11kW kuormaa kuinka usein päälle ja pois.
 

kotte

Hyperaktiivi
Olen tässä katsellut ihmetellen omien infoskriptien näyttämiä varttilukemia ja kyllä etenkin nuo kalliit jaksot ovat pomppineet hurjasti. Muutin jo eilen maailmalämpöpumpun ohjauksen varttijaksolle (ei haittaa, kun termostaattia joka tapauksessa tarkkaillaan 5 minuutin syklillä).

Keskiarvo johtaa aivan harhaan etenkin kalliiden hintojen kohdalla. Mietin ensi sitäkin, pitäisikö keskiarvon sijasta laskea tunnille maksimi (olisi omassa käytössä periaatteessa riittävä) tai pitäisikö näyttääkin tunnille minimi ja maksimigraafi. Päädyin siihen, että näytettynäkin "piikkigeraafi" antaa selvästi totuudenmumaisimman kuvan. Jonkin kiukaan lämmityksen kohalla voisi jopa tähdätä noihin lyhyisiin kuoppiin, joita silloin tällöin tulee esille (tarkka aika pitää sitten katsoa erikseen taulukosta, kun tietää tarpeen syynätä tarkemmin).
 

Mikki

Hyperaktiivi
Nyt olisi mahdollisuus ottaa seuraava varttihinta-skripti testaukseen.

Eli kyseessä on toinen erityisesti vesivaraalle suunniteltu Shelly-skripti, missä voi valita kuinka monta hintajaksoa yötunneilta valitaan ja kuinka monta iltapäivältä. Tämä skripti on muutettu nyt myös toimimaan vikasietoisesti, niin että se hakee ohjaustiedot kerran vuorokaudessa ja sen jälkeen toimii ilman internet-yhteyttä, saatuja ohjeita noudattaen.

Koska muutos skriptissä on aika iso, ajattelin antaa sen nyt halukkaille testaukseen. Skripti löytyy täältä, ei vielä Shelly-kirjaston kautta:

Spot-hinta.fi -palvelun matka varttihinta-maailmaan jatkuu.
1f600.png



----

ps. miksi on kaksi eri "vesivaraaja"-skriptiä....

"Vesivaraaja"- skripti on erityisesti tarkoitettu siihen, että on esimerkiksi pienehkö varaaja (tai suuri vedenkulutus), että joka yö halutaan lämmittää vettä hinnasta huolimatta, että varmasti on aamulla kuumaa vettä varaajassa. Ja samoin halutessaan iltapäivällä voi "buustata" varaajaa.

"Vesivaraaja-yösiirto" skripti taasen hakee halvimmat tunnit koko vuorokaudesta, mikä voi tarkoittaa että lämmitysjaksojen väli voi kasvaa melko suureksi. Yleensä lämmitysjaksot osuu toki yölle. Tämä siis sopii erityisesti suuremmille varaajille, joilla pärjää noin vuorokauden verran ilman lämmitystä. Tyypillisesti voi sanoa, että 300l varaaja 65-70C lämpöön lämmitettynä.

Molemmille skripteille on siis vähän eri käyttötarkoitus.
 

Tossunkorjaaja

Aktiivinen jäsen
Kiitos. Testiin lähti.
Eli jos kolme tuntia, niin 6 jaksoa a 30 minuuttia?
Sama setup päivä ja yö, kun ei ole käytössä yösiirtotuotetta.

Kahvit kyllä tarjoan tälläkin kertaa. Ei voi liiaksi kiittää, teet hienoa kehitystyötä
 

Mikki

Hyperaktiivi
Kiitos. Testiin lähti.
Eli jos kolme tuntia, niin 6 jaksoa a 30 minuuttia?
Sama setup päivä ja yö, kun ei ole käytössä yösiirtotuotetta.

Kahvit kyllä tarjoan tälläkin kertaa. Ei voi liiaksi kiittää, teet hienoa kehitystyötä

Kyllä... Eli kokonaisaika on jaksojen määrä kertaa jakson pituus.

Ja mielelläni teen tätä kehitystä, kun homma on sekä mielenkiintoista että koen sen hyödylliseksi. Kaikkiaan alkaa olemaan lähemmäs 7000 eri IP osoitetta, jotka palvelua käyttää. Eri laitteiden määrä mitä on ohjauksessa lienee yli 10 000.
 

jmaja

Hyperaktiivi
Oisko tuo voinut laittaa oletusarvoksi, jotta ei kaikki vanhat skriptit mene rikki? Ainakin mun taisi mennä.
Ei se mun skripti varsinaisesti rikki mennytkään. Nappaa nyt tunnin viimeisen vartin koko tunnin säätötavaksi. Ei siis mikään kiireellisesti korjattava ja pitää miettiä mitä tuolle edes tekee, kun ei järjestelmä oikein taivu 15 min sykleihin.
 

Mikki

Hyperaktiivi
Ei se mun skripti varsinaisesti rikki mennytkään. Nappaa nyt tunnin viimeisen vartin koko tunnin säätötavaksi. Ei siis mikään kiireellisesti korjattava ja pitää miettiä mitä tuolle edes tekee, kun ei järjestelmä oikein taivu 15 min sykleihin.

Mistä se hinnan nappaa noin? Tunnin keskihinnan saat kuitenkin helposti jos haluat.
 

jmaja

Hyperaktiivi
Mistä se hinnan nappaa noin? Tunnin keskihinnan saat kuitenkin helposti jos haluat.
Mun skripti pyytää hinnat kerran päivässä sun palvelusta. Niistä sitten laskee säätöarvot tiedostoon. Tuonne tulee nyt siis 15 min välein entisen 1 h välein sijaan. Sitten kerran tunnissa ajettava skripti katsoo sen hetken säätöarvot ja tuo löytää nyt sen tunnin viimeisen vartin, kun ei käytä minuutteja etsinnässä.

Nyt pitää sitten miettiä alkaako säätelemään 15 min välein vai laskeeko tunnin tai 30 min keskiarvoja. Ehkä pitää vielä tarkkailla jääkö tuonne hurjia heiluntoja tunnin sisälle, kuten oli ekoina päivinä.
 

Mikki

Hyperaktiivi
Mun skripti pyytää hinnat kerran päivässä sun palvelusta. Niistä sitten laskee säätöarvot tiedostoon. Tuonne tulee nyt siis 15 min välein entisen 1 h välein sijaan.

Niin query parametri ?priceResolution=60 hintahaun perään niin tulee täsmälleen sama tulos kuin ennen varttiaikaa. Palvelin laskee keskihinnan tunnille.
 
Back
Ylös Bottom