FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Starsurfer am 12 August 2019, 21:08:31

Titel: Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 21:08:31
Moin,

ich bräuchte mal ein Hilfe bei einem DOIF:

Zur Zeit habe ich im Garten ein paar Gartenstrahler mit innr GU10 und Osram Gartenpoles.

Die Strahler werden zur Zeit über Bewegungsmelder angeschaltet und die Gartenpoles über ein Helligkeitssensor.

Meine Idee ist jetzt, über den Helligkeitssensor alle Lampen im Garten gedimmt einzuschalten und wenn Bewegung erkannt wird, die Lampen auf voller Helligkeit anzuschalten und wenn keine Bewegung mehr erkannt wird, wieder auf den Ursprünglichen Zustand zu schalten.

Dazu habe ich mir folgendes DOIF erstellt:
(([5:50-7:30] or [16:00-22:10] and [MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen:"nomotion"] or [Bewegungsmelder_Schleppdach:"nomotion"]))
(set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and ([Bewegungsmelder_Hexen:"motion"] or [Bewegungsmelder_Schleppdach:"motion"]))
(set HUEDevice9 pct 100)
DOELSE
(set HUEDevice9 off)


Das List dazu:
Internals:
   DEF        (([5:50-7:30] or [16:00-22:10] and [MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen:"nomotion"] or [Bewegungsmelder_Schleppdach:"nomotion"]))
(set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and ([Bewegungsmelder_Hexen:"motion"] or [Bewegungsmelder_Schleppdach:"motion"]))
(set HUEDevice9 pct 100)
DOELSE
(set HUEDevice9 off)
   FUUID      5d484da7-f33f-ae29-81bf-44385bb53101ea42
   MODEL      FHEM
   NAME       doif_Garten_Gardenpole
   NR         231
   NTFY_ORDER 50-doif_Garten_Gardenpole
   STATE      cmd_3
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-08-12 20:57:44   Device          MultiSensor_Einfahrt
     2019-08-12 16:25:23   cmd             3
     2019-08-12 16:25:23   cmd_event       doif_Garten_Gardenpole
     2019-08-12 16:25:23   cmd_nr          3
     2019-08-12 20:52:43   e_Bewegungsmelder_Hexen_events temperature: 21
     2019-08-12 20:49:57   e_Bewegungsmelder_Schleppdach_events nomotion
     2019-08-12 20:57:44   e_MultiSensor_Einfahrt_brightness 28.98
     2019-08-12 16:25:20   mode            enabled
     2019-08-12 16:25:23   state           cmd_3
     2019-08-12 18:30:59   timer_01_c01    13.08.2019 05:50:00
     2019-08-12 18:30:59   timer_02_c01    13.08.2019 07:30:00
     2019-08-12 18:30:59   timer_03_c01    13.08.2019 16:00:00
     2019-08-12 18:30:59   timer_04_c01    12.08.2019 22:10:00
   Regex:
     accu:
   attr:
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::EventDoIf('Bewegungsmelder_Hexen',$hash,'nomotion',1) or ::EventDoIf('Bewegungsmelder_Schleppdach',$hash,'nomotion',1))
     1          ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and (::EventDoIf('Bewegungsmelder_Hexen',$hash,'motion',1) or ::EventDoIf('Bewegungsmelder_Schleppdach',$hash,'motion',1))
   days:
   devices:
     0           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     1           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     all         MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   do:
     0:
       0          set HUEDevice9 pct 10
     1:
       0          set HUEDevice9 pct 100
     2:
       0          set HUEDevice9 off
   helper:
     event      batVoltage: 3.18,battery: ok,brightness: 28.98,customData: 0,digitalInput: 0,humidity: 41,pressure: 1014.4,T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0,temperature: 20.3
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   MultiSensor_Einfahrt
     timerevent batVoltage: 3.18,battery: ok,brightness: 28.98,customData: 0,digitalInput: 0,humidity: 41,pressure: 1014.4,T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0,temperature: 20.3
     triggerDev MultiSensor_Einfahrt
     timerevents:
       batVoltage: 3.18
       battery: ok
       brightness: 28.98
       customData: 0
       digitalInput: 0
       humidity: 41
       pressure: 1014.4
       T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
       temperature: 20.3
     timereventsState:
       batVoltage: 3.18
       battery: ok
       brightness: 28.98
       customData: 0
       digitalInput: 0
       humidity: 41
       pressure: 1014.4
       state: T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
       temperature: 20.3
     triggerEvents:
       batVoltage: 3.18
       battery: ok
       brightness: 28.98
       customData: 0
       digitalInput: 0
       humidity: 41
       pressure: 1014.4
       T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
       temperature: 20.3
     triggerEventsState:
       batVoltage: 3.18
       battery: ok
       brightness: 28.98
       customData: 0
       digitalInput: 0
       humidity: 41
       pressure: 1014.4
       state: T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
       temperature: 20.3
   internals:
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   itimer:
   localtime:
     0          1565668200
     1          1565674200
     2          1565704800
     3          1565640600
   perlblock:
   readings:
     0           MultiSensor_Einfahrt:brightness
     1           MultiSensor_Einfahrt:brightness
     all         MultiSensor_Einfahrt:brightness
   realtime:
     0          05:50:00
     1          07:30:00
     2          16:00:00
     3          22:10:00
   time:
     0          5:50
     1          7:30
     2          16:00:00
     3          22:10:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
     all         Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   triggertime:
     1565640600:
       localtime  1565640600
       hash:
     1565668200:
       localtime  1565668200
       hash:
     1565674200:
       localtime  1565674200
       hash:
     1565704800:
       localtime  1565704800
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   icon       icoUhr
   room       Zeitschaltuhren


Es ist jetzt kurz nach 21 Uhr, der Helligkeitssensor meldet knappe 28 LUX und die Bewegungsmelder stehen auf nomotion. Das Doif befindet sich aber in cmd_3.

Ich kann meinen Fehler leider nicht finden, vielleicht kann mir ja jemand auf die Sprünge helfen.

Danke
Titel: Antw:Problem mit DOIF
Beitrag von: Otto123 am 12 August 2019, 21:20:29
Hi,

Du musst auf alle Fälle das erste or noch klammern.

Gruß Otto
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:24:53
Du kombinierst Status und Ereignissteuerung => Konkret wird dein DOIF hier nur durch Ereignisse "nomotion" von den Bewegungsmelder getriggert

Um 16:25 hat er cmd_3 geschaltet.
Um 20:49 hat Bewegungsmelder_Hexen "nomotion" gemeldet. Wie war damals MultiSensor_Einfahrt:brightness ? Wahrscheinlich noch über 40
28.98 kommt auf jeden Fall erst danach
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:26:12
Zitat von: Otto123 am 12 August 2019, 21:20:29
Hi,

Du musst auf alle Fälle das erste or noch klammern.

Gruß Otto
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 21:40:20
Zitat von: amenomade am 12 August 2019, 21:26:12
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist

Nein beides nur wenn die Helligkeit unter 40 Lux ist.
Titel: Antw:Problem mit DOIF
Beitrag von: Otto123 am 12 August 2019, 21:41:12
Zitat von: amenomade am 12 August 2019, 21:26:12
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist
Ja kann auch sein :) ich denke mit Deiner Anmerkung über die Ereignissteuerung liegst Du richtig. Damit spielt die Helligkeit keine triggernde Rolle mehr :)
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:42:35
Zitat von: Starsurfer am 12 August 2019, 21:40:20
Nein beides nur wenn die Helligkeit unter 40 Lux ist.
Dann musst Du, wie Otto geschrieben hat, noch mehr klammern. And bindet mehr als or. Ändert aber nichts an der Tatsache, dass dein DOIF eventgetriggert ist
Titel: Antw:Problem mit DOIF
Beitrag von: Otto123 am 12 August 2019, 21:42:48
Und Umbau auf die Form  [Bewegungsmelder_Hexen] eq "motion"
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:44:33
Zitat von: Otto123 am 12 August 2019, 21:42:48
Und Umbau auf die Form  [Bewegungsmelder_Hexen] eq "motion"
oder ggf "nomotion".

Zur Erklärung, nehmen wir mal folgendes DOIF:
([du:"^on$"]) (set du4 on) DOELSE (set du4 off)
Ein Ereignis "on" auf Device "du" wird du4 auf on schalten
ABER alle andere Ereignisse auf "du" werden du4 wieder auf off schalten

Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 21:48:12
So habe es jetzt so umgebaut:
(([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)


List:
Internals:
   DEF        (([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
   FUUID      5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
   MODEL      FHEM
   NAME       doif_Garten_Strahler
   NR         194
   NTFY_ORDER 50-doif_Garten_Strahler
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-08-12 21:46:11   cmd             1
     2019-08-12 21:46:11   cmd_event       doif_Garten_Strahler
     2019-08-12 21:46:11   cmd_nr          1
     2019-08-12 21:46:07   mode            enabled
     2019-08-12 21:46:11   state           cmd_1
     2019-08-12 21:46:07   timer_01_c01    13.08.2019 05:50:00
     2019-08-12 21:46:07   timer_02_c01    13.08.2019 07:30:00
     2019-08-12 21:46:07   timer_03_c01    13.08.2019 16:00:00
     2019-08-12 21:46:07   timer_04_c01    12.08.2019 22:10:00
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         130
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
     1          ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion"
   days:
   devices:
     0           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     1           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     all         MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   do:
     0:
       0          set HUEGroup2 pct 10, set HUEDevice9 pct 10
     1:
       0          set HUEGroup2 pct 100, set HUEDevice9 pct 100
     2:
       0          set HUEGroup2 off, set HUEDevice9 off
   helper:
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: doif_Garten_Strahler
       state: cmd_1
   internals:
     0           Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     1           Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     all         Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   itimer:
   localtime:
     0          1565668200
     1          1565674200
     2          1565704800
     3          1565640600
   readings:
     0           MultiSensor_Einfahrt:brightness
     1           MultiSensor_Einfahrt:brightness
     all         MultiSensor_Einfahrt:brightness
   realtime:
     0          05:50:00
     1          07:30:00
     2          16:00:00
     3          22:10:00
   time:
     0          5:50
     1          7:30
     2          16:00:00
     3          22:10:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   triggertime:
     1565640600:
       localtime  1565640600
       hash:
     1565668200:
       localtime  1565668200
       hash:
     1565674200:
       localtime  1565674200
       hash:
     1565704800:
       localtime  1565704800
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         resetwait
   icon       icoUhr
   room       Zeitschaltuhren
   wait       0:130


Zumindest ist er jetzt schon mal auf cmd_1 gesprungen. Muss gleich mal raus rennen und einen Bewegungsmelder aktivieren.
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:51:18
Schon mal besser, ja
Hoffe es regnet nicht ;)
Und ich hoffe auch, dass pct 100 nicht genug Licht bringt, dass MultiSensor_Einfahrt:brightness über 40 springt
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 21:57:25
Zitat von: amenomade am 12 August 2019, 21:51:18
Schon mal besser, ja
Hoffe es regnet nicht ;)
Und ich hoffe auch, dass pct 100 nicht genug Licht bringt, dass MultiSensor_Einfahrt:brightness über 40 springt

Nein regnet nicht :-)
Nein, der steht auf der anderen Seite vom Haus  :o

Allerdings springt er bei motion nicht in cmd_2  >:(
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 21:59:02
list?
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 22:00:21
Ahja übrigens
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
Da hast Du wiederum ein Klammer Problem.

EDIT: vergiss nicht, dass damit er aus cmd_1 rauskommt, BEIDE Bewegungsmelder auf "motion" sein müssen, sonst ist der "nomotion or nomotion" immer noch wahr
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 22:01:28
Nicht wundern, ist ein Bewegungsmelder mehr dazu gekommen, der steht hier auf dem Schreibtisch, damit ich nicht immer raus rennen muss.

List:
Internals:
   DEF        (([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "nomotion" or [Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "motion" or [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
   FUUID      5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
   MODEL      FHEM
   NAME       doif_Garten_Strahler
   NR         194
   NTFY_ORDER 50-doif_Garten_Strahler
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-08-12 22:00:08   Device          Bewegungsmelder
     2019-08-12 22:00:08   cmd             1
     2019-08-12 22:00:08   cmd_event       Bewegungsmelder
     2019-08-12 22:00:08   cmd_nr          1
     2019-08-12 22:00:08   e_Bewegungsmelder_STATE nomotion
     2019-08-12 21:55:03   mode            enabled
     2019-08-12 22:00:08   state           cmd_1
     2019-08-12 21:55:03   timer_01_c01    13.08.2019 05:50:00
     2019-08-12 21:55:03   timer_02_c01    13.08.2019 07:30:00
     2019-08-12 21:55:03   timer_03_c01    13.08.2019 16:00:00
     2019-08-12 21:55:03   timer_04_c01    12.08.2019 22:10:00
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         130
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
     1          (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion")
   days:
   devices:
     0           MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     1           MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     all         MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   do:
     0:
       0          set HUEGroup2 pct 10, set HUEDevice9 pct 10
     1:
       0          set HUEGroup2 pct 100, set HUEDevice9 pct 100
     2:
       0          set HUEGroup2 off, set HUEDevice9 off
   helper:
     event      nomotion
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   Bewegungsmelder
     timerevent nomotion
     triggerDev Bewegungsmelder
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Bewegungsmelder
       state: cmd_1
     timerevents:
       nomotion
     timereventsState:
       state: nomotion
     triggerEvents:
       nomotion
     triggerEventsState:
       state: nomotion
   internals:
     0           Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     1           Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     all         Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   itimer:
   localtime:
     0          1565668200
     1          1565674200
     2          1565704800
     3          1565640600
   readings:
     0           MultiSensor_Einfahrt:brightness
     1           MultiSensor_Einfahrt:brightness
     all         MultiSensor_Einfahrt:brightness
   realtime:
     0          05:50:00
     1          07:30:00
     2          16:00:00
     3          22:10:00
   time:
     0          5:50
     1          7:30
     2          16:00:00
     3          22:10:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
   triggertime:
     1565640600:
       localtime  1565640600
       hash:
     1565668200:
       localtime  1565668200
       hash:
     1565674200:
       localtime  1565674200
       hash:
     1565704800:
       localtime  1565704800
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         resetwait
   icon       icoUhr
   room       Zeitschaltuhren
   wait       0:130
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 22:03:46
Zitat von: amenomade am 12 August 2019, 22:00:21
EDIT: vergiss nicht, dass damit er aus cmd_1 rauskommt, BEIDE Bewegungsmelder auf "motion" sein müssen, sonst ist der "or"immer noch wahr

Das verstehe ich jetzt nicht so ganz.
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 22:09:43
Ich versuche mal zu erklären was ich machen will.
Wenn einer der beiden oder auch beide Bewegungsmelder ausgelöst werden, soll das Licht auf pct 100 gehen. Wenn alle Bewegungsmelder wieder melden nomotion, soll das Licht wieder gedimmt werden,
Natürlich nur in der gewünschten Zeit und wenn es Dunkel genug ist, ansonsten sollen die Lampen aus bleiben.
Titel: Antw:Problem mit DOIF
Beitrag von: Otto123 am 12 August 2019, 22:13:20
ZitatWenn alle Bewegungsmelder wieder melden nomotion,
Dann muss der aber so sein:
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 12 August 2019, 22:17:05
Zitat von: Starsurfer am 12 August 2019, 22:09:43
Ich versuche mal zu erklären was ich machen will.
Wenn einer der beiden oder auch beide Bewegungsmelder ausgelöst werden, soll das Licht auf pct 100 gehen. Wenn alle Bewegungsmelder wieder melden nomotion, soll das Licht wieder gedimmt werden,
Natürlich nur in der gewünschten Zeit und wenn es Dunkel genug ist, ansonsten sollen die Lampen aus bleiben.

Dann schreibe dein DOIF genau wie Du deinen Text schreibt:

((motion or motion or motion) and Zeit and brightness < 40)
   (pct 100)
DOELSEIF (nomotion and nomotion and nomotion and Zeit and brighness < 40)
   (pct 10)
DOELSE
   (off)
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 12 August 2019, 22:21:27
Zitat von: Otto123 am 12 August 2019, 22:13:20
Dann muss der aber so sein:
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")

Funktioniert leider nicht, bleibt bei cmd_1 trotz motion.

List:
Internals:
   DEF        (([5:50-7:30] or [16:00-22:30]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "nomotion" or [Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([5:50-7:30] or [16:00-22:30]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
   FUUID      5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
   MODEL      FHEM
   NAME       doif_Garten_Strahler
   NR         194
   NTFY_ORDER 50-doif_Garten_Strahler
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-08-12 22:18:57   Device          Bewegungsmelder
     2019-08-12 22:18:57   cmd             1
     2019-08-12 22:18:57   cmd_event       Bewegungsmelder
     2019-08-12 22:18:57   cmd_nr          1
     2019-08-12 22:18:57   e_Bewegungsmelder_STATE motion
     2019-08-12 22:17:32   mode            enabled
     2019-08-12 22:18:57   state           cmd_1
     2019-08-12 22:17:32   timer_01_c01    13.08.2019 05:50:00
     2019-08-12 22:17:32   timer_02_c01    13.08.2019 07:30:00
     2019-08-12 22:17:32   timer_03_c01    13.08.2019 16:00:00
     2019-08-12 22:17:32   timer_04_c01    12.08.2019 22:30:00
     2019-08-12 22:17:32   timer_05_c02    13.08.2019 05:50:00
     2019-08-12 22:17:32   timer_06_c02    13.08.2019 07:30:00
     2019-08-12 22:17:32   timer_07_c02    13.08.2019 16:00:00
     2019-08-12 22:17:32   timer_08_c02    12.08.2019 22:30:00
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         130
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
     1          (::DOIF_time($hash,4,5,$wday,$hms) or ::DOIF_time($hash,6,7,$wday,$hms)) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion"
   days:
   devices:
     0           MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     1           MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     all         MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   do:
     0:
       0          set HUEGroup2 pct 10, set HUEDevice9 pct 10
     1:
       0          set HUEGroup2 pct 100, set HUEDevice9 pct 100
     2:
       0          set HUEGroup2 off, set HUEDevice9 off
   helper:
     event      motion
     globalinit 1
     last_timer 8
     sleeptimer -1
     timerdev   Bewegungsmelder
     timerevent motion
     triggerDev Bewegungsmelder
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Bewegungsmelder
       state: cmd_1
     timerevents:
       motion
     timereventsState:
       state: motion
     triggerEvents:
       motion
     triggerEventsState:
       state: motion
   internals:
     0           Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     1           Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     all         Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   intervalfunc:
   itimer:
   localtime:
     0          1565668200
     1          1565674200
     2          1565704800
     3          1565641800
     4          1565668200
     5          1565674200
     6          1565704800
     7          1565641800
   readings:
     0           MultiSensor_Einfahrt:brightness
     1           MultiSensor_Einfahrt:brightness
     all         MultiSensor_Einfahrt:brightness
   realtime:
     0          05:50:00
     1          07:30:00
     2          16:00:00
     3          22:30:00
     4          05:50:00
     5          07:30:00
     6          16:00:00
     7          22:30:00
   time:
     0          5:50
     1          7:30
     2          16:00:00
     3          22:30:00
     4          5:50
     5          7:30
     6          16:00:00
     7          22:30:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          1
     5          1
     6          1
     7          1
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0  1  2  3
     1           4  5  6  7
   trigger:
   triggertime:
     1565641800:
       localtime  1565641800
       hash:
     1565668200:
       localtime  1565668200
       hash:
     1565674200:
       localtime  1565674200
       hash:
     1565704800:
       localtime  1565704800
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         resetwait
   icon       icoUhr
   room       Zeitschaltuhren
   wait       0:130


@amenomade
Werde ich morgen mal testen.
Sieht aber zumindest Logisch aus :-)
Titel: Antw:Problem mit DOIF
Beitrag von: Per am 13 August 2019, 11:51:50
Statt nomotion and nomotion und motion or motion würde ich hier auf ein DOIF_Reading gehen und dieses auswerten.
Zumal das noch eine nette Rückmeldung für die Fehlersuche gibt.
Titel: Antw:Problem mit DOIF
Beitrag von: Otto123 am 13 August 2019, 11:57:49
Falschversteher Codeverdreher :)
Du hast doch jetzt im DOELSEIF den falschen Code stehen. Mein Vorschlag war doch für den DOIF Zweig. Also eher so: (ungetestet)
Genauso wie amenomade sein Prinzipvorschlag ;)
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "motion" or [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 13 August 2019, 14:28:14
Danke erst einmal für die Hilfestellung  :D
Wenn ich nachher zu Hause bin, werde ich deinen Code mal testen.
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 13 August 2019, 16:21:41
So habe ich jetzt eingebaut und werde mal bis heute Abend warten und gucken ob es jetzt so funktioniert, wie ich mir das denke.

Nochmal Danke an Euch für die Hilfe :-)
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 13 August 2019, 21:54:33
So gerade getestet. cmd_1 funktioniert, das doif geht aber nicht in cmd_2 wenn ein oder beide Bewegungsmelder auf motion gehen. Es bleibt im cmd_1.

Hier nochmal ein list:
Internals:
   DEF        (([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
   FUUID      5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
   MODEL      FHEM
   NAME       doif_Garten_Strahler
   NR         194
   NTFY_ORDER 50-doif_Garten_Strahler
   STATE      cmd_1
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-08-13 21:46:05   Device          Bewegungsmelder_Schleppdach
     2019-08-13 21:46:05   cmd             1
     2019-08-13 21:46:05   cmd_event       Bewegungsmelder_Schleppdach
     2019-08-13 21:46:05   cmd_nr          1
     2019-08-13 21:40:54   e_Bewegungsmelder_Hexen_STATE nomotion
     2019-08-13 21:46:05   e_Bewegungsmelder_Schleppdach_STATE nomotion
     2019-08-13 21:43:18   e_MultiSensor_Einfahrt_brightness 0.27
     2019-08-13 15:48:35   mode            enabled
     2019-08-13 21:46:05   state           cmd_1
     2019-08-13 15:48:35   timer_01_c01    14.08.2019 05:50:00
     2019-08-13 15:48:35   timer_02_c01    14.08.2019 07:30:00
     2019-08-13 15:48:35   timer_03_c01    13.08.2019 16:00:00
     2019-08-13 15:48:35   timer_04_c01    13.08.2019 22:10:00
     2019-08-13 21:40:54   wait_timer      no timer
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         130
     waitdel:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion"
     1          (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion")
   days:
   devices:
     0           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     1           MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
     all         MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
   do:
     0:
       0          set HUEGroup2 pct 10, set HUEDevice9 pct 10
     1:
       0          set HUEGroup2 pct 100, set HUEDevice9 pct 100
     2:
       0          set HUEGroup2 off, set HUEDevice9 off
   helper:
     event      nomotion
     globalinit 1
     last_timer 4
     sleepdevice Bewegungsmelder_Hexen
     sleepsubtimer 0
     sleeptimer -1
     timerdev   Bewegungsmelder_Schleppdach
     timerevent nomotion
     triggerDev Bewegungsmelder_Schleppdach
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: Bewegungsmelder_Schleppdach
       state: cmd_1
     timerevents:
       nomotion
     timereventsState:
       state: nomotion
     triggerEvents:
       nomotion
     triggerEventsState:
       state: nomotion
   internals:
     0           Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     1           Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
     all         Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1565754600
     1          1565760600
     2          1565704800
     3          1565727000
   readings:
     0           MultiSensor_Einfahrt:brightness
     1           MultiSensor_Einfahrt:brightness
     all         MultiSensor_Einfahrt:brightness
   realtime:
     0          05:50:00
     1          07:30:00
     2          16:00:00
     3          22:10:00
   time:
     0          5:50
     1          7:30
     2          16:00:00
     3          22:10:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   trigger:
   triggertime:
     1565727000:
       localtime  1565727000
       hash:
     1565754600:
       localtime  1565754600
       hash:
     1565760600:
       localtime  1565760600
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   do         resetwait
   icon       icoUhr
   room       Zeitschaltuhren
   wait       0:130


Ich glaube ich lege für die Bewegungsmelder mal ein Dummy an mit motion und nomotion.
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 13 August 2019, 22:03:43
    2019-08-13 21:46:05   cmd             1
     2019-08-13 21:46:05   cmd_event       Bewegungsmelder_Schleppdach
     2019-08-13 21:46:05   cmd_nr          1
     2019-08-13 21:40:54   e_Bewegungsmelder_Hexen_STATE nomotion
     2019-08-13 21:46:05   e_Bewegungsmelder_Schleppdach_STATE nomotion


Um 21:46 ist Schleppdach auf "nomotion" gesprungen, und Hexen war schon seit 21:40 auf nomotion. Dann hat das DOIF den Zustand cmd 1 genommen. Scheint ganz normal zu sein.
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 13 August 2019, 22:06:47
Und mit    wait       0:130 sorgst Du dafür, dass er erst 130s nach "motion" das pct 100 ausführt. Meine Vermutung: Du hast Bewegung gemacht, das DOIF war dann bereit auf cmd_2 zu gehen, musste aber 130 Sekunden warten, aber die Bewegungsmelder sind vor diese 130 Sekunden wieder auf nomotion gegangen, und er hat wieder auf cmd_1 gesprungen.
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 13 August 2019, 22:09:07
Ja aber als ich an den Bewegungsmelder vorbei gegangen bin, sind die Lichter gedimmt geblieben. Hatte leider mein Handy nicht mit um nachzuschauen.
Ich muss das am WE Mal testen wenn ich mehr Zeit habe. Kommt einen ja immer die Arbeit dazwischen.

Ah ok eigentlich sollten die Lampen damit 3min an bleiben. Werde ich Mal löschen.
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 13 August 2019, 22:11:19
Zitat von: Starsurfer am 13 August 2019, 22:09:07
Ja aber als ich an den Bewegungsmelder vorbei gegangen bin, sind die Lichter gedimmt geblieben. Hatte leider mein Handy nicht mit um nachzuschauen.
Ich muss das am WE Mal testen wenn ich mehr Zeit habe. Kommt einen ja immer die Arbeit dazwischen.

Ah ok eigentlich sollten die Lampen damit 3min snbleiben. Werde ich Mal löschen.
Damit die Lampen "anbleiben", musst Du den Befehl verzögern, der die Lampen ausschaltet (oder auf 10 runterdimmt)
Titel: Antw:Problem mit DOIF
Beitrag von: amenomade am 13 August 2019, 22:14:29
Und noch was: in deinem DOELSEIF fehlt die Zeitbedingung (ich gebe zu, Otto hatte die auch vergessen ;) ). So wie dein DOIF im Moment aussieht, wird eine Bewegung auch mitte der Nacht die Lampen auf 100 dimmen

EDIT: und noch eine Kleinigkeit: 3 Minuten = 180 Sekunden, nicht 130 ;)
Titel: Antw:Problem mit DOIF
Beitrag von: Starsurfer am 13 August 2019, 22:18:20
Jaaaa das war es.es funktioniert  ;D
Ja das die Uhrzeit da fehlt, ist so gewollt.
Danke