Git Product home page Git Product logo

Comments (19)

Sammeli100 avatar Sammeli100 commented on May 24, 2024 1

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ä.

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

Sammeli100 avatar Sammeli100 commented on May 24, 2024

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.

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

@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.

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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!

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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.

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

@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

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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ä.

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

Toistaiseksi näyttää toimivan ihan mainiosti

from shelly-porssisahko.

linnajuk avatar linnajuk commented on May 24, 2024

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

Jep näillä näkymin huomenna voisin julkaista

from shelly-porssisahko.

jisotalo avatar jisotalo commented on May 24, 2024

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ä.

from shelly-porssisahko.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.