FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: majorshark am 06 November 2015, 11:20:10

Titel: DOIF mit Zeit und THRESHOLD
Beitrag von: majorshark am 06 November 2015, 11:20:10
Hallo Forum.

Ich habe hier ein Problem mit dem DOIF und ich finde den Fehler nicht.

Meine Definition:
define Licht_Weihnacht DOIF ([05:30-01:00] and [TH_Helligkeit:state] eq "dunkel")  (set ELRO_B on) DOELSE (set ELRO_B off)

erzeugt bspw. 05:30 Uhr folgende Fehlermeldung:
2015.11.06 05:30:00 2: Licht_Weihnacht: perl error in condition: DOIF_time_once($hash,$hash->{timer}{0},$wday,"") and TH_Helligkeit:dunkel: syntax error at (eval 75601) line 1, near "TH_Helligkeit:"

Jetzt habe ich schon verschieden Dinge getestet (Klammern, Anführungszeichen) bekomme aber die Fehlermeldung nicht weg. Schalten nach Zeit geht aber.
'TH_Helligkeit:state' bezieht sich hier auf ein 'THRESHOLD' und dessen Reading 'state'.

Danke schon mal im voraus.
Titel: Antw:DOIF mit Zeit und THRESHOLD
Beitrag von: Damian am 06 November 2015, 14:13:02
Zitat von: majorshark am 06 November 2015, 11:20:10
Hallo Forum.

Ich habe hier ein Problem mit dem DOIF und ich finde den Fehler nicht.

Meine Definition:
define Licht_Weihnacht DOIF ([05:30-01:00] and [TH_Helligkeit:state] eq "dunkel")  (set ELRO_B on) DOELSE (set ELRO_B off)

erzeugt bspw. 05:30 Uhr folgende Fehlermeldung:
2015.11.06 05:30:00 2: Licht_Weihnacht: perl error in condition: DOIF_time_once($hash,$hash->{timer}{0},$wday,"") and TH_Helligkeit:dunkel: syntax error at (eval 75601) line 1, near "TH_Helligkeit:"

Jetzt habe ich schon verschieden Dinge getestet (Klammern, Anführungszeichen) bekomme aber die Fehlermeldung nicht weg. Schalten nach Zeit geht aber.
'TH_Helligkeit:state' bezieht sich hier auf ein 'THRESHOLD' und dessen Reading 'state'.

Danke schon mal im voraus.

Poste hier Ausgabe von: list Licht_Weihnacht

Gruß

Damian
Titel: Antw:DOIF mit Zeit und THRESHOLD
Beitrag von: majorshark am 06 November 2015, 16:56:35
list Licht_Weihnacht

Internals:
   DEF        ([05:30-01:00] and [TH_Helligkeit:state] eq "dunkel")
(set ELRO_B on)
DOELSE
(set ELRO_B off)
   NAME       Licht_Weihnacht
   NR         273
   NTFY_ORDER 50-Licht_Weihnacht
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-11-06 16:53:06   Device          TH_Helligkeit
     2015-11-06 16:53:07   cmd_event       TH_Helligkeit
     2015-11-06 16:53:07   cmd_nr          1
     2015-11-06 16:53:06   e_TH_Helligkeit_state dunkel
     2015-11-06 16:53:07   state           cmd_1
     2015-11-06 10:27:16   timer_1_c1      07.11.2015 05:30:00
     2015-11-06 10:27:16   timer_2_c1      07.11.2015 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('TH_Helligkeit','state','') eq "dunkel"
   Days:
   Devices:
     0           TH_Helligkeit
     all         TH_Helligkeit
   Do:
     0:
       0          set ELRO_B on
     1:
       0          set ELRO_B off
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           TH_Helligkeit:state
     all         TH_Helligkeit:state
   Realtime:
     0          05:30:00
     1          01:00:00
   State:
   Time:
     0          05:30:00
     1          01:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
   Trigger:
Attributes:


Danke schon mal.
Titel: Antw:DOIF mit Zeit und THRESHOLD
Beitrag von: Damian am 06 November 2015, 18:22:47
Zitat von: majorshark am 06 November 2015, 16:56:35
list Licht_Weihnacht

Internals:
   DEF        ([05:30-01:00] and [TH_Helligkeit:state] eq "dunkel")
(set ELRO_B on)
DOELSE
(set ELRO_B off)
   NAME       Licht_Weihnacht
   NR         273
   NTFY_ORDER 50-Licht_Weihnacht
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-11-06 16:53:06   Device          TH_Helligkeit
     2015-11-06 16:53:07   cmd_event       TH_Helligkeit
     2015-11-06 16:53:07   cmd_nr          1
     2015-11-06 16:53:06   e_TH_Helligkeit_state dunkel
     2015-11-06 16:53:07   state           cmd_1
     2015-11-06 10:27:16   timer_1_c1      07.11.2015 05:30:00
     2015-11-06 10:27:16   timer_2_c1      07.11.2015 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('TH_Helligkeit','state','') eq "dunkel"
   Days:
   Devices:
     0           TH_Helligkeit
     all         TH_Helligkeit
   Do:
     0:
       0          set ELRO_B on
     1:
       0          set ELRO_B off
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           TH_Helligkeit:state
     all         TH_Helligkeit:state
   Realtime:
     0          05:30:00
     1          01:00:00
   State:
   Time:
     0          05:30:00
     1          01:00:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0  1
   Trigger:
Attributes:


Danke schon mal.

Die Fehlermeldung passt nicht zu dieser Definition.

Gemeldete Fehlermeldung:

DOIF_time_once($hash,$hash->{timer}{0},$wday,"") and TH_Helligkeit:dunkel

ist nicht


DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf('TH_Helligkeit','state','') eq "dunkel"


Gruß

Damian
Titel: Antw:DOIF mit Zeit und THRESHOLD
Beitrag von: majorshark am 07 November 2015, 10:20:16
Komisch. Was ist das dann für ein Logeintrag?
Heute Morgen habe ich kein entsprechenden Logeintrag gefunden. Es scheint ganz normal zu funktionieren. Muss ich mal weiter beobachten.