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

kayttajatunnus

Aktiivinen jäsen
Moi, olen käyttänyt nyt ”1.0” muutaman päivän 4-kanavaisella Shellylla ja vaikuttaa todella hyvältä jo sekin.
Täytyy laittaa tämä uusin versio testiin viikonloppuna.
Pari ehdotusta kuitenkin tuli kuitenkin jo mieleen:
Saisiko tähän parametrin tai pari aikasähkön käyttäjille? Se kun kuitenkin vaikuttaa siirtohintaan jonkun verran.
1) huomioidaan tunnit vain yösähkön ajalta, 22-07
2) priorisoidaan 22-07, esim annetaan niinä tunteina rankille haluttu kerroin
Jos tällaista lähtee rakentamaan niin ei tekisi huonoa, jos vuorokauden voisi muutenkin jakaa useampaan osaan.

Esim: Toissapäivänä kaikki vuorokauden kalleimmat tunnit osuivat 9-21 väliin ja jos lämmitystä tarvitaan 0 asteessa 12h päivässä, pumppu ei olisi käynyt koko päivänä ja todennäköisesti vaikuttaisi jo sisälämpötilaan.

Nämä kaikkihan ovat vain tottakai toivomuksia ja täytyy perään heti laittaa että jo nykyisellään tässä on tehty harrastajien toimesta valtavan hienoa duunia ja yksinkertaisilla laitteilla saa tehtyä ihan uskomattomia ohjauksia.
 

Mikki

Hyperaktiivi
@Niksula, @kayttajatunnus ... thanks palautteesta ja ideoista

Tuo siirtohintojen yö/päivä eron huomioiminen lienee kyllä yksi aika selkeä kehityskohde ja lähtisin nimenomaan ensin API pään suunnittelusta ja sitten skriptit seuraavat perässä. Periaatteessa siirtohinta-eron kompensointi on suhteellisen helppo tehdä parilla parametrilla (lista tunneista jolloin hintaa "kompensoidaan" ennen Rank-laskentaa ja sitten hinta paljonko sitä kompensoidaan).

Tuo päivän jakaminen useampaan osaan on hieman vaikeampi. Nimittäin olen sitä pohtinut, että saahan noin tasattua tunteja jokaiselle jaksolle, mutta onko lopputulos kuitenkin sama kun laittaa yhden tai kaksi "boosterTuntia" jokaiselle jaksolle (aamu, päivä, ilta).

Esim. 15-17 välillä on keskimäärin tilastollisesti halvimmat tunnit päivällä. Siihen pari boosteria, niin voisi ongelmat pääosin poistua ja homman pysyvän silti yksinkertaisena.
 

Sammypiru

Vakionaama
@Niksula, @kayttajatunnus ... thanks palautteesta ja ideoista

Tuo siirtohintojen yö/päivä eron huomioiminen lienee kyllä yksi aika selkeä kehityskohde ja lähtisin nimenomaan ensin API pään suunnittelusta ja sitten skriptit seuraavat perässä. Periaatteessa siirtohinta-eron kompensointi on suhteellisen helppo tehdä parilla parametrilla (lista tunneista jolloin hintaa "kompensoidaan" ennen Rank-laskentaa ja sitten hinta paljonko sitä kompensoidaan).

Tuo päivän jakaminen useampaan osaan on hieman vaikeampi. Nimittäin olen sitä pohtinut, että saahan noin tasattua tunteja jokaiselle jaksolle, mutta onko lopputulos kuitenkin sama kun laittaa yhden tai kaksi "boosterTuntia" jokaiselle jaksolle (aamu, päivä, ilta).

Esim. 15-17 välillä on keskimäärin tilastollisesti halvimmat tunnit päivällä. Siihen pari boosteria, niin voisi ongelmat pääosin poistua ja homman pysyvän silti yksinkertaisena.

Pitänyt kysäistä, että jos laitan 0 asteessa 12 lämmitystuntia ja boostertunneiksi 15 ja 16, niin tuleeko boostertuntien lisäksi 10 vai 12 lämmitystuntia osui joku 12 halvimmasta tunnista klo 15 tai 16 kohdalle tai ei?
 

Mikki

Hyperaktiivi
Pitänyt kysäistä, että jos laitan 0 asteessa 12 lämmitystuntia ja boostertunneiksi 15 ja 16, niin tuleeko boostertuntien lisäksi 10 vai 12 lämmitystuntia osui joku 12 halvimmasta tunnista klo 15 tai 16 kohdalle tai ei?
Lämmitystunteja tulee 12-14, riippuen sen mukaan osuuko Rankin mukaiset tunnit booster tuntien päälle tai ei. Noiden ajatus juuri on, että voi varmistaa että jotain tapahtuu päivälläkin, kun muuten lämmitystunnit menevät todennäköisesti päivän ulkopuolelle.

Jos vaikka 8-18 väliltä haetaan kaksi halvinta tuntia (ajatus päivän pilkkomisessa), niin ei se hirmuisesti auta jos sitten lämmitetään 8-10 välillä heti aamuyön halpojen tuntien perään. Tuosta tultaisiin sitten seuraavaan vaatimukseen, että pitää olla X tuntia välissä tms...

Siksi nuo BoosterHours on simppeli ja periaatteessa toimiva tapa tehdä sama juttu "kiveenhakatusti".
 

Ville-Veikko

Aktiivinen jäsen
En oikein mitään tästä ymmärtänyt, mutta onko kukaan tutustunut tähän?

Voisiko ko. lähestymisestä olla jotain hyötyä tälle projektille ?
:hmm: Tuo nordpool_diff -komponentti voisi olla kova sana lämpöpumpun ja (ison) energiavaraajan kanssa puuhasteluun.? Lisää kierroksia pumpulle kun hinta on alle keskiarvon ja himmaillaan kun hinta on kalliimpaa. Varaaja saattais tasata vaihtelun jolloin talon sisälämpötila ei kauheasti edes muuttuisi? Ehkä ulkolämpötilan joutuu sotkemaan mukaan, ehkä ei.

Ajattelin protoilla huvikseni hieman yksinkertaisemman version. Lasken tuntikohtaisen prosentuaalieron vuorokauden keskihinnasta ja kerron sen -1:llä. Tästä saan säätökertoimen vilpin ulkolämpötilaan perustuvalle tavoitelämmölle. Teen tuon ensin vain virtuaalisesti graafiksi niin seurailenpa tässä jonkun aikaa mitä se saisi aikaiseksi. (Mun vilp on vasta tehtaan tilausjonossa, niin onpa tässä aikaa viritellä koodia ennen ensi talvea )
 

kayttajatunnus

Aktiivinen jäsen
Mitenkäs tuo RankAdjusterPercentage toimii?

Jos RankAtZeroDegrees on esim 10 ja RankAdjusterPercentage 10%, lämmitetäänkö -2 asteessa 12 vai 12,1 tuntia?

Ja jos 12,1, niin pyöristetäänkö tämä 12 vai 13 tuntiin vai leikkaako skripti lämmityksen poikki kun on 0,1h kulunut tuosta kolmannestatoista tunnista?
 

Mikki

Hyperaktiivi
Mitenkäs tuo RankAdjusterPercentage toimii?

Jos RankAtZeroDegrees on esim 10 ja RankAdjusterPercentage 10%, lämmitetäänkö -2 asteessa 12 vai 12,1 tuntia?

Ja jos 12,1, niin pyöristetäänkö tämä 12 vai 13 tuntiin vai leikkaako skripti lämmityksen poikki kun on 0,1h kulunut tuosta kolmannestatoista tunnista?

Tuo pyöristetään aina tasalukuun pyöristyssääntöjen mukaisesti.
 

Sammypiru

Vakionaama
Ymmärsinkö oikein että vain kaksi scriptiä riittää 2.0:ssa, jos haluan metsästää vain halvimpia tunteja ja lisätä siihen pari boostertuntia?

Ja mikä noiden BackupHoursien rooli oli?

Ja monitorointi hoitaa ensimmäisen scriptin valvonnan ja scriptit pitää edelleen olla tässä järjestyksessä?

1669909074122.png
 

Oldipoldi

Jäsen
Kaksi scriptiä riittää.
BackupHours: Tällä valitaan tunnit jolloin rele on päällä jos API ei vastaa tai verkkoyhteys ei toimi.
Valvottavan scriptin ID:n voi vaihtaa tuolla "Monitoring" scriptissä, mutta sitä ei tarvitse tehdä jos scriptit kyseisessä järjestyksessä.
 

Mikki

Hyperaktiivi
Joo riittää noin. Ja katso ensimmöisen skriptin id ja sitten katsot monitorointi skriptistä että on yksi valvottu skripti "true" ja että sen valvoma id on oikein.

Ne backup hours on siltä varalta että nettiyhteys tai API on alhaalla.

Huomatkaa että tuolla on nuo uudet parametrit millä kukin releohjaus otetaan käyttöön. Sama monitoroinnissa että pitää ottaa käyttöön monitorointi. Oletuksena skriptit ei tee mitään.
 

Oldipoldi

Jäsen
Joo riittää noin. Ja katso ensimmöisen skriptin id ja sitten katsot monitorointi skriptistä että on yksi valvottu skripti "true" ja että sen valvoma id on oikein.

Ne backup hours on siltä varalta että nettiyhteys tai API on alhaalla.

Huomatkaa että tuolla on nuo uudet parametrit millä kukin releohjaus otetaan käyttöön. Sama monitoroinnissa että pitää ottaa käyttöön monitorointi. Oletuksena skriptit ei tee mitään.
Ei välttämättä olisi huono idea lisätä tuonne dokumentaatioosi ohjeistus miten testata, että tuo monitorointi scripti toimii oikein. Helppo kokeilla, että on oikeat ID:t valittuna.
 

Temez

Aktiivinen jäsen
Tein tuossa syyskuun alussa Telegrammiin sellaisen botin, joka hakee sähkönhintoja ja postailee niistä sitten vähän karun näköisen, mutta hyvällä tuurilla jopa informatiivisen kuvan siitä, että missä mennään pörssihintojen kanssa. Tässä tavoitteena oli antaa helposti ilman erillistä appia sähkönhinta tiedoksi joka päivä puhelimesi sosiaalisen median appiin nollaeffortilla (ei tarvitse mennä katsomaan sitä jostain erikseen). Telegrammiin on aika helppo koodata noita botteja, joten päädyin laittamaan siksi sinne. Pienellä effortilla luotu juttu, jonka ei ollutkaan tarkoitus olla kaunis ja ajatuksena jelpata päätöksenteossa manuaalisesti käynnistettävien kuormien osalta esim. vaikkapa kerrostaloasukkaille (eli pesisinkö pyykkiä tänään vai huomenna kello 7 alkaen).

Postasin tästä nyt tänne, kun käänsin sen lukemaan dataa Mikin luotettavasta API:sta päivittäin.

Kuva alla ja hommaa pääsee ilman mitään tunnuksia jne. testaamaan täältä painamalla "Preview channel": https://t.me/finnishspotprices

1669990576044.png
 

Sammypiru

Vakionaama
Otin eilen käyttöön 2.0 (kakspistenollan), alta nähtävissä scriptiin laittamani arvot.

1669993645959.png


Tällä osoitteella tarkistan kuinka monta tuntia tänään lämmitetään. Tänään 2.12 adjusted rank on osoitteen mukaan 13.
https://api.spot-hinta.fi/JustNowRa...aysAllowed=10&postalCode=32700&debugMode=true

Tämän https://api.spot-hinta.fi/Today mukaan klo 7:00 - 8:00 oleva tunti on rank 13.

Mutta scripti antoi releelle käskyn sammua tänään klo 7:00 ja VILP pysähtyi siihen kunnes taas alkoivat boosterhoursit klo 15 ja 16 jonka jälkeen vielä rank 12 tunti. Klo 18 pitäisi VILpin taas sammua.

1669993887201.png


Mistä etsiä vikaa kun Shelly ja sitä kautta lämmitys sammui klo 7:00?

Edit: @Mikki . Huomasitko tämän pohdintani?
 
Viimeksi muokattu:

mobbe

Vakionaama
Otin eilen käyttöön 2.0 (kakspistenollan), alta nähtävissä scriptiin laittamani arvot.

katso liitettä 82346

Tällä osoitteella tarkistan kuinka monta tuntia tänään lämmitetään. Tänään 2.12 adjusted rank on osoitteen mukaan 13.
https://api.spot-hinta.fi/JustNowRa...aysAllowed=10&postalCode=32700&debugMode=true

Tämän https://api.spot-hinta.fi/Today mukaan klo 7:00 - 8:00 oleva tunti on rank 13.

Mutta scripti antoi releelle käskyn sammua tänään klo 7:00 ja VILP pysähtyi siihen kunnes taas alkoivat boosterhoursit klo 15 ja 16 jonka jälkeen vielä rank 12 tunti. Klo 18 pitäisi VILpin taas sammua.

katso liitettä 82347

Mistä etsiä vikaa kun Shelly ja sitä kautta lämmitys sammui klo 7:00?
kello 07.00 oli käytetty jo 7 rank-tuntia loput 5 on skriptin mukaan tarkoitus ajaa vasta illalla
 

kayttajatunnus

Aktiivinen jäsen
En saa nyt jostain syystä relettä käyttäytymään halutunlaisesti. Toisessa skriptissä määritellään kaksi kertaa PriceAllowed arvo. Miten nuo eroavat toisistaan?
 

Mikki

Hyperaktiivi
En saa nyt jostain syystä relettä käyttäytymään halutunlaisesti. Toisessa skriptissä määritellään kaksi kertaa PriceAllowed arvo. Miten nuo eroavat toisistaan?
En ihan saa kiinni kysymyksestä. Mutta huomasithan että ne eri "settings" lohkot on tarkoitettu eri releiden ohjaukseen. Eli jos on yksi rele niin vain yksi rele asetetaan käyttöön ja muiden lohkojen asetukset voi unohtaa.
 

kayttajatunnus

Aktiivinen jäsen
En ihan saa kiinni kysymyksestä. Mutta huomasithan että ne eri "settings" lohkot on tarkoitettu eri releiden ohjaukseen. Eli jos on yksi rele niin vain yksi rele asetetaan käyttöön ja muiden lohkojen asetukset voi unohtaa.
Äh joo, pahoittelut. Jotenkin aivot ymmärsivät että kun on ensin relay 1 asetukset, sen jälkeen relay 2 asetukset ja sen jälkeen taas relay 1 asetukset että sille ykkösreleell asetetaan kahdessa eri kohdassa arvoja. Siinähän onkin tosiaan neljälle eri releelle arvot ja Shelly 1 plussassa vain yksi otetaan käyttöön.

Ei ihme jos ei toimi niin kuin haluaa jos laittaa kaksi noista ohjaamaan samaa relettä.
 

kayttajatunnus

Aktiivinen jäsen
Hienosti tuo lämpötilaperusteinen ohjaus näyttää ainakin yhden päivän perusteella toimivan. Jos sillä haluaa aloittaa niin laittaa vain reippaasti tunteja 0 asteen lähtökohdaksi ja jyrkän nousun. Saa ainakin kalleimmat tunnit leikattua.

Pumpun lokeista näkee kivasti paljonko pumpun käyntiaika on vuorokaudessa. Meillä se on vajaa 12h lämmitykselle ja vedelle kannattaa varata se pari tuntia.

Ajatuksena siis laittaa tariffiesto päälle sekä lisäyksen raja -25 astetta jolloin ei pitäisi tarvia muita säätöjä tehdä kun lämmitysvelka jää asteminuutteihin.

Ehkäpä huomenna saan jo "siirrettyä tuotantoon" :)
 

MakeHoo

Tulokas
Lämmitystunteja tulee 12-14, riippuen sen mukaan osuuko Rankin mukaiset tunnit booster tuntien päälle tai ei. Noiden ajatus juuri on, että voi varmistaa että jotain tapahtuu päivälläkin, kun muuten lämmitystunnit menevät todennäköisesti päivän ulkopuolelle.

Jos vaikka 8-18 väliltä haetaan kaksi halvinta tuntia (ajatus päivän pilkkomisessa), niin ei se hirmuisesti auta jos sitten lämmitetään 8-10 välillä heti aamuyön halpojen tuntien perään. Tuosta tultaisiin sitten seuraavaan vaatimukseen, että pitää olla X tuntia välissä tms...

Siksi nuo BoosterHours on simppeli ja periaatteessa toimiva tapa tehdä sama juttu "kiveenhakatusti".
Tein tuon jako-ominaisuuden itselleni, vaikka aiemmassa keskustelussa Mikki ei sitä pitänytkään tarpeellisena. Ajatuksena, että jos vaikka kvv:n vesi ei riitä koko päiväksi, niin voidaan lämmittää aamulla kulutettu vesi päivän edullisimpien tuntien aikana valmiiksi iltaa varten. Kiinteillä tunneilla tuota ei mielestäni kannata tehdä, koska tässä on tarkoitus optimoida hintaa. Tällöin päivän voi jakaa vaikka sarjoihin 0-8, 8-16 ja 16-24. Tämän lisäksi tein ominaisuuden, että lämmitystunteja voi joustaa toisen vuorokauden puolelle, jos siellä on edullisempia tunteja saatavilla. Silloin ei olla sidottuna vain vuorokausirajan sisään.

Jos haluaa jakaa tasaisemmin vaikka lämmitystä, niin välit voi jakaa tietysti joustavamminkin, esim. se ylempänä mainittu väli 8-18, niin sen kaksi tuntia jakaakin tunnin 8-13 välille ja toisen 13-18 välille, niin silloin tietää, että käyttö jakautuu tasaisemmin päivän mittaan, mutta silti välin edullisimmille tunneille.

Yksi merkittävä asia, jota tein myös eri tavalla, niin käyttäjän asetukset tallennetaan palvelimelle ja ohjausta kutsutaan käyttäjänimen ja ohjausnumeron perusteella. Tällöin säätöjen muokkaus tapahtuu nettisivun kautta, eikä kerran asennettua scriptiä tarvitse käydä muokkailemassa Shellyssä. Samalla ohjauksia voi luoda myös useampia, jolloin monikärkinen Shelly saa jokaisen kärjen ohjaustiedot suoraan yhdellä haulla.

Tässä on demo systeemistä, jos kiinnostaa vilkaista. Ei ole mikään hieno käyttöliittymä ja ehkä vähän vaikeasti ymmärrettävä, koska tein sen vain itseä varten, mutta ehkä siitä jotain käsitystä saa. Klikkailemalla sinisiä rukseja saa päivään lisättyä jakorajoja ja klikkailemalla vihreitä rukseja saa lisättyä jaon sisään tuntimäärää, jotka sitten laskelman mukaan sijoittuvat välin edullisimmille tunneille.
 

Mikki

Hyperaktiivi
Kyllähän tätä ohjausta voi monella tapaa tehdä. Käyttäjien asetuksia en varsinaisesti kuitenkaan haluaisi vastuulleni ottaa ja huolehtia sitten vaikka niiden migraatiosta uusiin formaatteihin kun ideat kehittyy.

Mielestäni skriptin päässä eri kärkien ohjaus on myös riittävän yksinkertainen juttu. Vaikka tietty serverilläkin asioita voi tehdä.

Jos porukka on sitä mieltä että jaksotus päivänsisäisesti on tarpeen niin toki sellaisetkin voi tehdä.
 

MakeHoo

Tulokas
Näinhän se on, tosin homma on sikäli vähän eri, että sinä tarjoat sitä kaikille avoimesti. Silloin hallinnointi on vähän erilaista, kuin muutamalla käyttäjällä. Itse räätälöin tätä juuri omiin ja muutaman kaverin tarpeisiin.
 

Sammypiru

Vakionaama
Tein tuon jako-ominaisuuden itselleni, vaikka aiemmassa keskustelussa Mikki ei sitä pitänytkään tarpeellisena. Ajatuksena, että jos vaikka kvv:n vesi ei riitä koko päiväksi, niin voidaan lämmittää aamulla kulutettu vesi päivän edullisimpien tuntien aikana valmiiksi iltaa varten. Kiinteillä tunneilla tuota ei mielestäni kannata tehdä, koska tässä on tarkoitus optimoida hintaa. Tällöin päivän voi jakaa vaikka sarjoihin 0-8, 8-16 ja 16-24. Tämän lisäksi tein ominaisuuden, että lämmitystunteja voi joustaa toisen vuorokauden puolelle, jos siellä on edullisempia tunteja saatavilla. Silloin ei olla sidottuna vain vuorokausirajan sisään.

Jos haluaa jakaa tasaisemmin vaikka lämmitystä, niin välit voi jakaa tietysti joustavamminkin, esim. se ylempänä mainittu väli 8-18, niin sen kaksi tuntia jakaakin tunnin 8-13 välille ja toisen 13-18 välille, niin silloin tietää, että käyttö jakautuu tasaisemmin päivän mittaan, mutta silti välin edullisimmille tunneille.

Yksi merkittävä asia, jota tein myös eri tavalla, niin käyttäjän asetukset tallennetaan palvelimelle ja ohjausta kutsutaan käyttäjänimen ja ohjausnumeron perusteella. Tällöin säätöjen muokkaus tapahtuu nettisivun kautta, eikä kerran asennettua scriptiä tarvitse käydä muokkailemassa Shellyssä. Samalla ohjauksia voi luoda myös useampia, jolloin monikärkinen Shelly saa jokaisen kärjen ohjaustiedot suoraan yhdellä haulla.

Tässä on demo systeemistä, jos kiinnostaa vilkaista. Ei ole mikään hieno käyttöliittymä ja ehkä vähän vaikeasti ymmärrettävä, koska tein sen vain itseä varten, mutta ehkä siitä jotain käsitystä saa. Klikkailemalla sinisiä rukseja saa päivään lisättyä jakorajoja ja klikkailemalla vihreitä rukseja saa lisättyä jaon sisään tuntimäärää, jotka sitten laskelman mukaan sijoittuvat välin edullisimmille tunneille.
Hyvältä näyttää.

Miten tuo releen kutsuosoite Shellyyn laitettaisiin? Tein testiohjausksen nro4, menisikö tuo niin että kahdeksan halvinta etsitään väliltä 15-07? Ja miten se estettäisiin ettei kukaan muu sorki minun tekemää ohjausta?
 

MakeHoo

Tulokas
Hyvältä näyttää.

Miten tuo releen kutsuosoite Shellyyn laitettaisiin? Tein testiohjausksen nro4, menisikö tuo niin että kahdeksan halvinta etsitään väliltä 15-07? Ja miten se estettäisiin ettei kukaan muu sorki minun tekemää ohjausta?
Kyllä, valitsit halvimmat 8 tuntia väliltä 15-07, mikä on siinä mielessä ihan järkevä aikaväli, että uudet hintatiedot seuraavalle päivälle on tulleet tuohon klo 15 mennessä käyttöön. Käyttö välillä 7-15 on estetty. Tuo on vain demotunnus, sitä ei kannata käyttää oikeaan ohjaukseen. Pitäisi tehdä käytössä olevan oikean systeemin puolelle sinulle tunnus, jos haluat sitä kokeilla. Silloin vain sinä pääset sitä muokkaamaan omilla tunnuksilla.

Shellyllä kutsutaan esimerkiksi yhden kärjen ohjausta varten tyyliin: http://oikeaosoite/spotprice.cgi?user=oikeakäyttäjä&output=0 ja Shellylle joko tuolta muokkaamalla Mikin scriptiä tai sitten tein valmiiksi tätä rajapintaa ja monikärkiohjausta varten erilaisen scriptin, joka on yleismaailmallinen tätä rajapintaa varten. Ohjaustyyppi ja asetukset muutellaan aina tuolta palvelimelta, skripti säilyy muuttumattomana. Laitetaanko yksityisviestiä, niin voidaan kokeilla?
 

riku

Aktiivinen jäsen
Moi, Kiitos ensiksi apista!
Tässä on porukka koodaillu jotai shellyä ei sano mitään,
Mun kotiautomaatio on tehty yli 10v sitten olen scratchistä tehnyt 1-wire väylällä ja raspberryllä oikeen oldschool menolla.
Juttu on se, että pitäisi saada joku shelli tai python scripti joka lukee tuo tuolta ja tekee sit jotain (siis käytän sqlite tietokantaa ohjauksiin)
Ajattelin vain, jos jollai valmiina jotai millä pääsis pienillä muokkauksilla ettei tarvis uusiksi koodata, ruostunu meinaa täs ajas kaikki koodausjutut :D
Ajatus olisi ohjata pörssisähköllä tunnin välein varaajan lämpötila-anturia releellä(joka muuntaa resistanssia) päälle/pois ja näin ollen varaajan pumppu(vilp) sammuu. ei mitää shelly, ei esp, ei mitää virityksiä, puhdas linux shelli (bash) tai python2 järjestelmäkin on 10v vanha et se ei oo vaihtoehto muuttaa :D
 

Mikki

Hyperaktiivi
Kiitoksia @riku.

Itse lähtisin rakentamaan ideaa cronilla ajetun bash skriptin varaan. Tämän tyyppisellä skriptillä hakisi 200/400 statustiedon.


Ja kutsu skriptissä tähän APIin:
(3 halvinta tuntia tai alle 5c hinta)

Jos skriptillä kutsuu sitten säätöä suoraan niin ei tarvisi oikeastaan muuta. Cronilla kerran tunnissa skrptin ajo.
 

Sammypiru

Vakionaama
Mistäs Mikkin 2.0 hakikaan sääennusteen?

Tänään näyttää average temperatureksi -3°C, vaikka pakasta ainakin näin aamutuimaan on -10°C.
 

Mikki

Hyperaktiivi
Mistäs Mikkin 2.0 hakikaan sääennusteen?

Tänään näyttää average temperatureksi -3°C, vaikka pakasta ainakin näin aamutuimaan on -10°C.
Yr.no ja sehän on siis 24h liukuva ennuste eteenpäin. Mitäs näyttää tulevalle vuorokaudelle muiden firnojen ennuste?
 

Sammypiru

Vakionaama
Yr.no ja sehän on siis 24h liukuva ennuste eteenpäin. Mitäs näyttää tulevalle vuorokaudelle muiden firnojen ennuste?

OK, näyttää tuo average kyllä tunti tunnilta korjaantuvat, nyt näyttää -5°C. Ilmatieteenlaitoksesta tulkitsin että seuraavat 24h olisi kutakuinkin -5,8°C.
 

MiSä

Jäsen
Eipä kestä. Ja tuolta löydät skriptin pohjaksi, joita vähän tuunaamalla voit tehdä mainitsemasi asiat:
Saisko tuota skriptiä muokattua shelly pro2:lle. Olis muuten täytellinen ohjelman pätkä, mutta mulla menee sormi suuhun tuon ohjelman muokkaamisen kanssa. Tarttis semmosen skriptin pätkän et kalliin hinnan aikaan olis kosketin kiinni ja halpojen hintojen aikaan auki
 

Mikki

Hyperaktiivi
Saisko tuota skriptiä muokattua shelly pro2:lle. Olis muuten täytellinen ohjelman pätkä, mutta mulla menee sormi suuhun tuon ohjelman muokkaamisen kanssa. Tarttis semmosen skriptin pätkän et kalliin hinnan aikaan olis kosketin kiinni ja halpojen hintojen aikaan auki

Ei ole vaikea muutos.... vaihdat nämä kaksi riviä toisinpäin (merkattu keltaisella), niin homma toimii noin kun haluat. Mutta sitten pitää ajatella myös "Rank" toisinpäin. Eli jos haluat vaikka neljä kalleinta tuntia releen päälle, niin asetat rankiksi 20.

Näin sitten kun on kallis tunti, API palauttaa 400 statuksen, mutta rele meneekin päälle. Ja jos Rank on vaikka 5, niin rajapinta palauttaa 200 ja sitten rele menee pois päältä.

Ja siis kyse näistä uusimmista versioista skriptiä:

1670267423018.png
 
Viimeksi muokattu:

Sammypiru

Vakionaama
Ei ole vaikea muutos.... vaihdat nämä kaksi riviä toisinpäin (merkattu keltaisella), niin homma toimii noin kun haluat. Mutta sitten pitää ajatella myös "Rank" toisinpäin. Eli jos haluat vaikka neljä kalleinta tuntia releen päälle, niin asetat rankiksi 20.

Näin sitten kun on kallis tunti, API palauttaa 400 statuksen, mutta rele meneekin päälle. Ja jos Rank on vaikka 5, niin rajapinta palauttaa 200 ja sitten rele menee pois päältä.

Ja siis kyse näistä uusimmista versioista skriptiä:



katso liitettä 82471

Tämä oli hyvä pointti. Itselläni kun on kaksi relettä, niin toisella voi hakea vaikka 6 halvinta tuntia ja toisella 12 kalleinta ja väliin jäävät ovat sitten keskihintaisia.

Kun 6 halvinta -rele vetää -> VILP käyköön 100% teholla ja tulistusvaraaja ON
Kun 12 kalleinta -rele vetää -> Pelit sammuksiin.
Kun kumpikaan ei vedä -> VILP käy Demand control 10%
 

MiSä

Jäsen
Ei ole vaikea muutos.... vaihdat nämä kaksi riviä toisinpäin (merkattu keltaisella), niin homma toimii noin kun haluat. Mutta sitten pitää ajatella myös "Rank" toisinpäin. Eli jos haluat vaikka neljä kalleinta tuntia releen päälle, niin asetat rankiksi 20.

Näin sitten kun on kallis tunti, API palauttaa 400 statuksen, mutta rele meneekin päälle. Ja jos Rank on vaikka 5, niin rajapinta palauttaa 200 ja sitten rele menee pois päältä.

Ja siis kyse näistä uusimmista versioista skriptiä:

katso liitettä 82472
Mahtavaa Kiitoksia!
 

Mikki

Hyperaktiivi
Minulla on kyllä harkinnassa tuolle parametrin tekeminen, kun tuota on privaatisti kysytty aiemminkin ja myös emailin puolella. Selkeä parametrin releen parametreihin voisi olla asiallisempi toteutus.

Käytännössä tuo olisi siis "InvertRankLogic" tyyppinen relekohtainen asetus true/false.
 

Sammypiru

Vakionaama
Minulla on kyllä harkinnassa tuolle parametrin tekeminen, kun tuota on privaatisti kysytty aiemminkin ja myös emailin puolella. Selkeä parametrin releen parametreihin voisi olla asiallisempi toteutus.

Käytännössä tuo olisi siis "InvertRankLogic" tyyppinen relekohtainen asetus true/false.
Ajaako muuten Shellyn asetusten "Invert Switch" saman asian?

1670273039077.png
 

Mikki

Hyperaktiivi
@kayttajatunnus : Tein juuri tuossa commitin Githubiin, jossa on asetuksissa uusi "Inverted" parametri. Sillä voi kääntää releen logiikan toisinpäin:
Yritän pitää toiminnot skriptin "sisällä", ettei tarvitse hyppiä muihin Shellyn asetuksiin ja sitten miettiä miten ne toiimi yhteen. Kokeileppa noita uusia versioita skriptistä jos testailet.
 

kayttajatunnus

Aktiivinen jäsen
Ei tosiaan ainakaan pikaisen testauksen perusteella ole mitään vaikutusta skriptin toimintaan vaikka laittaa sen invert-asetuksen päälle.

Pitäisi kaivaa läppäri esiin ja ajaa uudet skriptit sisään :)
 
Back
Ylös Bottom