Rolladensteuerung Ferien: Doelse notwendig?

Begonnen von choetzu, 17 Juni 2016, 09:18:18

Vorheriges Thema - Nächstes Thema

choetzu

Hallo,

ich habe - soweit ich das als Laie erkennen kann - erfolgreich mein erstes unkompliziertes DOIF gemacht. Und zwar gehe ich morgen in die Ferien. Dabei werde ich einerseits meine Rolladen mit WeekDayTimer am Morgen öffnen und am Abend wieder schliessen. Nun habe ich aber zusätzlich ein DOIF erstellt, welcher tagsüber (10-19.30) die Rolladen schliesst, sobald die Aussentemperatur über 23grad kommt (wait 5min).  Hier das entsprechende DOIF

([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  > 23) (set Storen_SZ closes)

Das gesamte Listing sieht so aus:

Internals:
   CFGFN
   DEF        ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  > 23) (set Storen_SZ closes)
   NAME       SZ_Storen_TEMP
   NR         323
   NTFY_ORDER 50-SZ_Storen_TEMP
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-06-17 09:13:33   Device          netatmo_M02_00_00_02_b4_0a
     2016-06-17 07:13:33   cmd             2
     2016-06-17 07:13:33   cmd_event       netatmo_M02_00_00_02_b4_0a
     2016-06-17 07:13:33   cmd_nr          2
     2016-06-17 09:13:33   e_netatmo_M02_00_00_02_b4_0a_temperature 14.6
     2016-06-17 07:13:33   state           cmd_2
     2016-06-17 06:44:39   timer_1_c1      17.06.2016 10:00:00
     2016-06-17 06:44:39   timer_2_c1      17.06.2016 19:30:00
     2016-06-17 09:09:58   wait_timer      no timer
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf($hash,'netatmo_M02_00_00_02_b4_0a','temperature','','',AttrVal($hash->{NAME},'notexist',undef))  > 23
   Days:
   Devices:
     0           netatmo_M02_00_00_02_b4_0a
     all         netatmo_M02_00_00_02_b4_0a
   Do:
     0:
       0          set Storen_SZ closes
     1:
   Helper:
     event      humidity: 83
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   netatmo_M02_00_00_02_b4_0a
     timerevent humidity: 83
     triggerDev netatmo_M02_00_00_02_b4_0a
     timerevents:
       humidity: 83
     timereventsState:
       humidity: 83
     triggerEvents:
       humidity: 83
     triggerEventsState:
       humidity: 83
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1466150400
     1          1466184600
   Readings:
     0           netatmo_M02_00_00_02_b4_0a:temperature
     all         netatmo_M02_00_00_02_b4_0a:temperature
   Realtime:
     0          10:00:00
     1          19:30:00
   Regexp:
     0:
     All:
   State:
   Time:
     0          10:00:00
     1          19:30:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Trigger:
   Triggertime:
     1466150400:
       localtime  1466150400
       Hash:
     1466184600:
       localtime  1466184600
       Hash:
Attributes:
   room       EnOcean
   wait       300


Nun meine Fragen:

- Brauch ich zwingend ein DOELSE Befehl? Oder reicht es so, wie ich es definiert habe?
- Und was passiert, wenn mein Nachbar beim Giessen der Pflanzen die Rolladen manuell (Taster) hoch macht? Gehen die Rolladen dann durch den DOIF Befehl wieder runter?

Danke für die Hilfe.

Lg C
Raspi3, EnOcean, Zwave, Homematic

pc1246

Hoi choetzu
Also ohne do always geht das nur einmal. Mit do always hast Du allerdings das Problem, dass jedesmal wenn sich bei dem Netatmo-device etwas aendert (Trigger), und die Temperatur groesser 23°C ist der rolladen wieder absenkt. Da hat der Nachbar dann Spass, und Du nach dem Urlaub dann auch!
Gruss und schoenen Urlaub
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

choetzu

Hallo Christoph,

herzlichen Dank für deine Antwort. Verstehe ich deine Zeilen richtig: Also wenn ich das attr do always setze, dann wird jedes Mal wenn der Nachbar den Rolladen von Hand hochmacht, der DOIF Befehl wieder aktiviert und die Rolladen fahren runter? Kann man das irgenwie umgehen, resp. zu mindest für 1 Stunde verzögern? Damit der Nachbar schön bei Tageslicht giessen kann?

Und was passiert wenn die Rolläden durch den DOIF Befehl runterfahren und die Temperatur weiter steigt. Wird DOIF jedes mal den Befehl zum Runterfahren anordnen, obschon es schon unten ist?

Brauch ich in meinem Fall DOELSE?

Danke für die Hilfe.

Lg c
Raspi3, EnOcean, Zwave, Homematic

Per

Wenn du nur ein DOELSE (set Storen_SZ open) reinbaust, reagiert dein DOIF nicht auf manuelle Änderungen. Dein Nachbar muss also nach dem Gießen selbst die Rollos wieder runter machen.

Interessant wird es, wenn er tagsüber gießt und währendessen die Temperatur über 23°C geht...

choetzu

Zitat von: Per am 17 Juni 2016, 10:54:23
Wenn du nur ein DOELSE (set Storen_SZ open) reinbaust, reagiert dein DOIF nicht auf manuelle Änderungen.

herzlichen dank. hmmm, das verstehe ich nicht ganz. Wenn ich doch  DOELSE (set Storen_SZ opens) mache, heisst das doch, dass die Storen ausserhalb von 10-19.30 uhr UND <23grad sich öffnen. Wenn doch mein Nachbar zwischen 10 - 19.30 Uhr die Storen hochfährt, kommt doch DOELSE gar nicht zum Tragen...Sondern wieder DOIF ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  > 23) (set Storen_SZ closes)? Oder mach ich einen Denkfehler?
Raspi3, EnOcean, Zwave, Homematic

pc1246

Hoi
Das DOIF bekommt von der manuellen Aenderung gar nichts mit! Aber jeder Trigger (Netatmo) loest dann einen Fahrbefehl aus!
Ich halte persoenlich nichts davon, wenn man einen Aktor von mehreren Stellen steuert. Du hast jetzt ein DOIF und den weekdaytimer, die beide das Rollo bedienen. Da beide nichts voneinander wissen, macht jeder das was er meint. Wenn Du jetzt ein DOELSE nimmst, dann wuerde das ja hoechstwahrscheinlich auf das Hochfahren wirken. Mach das Ganze mit einem DOIF, dann wird es einfacher und uebersichtlicher. (Zumindest wenn man DOIF mag.)
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

Per

Zitat von: choetzu am 17 Juni 2016, 11:12:45Wenn doch mein Nachbar zwischen 10 - 19.30 Uhr die Storen hochfährt, kommt doch DOELSE gar nicht zum Tragen...
Richtig. Deshalb muss er auch wieder manuell schließen. Oder es wird erst am nächsten Tag wieder geschlossen. Oder falls es wieder kälter und wieder wärmer wird. Sprich: erst wenn das DOIF wieder anspricht.

choetzu

Zitat von: Per am 17 Juni 2016, 12:06:45
Richtig. Deshalb muss er auch wieder manuell schließen. Oder es wird erst am nächsten Tag wieder geschlossen. Oder falls es wieder kälter und wieder wärmer wird. Sprich: erst wenn das DOIF wieder anspricht.

Brauchst dann in dem Fall das DOELSE überhaupt? Ich habe ja noch Parallel den WeekDayTimer laufen, der dann - sollte die Storen geschlossen sein, am Morgen darauf wieder öffnet.

Zitat von: pc1246 am 17 Juni 2016, 11:47:20
Hoi
Das DOIF bekommt von der manuellen Aenderung gar nichts mit! Aber jeder Trigger (Netatmo) loest dann einen Fahrbefehl aus!
Ich halte persoenlich nichts davon, wenn man einen Aktor von mehreren Stellen steuert. Du hast jetzt ein DOIF und den weekdaytimer, die beide das Rollo bedienen. Da beide nichts voneinander wissen, macht jeder das was er meint. Wenn Du jetzt ein DOELSE nimmst, dann wuerde das ja hoechstwahrscheinlich auf das Hochfahren wirken. Mach das Ganze mit einem DOIF, dann wird es einfacher und uebersichtlicher. (Zumindest wenn man DOIF mag.)
Gruss Christoph

das verstehe ich und sehe ich auch so. Ich mag DOIF sehr, aber ich mache grad meine ersten Schritte danach... wie heisst es so schön, "you have to crawl before you walk"...
Nur mein Gedanke war eigentlich, dass wenn ich die Zeit- und die Temperatursteuerung in ein DOIF reinnehme, kann ich die Zeitsteuerung nach den Ferien nicht einfach so abschalten und die Temperatursteuerung weiter laufen lassen. Ich müsste das DOIF anpassen. Oder sehe ich das falsch?
Raspi3, EnOcean, Zwave, Homematic

automatisierer

Es gibt immer tausend Möglichkeiten.

Du kannst alles in ein DOIF packen, dann kannst du bei der Sonnenschutz-Steuerung von 10-19 Uhr einfach eine weitere Bedingung rein packen, z.B. einen Dummy den du bei Urlaub auf on schaltest. und nur dann werden die Jalousien geschlossen...

Wenn dein Nachbar die Jalousien hochfährt, kannst du das DOIF darauf triggern mit einem 'wait 3600' und so dass es den cmd nach einer Stunde wechselt und dann die Sonnenschutzsteuerung noch einmal triggern kann.


DOIF ([08:00]) (set Storen_SZ open) #fährt die Jalousie Morgens hoch
DOELSEIF ([20:00]) (set Storen_SZ closes) #fährt die Jalousie Abends runter
DOELSEIF ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  > 23 and [Dymmy_Urlaub ] eq "on") (set Storen_SZ closes) #fährt die Jalousie bei Uhrzeit und Temp > 23 und Dummy_Urlaub on runter
DOELSEIF ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  < 23 and [Dymmy_Urlaub ] eq "on") (set Storen_SZ open) #fährt die Jalousie bei Uhrzeit und Temp < 23 und Dummy_Urlaub on wieder rauf
DOELSEIF ([Storen_SZ] eq "open" and [Dymmy_Urlaub] eq "on") #lässt das DOIF den Zustand wechseln wenn dein Nachbar die Jalousien hoch fährt und ermöglicht ein erneutes runter fahren

attr <doif> wait 0:0:5:5:3600


Auf die schnelle eingehackt, sollte aber funktionieren. Die Namen musst du anpassen - klar. Und den Dummy erstellen.

choetzu

Wow, jetzt bin ich aber geplättet... Herzlichen Dank automatiserer... Das wäre eine wirklich clevere Alternative. Ich müsste aber noch die Unterscheidung von Week und Weekend reinpacken, dh. am Weekend will ich die Rolladen zu anderen Zeiten machen als unter der Woche..

Heisst also, dass ich mit 7 (Weekend) und 8 (Woche) arbeiten muss, oder? Wo pack ich das am besten rein?

Nochmals danke...

Noch ne Frage..

DOELSEIF ([Storen_SZ] eq "open" and [Dymmy_Urlaub] eq "on") #lässt das DOIF den Zustand wechseln wenn dein Nachbar die Jalousien hoch fährt und ermöglicht ein erneutes runter fahren

Da ist doch gar kein Befehl drin sondern es wird doch nur geprüft, ob Storen=open und Dummy=0 ist.. Sonst macht er ja nicht (set...)
Raspi3, EnOcean, Zwave, Homematic

automatisierer

DOIF ([08:00|7] or [10:00|8]) (set Storen_SZ open) #fährt die Jalousie Morgens hoch
DOELSEIF ([20:00|7] or [21:00|8]) (set Storen_SZ closes) #fährt die Jalousie Abends runter
DOELSEIF ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  > 23 and [Dymmy_Urlaub ] eq "on") (set Storen_SZ closes) #fährt die Jalousie bei Uhrzeit und Temp > 23 und Dummy_Urlaub on runter
DOELSEIF ([10:00-19:30] and [netatmo_M02_00_00_02_b4_0a:temperature]  < 23 and [Dymmy_Urlaub ] eq "on") (set Storen_SZ open) #fährt die Jalousie bei Uhrzeit und Temp < 23 und Dummy_Urlaub on wieder rauf
DOELSEIF ([Storen_SZ] eq "open" and [Dymmy_Urlaub] eq "on") #lässt das DOIF den Zustand wechseln wenn dein Nachbar die Jalousien hoch fährt und ermöglicht ein erneutes runter fahren

attr <doif> wait 0:0:5:5:3600



DOELSEIF ([Storen_SZ] eq "open" and [Dymmy_Urlaub] eq "on")
Da wir kein do always eingebaut haben und der Befehl ja nicht bei jeder Temperaturänderung neu gesendet werden soll, ändert das nur den Zustand des DOIF nach 3600 Sekunden auf cmd_5, dadurch kann dann das cmd_3 erneut ausgeführt werden. Sprich die Jalousien gehen 1 Stunde nachdem dein Nachbar die Jalousien auf open gemacht hat wieder runter. Ob die ganzen von mir eingebauten Bedingungen genau zu deinen Devices passen, musst du natürlich noch überprüfen und anpassen.



choetzu

Super, herzlichen Dank, das werde ich mal testen, wenn ich aus USA zurück bin. Und danke für deine Geduld und die Hilfestellung.. Da hab ich wieder was gelernt...
Raspi3, EnOcean, Zwave, Homematic