Automatizavimas su Shelly rėle
Elektros prietaisų valdymo automatizavimui
Naudodamiesi elektra.p5.lt API, galite automatizuoti elektros prietaisų įjungimą/išjungimą pagal elektros kainą Nord Pool biržoje.
Vienas iš paprasčiausių būdų - panaudoti Shelly 1PM (Gen3) išmanią rėlę (arba kito modelio su Script programavimo galimybe). Prietaisą pajunkite pagal rėlės instrukciją ir atsižvelgdami į prietaiso parametrus. Į rėlę įkelkite žemiau pateiktą Script kodą. Kodą galite adaptuoti pagal savo poreikius: pasirinkti kainos ar laiko rėžius. Į pagalbą galite pasitelkti dirbtinio intelekto įrankius, arba susisiekite.
Pastaba: pavyzdžiuose naudojamas "demo" raktas veikia su apribojimais. Susisiekite dėl nemokamo asmeninio APIKEY.
Shelly 1PM Script pavyzdys
Kas 15 sekundžių tikrina dabartinę kainą biržoje ir atitinkamai įjungią arba išjungia prietaisą. Įjungimo metu nustato išsijungimą po 60 minučių (esant interneto sutrikimams rėlė išsijungs).
// Configuration
const APIKEY = "demo"
const API_URL = "https://elektra.p5.lt/api/v2/current?apikey=" + APIKEY;
const CHECK_INTERVAL_MS = 15 * 1000;
// Switch relay on only when price and interval rank is lower than specified.
const PRICE_THRESHOLD = 0.2;
const PRICE_RANK_THRESHOLD = 96;
// Relay auto switch-off after this time.
const ACTIVATION_LIMIT_MINUTES = 60;
let lastUpdatedAt = ""
// Function for checking the price and toggling the relay.
function checkCurrentPrice() {
Shelly.call(
"HTTP.GET",
{ url: API_URL, timeout: 10 },
function (response, error_code, error_message) {
if (error_code !== 0) {
print("HTTP error:", error_code, error_message);
return;
}
let data;
try {
data = JSON.parse(response.body);
} catch (e) {
print("JSON parse error:", e)
return;
}
if (data.current.price === undefined || data.current.rank === undefined) {
print("Invalid API response:", response.body);
return;
}
if (lastUpdatedAt === data.current.startTimeLocal) {
return;
}
lastUpdatedAt = data.current.startTimeLocal
let shouldSwitchOn = data.current.rank < PRICE_RANK_THRESHOLD && data.current.price < PRICE_THRESHOLD;
if (shouldSwitchOn) {
Shelly.call("Switch.Set", {id: 0, on: true, toggle_after: ACTIVATION_LIMIT_MINUTES*60}, null);
} else {
Shelly.call("Switch.Set", {id: 0, on: false}, null);
}
}
);
}
// Start timer.
Timer.set(CHECK_INTERVAL_MS, true, checkCurrentPrice);
Įdėjos kodo adaptacijai:
- Valdyti pagal kainą tiesiogiai ar pagal brangumą palyginus su kitais intervalais paroje (rank)?
- Įjungti ar išjungti, esant interneto sutrikimams? Nustatyti automatinį rėlės įjungimą/išjungimą?
Energijos matavimas
Išmanios rėlės turi ir energijos matavimo galimybę - veikia kaip išmanus elektros energijos skaitiklis. Programėlėje galite matyti prietaisų suvartojamą energijos kiekį.
Dar tikslesniam ir didesnės apimties energijos suvartojimui stebėti galima panaudoti 3 fazių Shelly energijos matuoklius. Pavyzdžiui:
- namo įvado suvartotos energijos
palyginimui su oficialiu tiekėjo skaitikliu - atskirų pastatų, įrengimų suvartojimo stebėjimui
- energijos kainos apskaičiavimui pagal biržos planą
P5 IOT Platforma
Naudodami Shelly Script kodą, galite ne tik gauti kainas iš API, bet ir perduoti energijos suvartojimą į P5 IOT platformą.
Norite stebėti ir automatizuoti objektą? Išbandykite mūsų platformą: jūsų poreikiams pritaikytas duomenų surinkimas, pranešimai, ataskaitos, valdymas. Nuo 5eur/mėn.
