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
Du solltest im FHEM-Modus IF statt if verwenden.
Hallo Damian,
danke. Jetzt ist die Fehlermeldung nciht mehr vorhanden.
Gruß
Stefan