


- Instructiunile sunt aproximativ aceleasi ca si la modulul vechi (link)
- Voltmeter-ul trebuie definit manual
- Poate rula scripturi direct in device fara sa mai depinda de cloud-ul Shelly sau de un alt server pentru deschiderea automata
##############DESCHIDERE AUTOMATA###############
let CONFIG = {
scanInterval: 0.5, // secunde, acesta va rula un timer la fiecare 0.5 secunde pentru a obține tensiunea
voltmeterID: 100, // ID-ul voltmetrului - când instalăm add-on-ul, dispozitivul va defini acest număr
voltageThreshold: 2, // Pragul de tensiune peste care se vor activa releele
switch1ID: 0, // ID-ul switch-ului 1
switch2ID: 1 // ID-ul switch-ului 2
};
// Variabilă pentru a păstra starea acțiunii
let actionExecuted = false;
function fetchVoltage() {
// Obține componenta voltmetrului
const voltmeter = Shelly.getComponentStatus(
"voltmeter:" + JSON.stringify(CONFIG.voltmeterID)
);
// Iese dacă nu poate găsi componenta
if (typeof voltmeter === "undefined" || voltmeter === null) {
console.log("Can't find the voltmeter component");
return;
}
const voltage = voltmeter["voltage"];
// Iese dacă nu poate citi tensiunea
if (typeof voltage !== "number") {
console.log("Can't read the voltage or it is NaN");
return;
}
// Loghează tensiunea în consolă
console.log("Voltage:", voltage);
// Verifică dacă tensiunea depășește pragul stabilit și acțiunea nu a fost deja executată
if (voltage > CONFIG.voltageThreshold && !actionExecuted) {
console.log("Voltage is above threshold, turning on Switch 1");
// Pornește switch-ul 1
Shelly.call("Switch.Set", { id: CONFIG.switch1ID, on: true });
// Așteaptă două secunde și apoi pornește switch-ul 2
Timer.set(1000, false, function() {
console.log("Turning on Switch 2");
Shelly.call("Switch.Set", { id: CONFIG.switch2ID, on: true });
});
// Setează variabila pentru a indica faptul că acțiunea a fost executată
actionExecuted = true;
}
// Resetarea acțiunii dacă tensiunea scade sub prag
if (voltage <= CONFIG.voltageThreshold) {
actionExecuted = false;
}
}
// Inițializează scriptul
function init() {
// Pornește timerul
Timer.set(CONFIG.scanInterval * 1000, true, fetchVoltage);
// Obține tensiunea la pornire
fetchVoltage();
}
init(); // Rulează funcția init pentru a începe
######REBOOT - acest script reporneste modulul in fiecare noapte la ora 4 #############
Shelly.call(
"Schedule.Create",
{
enable: true,
timespec: "0 0 4 * * SUN,MON,TUE,WED,THU,FRI,SAT", // Schedule for 4:00 AM every day
calls: [
{
method: "Shelly.Reboot", // Method to call for rebooting
},
],
},
function(result, error_code, error_message) {
if (error_code === 0) {
print("Reboot scheduled successfully with ID:", result.id);
} else {
print("Failed to schedule reboot. Error:", error_message);
}
}
);