Hallo zusammen,
Bin vor allem in Bezug auf Perl und FHEM noch ein ziemlicher Anfänger.
Ich würde gerne bei define at die Timespec aus einem Dummy Reading einlesen um die Ausschaltzeit flexibel steuern zu können und zum Beispiel die Werte im Dummy zum Beispiel in Abhängigkeit der Jahreszeiten, Temperaturen etc. flexibler steuern zu können.
Tests mit einer einfachen Definition in der FHEM.cfg funktionieren bestens. Sobald ich sie aber in die Steuerung anstelle der aktuell laufenden Definition von z.B. +00:05:00 einbaue, erhalte ich Fehlermeldungen. Bin jetzt nicht sicher ob das in einer geschachtelten Anweisung gar nicht geht oder wo allenfalls der Syntax falsch ist oder ob da sonst noch was zu beachten ist.
Habe das über direkte Abfrage des Reading Values versucht oder auch über eine ausgelagerte Funktion in den 99_myUtils. Beide Versuche enden identisch. Unten dargestellt ist die Variante mit dem Reading.
Dieses geht:
define dm_Delay dummy
attr dm_Delay group z_Dummys
attr dm_Delay room System
attr dm_Delay sortby 11
# Test Notify um das getTimespec zu testen.
define nt_xx.x1.ZW.Stecker.Sw notify xx.x1.ZW.Stecker.Sw:.*on.* define at_TestOff at +{ReadingsVal("dm_Delay","Short","")} {fhem("set xx.x1.ZW.Stecker.Sw off")}
attr nt_xx.x1.ZW.Stecker.Sw group z_Dummys
attr nt_xx.x1.ZW.Stecker.Sw room System
attr nt_xx.x1.ZW.Stecker.Sw sortby 61
Dieses geht nicht (auch nicht wenn ich nach der Timespec wie oben ein {fhem ("... reinpacke):
define nt_og.bz.BM.Bad notify eg.ku.BM.KuecheEN:.*on* {\
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")\
{fhem ("set og.bz.LI.Bad on;;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}\
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")\
{ fhem ("set og.bz.LI.Bad on;;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }\
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")\
{ fhem ("set og.bz.LI.Bad on;;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }\
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")\
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }\
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")\
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
Auszug aus dem Event Monitor:
Events (Filter: .*og.bz.LI.*|.*KuecheEN.*) FHEM log
2016.02.28 09:23:00 1 : PERL WARNING: Bareword found where operator expected at (eval 36078) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 3 : eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: (Missing operator before dm_Delay?)
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36078) line 3, near "dm_Delay",""
2016.02.28 09:23:00 3 : eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: Bareword found where operator expected at (eval 36078) line 3, near "","Short"
2016.02.28 09:23:00 3 : eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36078) line 3, near "Short",""
2016.02.28 09:23:00 3 : eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36078) line 3, near "","")} set og.bz.LI.Bad off""
2016.02.28 09:23:00 3 : eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: (Missing operator before ")} set og.bz.LI.Bad off"?)
2016.02.28 09:23:00 3 : nt_og.bz.BM.Bad return value: syntax error at (eval 36078) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 1 : PERL WARNING: Bareword found where operator expected at (eval 36079) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 3 : eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36079) line 3, near "dm_Delay",""
2016.02.28 09:23:00 3 : eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: Bareword found where operator expected at (eval 36079) line 3, near "","Short"
2016.02.28 09:23:00 3 : eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36079) line 3, near "Short",""
2016.02.28 09:23:00 3 : eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1 : PERL WARNING: String found where operator expected at (eval 36079) line 3, near "","")} set og.bz.LI.Bad off""
2016.02.28 09:23:00 3 : eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{ if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") {fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")} elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") } elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off") { fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "") { fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") } elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "") { fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 3 : nt_og.bz.BM.Bad return value: syntax error at (eval 36079) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016-02-28 09:23:00 CUL_HM og.bz.LI.Licht1 CMDs_pending
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo set_on
2016.02.28 09:23:00 3 : CUL_HM set og.bz.LI.Lavabo on
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN voltage: 3.9
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN current: 62.0
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN sensorType: ceiling
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN battery: ok
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN motion: on
2016-02-28 09:23:00 EnOcean eg.ku.BM.KuecheEN on
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo deviceMsg: on (to VirtualCCU)
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo level: 100
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo pct: 100
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo on
2016-02-28 09:23:00 CUL_HM og.bz.LI.Lavabo timedOn: off
2016-02-28 09:23:00 CUL_HM og.bz.LI.Licht1 CMDs_done
2016.02.28 09:23:02 3 : CUL_HM set eg.ku.LI.Kueche off
Auszug aus dem Log:
2016.02.28 09:23:00 1: PERL WARNING: Bareword found where operator expected at (eval 36078) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 3: eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: (Missing operator before dm_Delay?)
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36078) line 3, near "dm_Delay",""
2016.02.28 09:23:00 3: eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: Bareword found where operator expected at (eval 36078) line 3, near "","Short"
2016.02.28 09:23:00 3: eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36078) line 3, near "Short",""
2016.02.28 09:23:00 3: eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36078) line 3, near "","")} set og.bz.LI.Bad off""
2016.02.28 09:23:00 3: eval: my $EVTPART0='motion:';my $EVTPART1='on';my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $EVENT='motion: on';my $SELF='nt_og.bz.BM.Bad';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: (Missing operator before ")} set og.bz.LI.Bad off"?)
2016.02.28 09:23:00 3: nt_og.bz.BM.Bad return value: syntax error at (eval 36078) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 1: PERL WARNING: Bareword found where operator expected at (eval 36079) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 3: eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36079) line 3, near "dm_Delay",""
2016.02.28 09:23:00 3: eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: Bareword found where operator expected at (eval 36079) line 3, near "","Short"
2016.02.28 09:23:00 3: eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36079) line 3, near "Short",""
2016.02.28 09:23:00 3: eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 1: PERL WARNING: String found where operator expected at (eval 36079) line 3, near "","")} set og.bz.LI.Bad off""
2016.02.28 09:23:00 3: eval: my $NAME='eg.ku.BM.KuecheEN';my $TYPE='EnOcean';my $SELF='nt_og.bz.BM.Bad';my $EVENT='on';my $EVTPART0='on';{
if ( (sunrise_abs(3600) lt $hms && $hms lt sunset_abs(-3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay","Short","")} set og.bz.LI.Bad off")}
elsif ( ("04:45:00" lt $hms && $hms lt sunrise_abs(3600)) && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at 00:10:00 set og.bz.LI.Bad off") }
elsif ( (sunset_abs(-3600) lt $hms && $hms lt "24:00:00") && ReadingsVal("eg.ku.BM.KuecheHM","brightness","100") < 58 && Value("og.bz.LI.Bad") eq "off")
{ fhem ("set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +00:15:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") eq "" && Value("at_og.bz.LI.Bad") eq "")
{ fhem ("define at_og.bz.BM.Bad at 00:05:00 set og.bz.LI.Bad off") }
elsif (Value("og.bz.LI.Bad") eq "on" && Value("at_og.bz.BM.Bad") ne "")
{ fhem ("modify at_og.bz.BM.Bad +00:05:00") }}
2016.02.28 09:23:00 3: nt_og.bz.BM.Bad return value: syntax error at (eval 36079) line 3, near ""set og.bz.LI.Bad on;define at_og.bz.BM.Bad at +{ReadingsVal("dm_Delay"
2016.02.28 09:23:00 3: CUL_HM set og.bz.LI.Lavabo on
Screenshot des Dummy Settings im Attachment.
- Hat jemand ne Idee wo ich ansetzen müsste damit es auch innerhalb der if-Anweisungen läuft.
Jeder Tipp ist wilkommen.
Freundliche Grüsse
Philipp
Sieh dir mal modifyTimeSpec an, damit kannst du Timespec im at schön ändern. Hier mal ein Beispiel von meiner Kaffeemaschine, damit kann ich über setList die Einschaltzeit vorwählen.
define Kaffemaschine_an_du dummy
attr Kaffemaschine_an_du DbLogExclude .*
attr Kaffemaschine_an_du alias Kaffeemaschine Einschaltzeit Vorwahl
attr Kaffemaschine_an_du room Kueche
attr Kaffemaschine_an_du setList state:06:00,06:30,07:00,07:30,08:00,08:30,09:00,09:30,10:00
attr Kaffemaschine_an_du webCmd state
define Kaffee_an at *06:30 set Kaffeemaschine_Sw on
attr Kaffee_an DbLogExclude .*
attr Kaffee_an alias Kaffeemaschine an
attr Kaffee_an disable 0
attr Kaffee_an room Kueche
define Kaffemasch_nty notify Kaffemaschine_an_du set Kaffee_an modifyTimeSpec $EVENT
attr Kaffemasch_nty DbLogExclude .*
attr Kaffemasch_nty room Unsorted
Code stammt direkt aus der fhem.cfg!
VG
Frank
Hallo Frank,
Danke für den Input. Wenn ich das richtig interpretiere ist das modifyTimeSpec in erster Linie im Zusammenhang mit dem webCmd gedacht über die Web Oferfläche zur Veränderung von dauernd vorhandenen at Definitionen. Die im Beispiel sind aber nur kurz vorhanden. Daher kann ich sie auch nicht auf das WebGui in einen Raum legen. Jedes mal über die Web Oberfläche einsteigen und eingreifen wäre zu dem zu aufwendig, vor allem da ich nicht dauernd ein Mobilgerät mit mir rumtrage.
Wenn meine Interpretation richtig ist, ist modifyTimeSpec nicht geeignet als Lösung.
Oder sehe ich da was falsch?
Philipp
Mmh, iMo hab ich leider keine Zeit mir das genauer anzusehen, was mir jedoch aufgefallen ist, zwischen zwei fhem Codeschnipseln fehlt das Semikolon, in Bezug auf dein zuerst geposteten Code zwischen dem notify und dem define. Muss für morgen noch etliches für die Arbeit machen, kann da lMo nicht weiterhelfen.
VG
Frank
Hallo Frank,
Der erste Codeschnipsel ist derjenige der läuft. Der zweite läuft nicht.
Grüsse
Philipp