FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: maci am 08 März 2018, 15:03:34

Titel: Irgendwie checke ich das verhalten nicht
Beitrag von: maci am 08 März 2018, 15:03:34
Ich habe bei  einem Rolladen, im Zimmer meines Sohnes eine HM Fenstersensor verbaut.
dazu habe ich folgendes DOIF geschrieben:
Internals:
   CFGFN     
   CHANGED   
   DEF        ([20:30-23:00]|8 and [TuerChristophStatus] eq "open" ) (set Rolladen_Christoph_Tuer stop;/
sleep 5; set Rolladen_Christoph_Tuer lueften; sleep 600; set Rolladen_Christoph_Tuer 13)
   NAME       SchaltLueftTuereChristoph
   NR         60610
   NTFY_ORDER 50-SchaltLueftTuereChristoph
   STATE      disabled
   TYPE       DOIF
   READINGS:
     2018-03-08 08:14:33   Device          TuerChristophStatus
     2018-03-08 08:14:33   cmd             2
     2018-03-08 08:14:33   cmd_event       TuerChristophStatus
     2018-03-08 08:14:33   cmd_nr          2
     2018-03-08 08:14:33   e_TuerChristophStatus_STATE closed
     2018-03-08 08:30:01   last_cmd        cmd_2
     2018-03-08 08:30:01   mode            disabled
     2018-03-08 08:30:01   state           disabled
     2018-03-07 23:00:00   timer_01_c01    08.03.2018 20:30:00
     2018-03-07 23:00:00   timer_02_c01    08.03.2018 23:00:00
   Regex:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms)|8 and InternalDoIf($hash,'TuerChristophStatus','STATE') eq "open"
   days:
   devices:
     0           TuerChristophStatus
     all         TuerChristophStatus
   do:
     0:
       0          set Rolladen_Christoph_Tuer stop;/ sleep 5; set Rolladen_Christoph_Tuer lueften; sleep 600; set Rolladen_Christoph_Tuer 13
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      battery: ok,contact: closed (to VCCU),closed,trigger_cnt: 154
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   TuerChristophStatus
     timerevent battery: ok,contact: closed (to VCCU),closed,trigger_cnt: 154
     triggerDev TuerChristophStatus
     timerevents:
       battery: ok
       contact: closed (to VCCU)
       closed
       trigger_cnt: 154
     timereventsState:
       battery: ok
       contact: closed (to VCCU)
       state: closed
       trigger_cnt: 154
     triggerEvents:
       battery: ok
       contact: closed (to VCCU)
       closed
       trigger_cnt: 154
     triggerEventsState:
       battery: ok
       contact: closed (to VCCU)
       state: closed
       trigger_cnt: 154
   internals:
     0           TuerChristophStatus:STATE
     all         TuerChristophStatus:STATE
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1520537400
     1          1520546400
   readings:
   realtime:
     0          20:30:00
     1          23:00:00
   time:
     0          20:30:00
     1          23:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1520537400:
       localtime  1520537400
       hash:
     1520546400:
       localtime  1520546400
       hash:
   uiState:
   uiTable:
Attributes:
   event-on-change-reading 1
   group      Steuerung Rolladen
   room       5.03_Rolladen_Schalter


Ziel ist dass der Rolladen auf 60% öffnet und nach 10min auf 13% schließt.
bei ist 100% offen.
Die stop Routine habe ich drinnen, weil es sein kann dass die Automatik den Rolladen evtl. schließt.

Was ich aber nicht verstehe, dass dieses DOIF auch um 8:00 Uhr früh anspricht.
Das habe ich aber eingeschränkt.

Frage mich, was ich falsch definiert habe.
Der Rolladen fährt richtig, und macht das was er soll.
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: Frank_Huber am 08 März 2018, 15:31:09
im DOIF werden Befehle per Komma getrennt oder in separate Klammer gesetzt.
die Sleep kannst Du (bei separaten Klammern) über das wait Attribut lösen.
einen Zeilenumbruch im DEF machst mit "\", nicht mit "/"


DEF        ([20:30-23:00]|8 and [TuerChristophStatus] eq "open" ) (set Rolladen_Christoph_Tuer stop) (set Rolladen_Christoph_Tuer lueften) (set Rolladen_Christoph_Tuer 13)

attr do always
attr wait 0,5,600
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: nils_ am 08 März 2018, 15:37:19
Frank_Huber hat schon einiges dazu geschrieben!

aber
Zitat von: maci am 08 März 2018, 15:03:34
Was ich aber nicht verstehe, dass dieses DOIF auch um 8:00 Uhr früh anspricht.
sicher das er über das DOIF angesteuert wird und nicht über
Zitat von: maci am 08 März 2018, 15:03:34
die Automatik

??
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: maci am 08 März 2018, 17:58:40
Dann wirkt also die Angabe [20:30-23:00]|8 nicht?
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: Icinger am 08 März 2018, 18:05:38
Müsste es nicht
[20:30-23:00|8]
heissen?
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: maci am 08 März 2018, 19:01:27
Ja stimmt, habe ich übersehen
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: Frank_Huber am 08 März 2018, 20:43:36
Zitat von: maci am 08 März 2018, 19:01:27
Ja stimmt, habe ich übersehen
Ich auch. Sorry.

Mit dem Handy online, daher kurz gefasst...

Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: nils_ am 09 März 2018, 10:12:17
und war das der 8 Uhr Trigger?  ::)
Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: maci am 09 März 2018, 10:49:30
Ich denke, schon, denn heute war Ruhe
Ich beobachte das DOIF noch, bzw, muss ich noch etwas ausbauen.

Titel: Antw:Irgendwie checke ich das verhalten nicht
Beitrag von: Frank_Huber am 09 März 2018, 10:51:54
Ich verstehe nicht ganz warum weil es nicht zum Syntax passt, aber ich denke das "|8" wurde als 8:00 interprätiert.

Wenn jetzt Ruhe ist und alles geht wie es soll ist ja super! :-)