Ich habe in der CommandRef folgendes Beispiel gesehen:
define di_time DOIF ([[begin]-[end]]) (set lamp on, set end {(OffTime("[begin]"))}) DOELSE (set lamp off)
Hier wird im Ausführungsteil innerhalb einer Perl-Funktion die DOIF-Syntax für einen Zeitdummy genutzt.
Versuche ich dies jedoch im Bedingungsteil des DOIFs, dann wird die Zeit bei mir nicht ausgelesen. Der Wert ist leer.
Ist dies ein Fehler auf meiner Seite oder geht das einfach nur nicht?
(
[{(SucheZeit("[time]"))}]
)
(set light on)
DOELSE
(set light off)
Danke vielmals.
Zitat von: FunkOdyssey am 22 Juli 2015, 18:18:58
Ich habe in der CommandRef folgendes Beispiel gesehen:
define di_time DOIF ([[begin]-[end]]) (set lamp on, set end {(OffTime("[begin]"))}) DOELSE (set lamp off)
Hier wird im Ausführungsteil innerhalb einer Perl-Funktion die DOIF-Syntax für einen Zeitdummy genutzt.
Versuche ich dies jedoch im Bedingungsteil des DOIFs, dann wird die Zeit bei mir nicht ausgelesen. Der Wert ist leer.
Ist dies ein Fehler auf meiner Seite oder geht das einfach nur nicht?
(
[{(SucheZeit("[time]"))}]
)
(set light on)
DOELSE
(set light off)
Danke vielmals.
Was macht deine Funktion SucheZeit?
Gruß
Damian
Das war nur ein Beispiel, um es anschaulicher zu machen. In Wirklichkeit geht es mir um die Twilight-Funktion: twilight($twilight, $reading, $min, $max)
Zitat von: FunkOdyssey am 22 Juli 2015, 21:28:26
Das war nur ein Beispiel, um es anschaulicher zu machen. In Wirklichkeit geht es mir um die Twilight-Funktion: twilight($twilight, $reading, $min, $max)
Wichtig ist der Returnwert der Funktion. Es muss entweder eine Zeit im Format HH:MM oder eine Zahl (Sekunden nach Mitternacht) sein.
Dann kann man es so angeben:
[{Zeit("[time]")}]
oder:
[({Zeit("[time]")})]
Gruß
Damian
Hmm. Sämtliche Schreibweisen funktionieren nicht bei mir leider nicht.
So sieht das Grundgerüst ohne die Klammern aus:
[{twilight("twilight", "sr_indoor", "[testtime]", "10:00")}]
Zitat von: FunkOdyssey am 22 Juli 2015, 21:59:56
Hmm. Sämtliche Schreibweisen funktionieren nicht bei mir leider nicht.
So sieht das Grundgerüst ohne die Klammern aus:
[{twilight("twilight", "sr_indoor", "[testtime]", "10:00")}]
ja, offenbar ist das schon eine Ebene zu viel, dann halt:
[{twilight("twilight", "sr_indoor", Value("testtime"), "10:00")}]
Gruß
Damian
Schade. Darauf und auf ReadingsVal wollte ich eigentlich verzichten, da ich sonst die Aktualisierung der Uhrzeit im Dummy nicht unmittelbar im DOIF mitbekomme. Ich müsste also wieder ein weiteres DOIF nehmen, welches auf Veränderung des Dummys triggert.
Du hattest ja vor einiger Zeit das wahnsinnig praktische Feature aufgenommen, dass Änderungen in [[Dummys]] die DOIFs triggern. Dieses Feature wollte ich halt auch innerhalb einer Perl-Funktion nutzen.
Ich hatte gehofft, dass ich etwas falsch mache und es eine schlanke Lösung gibt. Ist aber nicht so schlimm. Danke dir.
Zitat von: FunkOdyssey am 22 Juli 2015, 22:48:03
Schade. Darauf und auf ReadingsVal wollte ich eigentlich verzichten, da ich sonst die Aktualisierung der Uhrzeit im Dummy nicht unmittelbar im DOIF mitbekomme. Ich müsste also wieder ein weiteres DOIF nehmen, welches auf Veränderung des Dummys triggert.
Du hattest ja vor einiger Zeit das wahnsinnig praktische Feature aufgenommen, dass Änderungen in [[Dummys]] die DOIFs triggern. Dieses Feature wollte ich halt auch innerhalb einer Perl-Funktion nutzen.
Ich hatte gehofft, dass ich etwas falsch mache und es eine schlanke Lösung gibt. Ist aber nicht so schlimm. Danke dir.
ja, so tief hatte ich nicht mehr programmiert, aber mal schauen, vielleicht reicht intern ein zusätzlicher Funktionsaufruf - muss ich mir mal anschauen.
Gruß
Damian