im addEventHandler eine URL Action erkennen (Shelly i3 -> Shelly Plus 1)? (Lösung Webhook)

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.

  • Ist das korrekt ?

  • Problem ist nun.

    Wenn Switch:0 ist ON und ich sende per URL action ein ON,

    dann gibt es kein delta bzw. kein event.

    Somit kann ich nicht erkennen, wenn der URL action ON gesendet wird.

    Hinweis: Der Switch über Taster auf ON gesetzt startet einen Timer für's Ausschalten, und der URL action soll diesen Timer u.a. löschen

  • Hinweis: Der Switch über Taster auf ON gesetzt startet einen Timer für's Ausschalten, und der URL action soll diesen Timer u.a. löschen

    Ich bin nicht ganz sicher, ob ich das richtig verstehe..

    - der lokal am Shelly angeschlossene Taster startet einen Timer und schaltet das Relais für Zeit X an, dann wieder aus?

    - der Aufruf von extern (I3 über HTTP) soll diesen Timer löschen? also relais soll dauerhaft anbleiben?

    Was soll passieren, wenn der Shelly über die App / Sprache etc geschalten wird?

    mit einem HTTP-Server Handler kannst du auf jeden Fall unterscheiden, woher der Aufruf kommt aber ich würde gern die genaue Problemstellung kennen ;)

    https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…ures#httpserver

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • Hallo Seven of Nine

    ich dachte mal wieder ich halt meine Frage einfach und allgemein, weitgefehlt :)

    Ich verwende ein Shelly P1PM,

    einen Bewegungsmelder der am Input des P1PM angeschlossen ist und

    einen Shelly i3 für eine Schaltererkennung und Steuerung des Outputs des P1PM über URL action.

    • P1PM wird über Script gesteuert
    • Input ist unabhängig vom Output
    • wenn der Bewegungsmelder den Input aktiviert wird der Output aktiviert und nach der Timerzeit X wieder deaktiviert (funktioniert)
    • der i3 schaltet den Output per URL action, ohne Timer (An/Aus) (Statusänderung mittels http-Erkennung funktioniert)

    Wenn nun der Output durch den Input für die Zeit X aktiviert wird,

    ich per URL action des i3 den Output dauerhaft aktivieren möchte, wird diese Statusänderung mittels http-Erkennung nicht erkannt und der Timer nicht gelöscht,

    da keine Änderung vorliegt, somit deaktiviert der Timer nach der Zeit X den Output wieder.

    Was mir fehlt, ist die Erkennung der URL action damit ich den Timer löschen kann.

    Unten mein Teststand mit Testausgaben.

    Ich kann erkennen, wenn sich etwas per http ändert z.B. Switch ON/OFF

    Debug-Ausgabe:

    status

    fkt_stopOffTimer

    addStatusHandler_http Output: true

    addStatusHandler:source http

    Wen aber der Output bereits ON ist passiert hier nichts, was klar ist.

    Was ich mir als Workaround nun überlegt habe, zusätzlich dem URL action einen hohen Timer-Wert mitzusenden,

    das löst den StatusHandler auch aus, zwar nicht wie zuvor

    Debug-Ausgabe:

    status

    addStatusHandler:source undefined

    Grundsätzlich finde ich Undefined keine gute Programmierung.

    Kann ich den Timer-Wert als Änderung erkennen und diesen Löschen ?

    Oder den URL action im Script über ??? erkennen, anstatt über statusHandler.

    Vermutlich über den von Dir angegebenen HTTP Server,

    aber dazu muss ich erst mal nach Beispielen suchen um zu erkennen was ggf. möglich sein könnte.

    Allgemein fehlen mir mögliche Werte in der shelly-api-docs, was ich schade finde.

    Ich lerne an den Beispielen und weniger an den abstrakten Erklärungen der shelly-api-docs :)

    Patrick

  • Dieses Thema enthält 7 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.