Beiträge von evgen.m76

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    hier ist jezt entgültige schaltung und skript.

    leider abschaltung in App Relais steuerung funktionirte nicht.

    (

    App-/Web-Steuerung deaktivieren

    ======================================================

    Shelly.addEventHandler(function (event) {

    // Wenn jemand über App oder Web ein Relais manuell ändert:

    if (event.component === "switch:" + RELAY1 || event.component === "switch:" + RELAY2) {

    let relayId = parseInt(event.component.split(":")[1]);

    let requested = event.info.output;


    // App-Steuerung sperren

    print("⚠️ Manuelle Schaltung erkannt (Relais " + relayId + ") → zurückgesetzt");

    // Relais wieder auf vom Skript verwalteten Zustand setzen

    Shelly.call("Switch.GetStatus", { id: relayId }, function (status) {

    // Sofort zurücksetzen

    Shelly.call("Switch.Set", { id: relayId, on: !requested });

    });

    enforceRelayLock();

    }

    });


    )

    Logik:

    1. Beim Start:

    - Beide Relais aus

    - Wenn Uhrzeit zwischen 06:00–24:00 → nach 5s Relais 1 ein

    - Sonst: beide Relais aus

    2. Wenn Eingang 1 < 60s EIN → Relais 1 bleibt an

    3. Wenn Eingang 1 > 60s EIN → Relais 1 sofort aus, nach 5s Relais 2 ein

    4. Wenn Eingang 1 AUS:

    - Nach 4min Relais 2 aus

    - Wenn Eingang 1 in diesen 4min wieder EIN → Timer stoppt, Relais 2 bleibt an

    - Wenn Eingang 1 dann erneut AUS → Zyklus neu: Relais 2 aus, beide Relais aus,

    nach 5s Relais 1 ein

    Skript:

    let RELAY1 = 0;

    let RELAY2 = 1;

    let INPUT1 = 0;


    // Timer-Handles

    let longPressTimer = null;

    let offDelayTimer = null;


    // Hilfsfunktion: aktuelle Zeit in Minuten (0–1439)

    function getMinutes() {

    let now = new Date();

    return now.getHours() * 60 + now.getMinutes();

    }


    // ========================================================

    // 1. Startverhalten

    // ========================================================

    function init() {

    print("=== Shelly Automationsskript startet ===");

    Shelly.call("Switch.Set", { id: RELAY1, on: false });

    Shelly.call("Switch.Set", { id: RELAY2, on: false });


    let minutes = getMinutes();

    if (minutes >= 360 && minutes < 1440) {

    print("Zwischen 06:00 und 24:00 → nach 5s Relais 1 EIN");

    Timer.set(5000, false, function () {

    Shelly.call("Switch.Set", { id: RELAY1, on: true });

    print("Relay 1 eingeschaltet (Startup)");

    });

    } else {

    print("Außerhalb 06:00–24:00 → beide Relais bleiben aus");

    }

    }


    init();


    // ========================================================

    // 2. Ereignisseingang beobachten

    // ========================================================

    let inputStartTime = 0;


    Shelly.addEventHandler(function (event) {

    if (event.component === "input:" + INPUT1) {

    let state = event.info.state;


    // Eingang EIN

    if (state === true) {

    print("Eingang 1 → EIN erkannt");


    inputStartTime = Date.now();


    // Falls ein 4-Minuten-Timer läuft → stoppen

    if (offDelayTimer) {

    Timer.clear(offDelayTimer);

    offDelayTimer = null;

    print("4-Minuten-Timer gestoppt (Eingang wieder EIN)");

    }


    // Starte 60s-Timer für "langes Signal"

    if (longPressTimer) Timer.clear(longPressTimer);

    longPressTimer = Timer.set(60000, false, function () {

    print("Eingang > 60s EIN → Relais 1 AUS, nach 5s Relais 2 EIN");

    Shelly.call("Switch.Set", { id: RELAY1, on: false });

    Timer.set(5000, false, function () {

    Shelly.call("Switch.Set", { id: RELAY2, on: true });

    print("Relay 2 eingeschaltet (nach langem Signal)");

    });

    });

    }


    // Eingang AUS

    else {

    print("Eingang 1 → AUS erkannt");


    // Dauer berechnen

    let duration = Date.now() - inputStartTime;


    // 60s-Timer stoppen (falls aktiv)

    if (longPressTimer) {

    Timer.clear(longPressTimer);

    longPressTimer = null;

    }


    if (duration < 60000) {

    print("Eingang < 60s EIN → Relay 1 bleibt an");

    }


    // Starte 4-Minuten-Timer für Relay 2 AUS

    offDelayTimer = Timer.set(4 * 60 * 1000, false, function () {

    print("Eingang AUS > 4min → Relay 2 AUS, Zyklus neu");

    Shelly.call("Switch.Set", { id: RELAY2, on: false });

    Shelly.call("Switch.Set", { id: RELAY1, on: false });


    // Nach 5s Relay 1 wieder an (neuer Zyklus)

    Timer.set(5000, false, function () {

    Shelly.call("Switch.Set", { id: RELAY1, on: true });

    print("Neuer Zyklus gestartet: Relay 1 EIN");

    });

    });

    }

    }

    });


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


    so wie thgoebel geschrieben hat:


    ``Weil bei gleichzeitiger Einschaltung von O1 und O2 der Lüftermotor (genauer gesagt der Kondensator) zerstört wird, muß ein Script zur gegenseitigen Verriegelung der beiden Ausgänge verwendet werden. Nutzer „Ostfriese“ hat ein solches hier im Forum veröffentlicht.``


    hab leider nichts gefunden.

    werde ich weiter suchen.


    Danke an Allen

    bis nächstes Mal.

    original ist siemens verbaut

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

    nun ist nach 12 Jahren kaput gegangen.

    hab frühe mit schelly an und aus geschaltet. L unterbrochen bei Q1

    hab probiert mit diese schaltung ersetzen.

    100332-22ae47bf9d473910015040860e56ee7577818393dc756348e4fed9b672635c07.webp

    nun das eingänge von Shelly pro3 kriege ich nicht so programmieren, damit die relais richtig schalten.

    die starten die szenen nicht .

    shalter am S1 (WC Licht) angeschlossen.

    macht auch keine unterschied welche eingang ich nutze.

    so kann man auch zeitgesteuert machen.

    Das Eingänge S1 S2 Shelly kann man als auslöser programmieren?

    oder Laufen die mit relais paralell?

    S1 mit Zeitsteuerung.

    S2 als stufenschaltung.

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

    Guten Tag zusammen,

    ich habe folgende Aufgabe:

    Ein zweistufiger Ventilator soll im Normalbetrieb rund um die Uhr (24/7) auf Stufe 1 laufen.
    Sobald vom WC-Lichtschalter das Signal „Licht an“ kommt, soll automatisch auf Stufe 2 umgeschaltet werden.

    Sobald das Signal vom WC-Schalter wieder weg ist (also das Licht ausgeschaltet wird), soll der Ventilator wieder zurück auf Stufe 1 schalten.

    Wie lässt sich das am besten umsetzen?

    Vielen Dank im Voraus!