jisotalo / shelly-porssisahko

Nordpool-pörssisähköohjaus Shelly-releisiin - Nordpool price control for Shelly relays
https://jisotalo.fi/shelly-porssisahko
GNU Affero General Public License v3.0
39 stars 11 forks source link

Halutun jakson määritteleminen #23

Closed linnajuk closed 6 months ago

linnajuk commented 7 months ago

Voisiko tehdä yhden itse määriteltävän jakson haluamalleen ajalle. Tarve olisi klo 22-07 välille (yösiirto) ja siihen voisi varata haluamansa tuntimäärän samoilla periaatteilla kuin nytkin olemassa oleville jaksoille.

jisotalo commented 7 months ago

Moi!

Tästä oli jossain yhteydessä puhettakin joskus, mutta kun laitoit viestin tajusin, että tämähän on aika helppo tehdä. Eli eiköhän tuo onnistu.

Ainoa ero on se, että koska skripti toimii aina vuorokauden sisällä, aikaväli 22-07 ei onnistu. Sen sijaan 00-07 onnistuu. Tämän pystyisi kiertämään sillä, että aikavälin sijaan ruksittaisiin tunnit, joista halvimmat valitaan. Tällöin vaan logiikka vaatisi isompia muutoksia.

Täytyy miettiä vielä parasta toteutusta, mutta tavalla tai toisella jotain kyllä pystyy asialle tekemään.

image

linnajuk commented 7 months ago

Hei,

Juuri noin kuten kuvassa on. Pystyy valitsemaan vapaan valinnan tai kiinteät jaksot (24,12, jne). Itsekkin mietin että ajanjakso joka kohdistuu kahdelle vuorokaudelle on hankala toteuttaa. Omiin tarpeisiin saman vuorokauden puolella oleva ajanjakso riittää.

Minulla on kaksi tarvetta. Toisessa tapauksessa ohjaan lämminvesivaraajan (120l 3-vaihe) kontaktoria Nediksen kytkimellä. Tuo Nediksen kytkin on vielä kestänyt kontaktorista syntyviä piikkejä. Saa nähdä miten Shellyn käy. Toinen tapahan olisi ohjata suoraan jokaista vaihetta erikseen kolmella eri Shellyllä, jotta voisi seurata myös energian kulutusta (Shelly plus 2pm:iä minulla on).Tällä hetkellä kännykällä ohjaaminen on vähän turhauttavaa. Toinen case on 1500l vesivaraajan (talon lämmitystä varten) ohjaaminen jota en ole vielä automatisoinut. Siinä on kolme kpl 6kW vastusnippuja (jokaisessa 3 kpl 2kW vastuksia), eli yhteensä 18kW. Jos jokaisen vastuksen kulutuksen haluaisi mitata tarvitsisi 9 erillistä Shellyä. Siihen en lähde (ja vähän epäilyttää Shellyn lämpeneminen jos siitä menee koko ajan melkein 10A virtaa läpi). Nyt on käytössä yösähköohjaus (kuten oli aiemmin tuossa toisessakin lämminvesivaraajassa). Ottaa sen pois ja ohjaa Shellyllä kontaktoria. Käytännössä säästöä syntyy siitä kun lämmitys ei ala heti klo 22 yösähköohjauksella. Useimmiten vuorokauden kaksi viimeistä tuntia ovat kalliimpia kuin vuorokauden ensimmäiset tunnit ennen klo 7:mää. Kalliin sähkön aikana olen lämmittänyt tuota isoa vesisäilötä puupannun kautta (jossa myös öljypoltin).

Minulla on myös täyssähköauto jonka latauksessa pörssisähkö on oiva juttu. EI ole tarvinnut paljoakaan ladata kalliin sähkön aikana. Siihen on saatavissa sähkönmyyjiltä omia ratkaisuja joten sitä ei tarvitse mietiskellä. Auton akuissa on suuri energiavarasto (minun tapauksessa 78kWh). Monesti auto seisoo monta päivää pihassa kun tekee etätöitä. Sen energiavaraston kun saisi tehokäyttöön niin se olisi hyvä juttu. Ehkä jatkossa homma onnistuu. Jossain mallissahan on jo 3kW lähtö.

T: Jukka

la 17. helmik. 2024 klo 9.03 Jussi Isotalo @.***) kirjoitti:

Moi!

Tästä oli jossain yhteydessä puhettakin joskus, mutta kun laitoit viestin tajusin että tämähän on aika helppo tehdä. Eli eiköhän tuo onnistu.

Ainoa on se, että koska skripti toimii aina vuorokauden sisällä, aikaväli 22-07 ei onnistu. Sen sijaan 00-07 onnistuu.

Täytyy miettiä vielä parasta toteutusta, mutta nopea testi kyllä vaikuttaisi homman toimivan.

image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/9a656173-757b-4c85-b754-6a13cdcf2502

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1949863748, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSEGVMBEFCJANH55C43YUBI5JAVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBZHA3DGNZUHA . You are receiving this because you authored the thread.Message ID: @.***>

Sammeli100 commented 7 months ago

Moi, Olen käyttänyt Shelly:n lutikoiden pörssisähköohjausta jo runsaan vuoden ajan. Olen käyttänyt erästä toista saamaani scriptiä, jossa käytön parametrit sijoitetaan suoraan scriptin source codessa esiteltyihin parametreihin. Tässä scripti käynnistyy randomisti välillä 18-18.15. Olen laittanut optimointijakson alkamaan klo 20, se päättyy sitten seuraavan vuorokauden klo 18 (sisältäen yhden yhtenäisen optimointijakson). Tämä scripti käsittää siis tilanteen, jossa halvimmat yhtäjaksoiset tunnit osuvat klo 00 molemmin puolin, tosin olen excluudannut optimoinnista aikavälin klo 18-20. Onko Jussin koodia mahdollista kehittää niin, että tällainen tilanne olisi huomioitu (aika usein halvin jakso osuu klo 00 molemmin puolin). Siis vuorokauden alun sijasta voisi käyttää optimointivuorokauden alkuun jonkin muun kellonlyömän?

t. Timo P.S. Olen reklamoinut Shellylle siitä, että heidän tuotettaan on lähes mahdoton factory-resetoida siten, että tuotteen voisi esitellä jonkun toisen Wifi-modeemin alle. Shelly esitti minulle menetelmän, jolla asian voi tehdä. Tämä on vaan pirullisen mutkikas vaikka onnistuikin lopulta. Shelly lupasi kehittää tuotettaan siten, että uudelleen-esittely toisen Wifi:n alaisuuteen onnistuisi yhtä helposti kuin kaupasta ostetun neitsyt-tuotteen (Shelly Plus 1 PM) esittely käy. P.P.S Shelly cloudissa on näkyvissä vipu, jolla kerrotaan mikä scripti on käytössä. En ole varma onko Jussin scriptissä tällä vivulla vaikutusta? Ainakin pitäisi olla, jos laitteeseen on talletettu useampia scriptejä. Toisaalta Jussin scriptissä optimoinnin tuottamat ohjausjaksot eivät näy shelly aplikaation scheduleissa. Näin laitteen hengissä-oloa voi etänä tarkastella vain activity logista.

jisotalo commented 7 months ago

@Sammeli100

Skripti toimii aina vain nykyisen vuorokauden sisällä. Tämä ei tule näillä näkymin muuttumaan.

Yksi tapa miten tätä nyt työn alla olevaa ominaisuutta voisi kehittää, on että aikavälien sijaan voisi ruksia tunnit, joista sitten valitaan halvimmat.

Tällöin voisi valita esim tunnit 22, 23 ja 00-06, eli valitaan x halvinta tuntia vuorokauden ensimmäisten ja kahden viimeisen tuntien joukosta. Mutta silloinkin tietysti toimitaan saman vuorokauden sisällä. Jotenkin alla olevaan tapaan: image

Toimintaa ei tosiaan näe applikaatiosta tällä hetkellä. Ainoastaan tietysti että käykö skripti ja mikä on lähdön tila.

linnajuk commented 7 months ago

Hei,

Ajanjakson jakauttaminen kahdelle vuorokaudelle on tosiaan haasteellista. Tuossa sinun ruksausmallissa on haaste joka tulee parhaiten esille esimerkin avulla. Oletetaan että kaksi tuntia yössä riittää lämmittämään vettä varastoon sen verran, että klo 7 voi mennä suihkuun. Jos maanantaina kaksi halvinta tuntia osuu klo 0-2 ja tiistaina kahteen viimeiseen tuntiin 22-00, niin tiistai-aamuna suihkusta tulee viileätä vettä. Tuo alkuperäinen ehdotus valita oma aikaväli esim. 0-7 on ihan ok. Käytännössä näkyy lisäksi olevan niin että yöllä hinnat ovat halvempia kuin 22-00.

-Jukka

ma 19. helmik. 2024 klo 19.50 Jussi Isotalo @.***) kirjoitti:

@Sammeli100 https://github.com/Sammeli100

Skripti toimii aina vain nykyisen vuorokauden sisällä. Tämä ei tule näillä näkymin muuttumaan.

Yksi tapa miten tätä nyt työn alla olevaa ominaisuutta voisi kehittää, on että aikavälien sijaan voisi ruksia tunnit, joista sitten valitaan halvimmat.

Tällöin voisi valita esim tunnit 22, 23 ja 00-06, eli valitaan x halvinta tuntia vuorokauden ensimmäisten ja kahden viimeisen tuntien joukosta. Mutta silloinkin tietysti toimitaan saman vuorokauden sisällä. Jotenkin alla olevaan tapaan: image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/0cf6a05a-c0f8-49ac-a44b-5d96fba5d822

Toimintaa ei tosiaan näe applikaatiosta tällä hetkellä. Ainoastaan tietysti että käykö skripti ja mikä on lähdön tila.

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1952950683, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSCXUYGKELNAGMD2E7LYUOGHVAVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJSHE2TANRYGM . You are receiving this because you authored the thread.Message ID: @.***>

jisotalo commented 7 months ago

Jep. Eiköhän tuo aikaväli ole hyvä vaihtoehto.

Sammeli100 commented 7 months ago

Moi Jussi ja Jukka, Ajateltuani asiaa vähän syvemmin tulin johtopäätökseen, että ei tuo Jussin algoritmi välttämättä kuitenkaan missaa halvimpia tunteja, kun algoritmi voi vapaasti allokoida vuorokauden aikana halvimpia tunteja ilman että ne ovat peräkkäisiä. Siispä Jussin algoritmi optimoi vuorokauden sisällä kaikki halvat tunnit ja toistaiseksi käyttämäni algoritmi optimoi vain yhden aikavälin, jolloin aikavälin hinnat osuvat "laakson pohjalle" mahdollisimman hyvin klo 20-18 välisellä ajalla. Jukan kuvaama "kahden tunnin veden lämmitys" probleema on kyllä totta, jos tunnit osuvat kuvatulla tavalla. MIelestäni Jussin algoritmista saisi "täydellisen", jos 24 tunnin tarkastelujakson alun saisi erikseen määritellä. Aika mielenkiintoinen optimintitehtävä tässä kuitenkin on kyseessä.

jisotalo commented 6 months ago

Moro @Sammeli100 ja @linnajuk

Nyt sain vihdoin aikaseksi uuden version testaukseen. Olisitteko kiinnostuneita kokeilemaan? Vaatii pidempää testiä ennen kuin voi julkisesti julkaista.

Eli nyt voi valita lisäksi joko yhden tai kaksi omaa jaksoa: image image

Tässä toteutus tämän päivän tunneilla tuolla kahden jakson asetuksella. Eli valitaan klo 00-06 väliltä kolme halvinta tuntia ja kello 18-21 väliltä yksi halvin tunti: image

Koodi tähän löytyy alta (eli copy-pastee tuon vanhan tilalle Shellyn hallinnassa): https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

Kiitos jo etukäteen!

linnajuk commented 6 months ago

Hei,

Kiitos!

Latasin juuri uuden koodin. Kun kello oli jo paljon, niin tuli testattua sekin, että jakso 22-23 on sama kuin 22-24. Niinhän sen pitää ollakin ... vai . ? Ilmeisesti koodisi muuttaa esim jakson 22-05 jaksoksi 22-23. Pitäisikö muuttaa jo "lennossa" tuon 05 arvon --> 23, jotta huomaisi ettei siihen voi laittaa mitä vaan. Pitää jatkaa huomenna testausta kun tunteja riittää enemmän.

T:Jukka

pe 1. maalisk. 2024 klo 13.26 Jussi Isotalo @.***) kirjoitti:

Moro @Sammeli100 https://github.com/Sammeli100 ja @linnajuk https://github.com/linnajuk

Nyt sain vihdoin aikaseksi uuden version testaukseen. Olisitteko kiinnostuneita kokeilemaan? Vaatii pidempää testiä ennen kuin voi julkisesti julkaista.

Eli nyt voi valita lisäksi joko yhden tai kaksi omaa jaksoa: image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/66644126-01dc-49ca-8cba-c6de285e5544 image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/d924cc43-5864-4312-a47a-4d5403736a65

Tässä toteutus tämän päivän tunneilla tuolla kahden jakson asetuksella. Eli valitaan klo 00-06 väliltä kolme halvinta tuntia ja kello 18-21 väliltä yksi halvin tunti: image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/04b7f024-9636-4293-a276-2c1118479b7f

Koodi tähän löytyy alta (eli copy-pastee tuon vanhan tilalle Shellyn hallinnassa):

https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

Kiitos jo etukäteen!

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1973016585, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSDVI6X2FOK7VYAQ2GTYWBQX7AVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZTGAYTMNJYGU . You are receiving this because you were mentioned.Message ID: @.***>

jisotalo commented 6 months ago

Tuo on vähän kyllä kieltämättä epäselvä.

Ajanjakso siis tarkoittaa kellonaikoja, eli esim. 18 - 23 tarkoittaa, että valitaan väliltä 18.00-23.00 halvimmat tunnit. Eli 23 .00 alkava tunti ei ole mukana. Vuorokausi siis on tuossa mielessä 00-24.

Jakso 22-05 on lähtökohtaisesti virheellinen, koska skripti edelleen toimii vuorokauden sisällä. Itsellä näköjään skripti ei edes toimi sillä. Täytyy lisätä esto syöttää muuta kuin 00-24 arvoja.

jisotalo commented 6 months ago

@linnajuk

Nyt on uusi versio. Laitoin tallentaessa tsekit, että aikavälit ovat loogiset. Lisäsin myös kokeeksi :00 asetusten perään, jos selventäisi? image

Skripti löytyy samasta osoitteesta (versio 2.12.1): https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

linnajuk commented 6 months ago

Hei,

Kiitos :00 lisäyksistä. Nyt logiikan oivaltaa luontaisesti. Ja testasin, että 22:00-05:00 muuttuu arvoiksi 22:00-22:00 ja orvot 05:00-02:00 arvoiksi 05:00 - 05:00. Se on parempi ettei tapahdu vahingossa kytkentöjä jos laittaa epäloogisesti/epähuomiossa vääriä aikoja.

Jatkan testailua ...

T: Jukka

la 2. maalisk. 2024 klo 9.07 Jussi Isotalo @.***) kirjoitti:

Nyt on uusi versio. Laitoin tallentaessa tsekit, että aikavälit ovat loogiset. Lisäsin myös kokeeksi :00 asetusten perään, jos selventäisi? image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/0b36f25f-1dd6-4a4b-9f12-e1a4347d9511

Skripti löytyy samasta osoitteesta (versio 2.12.1):

https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1974566467, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSCYRE7RAXCHBYEL4Z3YWF3D7AVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUGU3DMNBWG4 . You are receiving this because you were mentioned.Message ID: @.***>

linnajuk commented 6 months ago

Hei,

Toivottavasti et hermostu Jussi kun kommentoin vähän epäolennaisista / Ilillukanvarsi asioista. Testasin mitä tuntimääräksi voi laittaa (kts kuva alla). Ilmeisesti nyt kaikki käy mikä on integeriksi konvertoitavissa. Kokeilin negatiivisia arvoja ja isoja positiivisia arvoja. Testasin myös stringillä "abc" ja se muuntuu tyhjäksi.

Ymmärrän, että tässä ei ole tarkoitus hifistellä käyttöliittymän tarkistuksilla ja monesti kun yrittää tehdä liian hienoa, niin koodi monimutkaistuu ja se tulee monimutkaisemmaksi.

Ajattelin kuitenkin ilmoittaa havaintoni. Varmaan itsekkin olet puntaroinut mihin pistää rajan hifistelylle :-).

T: Jukka

[image: image.png]

la 2. maalisk. 2024 klo 9.42 Jukka Linna @.***) kirjoitti:

Hei,

Kiitos :00 lisäyksistä. Nyt logiikan oivaltaa luontaisesti. Ja testasin, että 22:00-05:00 muuttuu arvoiksi 22:00-22:00 ja orvot 05:00-02:00 arvoiksi 05:00 - 05:00. Se on parempi ettei tapahdu vahingossa kytkentöjä jos laittaa epäloogisesti/epähuomiossa vääriä aikoja.

Jatkan testailua ...

T: Jukka

la 2. maalisk. 2024 klo 9.07 Jussi Isotalo @.***) kirjoitti:

Nyt on uusi versio. Laitoin tallentaessa tsekit, että aikavälit ovat loogiset. Lisäsin myös kokeeksi :00 asetusten perään, jos selventäisi? image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/0b36f25f-1dd6-4a4b-9f12-e1a4347d9511

Skripti löytyy samasta osoitteesta (versio 2.12.1):

https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1974566467, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSCYRE7RAXCHBYEL4Z3YWF3D7AVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUGU3DMNBWG4 . You are receiving this because you were mentioned.Message ID: @.***>

linnajuk commented 6 months ago

Hei

Saakohan kuvan mukaan liitteenä paremmin.

T: JUkka

la 2. maalisk. 2024 klo 12.20 Jukka Linna @.***) kirjoitti:

Hei,

Toivottavasti et hermostu Jussi kun kommentoin vähän epäolennaisista / Ilillukanvarsi asioista. Testasin mitä tuntimääräksi voi laittaa (kts kuva alla). Ilmeisesti nyt kaikki käy mikä on integeriksi konvertoitavissa. Kokeilin negatiivisia arvoja ja isoja positiivisia arvoja. Testasin myös stringillä "abc" ja se muuntuu tyhjäksi.

Ymmärrän, että tässä ei ole tarkoitus hifistellä käyttöliittymän tarkistuksilla ja monesti kun yrittää tehdä liian hienoa, niin koodi monimutkaistuu ja se tulee monimutkaisemmaksi.

Ajattelin kuitenkin ilmoittaa havaintoni. Varmaan itsekkin olet puntaroinut mihin pistää rajan hifistelylle :-).

T: Jukka

[image: image.png]

la 2. maalisk. 2024 klo 9.42 Jukka Linna @.***) kirjoitti:

Hei,

Kiitos :00 lisäyksistä. Nyt logiikan oivaltaa luontaisesti. Ja testasin, että 22:00-05:00 muuttuu arvoiksi 22:00-22:00 ja orvot 05:00-02:00 arvoiksi 05:00 - 05:00. Se on parempi ettei tapahdu vahingossa kytkentöjä jos laittaa epäloogisesti/epähuomiossa vääriä aikoja.

Jatkan testailua ...

T: Jukka

la 2. maalisk. 2024 klo 9.07 Jussi Isotalo @.***) kirjoitti:

Nyt on uusi versio. Laitoin tallentaessa tsekit, että aikavälit ovat loogiset. Lisäsin myös kokeeksi :00 asetusten perään, jos selventäisi? image.png (view on web) https://github.com/jisotalo/shelly-porssisahko/assets/13457157/0b36f25f-1dd6-4a4b-9f12-e1a4347d9511

Skripti löytyy samasta osoitteesta (versio 2.12.1):

https://raw.githubusercontent.com/jisotalo/shelly-porssisahko/dev-custom-periods/dist/shelly-porssisahko.js

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1974566467, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSCYRE7RAXCHBYEL4Z3YWF3D7AVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUGU3DMNBWG4 . You are receiving this because you were mentioned.Message ID: @.***>

jisotalo commented 6 months ago

Eipä tullut kuvaa perille, ne täytyy varmaan laittaa suoraan githubiin eikä sähköpostiin.

Tosiaan, liikaa en ole ruvennut validointia rakentamaan, jotta saadaan säästettyä muistia. Toki sen verran pitää olla, että syötteillä ei pysty rikkomaan koko skriptiä.

jisotalo commented 6 months ago

Toistaiseksi näyttää toimivan ihan mainiosti

linnajuk commented 6 months ago

Samoin .... hyvin tuntuu toimivan. Siitä vaan julkiseksi.

ma 4. maalisk. 2024 klo 21.50 Jussi Isotalo @.***> kirjoitti:

Toistaiseksi näyttää toimivan ihan mainiosti

— Reply to this email directly, view it on GitHub https://github.com/jisotalo/shelly-porssisahko/issues/23#issuecomment-1977342052, or unsubscribe https://github.com/notifications/unsubscribe-auth/BGG4DSCYAKAW7DFWSC6Q4IDYWTF7PAVCNFSM6AAAAABDMXOOA6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGM2DEMBVGI . You are receiving this because you were mentioned.Message ID: @.***>

jisotalo commented 6 months ago

Jep näillä näkymin huomenna voisin julkaista

jisotalo commented 6 months ago

Dodii, uusi versio on ulkona. Päivitäppä @linnajuk tuohon 2.12.2-versioon, ettei jää kehitysversiota ajoon.

Suljen tämän issuen, mutta jos on ongelmia, laittakaa ihmeessä viestiä.