Rolladensteuerung mit Shelly Plus 2PM per API

  • Hallo zusammen,

    ich habe eine Frage zur Rolladensteuerung per REST-API. Ich habe meine eigene Hausautomatisierungssoftware am Laufen und möchen von HomeMatic-Rolladenaktoren auf den Shelly Plus 2PM umsteigen.

    Ich habe bei mir in der Hausautomatisierung eine Funktion eingebaut, die nach einer manuellen Aktion (Steuerung des Rollos per Taster) die automatische Steuerung für einen bestimmten Zeitraum außer Kraft setzt (also wenn ich Rollo manuell hochfahre, dann bleibt er auch für z. B. 1 Stunde oben, erst dann beginnt die automatische Steuerung wieder zu arbeiten).

    Damit das sauber funktioniert, müsste ich aber wissen, ob ich feststellen kann,

    a) ob der Rollo bei der letzten Aktion manuell oder per API gesteuert wurde

    b) wann diese Aktion stattgefunden hat

    Zum Punkt a) denke ich, dass ich das bei der Statusabfrage hinkriege. Ich habe testweise schon mal einen Shelly 2.5 verbaut und da kann man im Status im Attribut "source" die Quelle sehen. Das geht beim Plus 2PM ebenso - das sollte also nicht das Problem sein.

    Zum Punkt b (Ermittlung, wann die letzte Aktion stattgefunden hat) habe ich leider noch nichts gefunden.

    Habt ihr da eine Idee, wie das gehen könnte? Gibt es da eine Möglichkeit, den Zeitpunkt per RESt-API abzufragen?

    Vielen Dank,

    Rudi

  • Hallo rz259,

    zu a) Das haut so leider nicht hin. Der Plus 2PM hat zwar auch ein Attribut source, ab dort steht dann der Grund des Stopps, z.B. "limit_switch", wenn der Rollladen bis in die Endlage gefahren ist.

    zu b) Ein Zeitstempel für die letzte Aktion wird nicht übertragen.

    Möglich wäre es, vom 2PM, sobald er startet, per Webhook eine Systemvariable zu setzen mit dem Wert von source. Damit hättest du die Quelle mit Zeitstempel.

    Oder du könntest den 2PM auch als CUxD-Gerät einbinden und somit sehr ähnlich den Homematic Aktoren bedienen bzw. in Programmen/Skripten ansteuern.

    Gruß

    SeRef

  • Vielen Dank erstmal für das Feedback!

    Hm, schade - ich benutze allerdings keine CCU, sondern einen HM-LAN in Verbindung mit FHEM.

    Ich habe heute schon mal einen Shelly 2.5 testweise in FHEM integriert und da kriege ich sogar einen Timestamp für die letzte Position, aber ich kann leider nicht unterscheiden, ob die Aktion durch eine manuelle Interaktion oder durch einen API-Aufruf getriggert wurde.

    Außerdem habe ich noch nicht entdeckt, wie man den Shelly Plus 2PM in FHEM einbindet - zumindest in der Aswahlliste ist er noch nicht enthalten.

    Ich habe mir schon überlegt, ob ich die IO URL-Aktionen nutzen könnte. Ich könnte mir selbst einen Rest-Service schreiben, an den ich die I/O URL-Aktoinen delegieren könnte. Dort könnte ich dann die Zeit ermitteln, ich muss dann nur noch die Quelle feststellen und das ganze irgendwie persistieren. Meine Steuerung könnte das dann wieder auslesen.

    Dazu müsste ich aber wissen, wie dies I/O-URLs implementiert werden müssen bzw. wie diese aufgerufen werden. Gibt es da irgendeine Beschreibung? Bisher habe ich nur immer gesehen, dass damit Shelly-Devices gesteuert werden, aber für meinen Fall habe ich leider noch nichts gefunden.

    Rudi

  • Bei FHEM kann ich dir leider nicht helfen.

    Dazu müsste ich aber wissen, wie dies I/O-URLs implementiert werden müssen bzw. wie diese aufgerufen werden. Gibt es da irgendeine Beschreibung? Bisher habe ich nur immer gesehen, dass damit Shelly-Devices gesteuert werden, aber für meinen Fall habe ich leider noch nichts gefunden.

    Es gibt da keine Beschränkung auf Shellys. Man kann jedes Gerät, das sich über eine URL steuern oder ansprechen lässt, entsprechende Befehle senden. Es ist lediglich von Bedeutung, dass bestimmte Zeichen URL-encodet sind, da der 2.5 dies nicht mit allen Zeichen von sich aus kann.

  • Ich habe inzwischen ein bisschen rumprobiert und einen Rest-Service geschrieben, das klappt ohne Probleme. Meine Methode wird aufgerufen - gestern hatte ich noch ein bisschen Probleme damit, aber das hatte nix mit dem Shelly zu tun, da war mein Webservice falsch konfiguriert.

    Das klappt also schon mal gut, ich muss halt dann nur bei den Shellys bei der IO URL-Aktion die URL meines Webservices eintragen und kann dann dort die Daten mit einem Timestamp speichern, so dass ich in meiner Hausautomatisierung darauf reagieren kann.

    Jetzt stellt sich nur noch die Frage, wie ich feststellen kann, ob die Aktion manuell oder per API ausgelöst wurde.

    Du hattest weiter oben mal erwähnt, dass man das evtl. mit Webhooks und einer Systemvariable lösen könnte. Wie funktioniert das denn mit den Webhooks?

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