Ich versuch mich an nachfolgendem Code:
define n_Rollladen notify myTL {\
my $RollFl = Value("Rollladen_Flur");;\
my $Sun = ReadingsVal("Local_Wetter","sunrise","09:00:00");;\
my $Mond= ReadingsVal("Local_Wetter","sunset","18:00:00");;\
my $Temp_erw = ReadingsVal("Local_Wetter","fc1_low_c","999");;\
Log 1, "Sonnenaufgang: $Sun Uhr, Sonnenuntergang: $Mond Uhr, Temperatur: $Temp_erw°C";;\
if ($Sun lt sprintf("%%02d:%%02d:%%02d",$hour,$min,$sec)){\
if (defined($defs{RollladenAuf})){fhem("delete RollladenAuf")}\
Log 1,"Test";;\
fhem("define RollladenAuf at +01:00:00 {fhem("set Rollo_Flur Auf;;set Rollo_EG Auf")}")\
}\
}
Erkärung zu Sinn/Aufgabe:
1.Schalten, wenn aktuelle Zeit großer als Sonnenaufgangszeit (entnommen aus dem Weathermodul!!! - nicht sunset()!!!)
2.Prüfen, ob "define Rollladenauf" existiert, wenn ja löschen
3.Anlegen eines at-Defines innerhalb der if-Abfrage um Rollladen erst 1h nach Sonnenaufgangszeit zu öffnen
Nach Einfügen der rotmarkierten Zeile kommt im Log folgende Fehlermeldung:
Bareword found where operator expected at (eval 285) line 1, near ""define RollladenAuf at +01:00:00 {fhem("set"
(Missing operator before set?)
String found where operator expected at (eval 285) line 1, near "Auf")}""
2013.02.17 16:37:25 3: n_Rollladen return value: syntax error at (eval 285) line 1, near ""define RollladenAuf at +01:00:00 {fhem("set Rollladen_Flur "
Irgendwie bin ich hier schon "betriebsblind". Wo steckt der Fehler???
MfG, MisterEltako.
Hi MisterEltako,
zuviele Anführungszeichen verderben den Brei :-)
Korrekterweise müsste diese rote Zeile wohl so aussehen:
fhem("define RollladenAuf at +01:00:00 {fhem('set Rollo_Flur Auf;;set Rollo_EG Auf')}")\
Also entweder den Anführungszeichentyp wechseln, oder mittels "\" maskieren...
Ich habe das mal wieder nicht getestet, also übe Nachsicht :-)
Grüße Reinerlein
Hi!
fhem("define RollladenAuf at +01:00:00 {fhem('set Rollo_Flur Auf;;set Rollo_EG Auf')}")\
war es noch nicht ganz, aber:
fhem("define RollladenAuf at +01:00:00 {fhem('set Rollo_Flur Auf;;;;set Rollo_EG Auf')}")\
Danke, das war trotzdem der entscheidende Tip!
MfG, MisterEltako-