Beiträge von eiche

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.

    Dabei möchte ich die Schalter durch Kontrollschalter ersetzen

    Vorsicht bei Schaltern mit Kontrolllämpchen! Wenn du die Kontrolllämpchen mit den Ausgängen der Shelly schalten lassen kannst, gelingt das ohne weiteres, nicht aber, wenn die Lämpchen von den Schaltern geschaltet werden, die ja an den Shelly Eingängen liegen. Dann wirst du zusätzlich den hier sog. "Bukowski-Draht" basteln müssen.

    Btw, diese Lösung von Schaltern/Tastern an Eingängen der schaltenden Shelly ist am ausfallsichersten, weil deren Funktion auch ohne WLAN sichergestellt ist.

    Ein Shelly i4 zusammen mit 4 Tastern in einer Leerdose lässt erheblich mehr Möglichkeiten zu, ist aber WLAN abhängig.

    Jo, das sollte so gelingen. Damit hast du zwei Temperaturschwellen genutzt, eine Solltemperatur liegt nicht vor, man kann sie sich aber bei ca. 19.75C vorstellen. ;)

    Auf diese Weise auf eine andere "Solltemperatur" zu wechseln, macht selbstverständlich kein Anwender, weil das zu aufwändig und insbesondere fehlerträchtig wäre.

    Solange genau diese beiden Temperaturschwellen genutzt werden sollen, ist es aber praktikabel.

    Perhaps a little bit simpler without the call of three Shelly.getComponentStatus() at the status handler.

    Your code above is completely fine. This is just an alternative.

    // An array that stores all input states.
    let input = [false, false, false];

    Shelly.addStatusHandler(function(e) {
    // Only handle input from switch state changes
     if (e.name === 'input') {
      input[e.id] = e.info.state;
      console.log('event -> ', JSON.stringify(e));
      let output_state = input[0] && input[1] && input[2];
      Shelly.call("Switch.set", {id: 1, on: output_state});
     }
    });

    // Get status of all inputs at script start.
    for(let i=0; i<3; ++i) input[i] = Shelly.getComponentStatus('input:' + i, i);

    Kann auch sein, dass ich das missverstanden habe.

    Das wird wohl der Fall sein. Die "thresholds" sollten vermutlich im Singular zu verstehen sein. Aber vielleicht hat der H&T Gen. 3 zwei Schwellen, eine nach oben und eine nach unten. Dies ändert jedoch nichts am Prinzip. Soll heißen, ich bin davon überzeugt, dass er keine Zieltemperatur verarbeiten kann.

    Meine Umgebung ist derzeit einfach ein H&T und ein Shelly Plus 1 mit Addon.

    Dann ist ein Skript zielführend. Ab nächster Woche habe ich zumindest die Möglichkeit, solches genauer zu untersuchen, ein Skript zu erstellen und zu testen. Wann ich dafür die Muße finde, bleibt aber noch offen. Du darfst aber davon überzeugt sein, dass dein Gewünschtes gelingen kann.

    Ich sah eben per VPN an einem Shelly Plus 1 nach. Damit kann man die von mir versuchte, bedingte Action nicht bauen.

    Bei Weiterverwendung des Tasters und ohne Skript bleibt noch zum verzögerten Ausschalten einen double push oder einen long push zu verwenden. Damit gelingt das Gewünschte jedenfalls.

    Eagle69

    So etwas gelingt selbstverständlich per Skript. Es sollte aber auch einfacher per Actions gelingen. Das Problem ist allerdings die Nutzung eines Tasters statt eines Schalters.

    1. Du stellt den entsprechenden Eingang auf detached!
    2. Nun erstellst du zum kennenlernen eine Action, die bei erkennen eines Tasterdrucks (push) den betreffenden Ausgang umschaltet!
      URL: 'http://127.0.0.1/rpc/switch.toggle?id=<Id des zu schaltenden Ausgangs, 0 oder 1>'
    3. Nun kannst du versuchen, eine weitere Bedingung einzubauen, was evtl. nicht gelingt. Diese Bedingung muss den derzeitigen Ausgangszustand verarbeiten.
      Wenn gegenwärtig ausgeschaltet, dann einschalten.
      Andernfalls einschalten mit dem Parameter "toggle_after=30"
      Ich empfehle zwar für solches nie die Cloud, aber vermutlich gelänge dies per Szenen, falls es per Actions nicht gelingen sollte.
      Am besten ist halt ein Skript.
      Der neue URL zum ausschalten wäre so: 'http://127.0.0.1/rpc/switch.set?id=<Ausgangs Id>&on=true&toggle_after=30'
      Beachte, dass hiermit zwar eingeschaltet wird, obwohl bereits eingeschaltet ist, aber 30s später ausgeschaltet wird.

    Bin gespannt, was hierzu per Action gelingt. Ich kann solches derzeit nicht testen.

    Diese Actions gelingen sicher bei der Verwendung eines Schalters statt Taster, weil der Schalter den Ausgangszustand mechanisch speichernd "kennt".

    Wenn es nicht gelingen sollte, können wir mal schauen, wie dies ein Skript erledigen kann.


    Edit:
    Noch eine etwas ungewöhnliche und in der Wirkung vermutlich nicht ganz zufriedenstellende Idee.
    Du stellst den Eingang wieder auf Taster (nicht detached) um!
    Dann erstellst du eine Action, die beim Ausschalten noch einmal für 30s einschaltet!

    Meiner Erfahrung nach gelingt es nicht, einen automatisch wegen 'http://...' erzeugten, nicht vom Nutzer angestrebten Link zu deaktivieren. Jedenfalls habe ich solches wiederholt versucht. Ich weiß, dass man einen solchen in einem Code-Abschnitt unterbringen kann. Dies kann aber den fließenden Text ungünstig unterbrechen.