FHEM Forum

FHEM => Automatisierung => Thema gestartet von: xxsteffenxx am 10 November 2015, 17:51:40

Titel: at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 10 November 2015, 17:51:40
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 :-)
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: rudolfkoenig am 10 November 2015, 18:04:24
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.
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 10 November 2015, 20:02:06
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
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: betateilchen am 10 November 2015, 21:18:32
return value -1 deutet darauf hin, dass ein Befehl auf Betriebssystemebene ausgeführt wurde statt in fhem.
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 10 November 2015, 21:23:25
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

Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 11 November 2015, 22:53:49
Also der Befehl

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

!we sagt doch aus "nur Wochenende" oder?
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: rudolfkoenig am 12 November 2015, 08:54:59
!$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 }
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 16 November 2015, 20:40:14
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

Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag 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
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: Damian am 16 November 2015, 20:56:49
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


Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: kumue am 16 November 2015, 20:59:29
genau  :( , wollte ich grad korrigieren..
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag 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"}
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: Damian am 17 November 2015, 10:44:23
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
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: betateilchen am 17 November 2015, 10:44:34
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)
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: betateilchen am 17 November 2015, 10:45:19
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...
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: marvin78 am 17 November 2015, 10:47:12
Und: Kompatibel zu was?
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: rudolfkoenig am 17 November 2015, 10:51:18
ZitatHast du nicht wegen Kompatibilitätsprobleme Perlcode innerhalb eines FHEM-Befehls auf {(...)}  geändert?
Jein. In einem beliebigen set kann man mit featurelevel >= 5.7 das {(xxx)} verwenden.
on-till verwendet weiterhin {}, da hat sich nichts geaendert.
D.h. in diesem Fall funktioniert sowohl {($we?"22:50":"21:50")} wie auch {$we?"22:50":"21:50"}, es wird nur an unterschiedlichen Stellen ersetzt.

@marvin78: {()} soll kompatibel zu DOIF sein. Jedenfalls hat man mir das so gesagt.
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: Damian am 17 November 2015, 10:51:34
Zitat von: marvin78 am 17 November 2015, 10:47:12
Und: Kompatibel zu was?

zu allen FHEM-Befehlen, z. B zum at-Befehl, der seinerseits geschweifte Klammern verwendet. ;)
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: betateilchen am 17 November 2015, 10:52:41
Zitat von: rudolfkoenig am 17 November 2015, 10:51:18
Jein. In einem beliebigen set kann man mit featurelevel >= 5.7 das {(xxx)} verwenden.

kann oder muss?

Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: marvin78 am 17 November 2015, 10:53:00
@Damian: Meine Frage bezog sich nicht auf die geschweiften Klammern.

Ach DOIF. Naja solange für sowas solche Konstrukte nicht Pflicht werden...
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: Damian am 17 November 2015, 11:09:45
Zitat von: marvin78 am 17 November 2015, 10:53:00
@Damian: Meine Frage bezog sich nicht auf die geschweiften Klammern.

Ach DOIF. Naja solange für sowas solche Konstrukte nicht Pflicht werden...

Das hat nichts mit DOIF zu tun.

Rudi hat zunächst {} (nicht auf meinen Wunsch) für beliebige FHEM-Befehle eingebaut, damit würde aber z. B.

define n notify bla.* define a7 at +*{3}00:00:02 set lamp on-for-timer 1

nicht funktionieren.

Gruß

Damian


Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: marvin78 am 17 November 2015, 11:13:13
Zitat von: rudolfkoenig am 17 November 2015, 10:51:18
@marvin78: {()} soll kompatibel zu DOIF sein. Jedenfalls hat man mir das so gesagt.

Das andere ist mir sehr wohl bekannt. Werfe bitte nicht alles durcheinander.
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 17 November 2015, 21:18:50
Hab es nun mal mit


define LED_an at *20:14 set LED on-till {$we?"22:50":"21:50"}
define Stehlampe_an at *20:08 set Stehlampe on-till {$we?"22:55":"21:59"}
[Code]

Versucht,  Licht bleibt aber aus :-( die 3at's gehen einwandfrei

Gesendet von meinem GT-I9295 mit Tapatalk

Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: rudolfkoenig am 17 November 2015, 21:47:14
Was ist der TYPE von Stehlampe bzw. LED?
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 17 November 2015, 22:22:07
Ist ne 433mhz Funksteckdose
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: rudolfkoenig am 18 November 2015, 08:38:37
Und das steht so woertlich im TYPE drin?

Manche Module unterstuetzen on-till nicht, aber etwa 50 Module (unter anderem IT, HomeMatic, FS20, ZWave, EnOcean, FBDECT) tun das. Wenn on-till nicht unterstuetzt wird, dann muss man bei 3 einzelnen at Befehlen oder DOIF bleiben.
Titel: Antw:at-Befehl Wochentags / Wochenende
Beitrag von: xxsteffenxx am 29 November 2015, 18:41:56
sorry für die späte Rückmeldung, aber nun geht es

hab dies nun so gelöst
define Stehlampe_an at *19:00:00 set Stehlampe on
define Stehlampe_ausWT at *21:59:00 { if (!($we)) { fhem("set Stehlampe off");; } }
define Stehlampe_ausWE at *22:55:00 { if ($we) { fhem("set Stehlampe off");; } }


definiert habe ich es so
define Stehlampe dummy
attr Stehlampe userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr Stehlampe room 3.00_Lichtsteuerung
attr Stehlampe setList on off
define off_Stehlampe notify Stehlampe:off {system("/usr/bin/send 11101 3 0 &")}
define on_Stehlampe notify Stehlampe:on {system("/usr/bin/send 11101 3 1 &")}