FHEM Forum

FHEM => Automatisierung => Thema gestartet von: arko20 am 10 März 2013, 16:30:14

Titel: Syntax error at
Beitrag von: arko20 am 10 März 2013, 16:30:14
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
Titel: Aw: Syntax error at
Beitrag von: MisterEltako am 10 März 2013, 20:21:12
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.
Titel: Aw: Syntax error at
Beitrag von: arko20 am 10 März 2013, 21:31:16
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
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
Titel: Aw: Syntax error at
Beitrag von: MisterEltako am 10 März 2013, 23:09:24
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.
Titel: Aw: Syntax error at
Beitrag von: Rohan am 11 März 2013, 14:51:19
Hallo zusammen,

eine Frage zum Code:

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

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
Titel: Aw: Syntax error at
Beitrag von: arko20 am 11 März 2013, 19:47:45
Hallo,

erst mal danke für das rege Interesse .
Ich erkläre mal kurz den Hintergrund der Schaltung.
Die Schaltung ist eine Art Notwecker falls mein normaler Wecker
versagt.

Ich möchte folgendes bewirken,
wenn ich in der Zeit von 7 Uhr bis 8 Uhr die Wohnungstür öffne (habe Spätdienst)
erkennt das der Funkschalter D4 und am nächsten Tag soll 04.48 Uhr - 04.50 Uhr der
Funkschalter  I1 die Lampe einschalten und mich zum Frühdienst aus dem Bett werfen ;-),am nächsten Tag dann nicht da Spätdienst.
Das wechselt bei mir jeden Tag FD -- SD-- FD....bis zum WOE ,wenn Fr. SD dann Mo. FD bzw. Fr. FD dann am Mo. SD,
Problem wäre  das WOE ,wenn Fr. Spätdienst ist ,darf am WOE nichts schalten ;-) erst dann wieder am
Mo. zum FD.

Ich hoffe ich habe mich verständlich ausgedrückt.

Vielen Dank
Grüße