Events / Trigger / notify automatisch zeitlich entzerren

Begonnen von drobskind, 10 September 2017, 08:33:47

Vorheriges Thema - Nächstes Thema

drobskind

Guten Morgen Leute,

ich habe hier eine Herausforderung, die ich mit meinem Kenntnisstand nur sehr umständlich lösen könnte. Vielleicht hat jemand von euch einen Tipp.

Ausgangssituation 5x Velux Dachfenster Rollläden mit io homecontrol.
Da man io homecontrol ja noch nicht direkt von Raspi steuern kann habe ich einen Aufbau aus dem Internet genutzt, indem man die original Fernbedienungen zerlegt und über einen IC per raspi GPIO ansteuert.
Funktioniert soweit hervorragend.

Nun habe ich diese Rollläden per "ROLLO" Modul eingerichtet und sie zudem per homebridge/Homekit mit meinen iOS Geräten verbunden.

Ich kann die Rollläden nun also per FHEMWEB, Homekit, und FHEM TableUI steuern. -> Aber eben nur einzeln.
In Homekit kann man ja z.B. Szenen anlegen, mit denen ich zum Beispiel alle Rollos zeitgleich öffne.

Das funktioniert aber so nicht, da sich die Fernbedienungssignale überlagern wenn sie recht zeitgleich versendet werden und sich dann maximal ein Rollladen in Bewegung setzt.

Als Workaround habe ich jetzt mal bei einem Rolladen über ein notify eine Verzögerung von 1 Sek. eingebaut. Somit kann ich aktuell beide im Büro "zeitgleich" fahren. Wenn ich das aber für alle parametriere, dann Fährt der letzte erst 5 Sekunden später los als der Knopf gedrückt wird. Und das immer, auch wenn er einzeln gesteuert wird.

So nun zu meiner Frage:
gibt es eine Möglichkeit in FHEM automatisch zu prüfen ob gewisse Events in einem bestimmten Zeitfenster kommen und diese dann Zeitlich auseinander zuziehen?
wenn Event Rollo1 hoch alleine kommt innerhalb von 1 Sekunde wird es direkt ausgeführt / an ein notify weitergereicht.
Wenn Event Rollo1 hoch, Rollo 2 hoch und Rollo 3 hoch innerhalb von 1 Sekunde kommt wird erst Event 1 ausgelöst, dann 1 Sekunde gewartet, Event 2 , 1 Sek., Event 3.

Sollte aus meiner Erklärung / Fragestellung nicht alles nötige hervorgehen dann bitte einfach Fragen stellen.

Vielen Dank
drobs


CoolTux

Schau Dir mal das Structure Modul an und da das Attribut async_delay
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

drobskind

Hallo CoolTux,

danke für die schnelle Antwort.
Das sieht vielversprechend aus. Werde mir das mal ansehen.

Gruß

drobskind

So kurze Rückmeldung.

Wenn ich jetzt nicht etwas übersehe, ist es leider nicht ganz das was ich benötige / erhofft habe, da es auch sehr aufwendig wird alles zu implementieren.

Ich habe nun mal ein solches Structure eingebunden und für 3 rollos parametiert.
define alleRollo structure ROLLO r_Bad r_Treppe r_Wohnzimmer

Jetzt kann ich wundervoll alle 3 Rollos auf einmal fahren indem ich nur beim structure auf open klicke.

Was ich mir jedoch gerade nicht zusammenreimen kann:
Das iphone zeigt mir alle Geräte einzeln.
Ich kann sie einzeln öffnen und schließen.
Wenn ich im iphone (Homekit) 2 Geräte zusammenfasse zu einer Szene, dann werde diese trotzdem einzeln angesteuert. Aber eben "zeitgleich".
Hier hilft mir das Structure also gerade nicht weiter (es sei denn ich übersehe etwas).

Zudem kann es ja auch sein, dass ich/jemand recht schnell hintereinander alle Rollos öffnen möchte, auch dann werden einige nicht reagieren.

Aktuell sehe ich dass so, dass ich für alle Rollo-Kombinationen eine extra Structure anlegen müsste und diese dann in die GUIs / Homekit parametriere.
Aber auch dann bleibt das Problem mit den einzelnen Rollos.


Was ich mir vorstelle:
1. ich klicke zügig nacheinander auf dem iphone auf Rollo1 auf, und Rollo2 auf.
2. es werden in FHEM 2 Events ausgelöst R1 auf und R2 auf
3. FHEM erkennt dass R1 auf und R2 auf nur mit verzögerung ausgeführt werden sollen.
   a. alternativ FHEM leitet diese Events immer an ein Modul weiter was diese Prüfung durchführt.
4. FHEM sendet Signal an die betätigten Rollos (dabei spielt es keine Rolle ob 1 oder 2 oder alle 5)

??? So genug Verwirrung gestiftet.

Gruß
drobs

justme1968

genau. zum steuern mehrerer rollos musst du jeweils eine structure einbinden. oder eventuell eine lightScene. sie hat das gleiche attribut und kann mehrere szenen haben.

wenn die anderen fälle in der täglichen routine wirklich auftreten muss du dir selber etwas programmieren.

aber denk dran: es heißt home automation. idealerweise geht alles automatisch. so viel und vor allem so viele unterschiedliche manuelle eingriffe sind meist ein zeichen das es noch nicht optimal konfiguriert ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

So ganz sehe ich da noch nicht das Problem. Aber lass mich Mal kurz was schildern was ich mir vorstelle.

Wenn du pro Raum mehr wie ein Rollo hast legst Du pro Raum eine structure an. Diese Raumstrukturen packst Du dann in die dazugehörige Etagenstruktur. Am Ende hast Du eine Structure alle von du die 1 oder 2 Etagenstrukturen rein machst. Je nachdem was du schalten willst schaltest du dann die structure. Entweder pro Raum, oder pro Etage oder halt alle. Wenn abends es dunkel ist und alle unten noch in der Küche oder im Wohnzimmer sind reicht es wenn man alle Rollos unten schließt.
Wenn man sich Bettfertig macht sorgt man dafür das alle noch offenen Rollos per Structure geschlossen werden. Hier müsste man bisschen was programmieren zwecks abfragen. Oder es geht in dem man auf die structure alle eine Filterabfrage drauf setzt. Wie sowas alles geht steht in der Commandref.
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