Aussperrschutz, den ich gerne mit DOIF realisieren würde

Begonnen von Aladin222, 20 Juni 2015, 16:25:07

Vorheriges Thema - Nächstes Thema

Aladin222

Hi @all ,

habe bei mir den Aussperrschutz der Terrassentür folgend gelöst :

#RolloAussperrschutzTerrasse
define Rolladen.Aussperrschutz at *{sunset(0,"19:00","22:30")} {if (Value("FensterKontaktTGriff") eq "closed") {fhem ("set RolloWzTuer Zu")}}


Das funktioniert soweit auch - aber ,wenn die Terrassentüre offen war und wegen dem Aussperrschutz die Rollos nicht geschlossen wurden ,so müssen diese dann von Hand geschaltet werden :-(
Wenn ich aber den obigen Befehl in einen DOIF umgemodelt bekomme , dann könnte ich mit einem do always die Türe auch später automatisch schliessen lassen !
Leider bekomme ich es mit dem DOIF nicht gebacken - jemand ne Idee ? 

Alles was ich versucht hatte das mit DOIF hinzubekommen ,funzt nicht - denke wegen falscher Klammern ....

Ralli

#1

define Blubbla DOIF ([{sunset(0,"19:00","22:30")}-{sunrise(0,"","07:59")}] and [FensterKontaktTGriff] eq "closed" and ([?RolloWzTuer] ne "off" and [?RolloWzTuer:motor] =~ "stop:.*")) (set RolloWzTuer off)
DOELSEIF ([{sunset(0,"19:00","22:30")}-{sunrise(0,"","07:59")}] and [FensterKontaktTGriff] eq "tilted" and ([?RolloWzTuer] ne "20" and [?RolloWzTuer:motor] =~ "stop:.*")) (set RolloWzTuer 20)
DOELSEIF (([{sunrise(0,"","08:00")}] or [FensterKontaktTGriff] eq "open") and [?RolloWzTuer] ne "on") (set RolloWzTuer on)
DOELSEIF ([RolloWzTuer] eq "on") ()


Da brauchst Du dann auch kein do always.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Aladin222

Uff !

@Ralle - erstmal vielen Dank für deine Hilfe !

Den Code habe ich nun erstmal so übernommen - leider hab ich nicht alles gerafft :-)
Aus meinem Einzeiler wurde ja ne Menge mehr ... teste nun erstmal auf Funktion und versuche dann mal hinter zu steigen was warum und wieso ... grins

Ralli

Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Aladin222

hmmm...schnelles Feedback :

hab den Code von dir eingebaut, danach noch nen Update von Fhem gemacht ... dann restart !
Ergebnis :

Rollo der Terrassentür fährt runter ! Dann fuhr das Rollo auf etwa 20 % und blieb dort stehen ...grins irgendwas will nicht !
Spricht gegen das do always etwas dagegen ? Wenn nicht würde ich nun mal versuchen das nötigste zusammenzufassen und den ersten IF Code auf DOIF umzustellen ...

Ralli

#5
Das do always lässt Du mal weg. Das ist nur dann sinnvoll, wenn Du durch das DOIF nur einen einzigen Zustand erreichen kannst und dieser aber auch tatsächlich immer wieder neu ausgelöst werden soll - und genau das ist hier nicht der Fall.

Vielleicht ist noch irgendwo ein Klammer-Problem. Mache ein List von Deinem DOIF und poste es hier. Und achte vor allem darauf, dass sich das neue DOIF nicht mit anderen Notifys, ats oder DOIFs in die Quere kommt! Denn dieses DOIF hier kombiniert alles, das zeitgesteuerte Runterfahren, das zeitgesteuerte Hochfahren, das Obenbleiben bei offenem Türgriff und automatisches Rollo-runter nach Zumachen und das Rollo-Anziehen bei gekipptem Fenster.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Aladin222

ok ! dachte mir schon das du dieses do always nicht ohne Grund nicht da haben wolltest :-)

List von DOIF :

Internals:
   CFGFN      /opt/fhem/FHEM/24_Rolladen.cfg
   DEF        ([{sunset(0,"19:00","22:30")}-{sunrise(0,"","07:59")}] and [FensterKontaktTGriff] eq "closed" and ([?RolloWzTuer] ne "off" and [?RolloWzTuer:motor] =~ "stop:.*")) (set RolloWzTuer off) DOELSEIF ([{sunset(0,"19:00","22:30")}-{sunrise(0,"","07:59")}] and [FensterKontaktTGriff] eq "tilted" and ([?RolloWzTuer] ne "20" and [?RolloWzTuer:motor] =~ "stop:.*")) (set RolloWzTuer 20) DOELSEIF (([{sunrise(0,"","08:00")}] or [FensterKontaktTGriff] eq "open") and [?RolloWzTuer] ne "on") (set RolloWzTuer on) DOELSEIF ([RolloWzTuer] eq "on") ()
   NAME       Rolladen.Aussperrschutz
   NR         486
   NTFY_ORDER 50-Rolladen.Aussperrschutz
   STATE      cmd_3
   TYPE       DOIF
   Readings:
     2015-06-21 08:43:50   cmd_event       FensterKontaktTGriff
     2015-06-21 08:43:50   cmd_nr          3
     2015-06-21 08:59:52   e_FensterKontaktTGriff_STATE open
     2015-06-21 08:48:59   e_RolloWzTuer_STATE Auf
     2015-06-21 08:43:50   state           cmd_3
     2015-06-21 08:58:35   timer_1_c1      21.06.2015 22:30:00
     2015-06-21 08:58:35   timer_2_c1      22.06.2015 04:29:27
     2015-06-21 08:58:35   timer_3_c2      21.06.2015 22:30:00
     2015-06-21 08:58:35   timer_4_c2      22.06.2015 04:29:27
     2015-06-21 08:58:35   timer_5_c3      22.06.2015 04:29:27
   Condition:
     0          DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('FensterKontaktTGriff','STATE','') eq "closed" and (InternalDoIf('RolloWzTuer','STATE','') ne "off" and ReadingValDoIf('RolloWzTuer','motor','') =~ "stop:.*")
     1          DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and InternalDoIf('FensterKontaktTGriff','STATE','') eq "tilted" and (InternalDoIf('RolloWzTuer','STATE','') ne "20" and ReadingValDoIf('RolloWzTuer','motor','') =~ "stop:.*")
     2          (DOIF_time_once($hash->{timer}{4},$wday,"") or InternalDoIf('FensterKontaktTGriff','STATE','') eq "open") and InternalDoIf('RolloWzTuer','STATE','') ne "on"
     3          InternalDoIf('RolloWzTuer','STATE','') eq "on"
   Days:
   Devices:
     0           FensterKontaktTGriff
     1           FensterKontaktTGriff
     2           FensterKontaktTGriff
     3           RolloWzTuer
     all         FensterKontaktTGriff RolloWzTuer
   Do:
     0          set RolloWzTuer off
     1          set RolloWzTuer 20
     2          set RolloWzTuer on
     3
   Helper:
     last_timer 5
     sleeptimer -1
   Internals:
     0           FensterKontaktTGriff:STATE
     1           FensterKontaktTGriff:STATE
     2           FensterKontaktTGriff:STATE
     3           RolloWzTuer:STATE
     all         FensterKontaktTGriff:STATE RolloWzTuer:STATE
   Itimer:
   Readings:
   Realtime:
     0          22:30:00
     1          04:29:27
     2          22:30:00
     3          04:29:27
     4          04:29:27
   State:
   Time:
     0          {sunset(0,"19:00","22:30")}
     1          {sunrise(0,"","07:59")}
     2          {sunset(0,"19:00","22:30")}
     3          {sunrise(0,"","07:59")}
     4          {sunrise(0,"","08:00")}
   Timecond:
     0          0
     1          0
     2          1
     3          1
     4          2
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   Timerfunc:
   Timers:
     0           0  1
     1           2  3
     2           4
   Trigger:
Attributes:


hmmm, hab nun nochmals nen Neustart gemacht und das Rollo bleibt ganz brav .... bekomme das also nicht reproduziert ....
Jetzt muss ich wohl den Sonnenuntergang abwarten , grins , dann werde ich wohl sehen ob es funzt !
Das Listing ist für mich in Ordnung ,oder ?

Ralli

#7
Dass es beim ersten mal nicht richtig geklappt hat, kann daran liegen:

http://forum.fhem.de/index.php/topic,38266.msg305065.html#msg305065

Wir gehen jetzt mal davon aus, dass es tut, was es soll ;).

Edit:

WICHTIG, beherzige den Tipp: http://www.fhemwiki.de/wiki/HM-Sec-RHS_Funk-Fenster-Drehgriffkontakt
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Aladin222

Danke Dir :-) !!!

Ja, R-eventDlyTime hatte ich bei mir auch auf 3 sec !

Ok , bis dahin alles bestens ... hoffe nun das es passt  ;D