Beiträge von eiche

    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.

    Kannst du mal genau angeben, wo der entsprechende Passus in der von dir angegebenen Quelle zu finden ist oder diesen hier zitieren.

    Ich fand nichts dergleichen, habe auch nach "target temperture" gesucht, ohne Erfolg.

    Die Schwelle der Temperaturänderung, ab welcher der H&T seinen neuen Messwert mitteilt, ist keine Zieltemperatur.

    Per zweier Actions, auf dem H&T eingetragen, kann dieser aber Aktionen auf einem anderen Shelly per URL auslösen, bspw. ein- oder ausschalten des Ausgangs im empfangenden Shelly. Dazu braucht es tatsächlich kein Skript. Eine geeignete Action zum einschalten des Ausgangs eines Shelly Plus 1 wäre bspw.

    http://<IP Zieladresse>/rpc/switch.set?id=0&on=true

    Die Bedingung dieser Action wäre die Unterschreitung eines Temperaturwertes. Dazu kannst du auch das aktive Zeitintervall einstellen.

    Somit ist es relativ leicht möglich, über einen Tag verteilt, unterschiedliche Temperaturschwellen fest einzustellen, welche solche Actions auslösen. Dieses Einstellen ist etwas aufwändig und nicht wirklich dazu geeignet, mal schnell eine Zieltemperatur zu ändern. Solches gelänge erst mit Hilfe eines Zusatztools, welches auch aus einer Webseite bestehen kann, die geeignet strukturiert ist und die passenden Links mit den URL zum Umkonfigurieren bereit hält. Eine Alternative wäre ein übergeordnetes System, welches solche Umkonfigurierungen bereit stellt. Ich täte dafür ein Node-RED Dashboard oder eine MQTT App einsetzen.

    Ich setze nun voraus, dass es keine Zieltemperatur auf dem H&T gibt. Dann gelingt etwas ähnliches nur über zwei Schwelltemperaturen mit Hysterese, deren Unter- bzw. Überschreitungen Actions auslösen. Das wäre eine Nachbildung einer Zieltemperatur für eine Zweipunktregelung.

    Der H&T kann aber auch in Actions seine Temperatur-Messwerte per ${ev.tC} übertragen, eingebettet in den URL. Damit kann ein Skript auf dem empfangenden Shelly die Temperaturregelung übernehmen, weil es die Messwerte vom H&T empfängt. Dies gelingt ohne übergeordnetes System. Die Änderung der gewünschten Zieltemperatur ist dann dem Skript mitzuteilen. Dies gelingt auf unterschiedlichen Wegen, abhängig von deiner smart home Umgebung. Notfalls kann dazu das KVS genutzt werden, wo solche Daten per Web UI des regelnden Shelly eingetragen werden können. Auch können relativ viele Schedule Jobs auf dem regelnden Shelly dafür genutzt werden, solche Zieltemperaturen in Zeitintervallen dem Skript mitzuteilen, auch Wochentags abhängig und mehr.

    Du erkennst hoffentlich, dass die Shelly sehr unterschiedliche Möglichkeiten bieten, die vielleicht nicht leicht zu erfassen, aber je nach smart home Umgebung sehr flexibel nutzbar sind.

    Sobald ich deine genaue smart home Umgebung kenne, kann ich dir ggf. auf diese Umgebung zugeschnittene Empfehlungen geben. Entscheidend ist weniger die Regelung selbst, diese ist per Skript möglich, sondern die einfache Handhabung von Zieltemperaturänderungen. Dies gelänge bspw. per MQTT und einer App relativ leicht. Ich nutze dafür die Android App MQTT Dash sehr gerne, die aber nicht auf iOS verfügbar ist. Da ich kein iPhone nutze, kenne ich keine dafür geeignete App. Die Alternative wäre bspw. ein vom Skript bereitgestellte interaktive, per Browser nutzbare Webseite, über welche die Zieltemperatur und ggf. anderes ad hoc auf dem regelnden Shelly einstellbar wäre. Dies zu programmieren erfordert aber einigen Aufwand. Ich habe etwas ähnliches für eine Heizkreisregelung per Shelly Plus 1 mit Plus AddOn erstellt. Dies ist aber noch nicht komfortabel genug. ostfriese erstellt etwas ähnliches für ein Forumsmitglied. Wenn ich dazu den Link finde, reiche ich ihn nach. Bestechend daran ist, dass dies alles ohne zusätzliche Ausstattung ginge, nur WLAN ist erforderlich.

    Aufgrund des Sleep-Mode könnte es auch sein, dass der Shelly H&T sich während einer Wachphase die Paramter selber aktiv holen muß

    Ich wüsste nicht, wie der H&T dies bewerkstelligen könnte, da auf diesem kein Skript nutzbar ist.

    Ich habe echt NULL-Ahnung wie es funktionieren soll, den 2PM ohne die "Shelly Smart Control"-App (Version 3.71.36) einzurichten

    Zuerst verbindest du dein Handhabungsgerät (Notebook, Tablet, Smartphone) mit dem Access Point des Shelly.

    Dann ganz schlicht per Web Browser und http://192.168.33.1'.

    Nach der Einbindung in dein LAN geht es am besten weiter per Browser mit http://<IP Adresse des Shelly im WLAN>.

    Ist das nirgendwo auf dem Beipackzettel notiert?

    Edit: Dieses bevormundende automatische Einstellen als Link ist grässlich. Sorry, ich konnte den ersten URL nicht "delinken". X(