Ich habe in Ruhe noch einmal über die Situation nachgedacht und will einige Gedanken festzurren.
- Status Quo
- Der Antriebsmotor ist nicht unmittelbar ansteuerbar.
- Ausschließlich über einen einzelnen Taster kann derzeit der Rollladen manuell gesteuert werden.
- Ziel: Ein geeignetes Shelly Gerät soll folgendes (wieder)herstellen.
- Eine vormals vorhandene Bedienbarkeit, wenn auch mit anderen Endgeräten (Benutzer Frontends).
- Die Nutzung von Zeitplänen, incl. Sonnenauf- und Sonnenuntergang.
- Als Shelly Gerät ist kein dafür von Herstellerseite vorgesehenes Gerät geeignet, weil diese unmittelbar am Antriebsmotor angeschlossenen werden müssen.
- Als Gerät ist (ausschließlich) ein Gerät mit potentialfrei schaltbarem Ausgang geeignet, der statt des vorhanden Tasters einzusetzen ist - bspw. ein Shelly Plus 1 ohne PM!
- Der vorhandene Taster oder ersatzweise ein anderer Taster ist zur Ansteuerung des Shelly einzusetzen. Dies gewährleistet bereits die aktuell vorhandene Funktion, ohne dem Ziel nähergekommen zu sein.
- Eine zielführende Implementation gelingt ausschließlich per Skript(e), welche(s) eine passende Anzahl an Tastendrücken emulieren - also ein Workaround darstellen.
Die Implementation per Skripte gelingt vermutlich am besten mit zwei Skripten.
- Ein Skript "adapt", welches als Adapter dient. Dieser Adapter nimmt Steueraufträge entgegen und steuert die Elektronik des Rollladenantriebs so, dass dieser wie gewünscht arbeitet.
- Ein Skript "control" mit klassischer Ansteuerung des Rollladenantriebs, aber, statt verfügbare Shelly Firmware Methoden zu nutzen, Aufträge an "adapt" weiterreicht.
Eine solche Aufteilung macht die Funktion jedes Skripts transparent und unterstützt die Pflege des Projektes. Ich bin davon überzeugt, dass das Ziel hiermit erreichbar ist, mit o.a. Einschränkungen (s. 1.3 und folgendes). Insbesondere die in der Web UI und der Cloud vorgesehenen Bedienungselemente sowie die Nutzung von Sprachassistent-Routinen werden damit nicht zur Verfügung stehen. Eine hiermit unmögliche Kalibrierung wäre durch Zeitmessungen zu ersetzen, deren Zeitspannen für die Skripte zu konfigurieren wären. Es könnte optional ein drittes Skript zum Zuge kommen, welches eine anwendungsgerechte Webseite zur Verfügung stellt und so per Web Browser nutzbar wäre, notfalls sogar bei Ausfall des WLAN.
Das Anlegen von Zeitplänen müsste hierzu zunächst ohne App oder Web UI vorgenommen werden. Nach dem Anlegen solcher Zeitpläne bietet die Web UI genügend Optionen, solche Zeitpläne umzugestalten. Hierfür kann ich bei Bedarf zusätzliches darlegen.
Insgesamt ist dieses Projekt ein etwas größerer Brocken und nicht mal eben schnell implementierbar, jedenfalls nicht für mich.