[gelöst] Verstehe Fehlermeldung nicht

Begonnen von bommel-bs, 24 April 2023, 10:07:02

Vorheriges Thema - Nächstes Thema

bommel-bs

Hallo,

in meiner DOIF erhalte ich folgende Fehlermeldung:
     if ( open ne "open"   and open ne "closed") (         set SchlafZimmer_Rolladen_Tuer pct 100      ): Not enough arguments for open at (eval 310315) line 1, near "open ne"
Not enough arguments for open at (eval 310315) line 1, near "open ne"
       if ( open ne "open"  and open ne "closed") (         set SchlafZimmer_Rolladen_Links pct 100      ): Not enough arguments for open at (eval 310318) line 1, near "open ne"
Not enough arguments for open at (eval 310318) line 1, near "open ne"
       if ( open ne "open" and open ne "closed") (         set SchlafZimmer_Rolladen_Rechts pct 100      ): Not enough arguments for open at (eval 310321) line 1, near "open ne"
Not enough arguments for open at (eval 310321) line 1, near "open ne"

Trotz Fehleremldung funktioniert alles wie gewünscht. Leider komme ich hier nicht weiter.

define di_SchlafZimmer_Rollo DOIF ([({sunrise(0,"08:30", "9:00")}) | 7] and [wech] eq "wech") (\
     set SchlafZimmer_Rolladen_Links pct 100;;\
     set SchlafZimmer_Rolladen_Tuer pct 100;;\
     set SchlafZimmer_Rolladen_Rechts pct 100;;\
)\
DOELSEIF ([({sunrise(0,"07:30", "9:00")}) | 6] and [wech] eq "wech") (\
     set SchlafZimmer_Rolladen_Links pct 100;;\
     set SchlafZimmer_Rolladen_Tuer pct 100;;\
     set SchlafZimmer_Rolladen_Rechts pct 100;;\
)\
DOELSEIF ([({sunrise(0,"07:30", "9:00")} ) | AT ]  and [wech] eq "wech") (\
     set SchlafZimmer_Rolladen_Links pct 100;;\
     set SchlafZimmer_Rolladen_Tuer pct 100;;\
     set SchlafZimmer_Rolladen_Rechts pct 100;;\
)\
DOELSEIF ([{sunset("CIVIL","0","16:00","22:30")}]) (\
     set SchlafZimmer_Rolladen_Links pct 0;;\
     sleep 5;;\
     set SchlafZimmer_Rolladen_Tuer pct 0;;\
     sleep 5;;\
     set SchlafZimmer_Rolladen_Rechts pct 0;;\
     sleep 10;;\
)\
DOELSEIF ([n_autoRolloOst:Sonne] eq "1" ) (\
     if  ( [SchlafZimmer_Rolladen_Tuer:pct] > 70) (\
        set SchlafZimmer_Rolladen_Tuer pct 70\
     ),\
     if ( [SchlafZimmer_Rolladen_Links:pct] > 50) (\
        set SchlafZimmer_Rolladen_Links pct 50\
     ),\
     if ( [SchlafZimmer_Rolladen_Rechts:pct] > 50) (\
        set SchlafZimmer_Rolladen_Rechts pct 50 \
     ),\
)\
DOELSEIF ([n_autoRolloOst:Sonne] eq "0" and isday() )  (\
     if ( [SchlafZimmer_Rolladen_Tuer] ne "open"   and [SchlafZimmer_Rolladen_Tuer] ne "closed") (\
        set SchlafZimmer_Rolladen_Tuer pct 100\
     ),\
     if ( [SchlafZimmer_Rolladen_Links] ne "open"  and [SchlafZimmer_Rolladen_Links] ne "closed") (\
        set SchlafZimmer_Rolladen_Links pct 100\
     ),\
     if ( [SchlafZimmer_Rolladen_Rechts] ne "open" and [SchlafZimmer_Rolladen_Rechts] ne "closed") (\
        set SchlafZimmer_Rolladen_Rechts pct 100\
     ),\
)
attr di_SchlafZimmer_Rollo do always
attr di_SchlafZimmer_Rollo room 99_System
attr di_SchlafZimmer_Rollo verbose 4
#   DEF        ([({sunrise(0,"08:30", "9:00")}) | 7] and [wech] eq "wech") (
#     set SchlafZimmer_Rolladen_Links pct 100;
#     set SchlafZimmer_Rolladen_Tuer pct 100;
#     set SchlafZimmer_Rolladen_Rechts pct 100;
#)
#DOELSEIF ([({sunrise(0,"07:30", "9:00")}) | 6] and [wech] eq "wech") (
#     set SchlafZimmer_Rolladen_Links pct 100;
#     set SchlafZimmer_Rolladen_Tuer pct 100;
#     set SchlafZimmer_Rolladen_Rechts pct 100;
#)
#DOELSEIF ([({sunrise(0,"07:30", "9:00")} ) | AT ]  and [wech] eq "wech") (
#     set SchlafZimmer_Rolladen_Links pct 100;
#     set SchlafZimmer_Rolladen_Tuer pct 100;
#     set SchlafZimmer_Rolladen_Rechts pct 100;
#)
#DOELSEIF ([{sunset("CIVIL","0","16:00","22:30")}]) (
#     set SchlafZimmer_Rolladen_Links pct 0;
#     sleep 5;
#     set SchlafZimmer_Rolladen_Tuer pct 0;
#     sleep 5;
#     set SchlafZimmer_Rolladen_Rechts pct 0;
#     sleep 10;
#)
#DOELSEIF ([n_autoRolloOst:Sonne] eq "1" ) (
#     if  ( [SchlafZimmer_Rolladen_Tuer:pct] > 70) (
#        set SchlafZimmer_Rolladen_Tuer pct 70
#     ),
#     if ( [SchlafZimmer_Rolladen_Links:pct] > 50) (
#        set SchlafZimmer_Rolladen_Links pct 50
#     ),
#     if ( [SchlafZimmer_Rolladen_Rechts:pct] > 50) (
#        set SchlafZimmer_Rolladen_Rechts pct 50
#     ),
#)
#DOELSEIF ([n_autoRolloOst:Sonne] eq "0" and isday() )  (
#     if ( [SchlafZimmer_Rolladen_Tuer] ne "open"   and [SchlafZimmer_Rolladen_Tuer] ne "closed") (
#        set SchlafZimmer_Rolladen_Tuer pct 100
#     ),
#     if ( [SchlafZimmer_Rolladen_Links] ne "open"  and [SchlafZimmer_Rolladen_Links] ne "closed") (
#        set SchlafZimmer_Rolladen_Links pct 100
#     ),
#     if ( [SchlafZimmer_Rolladen_Rechts] ne "open" and [SchlafZimmer_Rolladen_Rechts] ne "closed") (
#        set SchlafZimmer_Rolladen_Rechts pct 100
#     ),
#)
#   FUUID      6419ead9-f33f-78f8-f787-cc3b1a2dcfc0b6f3
#   MODEL      FHEM
#   NAME       di_SchlafZimmer_Rollo
#   NOTIFYDEV  global,n_autoRolloOst,wech
#   NR         839
#   NTFY_ORDER 50-di_SchlafZimmer_Rollo
#   STATE      cmd_6
#   TYPE       DOIF
#   VERSION    27262 2023-02-21 19:36:39
#   eventCount 2608
#   READINGS:
#     2023-04-24 10:02:09   Device          n_autoRolloOst
#     2023-04-24 10:02:09   cmd             6
#     2023-04-24 10:02:09   cmd_event       n_autoRolloOst
#     2023-04-24 10:02:09   cmd_nr          6
#     2023-04-24 10:02:09   e_n_autoRolloOst_Sonne 0
#     2023-04-24 10:02:09   error                 if ( open ne "open"   and open ne "closed") (         set SchlafZimmer_Rolladen_Tuer pct 100      ): Not enough arguments for open at (eval 310315) line 1, near "open ne"
#Not enough arguments for open at (eval 310315) line 1, near "open ne"
#       if ( open ne "open"  and open ne "closed") (         set SchlafZimmer_Rolladen_Links pct 100      ): Not enough arguments for open at (eval 310318) line 1, near "open ne"
#Not enough arguments for open at (eval 310318) line 1, near "open ne"
#       if ( open ne "open" and open ne "closed") (         set SchlafZimmer_Rolladen_Rechts pct 100      ): Not enough arguments for open at (eval 310321) line 1, near "open ne"
#Not enough arguments for open at (eval 310321) line 1, near "open ne"
#
#     2023-04-22 09:17:59   mode            enabled
#     2023-04-24 10:02:09   state           cmd_6
#     2023-04-24 08:30:00   timer_01_c01    25.04.2023 08:30:00|7
#     2023-04-24 07:30:00   timer_02_c02    25.04.2023 07:30:00|6
#     2023-04-24 07:30:00   timer_03_c03    25.04.2023 07:30:00|AT
#     2023-04-23 21:12:39   timer_04_c04    24.04.2023 21:14:32
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     cond:
#       n_autoRolloOst:
#         0:
#         1:
#         2:
#         3:
#         4:
#           Sonne      ^n_autoRolloOst$:^Sonne:
#         5:
#           Sonne      ^n_autoRolloOst$:^Sonne:
#       wech:
#         0:
#           &STATE     ^wech$
#         1:
#           &STATE     ^wech$
#         2:
#           &STATE     ^wech$
#   attr:
#     cmdState:
#     wait:
#     waitdel:
#   condition:
#     0          ::DOIF_time_once($hash,0,$wday,"7") and ::InternalDoIf($hash,'wech','STATE') eq "wech"
#     1          ::DOIF_time_once($hash,1,$wday,"6") and ::InternalDoIf($hash,'wech','STATE') eq "wech"
#     2          ::DOIF_time_once($hash,2,$wday,"AT")  and ::InternalDoIf($hash,'wech','STATE') eq "wech"
#     3          ::DOIF_time_once($hash,3,$wday)
#     4          ::ReadingValDoIf($hash,'n_autoRolloOst','Sonne') eq "1"
#     5          ::ReadingValDoIf($hash,'n_autoRolloOst','Sonne') eq "0" and isday()
#   days:
#     0          7
#     1          6
#     2          AT
#   do:
#     0:
#       0                set SchlafZimmer_Rolladen_Links pct 100;      set SchlafZimmer_Rolladen_Tuer pct 100;      set SchlafZimmer_Rolladen_Rechts pct 100;
#     1:
#       0                set SchlafZimmer_Rolladen_Links pct 100;      set SchlafZimmer_Rolladen_Tuer pct 100;      set SchlafZimmer_Rolladen_Rechts pct 100;
#     2:
#       0                set SchlafZimmer_Rolladen_Links pct 100;      set SchlafZimmer_Rolladen_Tuer pct 100;      set SchlafZimmer_Rolladen_Rechts pct 100;
#     3:
#       0                set SchlafZimmer_Rolladen_Links pct 0;      sleep 5;      set SchlafZimmer_Rolladen_Tuer pct 0;      sleep 5;      set SchlafZimmer_Rolladen_Rechts pct 0;      sleep 10;
#     4:
#       0                if  ( [SchlafZimmer_Rolladen_Tuer:pct] > 70) (         set SchlafZimmer_Rolladen_Tuer pct 70      ),      if ( [SchlafZimmer_Rolladen_Links:pct] > 50) (         set SchlafZimmer_Rolladen_Links pct 50      ),      if ( [SchlafZimmer_Rolladen_Rechts:pct] > 50) (         set SchlafZimmer_Rolladen_Rechts pct 50       ),
#     5:
#       0                if ( [SchlafZimmer_Rolladen_Tuer] ne "open"   and [SchlafZimmer_Rolladen_Tuer] ne "closed") (         set SchlafZimmer_Rolladen_Tuer pct 100      ),      if ( [SchlafZimmer_Rolladen_Links] ne "open"  and [SchlafZimmer_Rolladen_Links] ne "closed") (         set SchlafZimmer_Rolladen_Links pct 100      ),      if ( [SchlafZimmer_Rolladen_Rechts] ne "open" and [SchlafZimmer_Rolladen_Rechts] ne "closed") (         set SchlafZimmer_Rolladen_Rechts pct 100      ),
#     6:
#   helper:
#     NOTIFYDEV  global,n_autoRolloOst,wech
#     event      Sonne: 0
#     globalinit 1
#     last_timer 4
#     sleeptimer -1
#     timerdev   n_autoRolloOst
#     timerevent Sonne: 0
#     triggerDev n_autoRolloOst
#     timerevents:
#       Sonne: 0
#     timereventsState:
#       Sonne: 0
#     triggerEvents:
#       Sonne: 0
#     triggerEventsState:
#       Sonne: 0
#   internals:
#     all         wech:STATE
#   interval:
#   intervalfunc:
#   localtime:
#     0          1682404200
#     1          1682400600
#     2          1682400600
#     3          1682363672
#   readings:
#     all         n_autoRolloOst:Sonne
#   realtime:
#     0          08:30:00
#     1          07:30:00
#     2          07:30:00
#     3          21:14:32
#   time:
#     0          ({sunrise(0,"08:30","9:00")})
#     1          ({sunrise(0,"07:30","9:00")})
#     2          ({sunrise(0,"07:30","9:00")})
#     3          {sunset("CIVIL","0","16:00","22:30")}
#   timeCond:
#     0          0
#     1          1
#     2          2
#     3          3
#   timer:
#     0          0
#     1          0
#     2          0
#     3          0
#   timers:
#     0           0
#     1           1
#     2           2
#     3           3
#   trigger:
#   triggertime:
#     1682363672:
#       localtime  1682363672
#       hash:
#     1682400600:
#       localtime  1682400600
#       hash:
#     1682404200:
#       localtime  1682404200
#       hash:
#   uiState:
#   uiTable:
#
setstate di_SchlafZimmer_Rollo cmd_6
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 Device n_autoRolloOst
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 cmd 6
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 cmd_event n_autoRolloOst
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 cmd_nr 6
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 e_n_autoRolloOst_Sonne 0
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 error       if ( open ne "open"   and open ne "closed") (         set SchlafZimmer_Rolladen_Tuer pct 100      ): Not enough arguments for open at (eval 310315) line 1, near "open ne"\
Not enough arguments for open at (eval 310315) line 1, near "open ne"\
       if ( open ne "open"  and open ne "closed") (         set SchlafZimmer_Rolladen_Links pct 100      ): Not enough arguments for open at (eval 310318) line 1, near "open ne"\
Not enough arguments for open at (eval 310318) line 1, near "open ne"\
       if ( open ne "open" and open ne "closed") (         set SchlafZimmer_Rolladen_Rechts pct 100      ): Not enough arguments for open at (eval 310321) line 1, near "open ne"\
Not enough arguments for open at (eval 310321) line 1, near "open ne"\
 
setstate di_SchlafZimmer_Rollo 2023-04-22 09:17:59 mode enabled
setstate di_SchlafZimmer_Rollo 2023-04-24 10:02:09 state cmd_6
setstate di_SchlafZimmer_Rollo 2023-04-24 08:30:00 timer_01_c01 25.04.2023 08:30:00|7
setstate di_SchlafZimmer_Rollo 2023-04-24 07:30:00 timer_02_c02 25.04.2023 07:30:00|6
setstate di_SchlafZimmer_Rollo 2023-04-24 07:30:00 timer_03_c03 25.04.2023 07:30:00|AT
setstate di_SchlafZimmer_Rollo 2023-04-23 21:12:39 timer_04_c04 24.04.2023 21:14:32


Danke für eurer Hilfe
Stefan

Damian

Du solltest im FHEM-Modus IF statt if verwenden.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bommel-bs

Hallo Damian,

danke. Jetzt ist die Fehlermeldung nciht mehr vorhanden.
Gruß
Stefan