FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: GuerillaCoder am 29 November 2014, 14:17:25

Titel: RandomTimer TimeSpec
Beitrag von: GuerillaCoder am 29 November 2014, 14:17:25
Hallo *,

ich versuche, einen RandomTimer mit Werten aus dem Twilight-Modul zu verbinden. Die Definition sieht folgendermaßen aus:

define HO_Random_WZ_Lampe_Essbereich RandomTimer *10:00:00 WZ_Lampe_Essbereich *{ReadingsVal('myTL', 'ss_weather', '19:00:00')} 420

Leider gibt's für den Versuch nur eine Fehlermeldung:
Wrong timespec {ReadingsVal('myTL',: either HH:MM:SS or {perlcode}

Gebe ich den Perl-Teil {ReadingsVal('myTL', 'ss_weather', '19:00:00')} einfach als Fhem Kommando ein, gibt's eine gültige Antwort.

Benutze ich {sunset_abs()} für den Perl Teil ist das kein Problem. Habe es schon mit Leerzeichen vor den {} probiert. Auch mit " statt '. Ein ; Am Ende bringt auch nichts.

Mache ich etwas falsch oder versteckt sicht da ein Bug?

Viele Grüße!
Titel: Antw:RandomTimer TimeSpec
Beitrag von: Dietmar63 am 29 November 2014, 14:55:12
define HO_Random_WZ_Lampe_Essbereich RandomTimer 10:00:00 WZ_Lampe_Essbereich {ReadingsVal('myTL','ss_weather','19:00:00')} 420

keine Sterne und keine Leerzeichen
Titel: Antw:RandomTimer TimeSpec
Beitrag von: GuerillaCoder am 29 November 2014, 17:14:50
Hallo Dietmar,

das funktioniert. Vielen Dank!

Viele Grüße!
Titel: Antw:RandomTimer TimeSpec
Beitrag von: GuerillaCoder am 02 Dezember 2014, 18:02:24
Hallo noch einmal!

Jetzt muss ich das Thema noch mal aufwärmen.

Habe mir eine DisabledCondition gebaut:

attr HO_Random_WZ_Lampe_Essbereich disableCond ((Value("HO_Switch") eq "off") || ((Value("HO_Switch") eq "on") && (ReadingsVal("myTL", "light", 0) != 6)))

Da diese nicht schaltet - also immer disabled ist - rate ich mal: theoretisch auch hier keine Leerzeichen im gesamten Ausdruck? Wobei dann der Ausdruck auch nicht funktioniert. Ich befürchte, dann trennt er die einzelnen Ausdrücke nicht mehr richtig.

Muss ich das also besser in eine myUtils-Funktion auslagern und die dann aufrufen?

Woher kommt eigentlich diese Beschränkung, bzw. warum kann ich hier nicht wie angenommen den Perl-Ausdruck verwenden? Ganz logisch finde ich das nicht?

Viele Grüße!