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

  • 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.