Skip to content

Commit

Permalink
Merge pull request #75 from Spot-hinta-fi/vesivaraaja-no-relay-update…
Browse files Browse the repository at this point in the history
…-if-no-status-change

Vesivaraaja scripts to not change relay status if the status in new hour is the same as previous hour
  • Loading branch information
Spot-hinta-fi authored Oct 9, 2024
2 parents 88b348f + 43c4aed commit dc9ff46
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 dc9ff46

Please sign in to comment.