Dummy setzen, wenn Rolladen per Hand gefahren wurde

Begonnen von cfranz, 25 September 2017, 12:41:08

Vorheriges Thema - Nächstes Thema

cfranz

Hallo zusammen,

ich versuche gerade meine Rolladensteuerung zu optimieren. Ich habe momentan drei elektrische Rolläden im EG im Einsatz (zwei im Wohnzimmer, einen in der Küche).
Momentan habe ich drei Möglichkeiten die Rolläden zu steuern:

  • Homematic-Taster direkt beim Rolladen
  • Amazon-Dash-Buttons, die alle Rollos im EG (Gruppe) auf/zufahren
  • Zeitgesteuert nach Sonnenaufgang/-untergang

Das Problem ist, dass meine Frau die Rollos manchmal schon früher zufährt und sie dann automatisch bei Sonnenuntergang wieder auf 20% fahren. Das werde ich wahrscheinlich mit einem DOIF lösen, wenn der Rolladen zu ist, dann wird auch bei Sonnenuntergang nicht gefahren.

Problematischer ist folgendes:
Das eine Fenster im Wohnzimmer ist die Tür zum Garten. Ich hatte erst überlegt mit einem Tür-/Fensterkontakt zu prüfen, ob die Tür offen ist. Meine Frau zieht die Tür aber von außen zu, wenn sie im Garten ist, was bedeutet, dass der Sensor denkt die Tür wäre zu und niemand ist draussen. Wenn ich dann den Rollo zufahre ist der Ärger vorprogrammiert. Ich hatte mir folgende Lösung überlegt:

  • Anlegen eines Dummy zur Erkennung, ob der Rolladen manuell gefahren wurde (EG.WZ.RO.rechts.use)
  • Notify, das EG.WZ.RO.rechts.use auf on setzt, wenn der Rolladen den Tag über gefahren wurde (EG.WZ.RO.rechts.not)
  • Das Script soll den Rolladen bei Sonnenuntergang nur dann schließen, wenn er tagsüber nicht manuell bewegt wurde (EG.WZ.RO.rechts.use==off)
  • Nachts um 3 werden alle Benutzterkenner zurück auf off gesetzt

Das mit dem Dummy und dem Notify habe ich hinbekommen, allerdings setzt mir das Notify den Dummy auch auf on, wenn der Rollo automatisch gefahren wurde. Gibt es eine Möglichkeit das zu umgehen? Der Dummy soll nur auf on gesetzt werden, wenn der Rollo über den Taster oder über den Dash-Button hochgefahren wurde.

Hier noch die Definitionen auf der fhem.cfg:


define at.sunset.EG.XX.RO at *{sunset()} set EG.WZ.RO.rechts pct 20;;sleep 1;;set EG.WZ.RO.links pct 20;;sleep 1;;set EG.KU.RO pct 20

define at.0730.EG.WZ.RO.grp at *07:30:00 set EG.WZ.RO.grp pct 60
define EG.WZ.RO.grp structure room EG.WZ.RO.rechts EG.WZ.RO.links

define EG.WZ.RO.rechts.use dummy
attr EG.WZ.RO.rechts.use setList state:on,off

define EG.WZ.RO.rechts.not notify EG.WZ.RO.rechts set EG.WZ.RO.rechts.use on

define at.0300.EG.XX.RO.use at *03:00:00 set EG.*use off


Ich habe schon bei Google und hier im Forum gesucht, konnte aber nichts finden. Für Tipps und Hinweise bin ich dankbar.

viegener

Ich nutze selber für das von Dir beschriebene Problem den Homematic Fensterdrehgriffkontakt. Dadurch kann auch bei "geschlossener" Terrassentür erkannt werden, das die Tür eigentlich offen ist und damit das automatische Fahren von Rolläden verhindert werden.
http://www.eq-3.de/produkte/homematic/heizung-und-klima/hm-sec-rhs.html
Wenn es normal Fensterdrehgriffe sind, funktioniert das sehr gut und ich lese, dass Du auch Homematic im Einsatz hast.

zusätzlicher Vorteil: Es entsteht eine bessere Erkennung für Fensteroffen-Warnungen so dass auch verhindert werden kann, dass man versehentlich die Terrassentür durch gedrehten Griff offen lässt wenn man das Haus verlässt.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

CoolTux

#2
Taster wird wohl nicht gehen da kein Reading vorhanden ist. Dashbutton sollte gehen in dem Du auf den Dashbutton mit einem notify triggerst


define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ).RO.rechts:FILTER=pct!=0 pct 20;;sleep 1;;set EG.WZ.RO.links:FILTER=pct!=0 pct 20;;sleep 1;;set EG.KU.RO:FILTER=pct!=0 pct 20


Unter der Voraussetzung das pct 0 unten bedeutet. Ansonsten bitte 100 statt 0 nehmen.

Den Homematic Fensterdrehgriffkontakt würde ich Dir auch empfehlen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

sash.sc

Setze doch den Stand der Rollos in einen Dummy. Dann Vergleiche bei Sonnenuntergang ob sich der Stand der Rollos geändert hat.

Andere Möglichkeit ist, dass readingAge zu kontrollieren.
Zeigt des automatischen Fahrens in einem Dummy Schreiben und dann vergleichen

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk


EDIT.
Cooltux war schneller
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

cfranz

#4
Vielen Dank für eure Antworten,

den Griffkontakt hatte ich gar nicht auf dem Schirm, ich denke das dürfte die Sinnvollste Variante sein. Alles andere ist macht es wahrscheinlich nur unnötig kompliziert.

Zitat von: CoolTux am 25 September 2017, 12:56:44

define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ).RO.rechts:FILTER=pct!=0 pct 20;;sleep 1;;set EG.WZ.RO.links:FILTER=pct!=0 pct 20;;sleep 1;;set EG.KU.RO:FILTER=pct!=0 pct 20

Das mit dem Filter ist interessant, das werde ich mir mal notieren. Das Problem war, dass ich die Rolläden erst nacheinander in Betrieb genommen habe, jetzt muss ich die ganzen Commands mal aufräumen und sinnvoll strukturieren.

Markus

Füge in dein notify noch ein at hinzu zb 1 min später setze dummy wieder auf off
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

CoolTux

Du kannst das ganze auch einkürzen sofern die sleep's nicht gebraucht werden


define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ|KU).R.*:FILTER=pct!=0 pct 20
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cfranz

Zitat von: CoolTux am 25 September 2017, 12:56:44

define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ).RO.rechts:FILTER=pct!=0 pct 20;;sleep 1;;set EG.WZ.RO.links:FILTER=pct!=0 pct 20;;sleep 1;;set EG.KU.RO:FILTER=pct!=0 pct 20

Das habe ich jetzt so umgesetzt, allerdings habe ich die Abfrage nicht auf !=0, sondern auf >20 gesetzt. Bei Sonnenuntergang fahren die Rollos auf 20, wenn sie zu dem Zeitpunkt größer 20 sind. Um 22:00 Uhr werden sie dann alle auf 0 gefahren.

Zitat von: CoolTux am 25 September 2017, 13:38:55
Du kannst das ganze auch einkürzen sofern die sleep's nicht gebraucht werden


define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ|KU).R.*:FILTER=pct!=0 pct 20

Das hat leider nicht funktioniert. Meine Rolläden haben folgende Namen:
Wenn ich das richtig sehe, ist hinter dem "R" ein Punkt zuviel, allerdings würde ich dann mit folgendem Befehl auch meinen Rauchmelder im Wohnzimmer (EG.WZ.RM) selektieren  :-\

define at.sunset.EG.XX.RO at *{sunset()} set EG.(WZ|KU).R*:FILTER=pct>20 pct 20


Ich habe es jetzt erstmal wie oben zitiert mit den aneinandergereihten Einzelbefehlen umgesetzt, damit läuft es. Interessant ist die Kurzform aber auf jeden Fall.

CoolTux

#8
Guten Morgen,

Seltsam das die Kurzform nicht ging. Der eine Punkt sollte nicht zu viel gewesen sein. Der steht für genau ein Zeichen und den bräuchte ich um danach den Stern machen zu können. Ich teste das nachher mal.
Aber wenn du damit auch Deine Rauchmelder mit erwischst machen wir es halt anders.


define at.sunset.EG.XX.RO at *{sunset()} set EG.(KU.RO|WZ.RO.*):FILTER=pct>20 pct 20

Kannst ja Mal schauen ob das so besser geht.


Du kannst Woche RegEx Varianten auch Gefahrlos testen

list EG.(KU.RO|WZ.RO.*)

Oben in die FHEMWEB Kommandozeile eingeben. Dann sollte er Dir nur die Rollläden auf listen. Das selbe natürlich auch mit der Filtervariante. Müssen halt nur >20 sein oder Du gibst eine andere Bedingung mit an.

list EG.(KU.RO|WZ.RO.*):FILTER=pct>20
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Joker

Ich kann dir auch den Fensterdrehgriffkontakt empfehlen. Habe das gleiche Szenario und aus genau dem Grund (Rollo nicht zu machen, wenn die Tür offen ist) seit Jahren im Einsatz und funktioniert perfekt. Zusätzlich kann ich dann auch, wenn die anderen Rollos schon runter gefahren sind, aber der Rollo an der Tür noch offen ist weil die Tür offen war, diesen dann nachträglich automatisch ebenso runter fahren, wenn die Tür geschlossen wird.

Zitat von: cfranz am 25 September 2017, 12:41:08
Problematischer ist folgendes:
Das eine Fenster im Wohnzimmer ist die Tür zum Garten. Ich hatte erst überlegt mit einem Tür-/Fensterkontakt zu prüfen, ob die Tür offen ist. Meine Frau zieht die Tür aber von außen zu, wenn sie im Garten ist, was bedeutet, dass der Sensor denkt die Tür wäre zu und niemand ist draussen. Wenn ich dann den Rollo zufahre ist der Ärger vorprogrammiert. Ich hatte mir folgende Lösung überlegt:

  • Anlegen eines Dummy zur Erkennung, ob der Rolladen manuell gefahren wurde (EG.WZ.RO.rechts.use)
  • Notify, das EG.WZ.RO.rechts.use auf on setzt, wenn der Rolladen den Tag über gefahren wurde (EG.WZ.RO.rechts.not)
  • Das Script soll den Rolladen bei Sonnenuntergang nur dann schließen, wenn er tagsüber nicht manuell bewegt wurde (EG.WZ.RO.rechts.use==off)
  • Nachts um 3 werden alle Benutzterkenner zurück auf off gesetzt
Die Lösung verstehe ich irgendwie nicht. Was hat das manuelle fahren mit der Schließ-Bedingung zu tun? Wenn die Rollos morgens bei Sonnenaufgang hoch sind, dann nachmittags geht jemand raus und sitzt auf der Terrasse bis Sonnenuntergang, dann hat niemand den Rollo manuell bewegt aber er soll ja trotzdem nicht runter gehen, oder?

cfranz

Zitat von: Joker am 26 September 2017, 12:13:39
Die Lösung verstehe ich irgendwie nicht. Was hat das manuelle fahren mit der Schließ-Bedingung zu tun? Wenn die Rollos morgens bei Sonnenaufgang hoch sind, dann nachmittags geht jemand raus und sitzt auf der Terrasse bis Sonnenuntergang, dann hat niemand den Rollo manuell bewegt aber er soll ja trotzdem nicht runter gehen, oder?
Ich fahre sie bei Sonnenaufgang nur auf die Hälfte hoch, da die Fenster Richtung Süden liegen und mittags die Sonne drauf steht. Wenn jemand in den Garten möchte, muss er den Rollo auf jeden Fall manuell hochfahren.

Joker

Ach so, alles klar.
Dafür habe ich noch einen Sonnensensor. Morgens mache ich alle Rollos hoch, und wenn an einem Fenster die Sonne auch wirklich drauf scheint fahre ich das zugehörige Rollo auf 50% ;)

cfranz

Zitat von: Joker am 27 September 2017, 11:04:32
Ach so, alles klar.
Dafür habe ich noch einen Sonnensensor. Morgens mache ich alle Rollos hoch, und wenn an einem Fenster die Sonne auch wirklich drauf scheint fahre ich das zugehörige Rollo auf 50% ;)
Soweit bin ich noch nicht, wir sind da vor 4 Monaten erst eingezogen und es gibt momentan noch ein paar andere Sachen. Auf lange Sicht sind noch ein paar Erweiterungen geplant. Momentan muss es erstmal möglichst einfach und fehlerfrei arbeiten, damit der WAF nicht zu sehr leidet ;)

Tedious

FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Frank_Huber

Zitat von: Joker am 27 September 2017, 11:04:32
Ach so, alles klar.
Dafür habe ich noch einen Sonnensensor. Morgens mache ich alle Rollos hoch, und wenn an einem Fenster die Sonne auch wirklich drauf scheint fahre ich das zugehörige Rollo auf 50% ;)

Ich habe das auch noch mit Anwesenheit gekoppelt.
Sonne und niemand zuhause --> ganz zu
Sonne und jemand zuhause --> auf 80%