Shelly 1PM Mini Gen 3, Script funktioniert nicht

  • Hallo zusammen,

    vielleicht kann mir hier jemand helfen.

    Wenn ich den Shelly einschalte, soll er sich automatisch abschalten wenn die Leistung unter 20W sinkt.

    Ich habe hier erst einmal geringe Werte zum testen eingestellt.

    hm, leider funktioniert es nicht so wie es sein soll, der Shelly schaltet nicht ab.

    Ich habe am Ausgang eine Leistung <15W aber es erfolgt keine Abschaltung nach den eingestellten 120 sec.

    Was ist hier falsch? Kann mir jemand helfen.


    Script

    // Konfiguration - hier kannst du die Werte anpassen
    var POWER_THRESHOLD = 20; // Schwellwert in Watt (unter diesem Wert wird abgeschaltet)
    var CHECK_INTERVAL = 10; // Prüfintervall in Sekunden
    var DELAY_BEFORE_SHUTDOWN = 120; // Wartezeit in Sekunden bevor abgeschaltet wird

    // Variablen für die Logik
    var lowPowerStartTime = null;
    var isMonitoring = false;

    // Funktion zum Prüfen der aktuellen Leistung
    function checkPowerConsumption() {
    Shelly.call("Switch.GetStatus", {id: 0}, function(result) {
    if (result && result.output === true) { // Nur prüfen wenn eingeschaltet
    var currentPower = result.apower | | 0; // Aktuelle Leistung in Watt
         
    print("Aktuelle Leistung: " + currentPower + "W (Schwellwert: " + POWER_THRESHOLD + "W)");
         
    if (currentPower < POWER_THRESHOLD) {
    // Leistung unter Schwellwert
    if (lowPowerStartTime === null) {
    lowPowerStartTime = Timer.now();
    print("Niedrige Leistung erkannt. Warte " + DELAY_BEFORE_SHUTDOWN + " Sekunden...");
    } else {
    // Prüfen ob genug Zeit vergangen ist
    var timeInLowPower = (Timer.now() - lowPowerStartTime) / 1000;
    if (timeInLowPower >= DELAY_BEFORE_SHUTDOWN) {
    print("Schalte automatisch ab - Leistung zu niedrig für " + timeInLowPower + " Sekunden");
    Shelly.call("Switch.Set", {id: 0, on: false});
    lowPowerStartTime = null;
    isMonitoring = false;
    }
    }
    } else {
    // Leistung über Schwellwert - Reset
    if (lowPowerStartTime !== null) {
    print("Leistung wieder über Schwellwert - Abschaltung abgebrochen");
    lowPowerStartTime = null;
    }
    }
    } else {
    // Switch ist aus - Überwachung stoppen
    isMonitoring = false;
    lowPowerStartTime = null;
    }
    });
    }

    // Event-Handler für Ein-/Ausschalten
    Shelly.addEventHandler(function(event) {
    if (event.component === "switch:0") {
    if (event.info.output === true) {
    // Switch wurde eingeschaltet - Überwachung starten
    print("Switch eingeschaltet - starte Leistungsüberwachung");
    isMonitoring = true;
    lowPowerStartTime = null;
    } else {
    // Switch wurde ausgeschaltet - Überwachung stoppen
    print("Switch ausgeschaltet - stoppe Leistungsüberwachung");
    isMonitoring = false;
    lowPowerStartTime = null;
    }
    }
    });

    // Hauptschleife für die Überwachung
    Timer.set(CHECK_INTERVAL * 1000, true, function() {
    if (isMonitoring) {
    checkPowerConsumption();
    }
    });

    print("Script gestartet. Konfiguration:");
    print("- Schwellwert: " + POWER_THRESHOLD + "W");
    print("- Prüfintervall: " + CHECK_INTERVAL + "s");
    print("- Wartezeit vor Abschaltung: " + DELAY_BEFORE_SHUTDOWN + "s");


    Wäre toll wenn ich hier eine Lösung bekomme.

    VG Ulli:*

  • Wenn ich den Shelly einschalte, soll er sich automatisch abschalten wenn die Leistung unter 20W sinkt.

    So geht es:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    PS:

    Eben erst gesehen:

    Stimmt das?

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Dieser Shelly hat gar keine Leistungsmessung.

  • Dieses Thema enthält 22 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.