Hauptmenü

Syntax-Frage

Begonnen von MisterEltako, 17 Februar 2013, 16:47:11

Vorheriges Thema - Nächstes Thema

MisterEltako

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.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Reinerlein

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

MisterEltako

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-
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310