at-Befehl Wochentags / Wochenende

Begonnen von xxsteffenxx, 10 November 2015, 17:51:40

Vorheriges Thema - Nächstes Thema

xxsteffenxx

Hallo zusammen,
ich habe folgendes Versucht aber leider klappt es nicht.

Ich habe ein Problem mit meiner Stehlampen-Schaltung :-)

Werktags 20:08:00 angehen das funktioniert mit
define Stehlampe_an at *20:08:00 set Stehlampe on

Dann dachte ich die Stehlampe soll Werktags (Mo-Fr) um 21:59 und am Wochenende (Sa+So) um 22:30 ausgehen.
leider geht die Lampe weder um 21:59 noch um 22:30 aus

Mein Code ist
define Stehlampe_ausWE at *22:30:00 { if (!($we)) { fhem("set Stehlampe off");; } }
define Stehlampe_ausWT at *21:59:00 { if ($we) { fhem("set Stehlampe off");; } }


Wo liegt der Hund begraben :-)
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

rudolfkoenig

Syntax ist prinzipiell korrekt, was Vergleichbares laeuft bei mir seit 10 Jahren.
Im Log muesste drin stehen, ob die Schaltbefehle gesendet wurden.
Man kann die Befehle (das {...} hinter der Uhrzeit) auch direkt eingeben, um zu testen, ob es klappt.

xxsteffenxx

bei { if (!($we)) { fhem("set Stehlampe off");; } } steht im log

2015.11.10 20:00:28 3: off_Stehlampe return value: -1
sending systemCode[11101] unitCode[3] command[0]


bei
{ if ($we) { fhem("set Stehlampe off");; } }

passiert nix im log
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

betateilchen

return value -1 deutet darauf hin, dass ein Befehl auf Betriebssystemebene ausgeführt wurde statt in fhem.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

xxsteffenxx

Return Value -1 kommt auch wenn ich per Button on/off schalte und da geht es.

Warten wir mal 21.59 ab ob es ausgeht :-)

Gesendet von meinem GT-I9295 mit Tapatalk

Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

xxsteffenxx

Also der Befehl

define Stehlampe_ausWE at *22:30:00 { if (!($we)) { fhem("set Stehlampe off");; } } funktioniert,

!we sagt doch aus "nur Wochenende" oder?
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

rudolfkoenig

!$we ist wahr, wenn kein Wochende oder Ferien ist.

$we ist unter http://fhem.de/commandref.html#perl dokumentiert, testen kann man es mit { $we }

xxsteffenxx

Sorry für die späte Antwort.

Nun geht es. Hatte irgendwie etwas verdreht :-)

define LED_an at *20:14:00 set LED on
define LED_ausWT at *21:50:00 { if (!($we)) { fhem("set LED off");; } }
define LED_ausWE at *22:50:00 { if ($we) { fhem("set LED off");; } }


Steffen

Gesendet von meinem GT-I9295 mit Tapatalk

Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

kumue

würde statt 3 at's alles in ein DOIF packen...
define DI_LED DOIF ([20:14-21:50|8])(set LED on)
DOELSEIF (20:14-22:50|7)(set LED on)
DOELSE

attr DI_LED do always

Damian

#9
Zitat von: kumue am 16 November 2015, 20:51:26
würde statt 3 at's alles in ein DOIF packen...
define DI_LED DOIF ([20:14-21:50|8])(set LED on)
DOELSEIF (20:14-22:50|7)(set LED on)
DOELSE

attr DI_LED do always


nicht ganz, denn hier wird nichts ausgeschaltet, dann besser so:

define di_led DOIF ([20:14]) (set LED on) DOELSEIF ([21:50|8] or [22:50|7]) (set LED off)

Gruß

Damian


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

kumue

genau  :( , wollte ich grad korrigieren..

rudolfkoenig

Damit das Feld nicht kampflos der DOIF Fraktion ueberlassen wird:

define LED_an at *20:14 set LED on-till {$we?"22:50":"21:50"}

Damian

Zitat von: rudolfkoenig am 17 November 2015, 10:38:27
Damit das Feld nicht kampflos der DOIF Fraktion ueberlassen wird:

define LED_an at *20:14 set LED on-till {$we?"22:50":"21:50"}

Auch nicht schlecht  :)

Hast du nicht wegen Kompatibilitätsprobleme Perlcode innerhalb eines FHEM-Befehls auf {(...)}  geändert?

Gruß

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

betateilchen

Zitat von: rudolfkoenig am 17 November 2015, 10:38:27
Damit das Feld nicht kampflos der DOIF Fraktion ueberlassen wird:

Du bist mein Held  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Damian am 17 November 2015, 10:44:23
Hast du nicht wegen Kompatibilitätsprobleme Perlcode innerhalb eines FHEM-Befehls auf {(...)}  geändert?

das wäre ja gruslig...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!