Skip to content

Commit

Permalink
For testing updates to "Vesivaraaja" scripts. Both scripts were missi…
Browse files Browse the repository at this point in the history
…ng the feature to not touch the relay if status is not changing frrom the previous hours. This allows user to manually change the relay status and script does not change the status in the start of next hour, if status according to script should not be changed.
  • Loading branch information
ml-bw committed Oct 9, 2024
1 parent 88b348f commit 43c4aed
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Scripts/Shelly-Minimal-Heating.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Thank you for your support: https://www.buymeacoffee.com/spothintafi
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-09-09
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-10-09

// Change these settings as you like
let Region = "FI"; // Supported regions: DK1, DK2, EE, FI, LT, LV, NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4
Expand Down
2 changes: 1 addition & 1 deletion Scripts/Shelly-Pikakoodi.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Kiitos tuestasi: https://www.buymeacoffee.com/spothintafi
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-09-09
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-10-09

// OHJE: Anna "pikakoodi" kullekin ohjattavalle releelle. Koodilla 999 voit ohittaa releen.
// Esimerkki 1: Ohjaa releitä 2 ja 3. Aseta pikakoodit näin: [999, 103, 125]
Expand Down
2 changes: 1 addition & 1 deletion Scripts/Shelly-Rank-and-Price.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Thank you for your support: https://www.buymeacoffee.com/spothintafi
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-09-09
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-10-09

// Region to use
let Region = "FI"; // Supported regions: DK1, DK2, EE, FI, LT, LV, NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4
Expand Down
2 changes: 1 addition & 1 deletion Scripts/Shelly-SmartHeating.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Thank you for your support: https://www.buymeacoffee.com/spothintafi
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-09-09
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-10-09

// SmartHeating: outdoor temperature controlled heating with a possibility to control multiple relays with the same rules.
// Note! At the worst case temperature is off by 10-15c degrees as the measuring station is not at your home, so make your own measurements if precision is required.
Expand Down
2 changes: 1 addition & 1 deletion Scripts/Shelly-SmartMonitoring.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Thank you for your support: https://www.buymeacoffee.com/spothintafi
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-09-09
// Supported Shelly firmwares: 1.0.3 - 1.4.2. Script version: 2024-10-09

// Common settings
const Region = "FI"; // Supported regions: DK1, DK2, EE, FI, LT, LV, NO1, NO2, NO3, NO4, NO5, SE1, SE2, SE3, SE4
Expand Down
21 changes: 14 additions & 7 deletions Scripts/Shelly-Vesivaraaja-yosiirto.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,37 @@
// Kiitos tuestasi: https://www.buymeacoffee.com/spothintafi
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-09-09
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-10-09

// ASETUKSET
let Rankit = [1, 2, 3]; // Listaa 'rankit' (eli tunnin järjestysnumero hinnan mukaan), jolloin rele kytketään
let Rele = 0; // Ohjattavan releen numero
let Rankit = [1, 2, 3]; // Listaa 'rankit' (eli tunnin järjestysnumero hinnan mukaan), jolloin rele kytketään
let Rele = 0; // Ohjattavan releen numero
let Yotunnit = [22, 23, 0, 1, 2, 3, 4, 5, 6]; // Yösiirron tunnit. Näihin ei tarvitse normaalisti koskea (edes kellonsiirron aikaan).
let Hintaero = -1.43; // Paljonko sähkön siirtohinta on halvempi yösiirron aikaan?
let Hintaero = -1.43; // Paljonko sähkön siirtohinta on halvempi yösiirron aikaan?
let Varatunnit = [3, 4, 5]; // Tunnit jolloin rele kytketään, mikäli Internet yhteys ei toimi tai palvelu on alhaalla

// KOODI
let url = "https://api.spot-hinta.fi/JustNowRanksAndPrice?priorityHours=" + Yotunnit.join() + "&priceModifier=" + Hintaero + "&ranksAllowed=" + Rankit.join();
let hour = -1; print("WaterBoiler: Ohjaus käynnistyy 30 sekunnissa.");
let hour = -1; let previousAction = ""; print("WaterBoiler: Ohjaus käynnistyy 30 sekunnissa.");
Timer.set(30000, true, function () {
if (hour == new Date().getHours()) { print("WaterBoiler: Odotetaan tunnin vaihtumista."); return; }
Shelly.call("HTTP.GET", { url: url, timeout: 15, ssl_ca: "*" }, function (res, err) {
hour = (err != 0 || res == null || (res.code !== 200 && res.code !== 400)) ? -1 : new Date().getHours();
let on = false;
if (hour === -1) {
previousAction = "";
if (Varatunnit.indexOf(new Date().getHours()) > -1) {
on = true; hour = new Date().getHours();
print("WaterBoiler: Virhetilanne. Kuluva tunti on varatunti: rele kytketään päälle tämän tunnin ajaksi.");
} else {
print("WaterBoiler: Virhetilanne. Kuluva tunti ei ole varatunti: relettä ei kytketä. Yhteyttä yritetään uudestaan.");
}
} else { if (res.code === 200) { on = true; } }
Shelly.call("Switch.Set", "{ id:" + Rele + ", on:" + on + "}", null, null);
print("WaterBoiler: Kytketty " + (on ? "päälle" : "pois päältä"));

if (previousAction !== on) {
Shelly.call("Switch.Set", "{ id:" + Rele + ", on:" + on + "}", null, null);
print("WaterBoiler: Kytketty " + (on ? "päälle" : "pois päältä"));
previousAction = on;
} else {
print("WaterBoiler: Releen tilaa ei muutettu, koska se olisi sama kuin edellisellä tunnilla.");
}
});
});
15 changes: 11 additions & 4 deletions Scripts/Shelly-Vesivaraaja.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Kiitos tuestasi: https://www.buymeacoffee.com/spothintafi
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-09-09
// Tuetut Shelly ohjelmistot: 1.0.3 - 1.4.2. Skriptin versio: 2024-10-09

// ASETUKSET
let Tunnit_yo = 3; // Yötuntien lukumäärä 22:00 - 07:00
Expand All @@ -9,21 +9,28 @@ let Varatunnit = [3, 4, 5]; // Tunnit jolloin rele kytketään, mikäli Internet

// KOODI
let url = "https://api.spot-hinta.fi/WaterBoiler/" + Tunnit_yo + "/" + Tunnit_ip;
let hour = -1; print("WaterBoiler: Ohjaus käynnistyy 30 sekunnissa.");
let hour = -1; let previousAction = ""; print("WaterBoiler: Ohjaus käynnistyy 30 sekunnissa.");
Timer.set(30000, true, function () {
if (hour == new Date().getHours()) { print("WaterBoiler: Odotetaan tunnin vaihtumista."); return; }
Shelly.call("HTTP.GET", { url: url, timeout: 15, ssl_ca: "*" }, function (res, err) {
hour = (err != 0 || res == null || (res.code !== 200 && res.code !== 400)) ? -1 : new Date().getHours();
let on = false;
if (hour === -1) {
previousAction = "";
if (Varatunnit.indexOf(new Date().getHours()) > -1) {
on = true; hour = new Date().getHours();
print("WaterBoiler: Virhetilanne. Kuluva tunti on varatunti: rele kytketään päälle tämän tunnin ajaksi.");
} else {
print("WaterBoiler: Virhetilanne. Kuluva tunti ei ole varatunti: relettä ei kytketä. Yhteyttä yritetään uudestaan.");
}
} else { if (res.code === 200) { on = true; } }
Shelly.call("Switch.Set", "{ id:" + Rele + ", on:" + on + "}", null, null);
print("WaterBoiler: Kytketty " + (on ? "päälle" : "pois päältä"));

if (previousAction !== on) {
Shelly.call("Switch.Set", "{ id:" + Rele + ", on:" + on + "}", null, null);
print("WaterBoiler: Kytketty " + (on ? "päälle" : "pois päältä"));
previousAction = on;
} else {
print("WaterBoiler: Releen tilaa ei muutettu, koska se olisi sama kuin edellisellä tunnilla.");
}
});
});

0 comments on commit 43c4aed

Please sign in to comment.