Shelly Button soll Eingang vom Plus Uni deaktivieren

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

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.

  • Huhu Gemeinde,


    Ich habe ja eine analoge Klingel, welche ich mit einem plus Uni smart gemacht habe. Läuft ja auch perfekt.

    Ebenfalls laufen darauf zwei Scripte, welche den Eingang zu bestimmten Zeiten deaktiven und aktivieren.


    Jetzt hätte ich aber parallel gerne noch, dass ich den Eingang mit Hilfe des shelly Button 1 deaktivieren kann. Diese kann ja http requests senden.

    Wer kann mir helfen ein Script zu erstellen, welcher den http request empfängt und den eingang togglet?

    Ich selber habe keine Kenntnisse und nutze eigtl nur ki dafür, was bisher auch wunderbar funktioniert hat. Allerdings stößt diese an ihre Grenzen und wir kommen nicht vorwärts.

    Ich will das Thema aber nicht als erledigt ansehen, sofern mir kein Mensch bestätigt, nein, das ist nicht möglich.


    Wäre also über eure Hilfe sehr dankbar.

    PS. Ich nutze kein ubergeordnetes Assistent system, nur die shelly eigene app.


    Mfg

    Marcel

  • Das sollte mit folgenden URL gelingen.

    Code
    // deaktivate input:0
    http://<IP address>/rpc/input.setconfig?id=0&config={"enable":false}
    // activate input:0
    http://<IP address>/rpc/input.setconfig?id=0&config={"enable":true}

    Für input:1 entsprechend mit ...?id=1&...

    Dies kannst du zunächst via Browser testen.

    Zunächst die Abfrage:

    Code
    http://<IP address>/rpc/input.getconfig?id=0

    Dies liefert die Konfiguration des input:0. Die Antwort wird etwa so aussehen:

    Code
    {"id":0,"name":null,"type":"button","enable":true,"invert":false}

    Nun gibst du den URL zum deaktivieren ein (s.o.). Anschließend die Abfrage mit ...input.getconfig?id=0.

    Nun sollte die Antwort etwa so lauten:

    Code
    {"id":0,"name":null,"type":"button","enable":false,"invert":false}

    Bei erfolgreichen Tests sind diese URL als Actions im Button einzutragen-

    Quelle: https://shelly-api-docs.shelly.cloud/gen2/Component…s/Input#methods

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Heißt also, ich komme nicht herum zwei Befehle anlegen zu müssen? Toggle ist nicht möglich? Wollte das beim button mit long push verknüpfen, da die anderen schon vergeben.


    Aber das muss ja dann über ein Script laufen, da ja vorher der Status abgerufen werden muss. Also wohl eher nicht.

  • Da hier die Konfiguration manipuliert wird, ist kein toggeln vorgesehen.

    Wenn du das Sperren/Freigeben eines Eingangs toggeln willst, gelingt dies afaik ausschließlich mit einem kleinen Skript. Dann wäre per Methode "Script.Eval" die entsprechende Skriptfunktion aufzurufen, bspw. toggleInpEn(id). Diese Funktion liest dann die Konfiguration ein und stellt den Wert von "enable" invertiert ein.

    Dies ist allerdings ohne Rückmeldung fehlerträchtig, eil man dann den Status nicht erkennen kann. Vielleicht kannst du dafür eine LED geeignet ansteuern. Alternativ ließe eine Nachricht an/über ein übergeordnetes System eine Signalisierung auf ein Smartphone zu (zumindest via MQTT, auch bei Nutzung eines öffentlichen MQTT Brokers).

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Mechanoid1

    Das folgende Skript tut, was du wünschst.

    Die Funktion beinhaltet zwei Ausgaben via print, welche ausschließlich dem testen dienen.

    Um die Eingangsfreigabe zu toggeln, ist die Skriptfunktion toggleInpEn mit der Eingangs-Id als Parameter aufzurufen. Das gelingt folgendermaßen, bspw. auf deinem Button.

    Code
    http://<IP address uni>/rpc/Script.Eval?id=1&code="toggleInpEn(0)"

    id=1 ist die Id des Skripts und abzuändern, wenn die Funktion in einem anderen Skript liegt. Statt von Eingang 0 lässt sich selbstverständlich auch die Freigabe von Eingang 1 ... umschalten.

    Btw, diese Funktion "toggleInpEn(id)" kann selbstverständlich auch einem bereits vorhandenen Skript hinzugefügt werden.

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist.