Boileri või põrandakütte börsihinna põhine juhtimine Shelly nutireleega.

Shelly releedel endal küll otsest börsihinna põhist lülitamise funktsiooni ei ole, kuid selle eest on Shelly Plus ja PRO seeria seadmetel skriptimise tugi mille abil on võimalik see juurde lisada.

Täpselt seda tegigi Lari Lohikoski, kes lõi oma Shelly Plus 1PM releele skripti, mis otsib päeva peale kõige odavama perioodi boileri sisse lülitamiseks. Kuna tema lahenduse kirjeldus ja õpetus on soomekeelne, siis katsume siia teha eestikeelse kokkuvõtte.

Antud skript peaks töötame kõigis Shelly Plus ja PRO seeria toodetes, kuid Shelly PRO 4PM jaoks on vaja skripti pisut muuta, kuna PRO 4PM’il kanaleid rohkem kui teistel. Nutividin.ee ei ole antud skripti loomisega kuidagi seotud seega skripti kasutamine omal vastutusel!

Kuidas skripti kasutada?

Esmalt on vaja Shelly relee paigaldada vastavalt konkreetse tootega kaasas olnud juhistele. Shelly seadme liidesesse on vaja kopeerida skript, mis siis iseseisvalt toimetama asub. Skript küsib iga päev uued börsi hinnad ning valib välja tunnid millal tarbija sisse lülitada. Kui mitmeks tunniks peaks boiler päevas sisse lülitama saab määrata skriptis (skripti muutmise juhis allpool).

Skripti saab alla laadida siit https://elspotcontrol.netlify.app/find_cheapest.js

  1. Minge aadressile home.shelly.com ja leidke Shelly relee millele soovite antud skripti lisada. Valige Settings -> Device Info ja seejärel Device IP. See on teie seadme aadress teie koduvõrgus. Aadressile vajutades (kui olete koduvõrgus) avaneb Shelly veebiliides.
  2. Kõigepealt veenduge, et seadmel on viimane püsivara versioon. Plus seeria puhul peab püsivara versioon olema vähemalt 0.11.1
  3. Valige veebiliideses Scripts.
  4. Vajutage Add Script. Määrake skriptile nimi ning vajutage Save. Kopeerige lingilt saadud skript avanenud aknasse.
  5. Vajutage nupule Save and run, skripti akna all olevas konsoolis peaks nüüd näha olema kuidas skript küsib värskeid börsihindasid ning määrab sisse ja välalülitamise graafikuid. Kui teete seda enne järgmise päeva börsihindade avaldamist (tavaliselt kell 15:00), jookseb skript kokku! Sel juhul saate kas:
    • käivitada skript uuesti peale kella 15:00
    • ajutiselt muuta period_start ja period_length sätteid nii, et skaneeritakse ainult kellaaegu käesoleval päeval (näiteks period_start=20, period_length=1). On oluline, et et skript oleks vähemalt ühe korra edukalt läbi jooksnud, sest siis määrab skript ka ise omale taas käivitamise aja.

Skripti käivitumisel hangib skript oma taust-teenusest teadaolevad börsihinnad ja otsib seal vastavalt oma seadistustele soovitud pikkusega odavaimat perioodi soovitud ajavahemikus. Pärast seda eemaldab see Shelly’st kõik olemasolevad taimerid ja seab kolm uut:

  1. mis lülitab relee sisse
  2. mis lülitab relee välja
  3. taimer, mis taaskäivitab skripti määratud ajal, vaikimisi iga päev kell 18:00 (see taimer pole kasutajaliideses otseselt nähtav, kuid seda saab näha selle lingi kaudu, asenda oma Shelly IP siin http://ShellyIP/rpc/Schedule.List ).

Seadete muutmine

Skript kasutab vaikimisi Soome börsi piirkonna hinnainfot. Selle jaoks, et kasutada Eesti hinnapiirkonna infot on vaja skripti lõpus muuta https://elspotcontrol.netlify.app/spotprices-v01-FI.json aadress https://elspotcontrol.netlify.app/spotprices-v01-EE.json aadressi vastu.

Skripti alguses on defineeritud muutujad, mida saab omale sobiva tulemuse jaoks muuta.

period_start – Skript otsib kõige soodsamat aega alates sellest tunnist
period_length – Skript otsib kõige soodsamat aega nii paljude tundide jooksul pärast period_start väärtust (nt kui period start = 23 ja period_lenght = 8, otsime aega vahemikus 23-07).
period_day – Kui selle väärtus on 0, alustatakse otsingut tänasest päevaosast. Kui 1, siis homsest.
needed_length – Skript otsib soovitud ajavahemikus odavaimat selle suurusega episoodi. Siin sisestatakse aeg, mille jooksul nt kuumaveepaak tavaliselt soojendamist vajab.
turn_off_hours – Kui mitme tunni pärast peab relee igal juhul välja lülitume. See aeg võib olla võrdne või pikem kui needed_length. Näiteks kui soojaveeboiler soojendab vee tavaliselt kolme tunniga, peaks needed_length olema 3, aga kui näiteks boiler on täiesti tühi, ei pruugi kolmest tunnist piisata. Sel põhjusel on hea kindluse mõttes voolu pikemalt peal hoida (ja turn_off_hours määrata näiteks 5), boileri enda termostaat lülitab igal juhul kütte välja, kui vesi on piisavalt soe.
max_avg_price – Siia saad määrata hinna, millest kõrgemal ei tohi relee sisse lülituda isegi kui see on kõige odavam vahemik mis leiti. Ajakavad Shelly seadmesse siiski luuakse kuid mõlemad on seadistatud seadet välja lülitama. Soovi korral saate esimese seadistuse käsitsi sisse lülitada. Hinnad tuleb esitada elektribörsi poolt kasutatavas formaadis €/mWh, mis tähendab, et nt hinnaks 0,50 €/kWh sisestatakse formaadis 500. Juhime tähelepanu, et elektribörsi hinnad on käibemaksuvabad. Standardina ja kui te ei soovi seda seadistust kasutada, peaksite määrama hinnapiiri tõesti kõrgeks, näiteks 9999.
defaultstart ja defaultend – Kui võrguühendus ei tööta või hinnateabe otsimine muul viisil ebaõnnestub, kasutatakse neid graafikuid standardgraafikutena. Kasutatavat vormingut saab näha siit https://github.com/mongoose-os-libs/cron .
script_schedule – Selle skripti käivitamise ajakava. Vaikimisi iga päev kell kuus. Selle muutmisel pange tähele, et uusi börsihindu uuendatakse iga päev ca kell 15. Näiteks on võimalik kontrolle teha alles pärast seda järgmiseks ööks. Kasutatavat vormingut saab näha siit https://github.com/mongoose-os-libs/cron .

John Eveli on teinud stsenaariumi paigaldamise kohta selge videojuhise.


Kust Shelly elektribörsi hinnainfot saab?

Skript hangib info elektribörsihinna kohta samast serverist, kus seda uuendatakse kord päevas üle-euroopalisest Entso-E teenusest. Andmed on Entso-E teenuses tasuta kättesaadavad, kuid selleks, et Shelly jaoks poleks vaja eraldi API-võtit hankida, edastatakse andmed skripti looja serveri kaudu.

Postitus on refereeritud skripti looja Lari Lohikoski lehelt, seal saab anda ka loojale otse tagasisidet – https://elspotcontrol.netlify.app/