Fehler bei Keymatic zeitgesteuert schließen

Begonnen von thokoh, 09 April 2014, 20:45:33

Vorheriges Thema - Nächstes Thema

thokoh

Hallo,

ich möchte, dass sich meine Keymatic zwischen 23.00 Uhr und 06.00 Uhr automatisch wieder nach 1 min schließt, wenn die Tür in dieser Zeit den Status unlock oder open hat.

Ich habe hierzu folgenden Code probiert:

define StatusTuerpruefen notify FL.Tuerschloss:unlocked sleep 60;; {\
my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
if ( $hm gt "23:00" && $hm lt "06:00") { \
fhem("set FL.Tuerschloss lock")};;\
}


Es passiert allerdings nichts. Im Logfile erscheint folgende Fehlermeldung:
After sleep: Unknown command {\
my, try help.
Unknown command if, try help.
Unknown command }, try help.

Ich vermute mal, es liegt an irgendwelchen Zeichen. Allerdings bin ich absolut Anfänger in fhem und komme nicht weiter.

Vielleicht findet jemand den Fehler.

Für die Hilfe im Voraus besten Dank!

Gruß

Thomas

rudolfkoenig

1. Mischen von FHEM-Befehlen und Perl-Einzeilern ist nicht unterstuetzt (deswegen die Fehlermeldung).
2. Ein Wert kann nicht groesser als 23 und gleichzeitig kleiner als 06 sein
3. Vlt. kann dir das relativ neue disabledForIntervals Attribut helfen.

Damian

So kannst du es mit nur FHEM-Befehlen realisieren - ist kürzer und kommt mit weniger Sonderzeichen aus  ;)

define StatusTuerpruefen notify FL.Tuerschloss:unlocked sleep 60;;IF ($hms gt "23:00" or $hms lt "06:00") (set FL.Tuerschloss lock)

Hier wird FHEM-IF statt Perl-if benutzt. Siehe: http://fhem.de/commandref_DE.html#IF

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

thokoh

Danke für eure Antworten.

Ich habe die Lösung von rudolfkoenig getestet. Leider kommt hier die Fehlermeldung: "After sleep: Unknown command IF, try help."

Auf meiner Fritz!Box habe ich die aktuelle fhem Firmware von AVM. Kann es vielleicht sein, dass AVM den FHEM-Befehl "IF" noch nicht integriert hat?

Damian

Zitat von: thokoh am 10 April 2014, 12:26:16
Auf meiner Fritz!Box habe ich die aktuelle fhem Firmware von AVM. Kann es vielleicht sein, dass AVM den FHEM-Befehl "IF" noch nicht integriert hat?

Das wird so sein. IF ist relativ neu. Dein FHEM kannst du per Update (siehe Commandref) aktualisieren.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF