DOIF läuft bei mir noch nicht rund - zu komplex?

Begonnen von thomas1977mg, 05 Juni 2020, 09:23:24

Vorheriges Thema - Nächstes Thema

thomas1977mg

Hallo zusammen,

ich habe ein Problem mit meinem DOIF code.
Situation:
Am Eingang habe ich 2 Bewegungsmelder und einen Lichtsensor.
Ziel ist, dass die Lampen Außen (hier ist ein Dimmer drin), zwischen 6-9 und 16-0:30 angehen wenn der Wert des Lichtsensors <500 ist.
Wenn die Lampen angehen, dann erst einmal NUR auf 10% Wert.

Sobald ein Bewegungsmelder anschlägt, sollen die Lampen für 5 Minuten (300 Sekunden) angehen und danach wieder zurück auf 10%.

Die Lampen gehen zwar an auf 10%, aber bei dem DOIF unten gehen die Lampen nicht auf 100%.
Wie kann ich das besser machen?

Vielen vielen Dank für Eure Unterstützung!!!



( (([6:00-9:00] or [16:00-00:30]) and [HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "noMotion" or [out_BewSens_vorne_Hof:state] eq "noMotion") ) (set out_Dim_Aussenlampe_Front_Sw 10)
DOELSEIF
( (([6:00-9:00] or [16:00-00:30]) and [HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "motion" or [out_BewSens_vorne_Hof:state] eq "motion") and [HM_Aussenlichtsensor:brightness] < 500) (set out_Dim_Aussenlampe_Front_Sw on-for-timer 300) (set out_Dim_Aussenlampe_Front_Sw 10)
DOELSE
(set out_Dim_Aussenlampe_Front_Sw off)

Otto123

Moin,

nur die DEF hier zeigen bringt da nichts. Mach bitte ein komplettes list.
So sieht man ja nicht mal die attribute, die würde man bei der Raw Def wenigstens sehen.

Gruß Otto
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

thomas1977mg

Hallo Otto,

vielen Dank für den Hinweis.

Bitte erlaube mir meinen zweiten Versuch :-)


defmod doif_Aussenlampe DOIF ( (([6:00-9:00] or [16:00-00:30]) and [HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "noMotion" or [out_BewSens_vorne_Hof:state] eq "noMotion") ) (set out_Dim_Aussenlampe_Front_Sw 10)\
DOELSEIF\
( (([6:00-9:00] or [16:00-00:30]) and [HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "motion" or [out_BewSens_vorne_Hof:state] eq "motion") and [HM_Aussenlichtsensor:brightness] < 500) (set out_Dim_Aussenlampe_Front_Sw on-for-timer 300) (set out_Dim_Aussenlampe_Front_Sw 10)\
DOELSE\
(set out_Dim_Aussenlampe_Front_Sw off)
attr doif_Aussenlampe do always
attr doif_Aussenlampe group DoIF
attr doif_Aussenlampe icon helper_doif
attr doif_Aussenlampe room System

setstate doif_Aussenlampe cmd_3
setstate doif_Aussenlampe 2020-06-05 12:54:13 Device HM_Aussenlichtsensor
setstate doif_Aussenlampe 2020-06-05 12:54:13 cmd 3
setstate doif_Aussenlampe 2020-06-05 12:54:13 cmd_event HM_Aussenlichtsensor
setstate doif_Aussenlampe 2020-06-05 12:54:13 cmd_nr 3
setstate doif_Aussenlampe 2020-06-05 12:54:13 e_HM_Aussenlichtsensor_brightness 3578.57
setstate doif_Aussenlampe 2020-06-05 12:45:08 e_out_BewSens_vorne_Hof_state noMotion
setstate doif_Aussenlampe 2020-06-05 09:12:30 mode enabled
setstate doif_Aussenlampe 2020-06-05 12:54:13 state cmd_3
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_01_c01 06.06.2020 06:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_02_c01 06.06.2020 09:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_03_c01 05.06.2020 16:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_04_c01 06.06.2020 00:30:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_05_c02 06.06.2020 06:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_06_c02 06.06.2020 09:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_07_c02 05.06.2020 16:00:00
setstate doif_Aussenlampe 2020-06-05 09:12:31 timer_08_c02 06.06.2020 00:30:00



Viele Grüße,
Tom

Otto123

#3
Ach so ok:
Du machst (set out_Dim_Aussenlampe_Front_Sw on-for-timer 300) (set out_Dim_Aussenlampe_Front_Sw 10)
Das setzt ja damit den Timer in der Lampe und löscht ihn gleich wieder.
Kannst Du aber mit DOIF so lösen, dies würde sogar nachtriggern wenn die Bewegung anhält. Ich würde auch die Helligkeit nur abfragen und nicht zum triggern nehmen:
defmod doif_Aussenlampe DOIF ( (([6:00-9:00] or [16:00-00:30]) and [?HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "noMotion" or [out_BewSens_vorne_Hof:state] eq "noMotion") ) (set out_Dim_Aussenlampe_Front_Sw 10)\
DOELSEIF\
( (([6:00-9:00] or [16:00-00:30]) and [?HM_Aussenlichtsensor:brightness] < 500) and ([out_BewSens_vorne_Hof_links:state] eq "motion" or [out_BewSens_vorne_Hof:state] eq "motion") and [?HM_Aussenlichtsensor:brightness] < 500) (set out_Dim_Aussenlampe_Front_Sw on) (set out_Dim_Aussenlampe_Front_Sw 10)\
DOELSE\
(set out_Dim_Aussenlampe_Front_Sw off)
attr doif_Aussenlampe do resetwait
attr doif_Aussenlampe group DoIF
attr doif_Aussenlampe icon helper_doif
attr doif_Aussenlampe room System
attr doif_Aussenlampe wait 0:0,300


Gruß Otto
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

thomas1977mg

Hallo Otto,

vielen lieben Dank.
Ich probiere es aus. Heute Abend werde ich dann merken ob es so läuft wie ich es mir vorstelle.

VG nach Leipzig