FHEM > Automatisierung

Syntax error at

(1/2) > >>

arko20:
Hallo zusammen ,

ich bitte euch um eine Hilfestellung zu folgendem Problem,
ich versuche eine Zeitschaltung duchzuführen mit dem Türkontakt (D4) als Auslöser
in Abhängigkeit von Zeit und Wochentag , das Objekt ist eine Lampe (I1).

(siehe Anhang / see attachement)

bekomme leider diese Fehlermeldung nicht weg
WeckenFD....

(siehe Anhang / see attachement)

Könnt ihr mir bitte helfen bin langsam am verzweifeln,
habe versucht Klammern zu ändern , Punkte zu setzen alles ohne Erfolg.
Vielen Dank

MisterEltako:
Versuche es zunächst mit Änderung der Vergleiche:
($now gt "07:00" || $now lt "08:00")
sollte hier stehen.

Bitte den Code nicht als Bild sondern als Text posten, sonst muss man beim Testen deines Konstructs alles abschreiben. ;o)

MfG, MisterEltako.

arko20:
Hallo ,

tschuldigung,

an die einfachsten Dinge denkt man vor
lauter Gesuche nicht mehr.

Danke erstmal für deinen Tipp leider
kam immer noch eine Fehlermeldung.

Grüsse

--- Code: ---TRX_ARC_D4:on.* {my $now=sprintf("%%02d:%%02d",$hour,$min);{if( $now gt "07:00" || $now lt "08:00")};{fhem ("define LampAn at *04:48:00");{fhem ("set TRX_ARC_I1 on")}};{fhem ("define LampAuss at *04:50:00");{fhem ("set TRX_ARC_I1 off")}}}







2013.03.10 20:44:30 3: WeckenFD return value: syntax error at (eval 72) line 1, at EOF
--- Ende Code ---

MisterEltako:
define WeckenFD notify TRX_ARC_D4:on.* {\
my $now=sprintf("%%02d:%%02d",$hour,$min);;\
if( $now gt "07:00" || $now lt "08:00") {\
     if (defined($defs{LampAn} {fhem('delete LampAn')}
     if (defined($defs{LampAuss} {fhem('delete LampAuss')}
     fhem ("define LampAn at *04:48:00 set TRX_ARC_I1 on;; define LampAuss at *04:50:00 set TRX_ARC_I1 off")}
}

Der Sinn erschließt sich mir nicht ganz. So müssten die beiden "at's" angelegt werden, wenn die aktuelle Uhrzeit zw. 7 und 8 Uhr ist???? Ist das so gewollt? Zumindestens solltest du noch Abfragen, ob die "at's" schon existieren:

if (defined($defs{LampAn})) {fhem('delete LampAn')}
if (defined($defs{LampAuss})) {fhem('delete LampAuss')}

MfG, MisterEltako.

Rohan:
Hallo zusammen,

eine Frage zum Code:


--- Code: ---if( $now gt "07:00" || $now lt "08:00") {\
--- Ende Code ---


1. Es soll eine Aktion zwischen 07:00 und 08:00 Uhr erfolgen, oder?

2. "||" ist der oder-Operator, oder?

3. Um 05:00 Uhr ist der linke Teil der Bedingung (später ("gt") als 07:00 Uhr) nicht erfüllt, der rechte (früher ("lt") als 08:00 Uhr) erfüllt, also ist doch auch um 05:00 Uhr die Bedingung für "if" erfüllt, oder?

4. Um 09:00 Uhr ist der linke Teil der Bedingung (später ("gt") als 07:00 Uhr) erfüllt, der rechte (früher ("lt") als 08:00 Uhr) nicht erfüllt, also ist doch auch um 09:00 Uhr die Bedingung für "if" erfüllt, oder?

5. Also wird die Bedingung 24 Stunden am Tag erfüllt, oder?

Ergo müsste "||" doch durch "&&" ersetzt werden, oder?

Gruß
Thomas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln