Ich bin jetzt gerade nicht zuhause. Wichtig ist, dass in der Tasmota Webschnittstelle keine Knöpfe mehr erscheinen, sondern ein Schieberegler, mit dem der gewünschte Prozentwert angegeben wird.
Die Befehle hierfür sind zuerst mal
SetOption80 1 (um Shuttersupport überhaupt zu aktivieren) Ich bin mir nicht sicher, ob danach ein Neustart fällig ist.
Wenn Du mit einem Vierkanal-Modul zwei Rollläden steuern willst, folgt nun
ShutterRelay3 2 un
ShutterRelay4 2 um die Relais 3 und 4 zur zweiten Gruppe für einen Rollladen zusammenzufassen. Somit sind zwei Shutter steuerbar.
Nun musst Du den Modus der Steuerung wählen. Gewöhnlich hat man pro Motorwicklung ein Relais, so dass über das jeweils erste Relais eines Paares der Motor nach oben läuft, über das jeweils zweite Relais dann nach unten. Also
ShutterMode1 1 und
ShutterMode2 1 (wahlweise kann der Modus aber auch auf 0 bleiben, dann wählt Tasmota die Betriebsart anhand der weiteren Konfiguration).
Da gewöhnlich pro Rollladen immer nur maximal ein Relais anziehen darf, wird jetzt noch Interlock pro Paar aktiviert:
Interlock 1,2 3,4
Interlock ON
Man beachte das Leerzeichen zwischen zwei und drei.
Spätestens jetzt solltest Du das Modul einmal neu starten. Anschließend sollten in der WebUI von Tasmota zwei Schieberegler sichtbar sein.
Mit
ShutterInvert1 1 und
ShutterInvert2 1 Änderst Du das Verhalten so, dass es zu openHAB passt (0 = offen, 100 = geschlossen)
Zum Schluss misst du die Fahrtzeit hoch und die Fahrtzeit runter mit einer Stoppuhr nach und trägst diese Zeiten für das erste Paar mit
ShutterOpenDuration1 <wert> und
ShutterCloseDuration1 <wert> ein.
<wert> ist dabei ein Zahlenwert zwischen
10.0 und
240.0 (also auf eine zehntel Sekunde genau). Für das zweite Paar geht es genauso, nur mit einer 2 am Ende...
Danach sollte die Steuerung über die Tasmota Oberfläche sauber funktionieren.
Für die Anbindung an openHAB brauchst Du MQTT. MQTT ist ein speziell für M2M (Machine to Machine) Kommunikation entwickeltes Protokoll, wobei aber darauf geachtet wurde, dass auch der Mensch es einfach verstehen kann. MQTT verfolgt einen zentralistischen Ansatz, das heißt, es gibt eine zentrale Stelle, in der diie Kommunikation zusammenläuft. Alle Geräte (openHAB ist in diesem Sinn auch ein Gerät) sind Clients und sprechen ausschließlich mit der Zentrale, die den Namen
Broker trägt.
Der Broker tut auch genau das, er handelt mit Nachrichten. Ein Client publisht (veröffentlicht) eine Nachricht, und zwar unter einem bestimmten Topic.
Andere Clients sagen dem Broker, dass sie an Nachrichten dieses Topics interessiert sind, sie abonnieren das Topic.
Der Broker merkt sich für jeden Client, an welchen Topics er interessiert ist und sendet ausschließlich diese Topics an den Client. Tasmota abonniert z.B. den Zweig cmnd des eigenen Geräts, so dass es über alle Befehle informiert wird, die an das Gerät gesendet werden.
Die Topics sind in einer Baumstrukur organisiert. dabei ist nicht festgelegt, wie diese Struktur aufgebaut ist. Default lautet die Struktur bei Tasmota
%prefix%/%topic%/, man kann das aber auch ändern. Aber beide Begriffe sollten unbedingt vorkommen. Du kannst also z.B. auch %topic%/%prefix%/ schreiben oder tasmotas/%prefix%/%topic%/, aber keinesfalls darf %prefix% weggelassen werden. %topic% könnte notfalls durch einen festen Wert ersetzt werden, man verschenkt dabei aber Funktionen.
%prefix% nimmt in Tasmota drei verschiedene Werte an, und zwar
cmnd,
stat und
tele. Mit tele markiert Tasmota Topics, welche automatisch alle x Sekunden gesendet werden (default alle fünf Minuten - oder waren es zehn Minuten? ist einstellbar...) stat liefert den Status (als Ergebnis eines vorherigen Befehls) und mit cmnd kann man einen Befehl an Tasmota senden.
MQTT ist in Tasmota feature-complete, das heißt, Tasmota lässt sich vollständig über mqtt steuern, inklusive der Option, MQTT abzuschalten

Einschalten geht naturgemäß nicht, auch wenn selbst dieser Befehl über mqtt gesendet und verstanden wird.
%topic% wird gewöhnlich auf einen fixen eindeutigen Wert pro Device gesetzt. Es gibt außerdem noch ein Fallbacktopic, welches gewöhnlich tasmota-%06X lautet - damit endet das Fallbacktopic dann mit den letzten sechs Stellen der MAC. (oder so ähnlich...)
Und es gibt noch ein drittes Topic, das das ist das Group Topic. Je nach Belieben kann man alle Tasmota Geräte in einer oder auch mehreren Gruppen zusammenfassen (aber jedes Gerät gehört exakt einer Gruppe an). Die Group kennt nur das cmnd Prefix. Damit wird es möglich, viele Geräte gleichzeitig zu steuern, z.B. kann man darüber auf allen Tasmota Geräten auf einen Schlag die WLAN Credentials tauschen oder ein Firmwareupdate einspielen (nun ja... nicht ganz ohne Risiko...)
Als Broker empfiehlt es sich, Mosquitto zu nutzen, das ist quasi Standard und openHABian bringt eine Installationsroutine mit. Leider muss man anschließend noch die Konfiguration anpassen, damit mosquitto auch auf der externen IP auf Anfragen reagiert.
In openHAB musst Du das MQTT Binding installieren und eine mqtt Bridge einrichten, das ist der mqtt Client, welcher sich mit mosquitto unterhält.
des weiteren brauchst Du mindestens ein generic mqtt Thing, am besten ist es aber, pro Device exakt ein Thing anzulegen. Unterhalb des Thing legst Du wie üblich Channels pro Funktion an, also z.B. pro Shutter einen Rollershutter Channel.
Für die eigentliche Anbindung von Tasmota an openHAB brauchst Du nun zwei Topics, das sind
stat/<deviceID>/SHUTTER1 für den Status nach einer Fahrt sowie
cmnd/<deviceID>/ShutterPosition1 als CommandTopic (für den zweiten Kanal entsprechend mit der 2). openHAB achtet auf die Groß/Kleinschreibung, entsprechend muss auf der Empfangsseite wirklich jeder Buchstabe korrekt gesetzt sein (SHUTTER1, nicht Shutter1 oder shutter1)
Man kann den Status auch noch aus einem anderen Topic beziehen, dann muss allerdings zusätzlich JSONPATH und REGEX installiert sein, in der incommingValueTransformation müssen dann beide Transformations verknüpft werden, weil das Topic nicht exklusiv für den Shutter verwendet wird. Entsprechend ist die Variante oben die einfachere Lösung.
ShutterPosition1 nimmt alle passenden Befehle an, also UP, DOWN, STOP und die Zahlen von 0 bis 100, exakt so, wie ein Rollershutter Item sie auch liefert.
EDIT: Fehler korrigiert