FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 01 November 2012, 14:04:10

Titel: define-at-Anweisung mit twilight-Wert als on-till Argument und zusätzlicher if-Bedingung
Beitrag von: Guest am 01 November 2012, 14:04:10
Originally posted by: <email address deleted>

Das ist jetzt kein twilight-Problem, sondern scheinbar ein (mein) Problem
beim Umgang/Kombination von perl-Ausdrücken in fhem.
Zielsetzung: eine Außenbeleuchtung(Lampe) soll von 6:30 bis Sonnenaufgang
leuchten, wenn kein Wochenende ist.

Folgendes funktionert, aber noch ohne die if(!$we)-Bedingung, also täglich:
define SunriseLamp at *06:30 set Lampe on-till
{ReadingsVal("myTwilight","sr",0)}   (funktioniert)

Ich scheitere an der Syntax, wenn ich die if(!$we)-Bedingung zusätzlich
einbinde.

Für die Definition am Abend habe ich die if(!$we)-Bedingung so eingebunden
(was auch funktioniert):
define SunsetLamp at *{ReadingsVal("myTwilight","ss",0)} { fhem("set Lampe
on-till 23:00") if(!$we) }   (funktioniert)

Das habe ich (unter anderem) versucht:
define SunriseLamp at *06:30 { fhem("set Lampe on-till
{ReadingsVal("myTwilight","sr",0)}") if(!$we) }   (funktioniert nicht)

im Log: Bareword found where operator expected at ... (Missing operator
before myTwilight?)
syntax error at (eval 166) line 1, near ""set Lampe on-till
{ReadingsVal("myTwilight"

Liegt das an der Verschachtelung(Vermischung) von fhem-perl-fhem-perl? Wie
kann ich also dem
define SunriseLamp at *06:30 set Lampe on-till
{ReadingsVal("myTwilight","sr",0)}
die if(!$we)-Bedingung hinzufügen?

Heinz

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: [gelöst] define-at-Anweisung mit twilight-Wert als on-till Argument und zusätzlicher if-Bedingung
Beitrag von: Guest am 01 November 2012, 22:19:06
Originally posted by: <email address deleted>

Gelöst mit:

define SunriseLamp at *06:30 {fhem("set Lampe on-till {sunrise_abs()}")
if(!$we)}

Weiß nicht, warum das mit {sunrise_abs()} funktioniert, aber mit
{ReadingsVal("myTwilight","sr",0)} nicht.

VG Heinz

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: [gelöst] ON-TILL mit twilight/sunset/sunrise-Argument unter zusätzlichen Bedingungen ausführen
Beitrag von: Guest am 02 November 2012, 15:30:02
Originally posted by: <email address deleted>

Nun habe ich weiter gesucht und folgendes festgestellt:
Auch {sunrise_abs()} funktioniert nur, solange keine Argumente mit
"Hochkomma" benutzt werden. Es funktioniert also:
{fhem("set Lampe on-till {sunrise_abs()}") if(!$we)} oder
{fhem("set Lampe on-till {sunrise_abs(+600)}") if(!$we)} oder
{fhem("set Lampe on-till {sunset_abs(-1800)}") if($we)} u.s.w., aber nicht
so etwas wie

{fhem("set Lampe on-till {sunrise_abs("REAL",0,"06:30","09:00")}")
if(!$we)}, folglich auch kein
{fhem("set Lampe on-till {ReadingsVal("myTwilight","sr_indoor",0)} if(!$we)}

Meine Lösung sieht nun so aus:

define SunriseLamp at *06:30 { \
  my $twtime = ReadingsVal("myTwilight","sr_indoor",0);;\
  fhem("set Lampe on-till $twtime") if (!$we);;\
 }

Das ermöglicht mir nun doch den Einsatz von twilight (da finde ich die
Readings-Übersicht sehr hilfreich) und kann trotzdem weitere if-Bedingungen
verknüpfen.

:) :) :)
Heinz

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com