ajattelin ohjata shelly pro2 relettä jossa kaksi kärkeä, toista dynaamisella ja toista staattisella koodilla. yhdistinkin nämä näppärästi mutta ei oikein toimi. mikä meni vikaan vai onko edes mahdollista?
let CONFIG =
{
UpdateFrequence: 2 * 60000, // Oletus on kahden minuutin välein (millisekunteja). Älä hae tiheämmin.
RankAtZeroDegrees: "5", // "Rank", eli halvimpien tuntien lukumäärä kun ulkolämpötilaennuste on 0°C
RankAdjusterPercentage: "15", // Prosentti jolla "Rank" muutetaan ulkolämpötilan muuttuessa yhdellä asteella
MinimumRank: "3", // Vähimmäis 'Rank' kun lämpötila nousee plussalle ja Rank pienenee
PriceAlwaysAllowed: "10", // "Halvat hinnat talteen". Eli hinta jolloin aina on sallittua lämmitys
PostalCode: "00100", // Postinumero jonka alueen lämpötilaennustetta rajapinta tutkii
Rank: "5", // Jos tunnin 'rank' on tämä tai sen alle, hyväksytään tunti
PriceAllowed: "10", // Jos hinta on alle tämän rajan, tunti sallitaan rankista huolimatta.
Relay1: "0", // Releen ohjaus. Jos käytössä on useampireleinen Shelly, valitse tähän oikea rele 0...3.
Relay2: "1", // Releen ohjaus. Jos käytössä on useampireleinen Shelly, valitse tähän oikea rele 0...3.
};
function GetUrl() {
let url = "
https://api.spot-hinta.fi/JustNowRankDynamic";
url += "?rankAtZeroDegrees=" + CONFIG.RankAtZeroDegrees;
url += "&rankAdjusterPercentage=" + CONFIG.RankAdjusterPercentage;
url += "&minimumRank=" + CONFIG.MinimumRank;
url += "&priceAlwaysAllowed=" + CONFIG.PriceAlwaysAllowed;
url += "&postalCode=" + CONFIG.PostalCode;
return url;
}
function Controller() {
Shelly.call("HTTP.GET", { url: GetUrl() },
function (res, error_code, error_msg, ud) {
if (res.code === 200) {
print("Relay1 on");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay1 + ", on:true}", null, null); // Rele1 päälle
}
else if (res.code === 400) {
print("Relay1 off");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay1 + ", on:false}", null, null); // Rele1 pois
}
else {
print("Error, relay1 on");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay1 + ", on:true}", null, null); // Virhetilanne, Rele1 päälle
};
}, null);
function Control() {
Shelly.call("HTTP.GET", { url: "
https://api.spot-hinta.fi/JustNowRank/" + CONFIG.Rank + "/" + CONFIG.PriceAllowed },
function (res, error_code, error_msg, ud) {
if (res.code === 200) {
print("Relay2 on");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay2 + ", on:true}", null, null); // Rele2 päälle
}
else if (res.code === 400) {
print("Relay2 off");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay2 + ", on:false}", null, null); // Rele2 pois päältä
}
else {
print("Error, relay2 on");
Shelly.call("Switch.Set", "{ id:" + CONFIG.Relay2 + ", on:true}", null, null); // Virhetilanne. Rele2 päälle.
};
}, null);
}
Timer.set(CONFIG.UpdateFrequence, true, function (ud) { Control(); }, null);