Wifi-shelly-rele ohjaamaan vanhahkoa boileria

mobbe

Vakionaama
Kiitoksia ja kiitos vielä toimivasta rajapinnasta. Olen ohjaillut moitteetta lämminvesivaraajaa jo muutaman viikon ajan Shelly pro 1PM releellä sekä viikon verran olen testaillut sähköisen lattialämmityksen lämpötilan pudotuksen ohjaamista Shelly 1 Plussalla.
Kympin arvoista suorittamista mikki ja oldipoldi .Täällä tuli todettua että toimivat molemmat scriptit täydellisesti senkin jälkeen vaikka kaapeliyhteys tuntemattomasta syystä reititimeen katkesi pariksi sekunniksi (DNA valokuitu plus)
 

Lappanen

Hyperaktiivi
Kiitos tuosta vahti-scriptistä! Juuri ihmettelin, että miksi mlpn hintavahdit pysähtyneet. Olin aiemmin päivittänyt wlan-purkinnohjelmiston ja yhteys shellyihin katkennut, eli siitähän se sitten johtui. Nyt homma rokkaa täälläkin, vaikka wlani/netti välillä katkeaisikin.
 

mobbe

Vakionaama
vahti-scriptiin voi laittaa myös tuon enable valinnan päälle että sähkökatkon jälkeen se starttaa automaattisesti
 

Liitteet

  • enable.JPG
    enable.JPG
    36,7 KB · Katsottu: 320
Viimeksi muokattu:

Mikki

Hyperaktiivi
Vahti-skriptiin voisi ehkä laittaa käynnistyksen jälkeen tarkistuksen että lähtikö se vahdittava skripti käyntiin. Tosin joku voisi mitata kauanko kestää että skripti kaatuu jos nettiyhteyttä ei ole. Jos se on joku timeout niin se voi kestää.

Jos se kaatuu heti niin sitten vahtiskripti voisi tehdä releelle jonkun toimenpiteen. Esim. kellon mukaan yöllä laittaisi releen päälle ja päivällä pois. Näin pahemman nettikatkon aikaan toimisi kelloohjaus.

Samoin mietityttää miksi skripti kaatuu jos netti pätkäisee. Onko se joku virhetilanne mikä pitäisi "käsitellä" hallitusti jolloin skripti ei ehkä kaatuisi.
 

Lappanen

Hyperaktiivi
Mulla tuo mlpn ohjausscripti meni stopped-tilaan kun wlan katkesi. Enable oli valittuna siinä myös ja se pysyikin valittuna.
 

mobbe

Vakionaama
Vahti-skriptiin voisi ehkä laittaa käynnistyksen jälkeen tarkistuksen että lähtikö se vahdittava skripti käyntiin. Tosin joku voisi mitata kauanko kestää että skripti kaatuu jos nettiyhteyttä ei ole. Jos se on joku timeout niin se voi kestää.

Jos se kaatuu heti niin sitten vahtiskripti voisi tehdä releelle jonkun toimenpiteen. Esim. kellon mukaan yöllä laittaisi releen päälle ja päivällä pois. Näin pahemman nettikatkon aikaan toimisi kelloohjaus.

Samoin mietityttää miksi skripti kaatuu jos netti pätkäisee. Onko se joku virhetilanne mikä pitäisi "käsitellä" hallitusti jolloin skripti ei ehkä kaatuisi.
nouhätä ,kun wlan katkeaa scripti toki heti jumiin mutta kun wlan palautuu kahdessa minuutissa taas käynnissä sen sijaan tilatiedot selaimessa ei päivity vasta kun avaa siinä jonkun uuden toiminnon mutta taustalla scriptit on ja pysyy käynnissä :)
 

Mikki

Hyperaktiivi
Tässä yksi versio Shelly scriptistä, hakee tiedon Eestin palvelimelta, pitää vaihtaa tuohon kutsuun fi.

https://github.com/martinkangur/shelly

Ihan siisti koodi. Mutta minkä hintarajan tuohon voi asettaa että homma pelaa? Tarkoitan että ei se ihan niin yksinkertaista ole että lömmittää vain kun hinta on alle 0,20€. Entäs jos ei ole... Tai jos sähkö on koko päivän alle 0,20€ niin onko järkeä lämmittää 0,19€ hinnalla jos kahden tunnin päästä on 0,02€ hinta?

Jos nuo logiikat koodaa Shellyyn niin aika pitkä skripti tulee. Vaikka itse kehun, niin on se kuitenkin fiksumpaa että logiikat on koodattu APIin, eikä clienttiin. Siis tyyliin tämä rajapinta:


Yksi triviaali request, jolla saa tiedon onko tunti viiden halvimman tunnin sisällä TAI onko hinta alle 6 senttiä. Eikä tarvitse edes parsia responsea, kun pelkkä HTTP statuskoodi kertoo tuloksen. Tuossa on jo huomattavasti enemmän järkeä päätöksentekoon kuin pelkkä hinta.
 
Viimeksi muokattu:

Jatimatic

Tulokas
let CONFIG = {
Paivitystaajuus: 2 * 60000,
};
function Ohjaus(){
Shelly.call("HTTP.GET", { url: "https://api.spot-hinta.fi/JustNow"},
function (res, error_code, error_msg, ud)
{
if (res.code === 200){
let resobj = JSON.parse(res.body);
print("Rank: ", resobj.Rank);
if (resobj.Rank <= 3) { //Montako halvinta tuntia
Shelly.call("Switch.Set","{ id:0, on:true}", null,null); //Rele päälle
}
else {
Shelly.call("Switch.Set","{ id:0, on:false}", null,null); //Rele pois
}
}
else {
Shelly.call("Switch.Set","{ id:0, on:false}", null,null); //Mitä tehdään jos ei toimi
}
;
},
null); }

Timer.set(
CONFIG.Paivitystaajuus,
true,
function (ud) {
Ohjaus();
},
null
);
Hmm, mulla ei tällä scriptillä Shelly tuikannut sähköjä päälle jostain syystä…
 

Oldipoldi

Jäsen
Jos ei hintaa tarvitse mihinkään vaan riittää pelkkä tieto edullisuudesta, niin suosittelen vain http statuksen perusteella ohjausta. Skripti yksinkertaistuu ainakin.

Siis tämä:

Jossa 5 on lupa lämmittää viiden halvimman tunnin aikaan JA aina jos hinta on alle 6c. Omasta mielestäni tämä on ns. paras API.
let CONFIG = { Paivitystaajuus: 2 * 60000, }; // kaksi minuuttia

function Ohjaus(){
Shelly.call("HTTP.GET", { url: "https://api.spot-hinta.fi/JustNowRank/5/6"}, // 5 halvinta tuntia tai alle 6 snt
function (res, error_code, error_msg, ud)
{
if (res.code === 200){
Shelly.call("Switch.Set","{ id:0, on:true}", null,null); // Rele päälle
}
else if (res.code === 400) {
Shelly.call("Switch.Set","{ id:0, on:false}", null,null); // Rele pois
}
}, null);
}

Timer.set(CONFIG.Paivitystaajuus, true, function (ud) { Ohjaus(); }, null);
 
K

korsteeni

Vieras
wifillä ei toimi mikään luotettavasti
se on hyvä puhelimissa ja tableteissa kun plärätään mediaa , niissä ei pätkimisellä ole väliä

näköjään se aletaan jo yleisemminkin huomata, espiinkin ethernet, ei savua ilman tulta

1665984363344.png
 

Mikki

Hyperaktiivi
wifillä ei toimi mikään luotettavasti
se on hyvä puhelimissa ja tableteissa kun plärätään mediaa , niissä ei pätkimisellä ole väliä

näköjään se aletaan jo yleisemminkin huomata, espiinkin ethernet, ei savua ilman tulta

katso liitettä 81194
Huonoa asiakaspään suunnittelua jos wifi pätkimiset aiheuttaa mainittavaa ongelmaa taloautomaation käyttötapauksissa. Wifi on lähinnä ongelma tiloissa joissa radiota ei saa käyttää ja/tai rakenteet estää signaalit.

Mutta hyvä toki kaapeliyhteys on, ei siinä mitään.
 
Viimeksi muokattu:
K

korsteeni

Vieras
Huonoa asiakaspään suunnittelua jos wifi pätkimiset aiheuttaa mainittavaa ongelmaa taloautomaation käyttötapauksissa. Wifi on lähinnä ongelma tiloissa joissa radiota ei saa käyttää ja/tai rakenteet estää signaalit.

Mutta hyvä toki kaapeliyhteys on, ei siinä mitään.
en ole asiakaspäässä eikä minulla ole ketään asiakaspäässä mutta päässä on arkijärki ja pitkä kokemus verkoista
jos väität wifi yhteyttä yhtä luotettavaksi kuin kiinteää, niin opittavaa vielä on
 

Mikki

Hyperaktiivi
en ole asiakaspäässä eikä minulla ole ketään asiakaspäässä mutta päässä on arkijärki ja pitkä kokemus verkoista
jos väität wifi yhteyttä yhtä luotettavaksi kuin kiinteää, niin opittavaa vielä on
Enhän minä niin väittänyt. Väitin vain että taloautomaation ohjauksessa WIFI on aivan riittävän luotettava verkko, jos siinä asiakaspäässä on arkijärki koodarilla päässä.

Jotain on tehty perusteellisesti väärin jos jostain satunnaisesta WIFI pätkäisystä menee hommat sekaisin tai ylipäätänsä tapahtuu mitään.
Sitten jos WIFI on niin epäluotettava, että siitä aidosti harmia on, niin luulisin että vika on ihan vain osaamattomuudessa tai viallisissa laitteissa. Ei WIFI protokollasta itsessään.
 

puuteknikko

Vakionaama
Itselläni on nyt vuoden verran lukenut kotiautomaatio Froniuksen dataa invertteriltä sql-kantaan 5s intervallilla huonon wifi-kentän yli. En ole havainnut mitään pitkiä katkoksia muuten kuin silloin, kun olen itse töpeksinyt jotain reitittimen kanssa. Kun ei siellä teknisessä tilassa kukaan katsele videostriimiä niin huonokin wifi-kuuluvuus riittää oikein hyvin.
 

mobbe

Vakionaama
Katsoin logeista.. Tein sitten factory resetin shellylle ja laitoin scriptin uusiksi niin sitten alkoi toimimaan.. Outo juttu..
shellyn scriptien häirittömään käynnin varmistamiseksi sähkökatkon jälkeen voi lukita releen ip-osoitteen ja portit myös reitittimellä
 
Viimeksi muokattu:

Jatimatic

Tulokas
let CONFIG = {
Paivitystaajuus: 2 * 60000,
};
function Ohjaus(){
Shelly.call("HTTP.GET", { url: "https://api.spot-hinta.fi/JustNow"},
function (res, error_code, error_msg, ud)
{
if (res.code === 200){
let resobj = JSON.parse(res.body);
print("Rank: ", resobj.Rank);
if (resobj.Rank <= 3) { //Montako halvinta tuntia
Shelly.call("Switch.Set","{ id:0, on:true}", null,null); //Rele päälle
}
else {
Shelly.call("Switch.Set","{ id:0, on:false}", null,null); //Rele pois
}
}
else {
Shelly.call("Switch.Set","{ id:0, on:false}", null,null); //Mitä tehdään jos ei toimi
}
;
},
null); }

Timer.set(
CONFIG.Paivitystaajuus,
true,
function (ud) {
Ohjaus();
},
null
);

Mites tähän sais tehtyä sellaisen lisäyksen, että "Montako halvinta tuntia", mutta ei lämmitetä jos sähkön hinta on yli X snt/kWh?
 

EJMV

Tulokas
Mikkin rajapinta ja sen avulla kehitetyt skriptit toimivat hyvin. Kiitos kaikille osallistujille!
Nyt tosin huomasin erikoistilanteen, jossa tänään halvimmat tunnit olivat aamuyöstä, mutta seuraavat ovatkin sitten vasta lauantai iltana.
Tuosta tulee pitkä pätkä pitää LVV pois päältä ja olen miettinyt, miten tuosta pääsisi automaatiolla yli. Shellyhän ei tiedosta boilerin tilanteesta mitään Ja vaihtoehdot on siten pitää jatkuvasti tilannetta silmällä tai yllättyä suihkussa.
 

mobbe

Vakionaama
Mikkin rajapinta ja sen avulla kehitetyt skriptit toimivat hyvin. Kiitos kaikille osallistujille!
Nyt tosin huomasin erikoistilanteen, jossa tänään halvimmat tunnit olivat aamuyöstä, mutta seuraavat ovatkin sitten vasta lauantai iltana.
Tuosta tulee pitkä pätkä pitää LVV pois päältä ja olen miettinyt, miten tuosta pääsisi automaatiolla yli. Shellyhän ei tiedosta boilerin tilanteesta mitään Ja vaihtoehdot on siten pitää jatkuvasti tilannetta silmällä tai yllättyä suihkussa.
Lisää timerin joka boostaa LVV:n vaikka tunniksi haluttuun aikaan
 

EJMV

Tulokas
Niin.. Jos haluaa säilyttää idean halpojen hintojen jahtaamisesta, homma pitäisi varmaan jotenkin katsoa kokonaisuutena. Eli esimerkiksi vasta, jos kahden halvan jakson väli kasvaa yli x tunnin, sitten näiden väliin sijoitetaan esim ekstra tunti, joka on sen välin halvin.
 

Temez

Aktiivinen jäsen
Tuo 36h tuuliennuste taitaa tulla ulos kello 12 ja sen perusteella sitten noin kello 14 tulee Nordpooliin algoritmin laskemat tuntihinnat jotka osaltaan perustuu varmasti noihin tuuliennusteisiin. Käytännössä 2h voisi voittaa, jos samalla arvaisi kulutuksen muutoksia ja ottaisi mukaan voimaloiden huollot, siirtolinjojen kapasiteetit (ja muiden lähimaiden osalta samat) jne. Pohdin siis itse samaa, mutta menee ehkä vaikeaksi sitten, kun pitäisi toisintaa Nordpoolin algoritmi vajavaisemmalla datalla.
 
  • Tykkää
Reactions: jed

mobbe

Vakionaama
Olen ennemmin suunnittelemassa APIa joka säätäisi paikkakunnan lämpöennusteen mukaan "rank" rajaa. Vielä vähän hakusessa idea miten sen yksinkertaisimmin tekisi.
Ja jos innostusta vielä löytyy shellyn scripteihin vaihtoehtona käyttäjällä mahdollisuus asettaa tuntimäärät ja hintarajat lähiverkossa webbisivulle mutta onhan nuo rajapinnat aivan loistavia näinkin
 

Mikki

Hyperaktiivi
Ja jos innostusta vielä löytyy shellyn scripteihin vaihtoehtona käyttäjällä mahdollisuus asettaa tuntimäärät ja hintarajat lähiverkossa webbisivulle mutta onhan nuo rajapinnat aivan loistavia näinkin
En ihan saanut kiinni ideasta, mutta ajattelin tehdö skripteistä version missä on selvemmin parametrit kun vähän priva kyselyitä on tullut niihin skriptien url parametreihin että mitä tarkoittaa.

Shellyn oma HTML sivu on kyllä selkeä että siellä skriptin muutos on helppo.
 
Paljon mielenkiintoista tässä ketjussa! Kysäisin tuota kolmivaihe asiaa Shellyltä, kun lukee 230V. Boilerille tulisi itselle ja kontaktori maksaa erikseen muutaman kympin ja ohjaus päälle niin tuolla PRO 3 mallilla hoituisi koko homma.

”Thank you for contacting us!

Our 3-phase relays (like the Shelly PRO 3) support phase-to-phase 400V, this is the standard.

The phase-to-neutral should be 220-230V.

Are you interested in the Shelly 3EM or the Shelly PRO 3?

They both will be perfect for your use case.



Kind regards,
Shelly Support Team”
 

Mikki

Hyperaktiivi
@randomproject : Suosittelisin silti laittamaan oikean kontaktorin ja sitten sitä ohjaamaan Shelly 1 Pro releen. Syynä se, että nuo oikeat kontaktorit on todellakin kestäviksi osoittautuneita ja eivät ole alttiita ohjelmistovirheille tms.

Et kuitenkaan halua, että mahdollisen Shellyn vikaantumisen yhteydessä jää mahdollisuus pakko-ohjata lämmitystä päälle pois. Kontaktoreissa on kuitenkin aina se pakko-ohjaus mahdollisuus myös.

Väärässä kohdassa säästetyt kympit mielestäni!
 
Viimeksi muokattu:

-Teme-

Vakionaama
ABB B6-30-10/230 4kw 3s+1s
kontaktori maksaa sähköurakoitijan sopparista riippuen n.10-15€ eli kustannuksen vuoksi siitä ei kannata tinkiä.
Shellyn ohjatessa relettä tulee asentaa RC suodin (RC snubber) poistamaan piikkejä
 

Aavee

Tulokas
Mikähän on kun muutaman kerran ei ole shellyt kytkeytyneet ohjauksen mukaisesti päälle. Olen käynyt katsomassa shellyn script statuksesta ja se on ollut jostai syystä stopped. Mikä aiheuttaa ja miten pääsis eroon?

Muutoin ohjaus toimii hienosti :sille:
 

Mikki

Hyperaktiivi
Mikähän on kun muutaman kerran ei ole shellyt kytkeytyneet ohjauksen mukaisesti päälle. Olen käynyt katsomassa shellyn script statuksesta ja se on ollut jostai syystä stopped. Mikä aiheuttaa ja miten pääsis eroon?

Muutoin ohjaus toimii hienosti :sille:

Onko kyse siis "minun" rajapinnoista... (kun en muista)? Onko sinulla uusimmat skriptit käytössä? Siis se paketti, missä on valvontaskripti, joka käynnistää pysähtyneen skriptin uudestaan?

Tuolta löytyy ainakin yksi versio aiheesta: https://pastebin.com/u/ApiSpotHintaFi/1/ydFS0EUw

Se skriptin pysähtyminen ilmeisesti johtuu Shellyn heikosta virheenkäsittelystä HTTP request virheiden osalta. Siis tyyliin että Internet yhteys pätkäisee. Suurinta osaa nettiyhteyden pätkäisyistä ei normaalikäytössä huomaa, mutta automaatiossa kylläkin. Tuollainen "Valvonta"-skripti, joka ei tee mitään kutsuja nettiin uudelleenkäynnistää pysähtyneen skriptin automaattisesti.
 
Viimeksi muokattu:

mstr

Aktiivinen jäsen
en ole asiakaspäässä eikä minulla ole ketään asiakaspäässä mutta päässä on arkijärki ja pitkä kokemus verkoista
jos väität wifi yhteyttä yhtä luotettavaksi kuin kiinteää, niin opittavaa vielä on
Mulla oli puutalossa ETH kaapelit joilla helppo rakentaa toimiva verkko. Nykyään harkkotalossa piti laittaa kymmenkunta ESP:tä kiinni Raspiin WLAN käyttäen ja on ollut työlästä. Nyt viimein sain vaikeimmankin purkin tasot riittävän vakaiksi. Oli senttien tarkasti paikkaa etsittävä ja vielä kallistustakin säädettävä. Silti pari kertaa vuodessa koko verkko on alhaalla tjs. Epäilen reititintä mutta mitenkäs tuota tutkit?
 

B12

Aktiivinen jäsen
Shelly 1 pro tuli ja meinasin laittaa ohjaamaan yösähkön apukontaktoria. Käytännössä mitä tapahtuu on 300L varaajan ohjaus. Lattialämmitykset kontaktorin takana mukana myös, mutta niitä ei ole nyt enää käytetty, kun kaksi ilppiä talossa.

Onko kokemusta, kuinka herkästi shelly ottaa häiriötä kontaktorin kelasta? jossakin varoitellaan ja suositellaan häiriönpoistajaa.
 

Aavee

Tulokas
Onko kyse siis "minun" rajapinnoista... (kun en muista)? Onko sinulla uusimmat skriptit käytössä? Siis se paketti, missä on valvontaskripti, joka käynnistää pysähtyneen skriptin uudestaan?

Tuolta löytyy ainakin yksi versio aiheesta: https://pastebin.com/u/ApiSpotHintaFi/1/ydFS0EUw

Se skriptin pysähtyminen ilmeisesti johtuu Shellyn heikosta virheenkäsittelystä HTTP request virheiden osalta. Siis tyyliin että Internet yhteys pätkäisee. Suurinta osaa nettiyhteyden pätkäisyistä ei normaalikäytössä huomaa, mutta automaatiossa kylläkin. Tuollainen "Valvonta"-skripti, joka ei tee mitään kutsuja nettiin uudelleenkäynnistää pysähtyneen skriptin automaattisesti.

Kiitoksia, juuri sinun tässä ketjussa julkaisemaan skriptiä olen käyttänyt.

Nämä parannellut skriptit on menneet minulla ohi. Täytyypä alkaa tutustuu ja ottaa käyttöön.
 
Viimeksi muokattu:
Back
Ylös Bottom