max()-Funktion mit if-Bedingung

Begonnen von Guest, 16 März 2011, 16:10:06

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

ich habe irgendwie ein mal wieder ein kleines Verständnisproblem.

Folgende Situation:
Die Jalosie im Schlafzimmer soll in der Woche mit Sonnenaufgang
hochfahren, frühstens aber um 6:00 Uhr. Allerdings soll die Jalosie
nicht direkt geschaltet werden, sondern es soll ein Job angelegt
werden, der dies zwei Mal wiederholt. Nebenbei gibt es noch den
Schlalter "Jal_SZ_auto", der die Automatik ausschaltet. Dazu habe ich
zwei Varianten, welche beide nicht funktionieren, allerding auch kein
Fehlermeldungen auslösen:

+*{max(abstime2rel("06:00"),sunrise_rel())} { fhem("define
jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") } if((!$we) &&
($value{Jal_SZ_auto} eq "on"))
-=> Schaltet gar nicht.


+*{max(abstime2rel("06:00"),sunrise_rel())} { fhem("define
jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") if((!$we) &&
($value{Jal_SZ_auto} eq "on")) }
-=> Schaltet auch am Wochende.


Ohne die Max()-Variante, nur mit sunrise_rel() läuft es wunderbar.

Ist bestimmt wieder ein Denkfehler von mir... vielleicht könnt Ihr
mich ja in die richtige Richtung schubsen...

Gruß
  sweetie-pie

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

Die erste Variante muesste Taeglich eine Zeile der Art
  Unknown command {, try help
ins fhem-log schreiben, da das letzte at Argument (ich nehme an dass es sich um
ein at Kommando handelt) nicht komplett in {} gepackt ist.

Beim Zweiten sehe ich noch nicht das Problem, da wuerde ich es empfehlen Stueck
fur Stueck im fhem auszuprobieren, also in etwa:

fhem> {max(abstime2rel("06:00"),sunrise_rel())}
09:34:28

fhem> { $we }
0

fhem> { $value{Jal_SZ_auto} }
on

fhem> { fhem("define jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") if((!$we) && ($value{Jal_SZ_auto} eq "on")) }

usw. und dabei das fhem-log pruefen fuer etwaige Fehlermeldungen.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On 17 Mrz., 20:30, Rudolf Koenig wrote:
> Die erste Variante muesste Taeglich eine Zeile der Art
>   Unknown command {, try help

Sorry, das ist tatsächlich so, ist mir irgendwie nicht aufgefallen.

> fhem> { $we }
Gibt gar nichts zurück, was gleichbedeutent mit "0" ist?

> fhem> { !$we }
Liefert heute wie erwartet "1"

Ich werde also den morgigen Tag abwarten und wieder testen... danke
erst einmal!

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Nochmal zu dem Thema: Ich habe jetzt zwei at-Jobs für die Jalosien;
einen der am Wochenende mit Sonnenaufgang, jedoch nicht vor 9:00 Uhr
die Jalosien hochfährt; den anderen für die Werktage, der die Jalosie
mit Sonnenaufgang, aber nicht vor 6:00 Uhr hochfährt.

define jal_sze_hs1 at +*{max(abstime2rel("09:00"),sunrise_rel())}
{ fhem("define jal_szw_tmp2 at +*{2}00:02:00 set Jal_SZ_FW on")
if(($we) && ($value{Jal_SZ_auto} eq "on")) }

define jal_szw_hs1 at +*{max(abstime2rel("06:00"),sunrise_rel())}
{ fhem("define jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") if((!
$we) && ($value{Jal_SZ_auto} eq "on")) }

Alsoich habe jetzt das ganze mal beobachtet. Seit dem 16.03. hatte ich
folgende Schaltzeiten:

2011.03.17 06:04:59 2: FS20 set Jal_SZ_FW on
2011.03.17 06:06:59 2: FS20 set Jal_SZ_FW on
2011.03.18 06:02:48 2: FS20 set Jal_SZ_FW on
2011.03.18 06:04:48 2: FS20 set Jal_SZ_FW on
2011.03.19 09:02:00 2: FS20 set Jal_SZ_FW on
2011.03.19 09:04:00 2: FS20 set Jal_SZ_FW on
2011.03.20 09:02:00 2: FS20 set Jal_SZ_FW on
2011.03.20 09:04:00 2: FS20 set Jal_SZ_FW on
2011.03.21 06:01:59 2: FS20 set Jal_SZ_FW on
2011.03.21 06:03:59 2: FS20 set Jal_SZ_FW on
2011.03.22 05:53:59 2: FS20 set Jal_SZ_FW on
2011.03.22 05:55:59 2: FS20 set Jal_SZ_FW on
2011.03.23 05:51:46 2: FS20 set Jal_SZ_FW on
2011.03.23 05:53:46 2: FS20 set Jal_SZ_FW on
2011.03.24 05:49:32 2: FS20 set Jal_SZ_FW on
2011.03.24 05:51:32 2: FS20 set Jal_SZ_FW on

Am Wochenende, hat jetzt alles richtig gearbeitet, was mit genau
diesem Schaltbefehl zuvor definitiv inicht immer der Fall war. In der
Woche habe ich jetzt aber wohl das Problem, dass der at-Job nicht
richtig arbeitet: Eigentlich sollte jetzt immer um 6:02 Uhr und 6:04
Uhr geschaltet werden, es gilt gewinnt aber immer der Sonnenaufgang.

Debug mit der Konsole lieferte mir soeben:

fhem> {abstime2rel("06:00")}
16:10:30
fhem> {sunrise_rel()}
15:55:45
fhem> {max(abstime2rel("06:00"),sunrise_rel())}
16:10:22

Soweit eigentlich richtig, aber fhem meint dazu:

fhem> list  jal_sze_hs1
Internals:
   DEF        +*{max(abstime2rel("09:00"),sunrise_rel())}
{ fhem("define jal_szw_tmp2 at +*{2}00:02:00 set Jal_SZ_FW on")
if(($we) && ($value{Jal_SZ_auto} eq "on")) }
   NAME       jal_sze_hs1
   NR         4501
   NTM        09:00:00
   REP        -1
   STATE      Next: 09:00:00
   TRIGGERTIME 1301040000.64982
   TYPE       at

fhem> list  jal_szw_hs1
Internals:
   DEF        +*{max(abstime2rel("06:00"),sunrise_rel())}
{ fhem("define jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") if((!
$we) && ($value{Jal_SZ_auto} eq "on")) }
   NAME       jal_szw_hs1
   NR         4492
   NTM        05:45:19
   REP        -1
   STATE      Next: 05:45:19
   TRIGGERTIME 1301028319.82344
   TYPE       at

was ja wohl nicht richtig ist, oder?

Gruß
 Holger



On 17 Mrz., 20:30, Rudolf Koenig wrote:
> Die erste Variante muesste Taeglich eine Zeile der Art
>   Unknown command {, try help
> ins fhem-log schreiben, da das letzte at Argument (ich nehme an dass es sich um
> ein at Kommando handelt) nicht komplett in {} gepackt ist.
>
> Beim Zweiten sehe ich noch nicht das Problem, da wuerde ich es empfehlen Stueck
> fur Stueck im fhem auszuprobieren, also in etwa:
>
> fhem> {max(abstime2rel("06:00"),sunrise_rel())}
> 09:34:28
>
> fhem> { $we }
> 0
>
> fhem> { $value{Jal_SZ_auto} }
> on
>
> fhem> { fhem("define jal_szw_tmp1 at +*{2}00:02:00 set Jal_SZ_FW on") if((!$we) && ($value{Jal_SZ_auto} eq "on")) }
>
> usw. und dabei das fhem-log pruefen fuer etwaige Fehlermeldungen.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

> fhem> {max(abstime2rel("06:00"),sunrise_rel())}

sunrise_rel() liefert um diese Jahreszeit beim Aufruf morgens ca 23:55 zurueck,
das ist immer groesser als 06:00. Ich empfehle eher sunrise_rel(0, "06:00").

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.