Hallo,
ich habe einen Sonoff T1 mit der Tasmota-Firmware geflasht und möchte den T1 zur Rolladensteuerung verwenden.
Ich hab den Schalter so konfiguriert, dass die Ausgänge gegenseitig verriegelt sind, und die PulseTime auf jeweils 30s gestellt.
Der T1 stellt über Mqtt zwei Schalter mit den Namen POWER1 und POWER2 zur Verfügung. Ich kann für beide Schalter ein Switch-Item erstellen
und darüber lassen sich beide Ausgänge schalten. Mir ist aber nicht ganz klar, wie ich den Itemtyp Rollershutter verwenden kann.
Muss ich da eine Regel erstellen, oder gibt es für die Tasmota-Schalter einen Art Toggle-Befehl.
Vielen Dank für eure Mithilfe
Jürgen
Rollershutter für Sonoff T1
- udo1toni
- Beiträge: 15243
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Rollershutter für Sonoff T1
Ich habe das bis vor kurzem so in Betrieb gehabt. Drei Items für die Funktion
Weiterhin zwei Rules.
Die erste Rule triggert, wenn einer der beiden Switches seinen Zustand ändert. Läuft der Laden in eine Richtung, wird ein Timer gestartet, Stoppt der Laden, wird der Timer gestoppt und abhängig von der Richtung der Wert zum Item Laden addiert oder subtrahiert.
Die zweite Rule kümmert sich um die Ansteuerung durch das Rollershutter Item. Wenn dieses einen Befehl bekommt, stellt die Rule fest, ob es sich um einen Befehl UP/DOWN/STOP handelt (und setzt die Switch Items entsprechend), wenn es sich aber um einen Zahlenwert handelt, rechnet es die Differenz zur aktuellen Position aus, startet den Laden in der passenden Richtung und setzt einen Timer, der den Laden passend stoppt.
Dieses Konstrukt hat auch gut funktioniert, allerdings hat es Schönheitsfehler. Zum Einen muss man die Laufzeit an zwei Stellen anpassen, im Device über einen MQTT-Befehl und innerhalb der Rule. Zum Anderen muss das Rollershutter Item persistiert werden, für den Fall, dass openHAB mal neu startet. Das berücksichtigt aber nicht, dass vielleicht jemand den Laden manuell verfährt, während openHAB down ist. Weiterhin sind beide Rules schon etwas länger, und ich habe 9 Sonoff T1 2Ch, ich habe aber keine Lust, die Rules so anzupassen, dass sie generell für alle Items funktionieren (Gruppen über alle Switche, Gruppen über alle Rollershutter, in der Rule herausfinden, wer die Rule getriggert hat, das als Grundlage für die weitere Steuerung verwenden, Timer in einer HashMap anlegen... usw.)
Es gibt eine Erweiterung von Tasmota von Stefan Bode https://github.com/stefanbode/Sonoff-Tasmota dort gibt es die Rollladenfunktion direkt im Device. Das Ganze ist auhc weitgehend universell gestaltet, sollte also z.B. mit dem Vierkanal-Sonoff auch zwei Läden steuern können. Es ist auch möglich, Motoren zu steuern, die mit Steuerimpulsen arbeiten, genauso wie die Richtung der Anzeige invertiert werden kann (Stefan Bode kommt von homematic-Seite, da ist offen = 100% und geschlossen = 0%). Man kann getrennt pro Richtung die Fahrzeit angeben und auch einen Korrekturwert für die Mittelposition setzen.
Leider funktioniert das bei mir noch nicht zu 100%, weil ich nicht weiß, wie ich verhindern soll, dass die UP/DOWN/STOP-Befehle zusätzlich auf den Position-Befehl geschickt werden. Vermutlich werde ich auch hier drei Items verwenden müssen, aber die Rules sind einfacher und die Position ist im Device gespeichert.
Code: Alles auswählen
Switch Laden_hoch {mqtt=">[...],<[...]"}
Switch Laden_runter {mqtt=">[...],<[...]"}
Rollershutter Laden "Laden [%d %%]"
Die erste Rule triggert, wenn einer der beiden Switches seinen Zustand ändert. Läuft der Laden in eine Richtung, wird ein Timer gestartet, Stoppt der Laden, wird der Timer gestoppt und abhängig von der Richtung der Wert zum Item Laden addiert oder subtrahiert.
Die zweite Rule kümmert sich um die Ansteuerung durch das Rollershutter Item. Wenn dieses einen Befehl bekommt, stellt die Rule fest, ob es sich um einen Befehl UP/DOWN/STOP handelt (und setzt die Switch Items entsprechend), wenn es sich aber um einen Zahlenwert handelt, rechnet es die Differenz zur aktuellen Position aus, startet den Laden in der passenden Richtung und setzt einen Timer, der den Laden passend stoppt.
Dieses Konstrukt hat auch gut funktioniert, allerdings hat es Schönheitsfehler. Zum Einen muss man die Laufzeit an zwei Stellen anpassen, im Device über einen MQTT-Befehl und innerhalb der Rule. Zum Anderen muss das Rollershutter Item persistiert werden, für den Fall, dass openHAB mal neu startet. Das berücksichtigt aber nicht, dass vielleicht jemand den Laden manuell verfährt, während openHAB down ist. Weiterhin sind beide Rules schon etwas länger, und ich habe 9 Sonoff T1 2Ch, ich habe aber keine Lust, die Rules so anzupassen, dass sie generell für alle Items funktionieren (Gruppen über alle Switche, Gruppen über alle Rollershutter, in der Rule herausfinden, wer die Rule getriggert hat, das als Grundlage für die weitere Steuerung verwenden, Timer in einer HashMap anlegen... usw.)
Es gibt eine Erweiterung von Tasmota von Stefan Bode https://github.com/stefanbode/Sonoff-Tasmota dort gibt es die Rollladenfunktion direkt im Device. Das Ganze ist auhc weitgehend universell gestaltet, sollte also z.B. mit dem Vierkanal-Sonoff auch zwei Läden steuern können. Es ist auch möglich, Motoren zu steuern, die mit Steuerimpulsen arbeiten, genauso wie die Richtung der Anzeige invertiert werden kann (Stefan Bode kommt von homematic-Seite, da ist offen = 100% und geschlossen = 0%). Man kann getrennt pro Richtung die Fahrzeit angeben und auch einen Korrekturwert für die Mittelposition setzen.
Leider funktioniert das bei mir noch nicht zu 100%, weil ich nicht weiß, wie ich verhindern soll, dass die UP/DOWN/STOP-Befehle zusätzlich auf den Position-Befehl geschickt werden. Vermutlich werde ich auch hier drei Items verwenden müssen, aber die Rules sind einfacher und die Position ist im Device gespeichert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet