Rolladensteuerung mit Aussperrschutz und Komfortöffnung

Begonnen von mfeske, 10 März 2015, 12:39:09

Vorheriges Thema - Nächstes Thema

mfeske

Hallo zusammen,

nach dem ich hier viel profitiert habe möchte ich an dieser Stelle vielleicht einen Teil zurück geben und es dem ein oder anderen Newbi auch einfacher machen. Für die FHEM Profis sicher ein Kinderspiel für Newbis manchmal doch eine schwere Geburt. Worum geht es.

Rolladen01 soll gesteuert nach Sonnenuntergang, -aufgang gesteuert werden.
Für Rolladen02 soll das auch zu treffen, aber dieser soll nur herunterfahren wenn die Terassentür Kontakt_Garten geschlossen ist (Aussperrschutz) wird die Tür später geschlossen soll der Rolladen02 rutnerfahren.
Wenn die Tür geöffnet wird und der Rolladen02 geschlossen ist soll dieser geöffnet werden, wenn es Dunkel ist soll die Aussenbeleuchtung eingeschaltet werden.
Wenn die Tür geschlossen wird und es an der Zeit ist soll der Rolladen02 runterfahren und das Licht ausgeschaltet werden, wenn es eingeschaltet war.

Ich habe mir drei DOIF's angelegt, wobei man vermutlich die letzten beiden zusammenlegen kann.

define Komfort_Gartentuer DOIF ([Rolladen02_Zustand] eq "down" and [Kontakt_Garten] eq "closed") (set Rolladen02 on, set LED_aussen off) DOELSEIF ([Rolladen02_Zustand] eq "down" and [Kontakt_Garten] eq "opened") (set Rolladen02 off, set LED_aussen on)
attr Komfort_Gartentuer room Wohnzimmer
define Rolladen01_timer DOIF ([{sunset(-600)}|8]) (set Rolladen01 on, set Rolladen01_Zustand down) DOELSEIF ([{sunset(-0)}|7]) (set Rolladen01 on, set Rolladen01_Zustand down) DOELSEIF ([{sunrise(+30)}|8]) (set Rolladen01 off, set Rolladen01_Zustand up) DOELSEIF ([{sunrise(+600)}|7]) (set Rolladen01 off, set Rolladen01_Zustand up)
attr Rolladen01_timer room Wohnzimmer
define Rolladen02_timer DOIF ([{sunset(+600)}|8] and [Kontakt_Garten] eq "closed") (set Rolladen02 on, set Rolladen02_Zustand down) DOELSEIF ([{sunset(+120)}|7]) (set Rolladen02 on, set Rolladen02_Zustand down) DOELSEIF ([{sunrise(-30)}|8]) (set Rolladen02 off, set Rolladen02_Zustand up) DOELSEIF ([{sunrise(-600)}|7]) (set Rolladen02 off, set Rolladen02_Zustand up)
attr Rolladen02_timer room Wohnzimmer


Meine Intertechnogeräte heissen:
Rolladen01, Rolladen02, Kontakt_Garten und LED_aussen

über drei Dummy's lasse ich mir den Zustand anzeigen:
Gartentuer, Rolladen01_Zustand, Rolladen02_Zustand

attr Gartentuer devStateIcon offen:ampel_gruen zu:ampel_rot:FS20.off
attr Gartentuer room Wohnzimmer
define Rolladen01_Zustand dummy
attr Rolladen01_Zustand devStateIcon down:shutter_closed up:shutter_open:FS20.off
attr Rolladen01_Zustand room Wohnzimmer
define Rolladen02_Zustand dummy
attr Rolladen02_Zustand devStateIcon down:shutter_closed up:shutter_open:FS20.off
attr Rolladen02_Zustand room Wohnzimmer


über ein Notify setze ich den Status von Gartentuer

define Kontakt_Garten_notify notify Kontakt_Garten { if (Value("Kontakt_Garten") eq "closed")  { fhem("set Gartentuer zu") } else { fhem("set Gartentuer offen") }}
attr Kontakt_Garten_notify room Wohnzimmer


Verbesserungsvorschläge sind natürlich jederzeit willkommen

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

DJAlex

Hi,

find ich ne super Sache werd ich gleich mal daheim ausprobieren.

Ich hab bei mir derzeit nur ne akustische Warnung wenn ich das Rollo runterfahre und die Tür offen ist.

Wenn ich das Rolle manuelle runterfahre oder über das Frontend dann fährt der Rolladen trotzdem runter oder?

Grüße

Alex

mfeske

Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

mfeske

Neues DOIF mit wait, deshalb Anpassungen am Code und jetzt auch eine aklustische Warnung, bevor der Rolladen runter fährt.
define Rolladen02_timer DOIF ([{sunset(-600)}|8] and [Kontakt_Garten] eq "closed")((set gong_MP3 playTone 0,008,0))(set Rolladen02 on)(set Rolladen02_Zustand down) DOELSEIF ([{sunset(-1200)}|7])((set gong_MP3 playTone 0,008,0))(set Rolladen02 on)(set Rolladen02_Zustand down) DOELSEIF ([{sunrise(+1)}|8]) ((set gong_MP3 playTone 0,009,0)) (set Rolladen02 off)(set Rolladen02_Zustand up) DOELSEIF ([{sunrise(+600)}|7]) ((set gong_MP3 playTone 0,009,0))(set Rolladen02 off)(set Rolladen02_Zustand up)
attr Rolladen02_timer room Wohnzimmer
attr Rolladen02_timer wait 0,5,5:0,5,5:0,5,5:0,5,5
define Komfort_Gartentuer DOIF ([Rolladen02_Zustand] eq "down" and [Kontakt_Garten] eq "closed") (set Rolladen02 on, set LED_aussen off) DOELSEIF ([Rolladen02_Zustand] eq "down" and [Kontakt_Garten] eq "opened") (set Rolladen02 off, set LED_aussen on)
attr Komfort_Gartentuer room Wohnzimmer
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Frini

#4
Hallo,
ich hätte mal eine kurze Frage:
Müsste folgender Code
define Rolladen02_timer DOIF
([{sunset(-600)}|8] and [Kontakt_Garten] eq "closed")
((set gong_MP3 playTone 0,008,0))
(set Rolladen02 on)(set Rolladen02_Zustand down)
DOELSEIF
([{sunset(-1200)}|7])((set gong_MP3 playTone 0,008,0))
(set Rolladen02 on)(set Rolladen02_Zustand down)
DOELSEIF
([{sunrise(+1)}|8]) ((set gong_MP3 playTone 0,009,0))
(set Rolladen02 off)(set Rolladen02_Zustand up)
DOELSEIF ([{sunrise(+600)}|7])
((set gong_MP3 playTone 0,009,0))(set Rolladen02 off)(set Rolladen02_Zustand up

nicht so lauten
define Rolladen02_timer DOIF
([{sunset(-600)}|8] and [Kontakt_Garten] eq "closed")
((set gong_MP3 playTone 0,008,0))(set Rolladen02 on)(set Rolladen02_Zustand down)
DOELSEIF
([{sunset(-1200)}|7]and [Kontakt_Garten] eq "closed")
((set gong_MP3 playTone 0,008,0))(set Rolladen02 on)(set Rolladen02_Zustand down)
DOELSEIF ([{sunrise(+1)}|8])
((set gong_MP3 playTone 0,009,0)) (set Rolladen02 off)(set Rolladen02_Zustand up)
DOELSEIF
([{sunrise(+600)}|7])
((set gong_MP3 playTone 0,009,0))(set Rolladen02 off)(set Rolladen02_Zustand up

?

Sonst wird die Abfrage des Kontaktes nur am Wochenende durchgeführt. Oder steh ich hier gaaanz gewaltig auf dem Schlauch?

Grüße

mfeske

Hallo Frini,

vielen Dank für den Hinweis. Ich gebe Dir da uneingeschränkt recht. Ein Fehler von mir ;-)

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Frini

#6
Hallo,
Sollte kein Klugscheißen sein. Ich bin mit FHEM ganz am Anfang und versteh die DOIF Eigenheiten noch nicht ganz so.


Ich hab meine Steuerung auf Deinem Code aufgebaut..
Danke!


define doi.eg.wz.RolladeGartenRechts DOI
([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "closed")
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts pct 50, set dum.eg.wz.RolladeGartenRechts lueften)
DOELSEIF
([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "opened")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "closed")
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts pct 50, set dum.eg.wz.RolladeGartenRechts lueften)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "opened")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunrise(-30)}|8])
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunrise(-600)}|7])
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts up)


Ich hoffe, dass morgen mal langsam die Aktoren eintreffen und ich langsam mit dem Erdgeschoss starten kann.  :P

Frini

Hallo,
ich hab endlich meinen fehlenden Aktor bekommen. Und kriege das obige DOIF zum verrecken nicht ans laufen.
Die Rollade fährt zwar hoch, wenn ich die Tür öffne, allerdings fährt se nicht wieder runter.
Vielleicht kann mir noch einmal jemand ein schups in die richtige Richtung geben.
ich habe bei den DOIFs do allways gesetzt.

Grüße

mfeske

Hallo Frini,

ein paar Codezeilen und Logauszüge würden helfen, beim helfen ;-)

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Frini

Sorry, ich war gestern echt zu müde :-)
Ich wollte das wie zuletzt mit einem kombinierten DOIF lösen, allerdings hat das gar nicht funktioniert. Hier mal noch einmal das kombinierte DOIF:
Ich habe ein DOIF namens doi.eg.wz.RolladeGartenRechts erstellt mit:

([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30, set dum.eg.wz.RolladeGartenRechts lueften)
DOELSEIF
([{sunset(+600)}|8] and [sens.eg.wz.TerrassentuerRechts:state] eq "open")
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30, set dum.eg.wz.RolladeGartenRechts lueften)
DOELSEIF
([{sunset(+120)}|7] and [sens.eg.wz.TerrassentuerRechts:state] eq "open")
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunrise(-30)}|8])
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunrise(-600)}|7])
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up)


attr doi.eg.wz.RolladeGartenRechts do always

Das Dummy dum.eg.wz.RolladeGartenRechts läuft mit, um das nachher zu visualisieren.

Das zweite DOIF sollte dafür sorgen, dass rol.eg.wz.RolladeGartenRechts entweder komplett hoch fährt, oder zum lüften nur ein Stück hochfährt. getriggert auf den Dummy dum.eg.wz.RolladeGartenRechts.

([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts:state] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off)
DOELSEIF
([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts:state] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30)
DOELSEIF
([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts:state] eq "open")
(set rol.eg.wz.RolladeGartenRechts on)

attr doi.TerrassentuerKomfort do always



Wo häng ich da?
Ich hatte es gestern abend kurzzeitig soweit, dass die Rolladen zur Uhrzeit runtergefahren sind und bei betätigen des Griffes auch aufgefahren sind. Allerdings sind die nicht wieder zu gefahren.




Frini

Sooo. Ich hab mal alles noch einmal zurück geändert.
Mit:
([{sunset(+600)}|8] and [sen.eg.wz.TerrassentuerRechts] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+120)}|7] and [sen.eg.wz.TerrassentuerRechts] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off, set dum.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+120)}|7] and [sen.eg.wz.TerrassentuerRechts] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30, set dum.eg.wz.RolladeGartenRechts 30)
DOELSEIF
([{sunset(+600)}|8] and [sen.eg.wz.TerrassentuerRechts] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30, set dum.eg.wz.RolladeGartenRechts 30)
DOELSEIF
([{sunrise(-30)}|8])
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunrise(-600)}|7])
(set rol.eg.wz.RolladeGartenRechts on, set dum.eg.wz.RolladeGartenRechts up


und dem anderen DOIF


([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts] eq "closed")
(set rol.eg.wz.RolladeGartenRechts off)
DOELSEIF
([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts] eq "tilted")
(set rol.eg.wz.RolladeGartenRechts 30)
DOELSEIF
([dum.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts] eq "open")
(set rol.eg.wz.RolladeGartenRechts on)


Klappt es jetzt.

Ich glaub langsam komm ich hinter meinen Fehler. Ich trigger nur den Dummy, nicht jedoch die tatsächliche Rollade im zweiten Dummy. Oder?

Dersch

#11
Hi,  genau daean hänge ich auch als Newbie grade. Ich setze Homematic Geräte ein und habe mehrere Rolladenaktoren in eine Structure gepackt welche über Sunrise und Sunset gesteuert wird. Nun soll einer der Rolläden nicht runterfahren wenn der Türkontakt auf open steht.

Hier ist mein DOIF

([WzRolladenTuer] eq "down" and [WzGartenTuer] eq "open") (setreading WzRolladenTuer last_state [WzRolladenTuer], set WzRolladenTuer on)
DOELSEIF
([WzRolladenTuer] <= 80 and [WzGartenTuer] eq "open") (setreading WzRolladenTuer last_state [WzRolladenTuer], set WzRolladenTuer on)
DOELSEIF
([WzRolladenTuer] eq "down" and [WzGartenTuer] eq "tilted") (setreading WzRolladenTuer last_state [WzRolladenTuer], set WzRolladenTuer 15)
DOELSEIF
([WzRolladenTuer:last_state] eq "down" and [WzGartenTuer] eq "closed") (set WzRolladenTuer [WzRolladenTuer:last_state])
DOELSEIF
([WzRolladenTuer:last_state] <= 100 and [WzGartenTuer] eq "closed") (set WzRolladenTuer [WzRolladenTuer:last_state])
DOELSEIF
([RollosMain] eq "off" and [WzGartenTuer] eq "open") (set WzRolladenTuer on)


Die letzte Passage soll das besagte erledigen. Aber ich denke es wird so nicht Funktionieren oder? Hast du evtl einen anderen Hinweis für mich?
RollosMain ist die Structure. WzRolladenTuer der eine aus der Structure welcher bei geöffneter WzGartenTuer eben nicht schließen soll. Nachdem die Tür geschlossen wurd soll er aber natürlich runterfahren wenn zwischenzeitlich RollosMain über Sunset geschlossen wurde.

Die anderen obigen Regeln habe ich mir aus Beispielen zusammengelegt. Funktioniert soweit auch. Nur der letzte Befehl ist mein kläglicher Eigenversuch :)

Grüße
Dirk

Frini

Hallo,
heißt RollosMain eq "off, dass die unten oder oben sind?
ich habe die Rolladen bei mir in zwei Gruppen aufgeteilt.
Intelligente Rolladen, die mittels Drehgriffsensor beim Öffnen oder Kippen aufgefahren werden.
"Dumme" Rolladen, die nur über sunset, sunrise und Temperatur gefahren werden.

Demnach habe ich drei DOIFS erstellt. Hier nochmal die drei DOIF Varianten im Vergleich. Ich habe die nicht über structure oder sonstiges Zusammengefasst. Ist für mich später einmal verständlicher :-)

## Automatik für "dumme" Rolladen ohne Fensterkontakt
define doi.RolladenAutomatik DOIF
([06:00|8]) ## fahre Rollade am Werktag um 06:00 hoch
(set rol.og.sz.RolladeLinks up, set rol.og.sz.RolladeRechts up)
(set rol.eg.wz.RolladeGartenLinks up, set rol.eg.wz.RolladeKueche up)
(set rol.og.kz.RolladeLinks up, set rol.og.kz.RolladeRechts up)
(set rol.dg.az.Rollade up)
DOELSEIF
([{sunrise(+120,"08:00","10:00")}|7]) ## fahre Rollade 2 Minuten verzögert hoch, wenn Sonnenaufgang am Wochenende, jedoch nicht vor 08:00 und spätestens 10:00
(set rol.og.sz.RolladeLinks up, set rol.og.sz.RolladeRechts up)
(set rol.eg.wz.RolladeGartenLinks up, set rol.eg.wz.RolladeKueche up)
(set rol.og.kz.RolladeLinks up, set rol.og.kz.RolladeRechts up)
(set rol.dg.az.Rollade up)
DOELSEIF
([{sunset(+120)}|8])
(set rol.dg.az.Rollade down)
(set rol.og.kz.RolladeLinks up, set rol.og.kz.RolladeRechts down)
(set rol.eg.wz.RolladeGartenLinks up, set rol.eg.wz.RolladeKueche down)
(set rol.og.sz.RolladeLinks up, set rol.og.sz.RolladeRechts down)
DOELSEIF
([{sunset(+600)}|7])
(set rol.dg.az.Rollade down)
(set rol.og.kz.RolladeLinks up, set rol.og.kz.RolladeRechts down)
(set rol.eg.wz.RolladeGartenLinks up, set rol.eg.wz.RolladeKueche down)
(set rol.og.sz.RolladeLinks up, set rol.og.sz.RolladeRechts down)

attr wait 0,300,600,900:0,300,600,900:0,300,600,900:0,300,600,900


Für die intelligenten Rolladen mit Fensterkontakt, erstelle ich pro Rollo und Fensterkontakt ein DOIF für das öffnen und schließen nach sunset und sunrise und ein DOIF für das automatische verfahren wenn die Tür geöffnet wird.
Als Beispiel hier die Terrassentuer.

define doi.rol.eg.wz.RolladeGartenRechtsAutomatik
([06:00|8]) ## fahre Rollade am Werktag um 06:00 hoch
(set rol.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunset(+120)}|8] and [sen.eg.wz.TerrassentuerRechts] eq "closed") ## fahre Rollade 2 Minuten verzögert runter wenn Sonnenuntergang am Werktag und Tür geschlossen
(set rol.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+120)}|8] and [sen.eg.wz.TerrassentuerRechts] eq "tilted") ## fahre Rollade 10 Minuten verzögert in Lüftungsposition wenn Sonnenuntergang am Werktag und Tür gekippt
(set rol.eg.wz.RolladeGartenRechts 30)
DOELSEIF
([{sunrise(+120,"08:00","10:00")}|7]) ## fahre Rollade 2 Minuten verzögert hoch, wenn Sonnenaufgang am Wochenende, jedoch nicht vor 08:00 und spätestens 10:00
(set rol.eg.wz.RolladeGartenRechts up)
DOELSEIF
([{sunset(+600)}|7] and [sen.eg.wz.TerrassentuerRechts] eq "closed") ## fahre Rollade 10 Minuten verzögert runter wenn Sonnenuntergang am Wochenende und Tür geschlossen
(set rol.eg.wz.RolladeGartenRechts down)
DOELSEIF
([{sunset(+600)}|7] and [sen.eg.wz.TerrassentuerRechts] eq "tilted") ## fahre Rollade 2 Minuten verzögert in Lüftungsposition wenn Sonnenuntergang am Wochenende und Tür gekippt
(set rol.eg.wz.RolladeGartenRechts 30)


Zu diesem Pärrchen gehört noch das Automatik DOIF
define doi.rol.eg.wz.RolladeGartenRechtsAutomatik
([rol.eg.wz.RolladeGartenRechts] eq "up" and [sen.eg.wz.TerrassentuerRechts] eq "open") ## Wenn Rollade auf einer Position up und Terrassentuer wird geöffnet
(setreading rol.eg.wz.RolladeGartenRechts last_state [rol.eg.wz.RolladeGartenRechts]) ## schreibe die Position des Rollos in ein Reading
DOELSEIF
([rol.eg.wz.RolladeGartenRechts] ne "up" and [sen.eg.wz.TerrassentuerRechts] eq "open") ## Wenn Rollade unten und Terrassentuer wird geöffnet
(setreading rol.eg.wz.RolladeGartenRechts last_state [rol.eg.wz.RolladeGartenRechts], set rol.eg.wz.RolladeGartenRechts on) ## schreibe die Position des Rollos in ein Reading und fahre das Rollo hoch
DOELSEIF
([rol.eg.wz.RolladeGartenRechts] eq "up" and [sen.eg.wz.TerrassentuerRechts] eq "tilted") ## Wenn Rollade auf einer Position up und Terrassentuer wird gekippt zum Lüften
(setreading rol.eg.wz.RolladeGartenRechts last_state [rol.eg.wz.RolladeGartenRechts]) ## schreibe die Position des Rollos in ein Reading
DOELSEIF
([rol.eg.wz.RolladeGartenRechts] <=29 and [sen.eg.wz.TerrassentuerRechts] eq "tilted") ## Wenn Rollade auf einer Position zwischen 0 - 30 und Terrassentuer wird gekippt zum Lüften
(setreading rol.eg.wz.RolladeGartenRechts last_state [rol.eg.wz.RolladeGartenRechts], set rol.eg.wz.RolladeGartenRechts 30) ## schreibe die Position des Rollos in ein Reading und fahre das Rollo in Lüftungsposition
DOELSEIF
([rol.eg.wz.RolladeGartenRechts] eq "down" and [sen.eg.wz.TerrassentuerRechts] eq "tilted") ## Wenn Rollade unten und Terrassentuer wird gekippt zum Lüften
(setreading rol.eg.wz.RolladeGartenRechts last_state [rol.eg.wz.RolladeGartenRechts], set rol.eg.wz.RolladeGartenRechts 30) ## schreibe die Position des Rollos in ein Reading und fahre das Rollo in Lüftungsposition
DOELSEIF
([rol.eg.wz.RolladeGartenRechts:last_state] ne "up" and [sen.eg.wz.TerrassentuerRechts] eq "closed") ## Wenn das gespeicherte Reading ein Wert von 0 - 100 hat und die Terrassentuer wird geschlossen
(set rol.eg.wz.RolladeGartenRechts [rol.eg.wz.RolladeGartenRechts:last_state]) ## nutze das Reading und fahre das Rollo in die entsprechende Position zurück



Ich bin mir nicht sicher, ob das verknüpfen der intelligenten und dummen Rollos so ohne weiteres funktioniert. So läuft es bei mir auf jedenfall.

Dersch

#13
Zitat von: Frini am 10 November 2015, 08:48:58
Hallo,
heißt RollosMain eq "off, dass die unten oder oben sind?

off heißt sie sind unten.

Größtenteils hatte ich mich aus deinem super Beitrag bedient! :D http://forum.fhem.de/index.php/topic,42619.msg350114.html#msg350114 Nun möchte ich das noch um die Sicherheitsfunktion erweitern.

Ich habe nun auch mal testen können. Mit meinem anfänglichen Versuch bin ich sogar schon nah dran! Wenn ich RollosMain auf Off stelle und der Türkontakt auf open steht. Zuckt der Rollo kurz aber bleibt oben. Aber ich bin mir sicher es gibt auch einen eleganteren Weg. Allerdings muss ich jetzt noch hinbekommen, dass wenn RolloMain runtergefahren wurde, WzRolladenTuer oben geblieben ist da WzGartenTuer auf open steht, der Rollo runterfährt wenn GartenTuer dann anschließend geschlossen wird.

Allerdings ist bei mir noch ein Fehler drin. Heute morgen stand der WzRolladenTuer auf Lüftungsmodus nach dem über RollosMain und Sunrise das hochfahren getriggert wurde. Das verstehe ich bislang noch nicht hat aber sicher was mit dem Speichern der Readings zu tun.

Ich probiere dein Setup mal auf meinen Fall aus evtl habe ich da ein besseres Verhalten.

GrüßeDirk

Edit:

so geht es jedenfalls nicht, dass der Rollo nach schließen der Tür runterfährt:

DOELSEIF ([RollosMain] eq "off" and [WzRolladenTuer] eq "on" and [WzGartenTuer] eq "closed") (set WzRolladenTuer off)

pc1246

Hallo Dersch
Du musst immer bedenken, dass "DOIF" auf Trigger reagiert. Bei Deinem letzten Beispiel, fragst Du WzRolladenTuer auf "on" ab, und setzt danach "off". Das erscheint mir so nicht moeglich. Ich habe auch so meine Probleme (vom Verstaendnis her) mit "DOIF"'s. Wenn mehrere "DOIF"'s auf einen Aktor wirken, dann scheint sich das zu beissen. Man sollte, wie gelernt, einen Aktor immer nur einmal beschreiben, dann wird nur das Konstrukt drumherum immer komplexer! Entscheidend ist auch das Attribut "doalways", da sich "DOIF" "merkt" wo es ist, siehe dazu auch die CMDREF, und dann die Aktion nicht mehr durchfuehrt.

Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div