Beiträge von PatrickR

    Hallo fws13 ,

    bei mir funzt es per Szene wie folgt.

    - Shelly_A mit 2 Szenen
    - Shelly_B

    Szene_1:
    Wenn "Einschalten" dann schalte Shelly_B

    Szene_2:
    Wenn "Ausschalten" dann schalte Shelly_B ein und nach 20 Sekunden Toggle Ausgang

    Wenn ich nun Shelly_A einschalte, wird Shelly_B eingeschaltet.
    Wenn ich nun Shelly_A ausschalte, wird Shelly_B eingeschaltet und am Shelly_B startet der Ausgangswechsel in 20 Sekunden (= Aussschalten in 20s)
    Wenn ich nun Shelly_A vor Ablauf der 20s wieder einschalte, dann stoppt der Auschalttimer auf dem Shelly_B, und Shelly_B bleibt an.

    Ob es das ist was Du willst weiß ich nicht, doch zumindest entspricht es Deinen Angaben.
    Soll die Möglichkeit bestehen, dass Shelly_B auch per Taster ein- und ausgeschaltet werden kann ?

    Patrick

    Hallo fws13,
    geht es Dir allgemein um Szenen abbrechen oder um den Anwendungsfall mit den 2 Shellys ?

    Das mit den 2 Shellys würde vmtl. leichter in einem Skript laufen.

    Welche Shellys sind die zwei ?
    Shelly A zumindest skriptfähig ?
    Feste IP vom Shelly B?

    Patrick

    PS: Wenn es um den Anwendungsfall geht, dann erstelle doch ggf. einen neuen Beitrag

    gantim Nicht jeder hier hat Deine Erfahrung und Deine Möglichkeiten.
    Abhängig von der Anwendung, der Wichtigkeit der Ausfallsicherheit und ggf. bereits vorhandenen Systemen, macht Dein Ansatz definitiv Sinn.

    Der Liquidationen hat sich hier an das Forum gewendet mit seiner Anwendung/Frage.
    Da es möglich ist, haben wir es nicht weiter hinterfragt.

    Es wird immer was besseres/sicheres geben.

    Es stand hier auch nicht zur Frage, dass seine Anwendung auf X-Shellys laufen soll.
    Wir wissen nicht wie kritisch ein versäumter Termin für ihn ist.

    Sollte es kritisch sein, dann wäre Dein Vorschlag besser als die Shellys und ich würde Dich bitten das Thema in seinem Sinne zu übernehmen.

    Die Minutenabfrage macht in der Tat kein Sinn und das könnte besser gelöst werden.
    Mein Ansatz steht oben.

    Man könnte, auch Auslösezeitpunkte in einem 2-dimensionalem Feld schreiben, somit für jeden Tag unterschiedliche Zeiten und mehrere eintragen,
    somit einen Zeitplan aufstellen.

    Patrick

    Oder was auch gehen würde, und noch besser ist bzw. sein sollte.
    (5:55 und 5 Minuten sind exemplarisch und konfigurierbar)

    ===

    Beim Script-Start, die Zeit bis 5:55 berechnen,
    dann einen Timer_DL für den Download der Ferientage/Feiertage auf 5 Minuten vor dem 5:55-Timer Check, somit 5:50, setzen.

    Nach dem die Daten heruntergeladen wurden, die Zeit bis 5:55 berechnen und damit den Timer_Check setzen.

    Und dann nach erfolgtem Check den Timer_DL neu berechnen und wieder 5 Minuten vor 5:55 setzen.

    Für's programmieren ist es für mich heute zu spät.
    Ggf. morgen Vormittag.

    Oder, noch eine ganz andere Idee.

    Wie groß kann ein Timer maximal gesetzt werden ???

    Die Überlegung wäre, den nächsten vermeintlich gültigen Auslösetag (Werktag 5:55) berechnen und den ersten Timer_DL entsprechen zu setzen.

    Da aber mit ACTIVE_DAYS Tage ausgewählt werden können unabhängig Werktag oder nicht,
    könnten nur Tage welche nicht in der ACTIVE_DAYS-Liste sind, übersprungen werden.
    Einfacher wäre es, jeden Tag den Check zu machen.

    Mal schauen. ..

    Nächtle
    Patrick

    Die Vorgabe vom Minutentimer hat sich Liquidationen ausgedacht.
    Grundsätzlich hast Du recht, aber ich kenn nicht die Anforderung, drum hab ich den Timer als Konfigurationswert geändert.

    Oder einfach das Script jeden Tag 5 Minuten früher einschalten und wieder 10 Minuten später ausschalten.

    Oder die Zeit berechnen und entsprechend den Timer zuvor wieder aktivieren/starten etc.

    Bzgl. der Timerauslösung z.B. 5:55 einfach +1 Minute für die Überprüfung hinzuaddieren, dann löst er von 5:55 - 5:56 aus.

    Hallo Liquidationen ,

    anbei das Script.

    Ich hatte etwas Probleme mit den Arrays und dem Datum.

    Hat aber letztendlich geklappt :)

    Viel Spaß damit.

    Rückmeldung ist Pflicht ;)

    Patrick

    Liquidationen

    ChatGPT verwendet Befehle, die kenn ich nicht.

    den .map z.B. (heißt aber nichts, ich lerne immer hinzu) :)

    Desweiteren,
    for (const key in holidays)

    vielleicht hab ich was verpaßt, aber key sollte eine Variable sein.
    Und ich weiß nicht, was der Vorteil sein sollte überall const zu verwenden.

    Grundsätzlich finde ich es interessant, ein Script zu haben, was anzeigt, ob heute ein Feiertag bzw. Ferientag ist.

    Mal schauen, wird heute aber nichts mehr und ggf. reizt es ja noch jmd. anderes ChatGPT zu verbessern.

    Jetzt meckert er noch den key an.

    Den Befehl kenn ich nicht
    "Object.keys(holidays).map(key => holidays[key].datum);"

    Unvollständiges Skript oben:
    Zum einen schau mal bitte Dein Skript an, das ist nicht vollständig oben.

    Debug-Ausgabe:
    Ich persönlich verwende für so etwas den Browser (geht auch in der App)
    Die IP im Browser eingeben, dann unter
    Settings -> '>_ Debug' -> Websocket debug -> 'Enable' Häkchen setzen und 'Save settings'

    Dann unter
    '<> Scripts' -> entsprechendes Skript im Namen klicken (nun wird Dein Code angezeigt in einem Fenster, dass andere ist das Consolen-Fenster)

    Unten im Consolen-Fenster sollten dann etwas angezeigt werden,
    nachdem Du über Deinem Code auf 'Start' gedrückt hast