Stati in Bedingungen werden ignoriert, ich verstehe es nicht...

Begonnen von Bartimaus, 07 Oktober 2017, 13:10:04

Vorheriges Thema - Nächstes Thema

Bartimaus

#30
Moin,

ich muss das Thema aus akutem Anlass nochmal hochholen.
Ich habe die Definition wie folgt geändert:


defmod Ti_RolloVorneDoelse DOIF
([Schulferien] eq "none" ##Heute Schule\
and [Schulferien:tomorrow] eq "none" ##morgen Schule\
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert\
and [[Rollo8Morgens]-22:00])\
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize) \
DOELSEIF\
([Schulferien] eq "none" ##Heute Schule\
and [Schulferien:tomorrow] ne "none"  ## morgen Schulfrei\
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert\
and [[Rollo8Morgens]-23:31])\
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)\
DOELSEIF\
([Schulferien] ne "none" ##Heute Schulfrei\
and [Schulferien:tomorrow] eq "none" ## morgen Schule \
and [1wire_Lux:Helligkeit] > [1wireLuxRollo]  ## wenn heller als Schwellenwert\
and [[RolloWEVorne]-22:00])\
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)\
DOELSEIF\
([Schulferien] ne "none" ##Heute Schulfrei\
and [Schulferien:tomorrow] ne "none" ## morgen Schulfrei\
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert\
and [[RolloWEVorne]-23:32])\
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)\
DOELSE\
(set Rollo.Vorne pct 15, set Rollo.Seite pct 25, set Do_RolloSeiteSchatten disable, set Do_RolloVorneSchatten disable)
attr Ti_RolloVorneDoelse cmdState fts_shutter_10|fts_shutter_10|fts_shutter_10|fts_shutter_10|fts_shutter_100
attr Ti_RolloVorneDoelse disable 0
attr Ti_RolloVorneDoelse group 01 Timer
attr Ti_RolloVorneDoelse repeatsame 1:1:1:1:1
attr Ti_RolloVorneDoelse room DOIF,Jalousien
attr Ti_RolloVorneDoelse timerWithWait 1
attr Ti_RolloVorneDoelse wait 0:0:900:900:900



Heute morgen gingen die Rollos planmäßig um 06:35 hoch, da der Helligkeitsschwellenwert zu Timer 1 überschritten war. Soweit so gut.

2018-03-21_06:20:43 Ti_RolloVorneDoelse wait_timer: 21.03.2018 06:35:43 cmd_5 1wire_Lux
2018-03-21_06:35:00 Ti_RolloVorneDoelse wait_timer: no timer
2018-03-21_06:35:00 Ti_RolloVorneDoelse cmd_count: 1
2018-03-21_06:35:01 Ti_RolloVorneDoelse cmd_nr: 1
2018-03-21_06:35:01 Ti_RolloVorneDoelse cmd: 1
2018-03-21_06:35:01 Ti_RolloVorneDoelse cmd_event: timer_1
2018-03-21_06:35:01 Ti_RolloVorneDoelse fts_shutter_10


Um 08:45 wollten die Rollos wieder runter. Auslöser war Timer 5.

2018-03-21_08:30:00 Ti_RolloVorneDoelse wait_timer: 21.03.2018 08:45:00 cmd_5 timer_7


Kurze Zeit später triggerte der Helligkeitssensor und hat den aktiven WAIT-Timer wieder gelöscht. (Auslöser Timer 1 weil da alle Bedingungen heute WAHR sind)

Ich verstehe immer noch nicht, wieso "cmd_5 Timer 7" ausgelöst hat, obwohl die nachstehenden Bedingungen NICHT WAHR waren. (Schulferien:state = none)

Könnt Ihr Euch das erklären ?

Zu guter Letzt noch das List des Devices.

Internals:
   DEF        ([Schulferien] eq "none" ##Heute Schule
and [Schulferien:tomorrow] eq "none" ##morgen Schule
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert
and [[Rollo8Morgens]-22:00])
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)
DOELSEIF
([Schulferien] eq "none" ##Heute Schule
and [Schulferien:tomorrow] ne "none"  ## morgen Schulfrei
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert
and [[Rollo8Morgens]-23:31])
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)
DOELSEIF
([Schulferien] ne "none" ##Heute Schulfrei
and [Schulferien:tomorrow] eq "none" ## morgen Schule
and [1wire_Lux:Helligkeit] > [1wireLuxRollo]  ## wenn heller als Schwellenwert
and [[RolloWEVorne]-22:00])
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)
DOELSEIF
([Schulferien] ne "none" ##Heute Schulfrei
and [Schulferien:tomorrow] ne "none" ## morgen Schulfrei
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert
and [[RolloWEVorne]-23:32])
(set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize)
DOELSE
(set Rollo.Vorne pct 15, set Rollo.Seite pct 25, set Do_RolloSeiteSchatten disable, set Do_RolloVorneSchatten disable)
   NAME       Ti_RolloVorneDoelse
   NR         957
   NTFY_ORDER 50-Ti_RolloVorneDoelse
   STATE      fts_shutter_10
   TYPE       DOIF
   READINGS:
     2018-03-21 09:00:54   Device          1wire_Lux
     2018-03-21 06:44:57   cmd             1
     2018-03-21 06:44:56   cmd_count       1
     2018-03-21 06:44:57   cmd_event       Ti_RolloVorneDoelse
     2018-03-21 06:44:57   cmd_nr          1
     2018-03-21 09:00:54   e_1wire_Lux_Helligkeit 235.829
     2018-03-21 06:43:41   mode            enabled
     2018-03-21 06:44:57   state           fts_shutter_10
     2018-03-21 06:43:42   timer_01_c01    22.03.2018 06:35:00
     2018-03-21 06:43:42   timer_02_c01    21.03.2018 22:00:00
     2018-03-21 06:43:42   timer_03_c02    22.03.2018 06:35:00
     2018-03-21 06:43:42   timer_04_c02    21.03.2018 23:31:00
     2018-03-21 06:43:42   timer_05_c03    21.03.2018 08:30:00
     2018-03-21 06:43:42   timer_06_c03    21.03.2018 22:00:00
     2018-03-21 06:43:42   timer_07_c04    21.03.2018 08:30:00
     2018-03-21 06:43:42   timer_08_c04    21.03.2018 23:32:00
     2018-03-21 08:40:57   wait_timer      no timer
   Regex:
   condition:
     0          InternalDoIf($hash,'Schulferien','STATE') eq "none"  and ReadingValDoIf($hash,'Schulferien','tomorrow') eq "none"  and ReadingValDoIf($hash,'1wire_Lux','Helligkeit') > InternalDoIf($hash,'1wireLuxRollo','STATE')  and DOIF_time($hash,0,1,$wday,$hms)
     1          InternalDoIf($hash,'Schulferien','STATE') eq "none"  and ReadingValDoIf($hash,'Schulferien','tomorrow') ne "none"   and ReadingValDoIf($hash,'1wire_Lux','Helligkeit') > InternalDoIf($hash,'1wireLuxRollo','STATE')  and DOIF_time($hash,2,3,$wday,$hms)
     2          InternalDoIf($hash,'Schulferien','STATE') ne "none"  and ReadingValDoIf($hash,'Schulferien','tomorrow') eq "none"  and ReadingValDoIf($hash,'1wire_Lux','Helligkeit') > InternalDoIf($hash,'1wireLuxRollo','STATE')   and DOIF_time($hash,4,5,$wday,$hms)
     3          InternalDoIf($hash,'Schulferien','STATE') ne "none"  and ReadingValDoIf($hash,'Schulferien','tomorrow') ne "none"  and ReadingValDoIf($hash,'1wire_Lux','Helligkeit') > InternalDoIf($hash,'1wireLuxRollo','STATE')  and DOIF_time($hash,6,7,$wday,$hms)
   days:
   devices:
     0           Schulferien 1wire_Lux 1wireLuxRollo
     1           Schulferien 1wire_Lux 1wireLuxRollo
     2           Schulferien 1wire_Lux 1wireLuxRollo
     3           Schulferien 1wire_Lux 1wireLuxRollo
     all         Schulferien 1wire_Lux 1wireLuxRollo
   do:
     0:
       0          set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize
     1:
       0          set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize
     2:
       0          set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize
     3:
       0          set Rollo.Vorne on, set Rollo.Seite on, set Do_RolloSeiteSchatten initialize, set Do_RolloVorneSchatten initialize
     4:
       0          set Rollo.Vorne pct 15, set Rollo.Seite pct 25, set Do_RolloSeiteSchatten disable, set Do_RolloVorneSchatten disable
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      SolareEinstrahlung: 147.720
     globalinit 1
     last_timer 8
     sleepdevice timer_7
     sleepsubtimer 0
     sleeptimer -1
     timerdev   1wire_Lux
     timerevent SolareEinstrahlung: 147.720
     triggerDev 1wire_Lux
     timerevents:
       SolareEinstrahlung: 147.720
     timereventsState:
       SolareEinstrahlung: 147.720
     triggerEvents:
       SolareEinstrahlung: 147.720
     triggerEventsState:
       SolareEinstrahlung: 147.720
   internals:
     0           Schulferien:STATE 1wireLuxRollo:STATE
     1           Schulferien:STATE 1wireLuxRollo:STATE
     2           Schulferien:STATE 1wireLuxRollo:STATE
     3           Schulferien:STATE 1wireLuxRollo:STATE
     all         Schulferien:STATE 1wireLuxRollo:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   itimer:
     all         Rollo8Morgens RolloWEVorne
   localtime:
     0          1521696900
     1          1521666000
     2          1521696900
     3          1521671460
     4          1521617400
     5          1521666000
     6          1521617400
     7          1521671520
   readings:
     0           Schulferien:tomorrow 1wire_Lux:Helligkeit
     1           Schulferien:tomorrow 1wire_Lux:Helligkeit
     2           Schulferien:tomorrow 1wire_Lux:Helligkeit
     3           Schulferien:tomorrow 1wire_Lux:Helligkeit
     all         Schulferien:tomorrow 1wire_Lux:Helligkeit
   realtime:
     0          06:35:00
     1          22:00:00
     2          06:35:00
     3          23:31:00
     4          08:30:00
     5          22:00:00
     6          08:30:00
     7          23:32:00
   time:
     0          [Rollo8Morgens]
     1          22:00:00
     2          [Rollo8Morgens]
     3          23:31:00
     4          [RolloWEVorne]
     5          22:00:00
     6          [RolloWEVorne]
     7          23:32:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7
   trigger:
   triggertime:
     1521666000:
       localtime  1521666000
       hash:
     1521671460:
       localtime  1521671460
       hash:
     1521671520:
       localtime  1521671520
       hash:
     1521696900:
       localtime  1521696900
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   fts_shutter_10|fts_shutter_10|fts_shutter_10|fts_shutter_10|fts_shutter_100
   disable    0
   group      01 Timer
   repeatsame 1:1:1:1:1
   room       DOIF,Jalousien
   timerWithWait 1
   wait       0:0:900:900:900

LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

amenomade

Für mich ist die Helligkeit für kurze Zeit unter Schwellenwert gegangen (dann DOELSE = cmd_5), und dann wieder rüber (dann cmd_1)

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Bartimaus

Gute Idee, hatte ich auch dran gedacht, aber kann ich widerlegen....


2018-03-20_19:39:04 1wire_Lux Helligkeit: 4.071
2018-03-21_06:20:41 1wire_Lux Helligkeit: 8.642
2018-03-21_06:25:42 1wire_Lux Helligkeit: 13.342
2018-03-21_06:30:50 1wire_Lux Helligkeit: 18.198
2018-03-21_06:35:49 1wire_Lux Helligkeit: 20.460
2018-03-21_06:40:35 1wire_Lux Helligkeit: 26.185
2018-03-21_06:45:51 1wire_Lux Helligkeit: 39.627
2018-03-21_06:50:52 1wire_Lux Helligkeit: 53.324
2018-03-21_06:55:55 1wire_Lux Helligkeit: 78.674
2018-03-21_07:00:48 1wire_Lux Helligkeit: 75.128
2018-03-21_07:05:45 1wire_Lux Helligkeit: 97.736
2018-03-21_07:10:51 1wire_Lux Helligkeit: 120.150
2018-03-21_07:15:47 1wire_Lux Helligkeit: 106.213
2018-03-21_07:20:48 1wire_Lux Helligkeit: 159.512
2018-03-21_07:25:48 1wire_Lux Helligkeit: 175.641
2018-03-21_07:30:42 1wire_Lux Helligkeit: 235.164
2018-03-21_07:56:01 1wire_Lux Helligkeit: 217.291
2018-03-21_08:01:03 1wire_Lux Helligkeit: 235.174
2018-03-21_10:46:19 1wire_Lux Helligkeit: 236.233
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

amenomade

Dein 1wire_Lux Helligkeit meldet fleißig jede 5. Minute etwas, und dann ab 7:30 nicht mehr?

Was ist der Schwellenwert?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Bartimaus

Korrekt, nur noch bei event-on-change-reading. Sonst habe ich zu Logs zu voll.
Schwellenwert ist 5.5
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

amenomade

Ich hatte ein bisschen zu schnell gelesen.

Dein DOIF sagt aber :
2018-03-21 06:44:57   cmd             1
     2018-03-21 06:44:56   cmd_count       1
     2018-03-21 06:44:57   cmd_event       Ti_RolloVorneDoelse
     2018-03-21 06:44:57   cmd_nr          1
     2018-03-21 06:43:41   mode            enabled


Das heisst, er befindet sich seit 6:45 Uhr auf State "cmd_1" und hat sich seitdem nicht bewegt. Warum sagst Du jetzt:
ZitatUm 08:45 wollten die Rollos wieder runter. Auslöser war Timer 5.
?

Er hat zwar den Timer gemerckt (ich vermute RolloWEVorne = 8:45?), hat aber den Status nicht geändert. Sind die Rollos wirklich runter gegangen???


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Bartimaus

Hi,

erstmal danke für Deine Zeit&Analyse.

Vorweg: Ja, gestern sind sie runtergegangen.

2018-03-20_06:31:51 Ti_RolloVorneDoelse wait_timer: 20.03.2018 06:46:51 cmd_5 1wire_Lux
2018-03-20_06:35:00 Ti_RolloVorneDoelse wait_timer: no timer
2018-03-20_06:35:00 Ti_RolloVorneDoelse cmd_count: 1
2018-03-20_06:35:01 Ti_RolloVorneDoelse cmd_nr: 1
2018-03-20_06:35:01 Ti_RolloVorneDoelse cmd: 1
2018-03-20_06:35:01 Ti_RolloVorneDoelse cmd_event: timer_1
2018-03-20_06:35:01 Ti_RolloVorneDoelse fts_shutter_10
2018-03-20_08:45:01 Ti_RolloVorneDoelse cmd_count: 1
2018-03-20_08:45:02 Ti_RolloVorneDoelse cmd_nr: 5
2018-03-20_08:45:02 Ti_RolloVorneDoelse cmd: 5
2018-03-20_08:45:02 Ti_RolloVorneDoelse cmd_event: timer_7
2018-03-20_08:45:02 Ti_RolloVorneDoelse fts_shutter_100
2018-03-20_08:47:24 Ti_RolloVorneDoelse cmd_count: 1
2018-03-20_08:47:25 Ti_RolloVorneDoelse cmd_nr: 1
2018-03-20_08:47:25 Ti_RolloVorneDoelse cmd: 1
2018-03-20_08:47:25 Ti_RolloVorneDoelse cmd_event: 1wire_Lux
2018-03-20_08:47:25 Ti_RolloVorneDoelse fts_shutter_10


Anbei der gestriger LogEintrag aus dem DOIF-Log

und hier vom Rollo-Log:

2018-03-20_06:35:00 Rollo.Vorne set_on
2018-03-20_06:35:01 Rollo.Vorne 15
2018-03-20_06:35:19 Rollo.Vorne on
2018-03-20_07:06:30 Rollo.Vorne set_on
2018-03-20_07:06:32 Rollo.Vorne on
2018-03-20_08:45:01 Rollo.Vorne set_15
2018-03-20_08:45:02 Rollo.Vorne on
2018-03-20_08:45:17 Rollo.Vorne 15
2018-03-20_08:47:24 Rollo.Vorne set_on
2018-03-20_08:47:26 Rollo.Vorne 15
2018-03-20_08:47:43 Rollo.Vorne on


Danach habe ich das 15minütige WAIT-Attribut eingebaut. Wie ich heute gesehen habe, hat es geholfen. Der Befehl zum runterfahren, wurde kurz danach vom Helligkeitstrigger wieder aufgehoben.

LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

Auch heute wieder das gleiche Spiel.

Was habe ich denn falsch definiert ?

Aus dem https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#Beispiel_B.29:_Zeitsteuerung

Beispiel C): Kombinierte Ereignis- und Zeitsteuerung

Wenn die aktuelle Uhrzeit in der angegebenen Zeitspanne liegt, ist die Zeitspanne wahr. Wenn dann auch die Helligkeit unter 40 sinkt, wird die gesamte
Bedingung wahr, weil Zeitspanne und Hellikeitsvergleich and(und) verknupft sind. Der zu diesem Bedingungszweig gehörende Befehl wird dann ausgeführt.
Das DOIF di_lamp alias Lampenlogik setzt dann einen Befehl zum Schalten der Lampe lamp ab. Der DOELSE-Zweig wird ausgeführt, wenn die Bedingung im ersten Zweig unwahr wird.

define di_lamp DOIF ([06:00-19:00] and [sensor:brightness] < 40) (set lamp on) DOELSE (set lamp off)



Ich mache hier nichts anderes, nur mit weiteren DOELSEIF.
Es wird ausgeführt, obwohl die gesamte Bedingung UNWAHR ist....

Ich bitte um Gegenbeweise....
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

amenomade

Ich würde erstmal timerWithWait, wait und repeatsame Attribute löschen, und dann gucken, wie / wann er schaltet.

Zeig mal auch bitte ein "list 1wireLuxRollo" und ein "list Rollo8Morgens", da die in deinem DOIF auch triggern
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Bartimaus

#39
Büdde:
Internals:
   NAME       Rollo8Morgens
   NR         1049
   STATE      06:35
   TYPE       dummy
   READINGS:
     2018-03-19 07:29:00   state           06:35
Attributes:
   fm_type    state
   group      DOIF
   room       Jalousien,Schwellenwerte
   setList    state:06:35,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:30,10:00,10:30
   webCmd     state:time


Internals:
   NAME       1wireLuxRollo
   NR         826
   STATE      5.5
   TYPE       dummy
   READINGS:
     2017-06-08 19:59:01   state           5.5
Attributes:
   fm_type    state
   group      DOIF
   room       Jalousien,Schwellenwerte
   setList    state:0,5.5,6,7,8,9,10,11,12,13,14,15,15,17,18,19,20,21,25,50,60,70
   webCmd     state


Internals:
   NAME       RolloWEVorne
   NR         822
   STATE      08:45
   TYPE       dummy
   READINGS:
     2018-03-22 11:06:22   state           08:45
Attributes:
   fm_type    state
   group      DOIF
   room       Jalousien,Schwellenwerte
   setList    state:06:01,06:15,06:30,06:35,06:40,06:45,06:50,06:55,07:01,07:05,07:10,07:15,07:20,07:25,07:30,07:45,08:01,08:15,08:30,08:45,09:01,09:15,09:30,09:45,10:01,10:15,10:30,10:45,11:01,11:15,11:30,11:45,12:01
   webCmd     state:time


Ohne die Attribute läuft der Timer den ganzen Tag weil der Helligkeitssensor den ganzen Tag triggert, und Timerwithwait brauche ich, damit das wait-Attribut auch immer funktioniert.
Ohne wait, schaltet er die Rollos ohne Verzögerung, hab ich eine Woche lang mich geärgert

Habe ich alles schon durchprobiert.

Und die Dummys nutze ich als Variablen zum schnellen ändern ohne die Def ändern zu müssen. Triggern tun die nicht.
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

amenomade

Zitatdie Dummys nutze ich als Variablen zum schnellen ändern ohne die Def ändern zu müssen. Triggern tun die nicht.
Die Triggern doch... sobald Du die änderst. Deswegen wollte ich ein list davon haben, um zu gucken, wann die sich letztes Mal geändert haben.
Wenn Du möchtest, dass die nicht triggern, musst Du [?dummy] statt [dummy] in der entspr. Bedingung schreiben.

Zitatläuft der Timer den ganzen Tag weil der Helligkeitssensor den ganzen Tag triggert
Ja, und? Das etwas triggert, bedeutet nicht, dass eine Bedingung wahr bzw. nicht mehr wahr wird. Ohne doalways bleibt dann der DOIF im vorherigen Zustand, wenn die Bedingungen sich nicht geändert haben, und kein Befehl wird ausgeführt. Wenn die Bedingungen von den verschiedenen Zweige sich gegenseitig ausschliessen, solltest Du kein Problem haben. Das war nicht der Fall mit deinem "OR" DOIF, aber mit diesem "DOELSEIF" Version ist es doch so.

ZitatOhne wait, schaltet er die Rollos ohne Verzögerung, hab ich eine Woche lang mich geärgert
Das war nur für ein Test. Das wait kannst Du danach wieder einbauen. Die andere aber m.A. nicht.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Bartimaus

Das triggern müllt mir aber die Logs voll  :)

Die Stati in den Dummys muss ich nur selten ändern, dann gehts aber so schneller.

Eine Erklärung für das schalten haben wir aber immer noch nicht.
Ich kann Dir mal mein Test-DOIF schicken, da will "er" auch schalten obwohl Bedingung=False.
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 23 März 2018, 15:11:31
Das triggern müllt mir aber die Logs voll  :)

Die Stati in den Dummys muss ich nur selten ändern, dann gehts aber so schneller.

Eine Erklärung für das schalten haben wir aber immer noch nicht.
Ich kann Dir mal mein Test-DOIF schicken, da will "er" auch schalten obwohl Bedingung=False.

Ich bin mir sicher, dass die Bedingung nicht falsch ist, sonst wäre Perl falsch ;)

Dein Test-DOIF:

define di_test DOIF ([Schulferien] ne "none" ##Heute Schulfrei\
and [Schulferien:tomorrow] ne "none" ## morgen Schulfrei\
and [1wire_Lux:Helligkeit] > [1wireLuxRollo] ## wenn heller als Schwellenwert\
and [[RolloWEVorne]-23:32]) {Log 3,"[Schulferien] [Schulferien:tomorrow] [1wire_Lux:Helligkeit] [1wireLuxRollo"}


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

#43
Zitat von: Damian am 23 März 2018, 15:40:41
Ich bin mir sicher, dass die Bedingung nicht falsch ist, sonst wäre Perl falsch ;)


Danke für die Bestätigung.... hab schon echt an mir gezweifelt.... ::)

Test-DOIF ist angelegt..... unnu ?
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

Neuer Ansatz:

Ich habe gesehen, das durch ein initialisieren eines DOIFs nicht alle Readings von Devices gelistet werden, die in der Bedingung aufgeführt sind.
Erst wenn das Device neu getriggert wird, erscheint es auch als Reading im DOIF.

Kann es sein, das dadurch die Bedingung ignoriert wird ? Weil im Moment rennen bei mir wieder DOIFs zu denen die Bedingung eines Devices = false ist
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly