Erkennen, ob Rollladen manuell bedient wurde

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
jensilein
Beiträge: 34
Registriert: 24. Feb 2018 09:11

Erkennen, ob Rollladen manuell bedient wurde

Beitrag von jensilein »

Hallo, ich habe folgende Frage. Besteht die Möglichkeit, OpenHAB „erkennen zu lassen“, dass ich ein Rollo manuell bedient habe? Meine Frage zielt darauf ab, ob sich auf diese Weise die Rollo-Position bestimmen lässt, indem ich einen Timer bzw. eine „Stopp-Uhr“ starte, sobald ich die Rollo-Ab-Taste drücke und der Timer bzw. die „Stop-Uhr“ endet, wenn ich die Rollo-Taste wieder loslasse und das Rollo stoppt. Über die Timer-Zeit, die ja quasi der Zeit der Rollo-Fahrt entspricht, könnte ich dann „rückwärts“ die aktuelle Rollo-Position ermitteln (zumindest näherungsweise, was mir aber reichen würde). So zumindest meine theoretische Vorstellung :shock: . Gibt es dafür einen Lösungsansatz? Ich nutze OpenHAB mit dem LCN-Binding und könnte mir vorstellen, dass es eine Möglichkeit gibt, dass OpenHAB auch das Auslösen eines manuellen Rollo-Befehls irgendwie „erkennen“ kann? Würde mich über entsprechende Tipps bzw. Hinweise freuen.

VG

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Erkennen, ob Rollladen manuell bedient wurde

Beitrag von udo1toni »

Du müsstest dazu das verlinkte Item aus der UI entfernen und dort stattdessen ein Proxy Item verwenden. Das Proxy Item bekommt dann seinen Status von einer Rule, Befehle werden über eine andere Rule an das eigentliche Item weitergleitet. Nun kannst Du in den Rules eine Variable setzen (uns später auch wieder löschen), die Du auswerten kannst, um zu bestimmen, ob manuell oder automatisch verfahren wurde.

Grundsätzlich funktioniert Dein Ansatz auch, das habe ich eine Zeit lang auch so gelöst.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

jensilein
Beiträge: 34
Registriert: 24. Feb 2018 09:11

Re: Erkennen, ob Rollladen manuell bedient wurde

Beitrag von jensilein »

Hallo udo1toni,

vielen Dank für die Rückmeldung. Dein Ansatz basiert darauf, dass die „Taste“ für das manuelle Verfahren des Rollos eine Taste in der OpenHAB UI ist, richtig? Meine Frage ging mehr in die Richtung, ob OpenHAB es auch irgendwie „erkennen“ kann, dass ich die Rollo-Fahrt über den Wand-Taster ausgelöst habe?

VG

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Erkennen, ob Rollladen manuell bedient wurde

Beitrag von udo1toni »

Andersrum wird ein Schuh draus. Du erkennst, dass der Befehl nicht von openHAB ausgelöst wurde, weil es kein sendCommand auf das Proxy Item gab. Das Proxy Item triggert eine Rule. Die Rule setzt eine Variable (ein Lock), sendet den Steuerbefehl, wartet ein bisschen (z.B. 50mSec, muss man evtl. ausprobieren) und hebt anschließend den Lock auf.
Eine zweite Rule triggert, wenn das echte Item sich ändert. Ist Lock nicht gesetzt, stammt der Befehl vom Bus, ansonsten von openHAB. Wenn Du das Item aus anderen Rules heraus ansteuern willst, musst Du natürlich dort das Proxy Item senden.
Die zweite Rule kann außerdem den Status des echten Items an das Proxy Item weitergeben (per postUpdate).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: Erkennen, ob Rollladen manuell bedient wurde

Beitrag von Hoggle »

Hallo.
Hier muß ich mal einhaken, aber vielleicht stehe ich auch nur wegen den Temperaturen auf dem Schlauch.

Ich bin im Moment am überlegen, wie ich meine Rollladenautomatik noch etwas verfeinern kann.

Bei mir fahren einige Rollläden ab einer gewissen Helligkeit in Abhängigkeit zur Temperatur in eine Sonnenschutzstellung.
Jetzt würde ich gerne, wenn ich den Rollladen schon vorher manuell bedient habe, für den Rest des Tages dort lassen und erst wieder, wenn die "Abendregelung", also die Verdunkelung angestoßen wird, wieder in den Automatikbetrieb gehen lassen.
Denn, wer Studenten kennt, weiß, das diese ja das Tageslicht hassen und wenn die Lichtautomatik meint, das es nicht mehr so hell ist und die Rollladen wieder hoch fahren, dann ist Ramba-Zamba im Haus :roll:

Im Moment mache ich das über eine if-Abfrage (Wenn Status ==0 dann fahre den Rollladen). Das geht auch, aber eine Zeitliche Begrenzung einer Funktion würde mich schon interessieren.

Wenn ich von Openhab nur auf Proxy-Items schalte und dann per Rule das echte item, wie bekomme ich dann einen Timer oder etwas in der Art gesetzt, der z. B. den Automatikbetrieb um 5.00 Uhr morgens wieder frei gibt?
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Erkennen, ob Rollladen manuell bedient wurde

Beitrag von udo1toni »

Dein Status ist doch wunderbar (also abgesehen davon, dass Du mit einer Zahl arbeitest - aber vielleicht gibt es dafür ja einen guten Grund)

Du musst eigentlich gar keinen Timer programmieren, sondern nur eine Rule erstellen, die morgends um 5 Uhr getriggert wird:

Code: Alles auswählen

rule "reset manual mode to automatic"
when
    Time cron "0 0 5 * * MON-FRI" or
    Time cron "0 0 8 * * SAT,SUN"         // Am Wochenende erst um 8...
then
    gAutoMode.members.filter[i | i.state == OFF].forEach[k | k.postUpdate(ON)]
end
Alle Schalter, die zur programmierten Uhrzeit auf OFF stehen, werden auf ON geschaltet. Geht natürlich auch mit Zahlen ;) Alle entsprechenden Items müssen zur Gruppe gAutoMode gehören.

Allerdings denke ich, wirst Du die Automatik vielleicht schon wieder aktivieren wollen, wenn es dunkel wird, die Läden also für die Nacht schließen. geht genauso, man könnte die Regel dann natürlich auch auf ein Astro Ereignis triggern lassen oder die Befehle in eine Rule einbinden, die ohnehin bei Abenddämmerung triggert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten