Susține Asociația Smart Home printr-o donație și ajută-ne să oferim mai multe ghiduri, resurse și suport comunității!

Donează

Transformare Interfon Electra și Bticino 321061 cu Shelly Plus UNI (varianta nouă 2024)

1 min read

Actualizat pe 6 martie 2025
Shelly Plus Uni - Varianta 2024
Interfon Electra
Interfon Bticino 321061
				
					##############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);
    }
  }
);
				
			
Ți-au fost utile aceste informații? :)