Hauptmenü

Problem mit DOIF

Begonnen von Starsurfer, 12 August 2019, 21:08:31

Vorheriges Thema - Nächstes Thema

Starsurfer

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.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

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.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Otto123

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")
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

amenomade

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)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Starsurfer

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 :-)
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Per

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.

Otto123

#21
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)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Starsurfer

Danke erst einmal für die Hilfestellung  :D
Wenn ich nachher zu Hause bin, werde ich deinen Code mal testen.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

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 :-)
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

#24
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.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

amenomade

    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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#26
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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Starsurfer

#27
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.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

amenomade

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)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#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 ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus