[gelöst] sunset_el min/max über UI?

Begonnen von SouzA, 26 Juli 2016, 07:43:58

Vorheriges Thema - Nächstes Thema

SouzA

#15
Hi Jungs,

das ist Top von euch! Absolut klasse! Wieder mal einen Haufen dazu gelernt!

Aber:
Die zu den Sunset/Sunrise zugehörigen Timer zeigen nicht gerade erwartete Werte... ist das richtig so?

timer_1_c1  28.07.2016 00:00:00|0123456
timer_2_c2  27.07.2016 21:30:00|0123456
timer_3_c3  28.07.2016 04:54:26|8
timer_4_c3  28.07.2016 04:54:26|7
timer_5_c4  28.07.2016 07:00:00|8
timer_6_c4  28.07.2016 08:00:00|7

Die Einstellungen sind im Anhang.


Bis denn
SouzA

(und ja, es heißt eigentlich "frühestens hoch am WE".. ;) )
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ellert

Mach es uns leichter. Welche Werte erwartest Du und was steht in den Dummys?

SouzA

Naja, ich hätte erwartet, dass die nächste Hochfahrt nicht der nächste Sunrise ist, sonder dem entspricht, was ich als frühestens eingegeben habe.
Ebenso beim ersten sunset. 0:00 ist nirgends vermerkt.

Die Einstellungen habe ich im obigen Post noch angehängt.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

FunkOdyssey

Offtopic:
Ich könnte noch ein wenig mehr Verwirrung reinbringen, indem ich dir Twilight empfehle. Mir gefällt das Modul besser. Ich sehe die Zeiten direkt in den Readings und kann nun auch eine min/max-Formel in DOIF nutzen:

CommandRef
Functions
twilight($twilight, $reading, $min, $max)
- implementiert eine Routine um die Dämmerungszeiten wie Sonnenaufgang mit min und max Werten zu berechnen.

$twilight Name der twiligh Instanz
$reading Name des zu verwendenden Readings. Beispiel: ss_astro, ss_weather ...
$min Parameter min time - optional
$max Parameter max time - optional

Ellert

Zitat von: SouzA am 27 Juli 2016, 16:35:50
Naja, ich hätte erwartet, dass die nächste Hochfahrt nicht der nächste Sunrise ist, sonder dem entspricht, was ich als frühestens eingegeben habe.
Ebenso beim ersten sunset. 0:00 ist nirgends vermerkt.

Die Einstellungen habe ich im obigen Post noch angehängt.

Bis denn
SouzA

Poste mal ein List Deines aktuellen DOIF.

SouzA

#20
Das ist viel code...

Internals:
   DEF        ## Die Rollos gehen frühestens um 16:00h und spätestens zur im UI eingestellten Zeit runter. Dazwischen mit dem Sonnenuntergang.
## Funktioniert nur, wenn berücksichtigung Sunset auf "an" und Automatik "an" gewählt ist!
(
[{sunset(0,"16:00","[du_Rolladen_Zeit_wz_ru]")}|0123456] and
[du_Rolladen_wz_sunset] eq "an" and
[du_Rolladen_wz_wc_auto] eq "an"
)
(
set wz_Rolladen_haupt A0,
set azi_Rolladen Zu
)

## Die Rollos gehen nur zur im UI eingestellten Zeit runter.
## Funktioniert nur, wenn berücksichtigung Sunset auf "aus" und Automatik "an" gewählt ist!
DOELSEIF
(
[[du_Rolladen_Zeit_wz_ru]|0123456] and
[du_Rolladen_wz_sunset] eq "aus" and
[du_Rolladen_wz_wc_auto] eq "an"
)
(
set wz_Rolladen_haupt A0,
set azi_Rolladen Zu
)

## Die Rollos gehen frühestens zur im UI eingestellten Zeit und spätestens um 12Uhr hoch. Dazwischen mit dem Sonnenaufgang.
## Funktioniert nur, wenn berücksichtigung Sunrise auf "an" und Automatik "an" gewählt ist!
DOELSEIF
(
(
[{sunrise(0,"[du_Rolladen_Zeit_wz_ho]","12:00")}|8] or
[{sunrise(0,"[du_Rolladen_Zeit_wz_ho_we]","12:00")}|7]
) and
[du_Rolladen_wz_sunrise] eq "an" and
[du_Rolladen_wz_wc_auto] eq "an"
)
(
set wz_Rolladen_haupt AI,
set azi_Rolladen Auf
)

## Die Rollos gehen nur zur im UI eingestellten Zeit hoch.
##Funktioniert nur, wenn berücksichtigung Sunset auf "aus" und Automatik "an" gewählt ist!
DOELSEIF
(
(
[[du_Rolladen_Zeit_wz_ho]|8] or
[[du_Rolladen_Zeit_wz_ho_we]|7]
) and
[du_Rolladen_wz_sunrise] eq "aus" and
[du_Rolladen_wz_wc_auto] eq "an"
)
(
set wz_Rolladen_haupt AI,
set azi_Rolladen Auf
)

DOELSE
   NAME       di_wz_Rolladen_auto
   NR         68
   NTFY_ORDER 50-di_wz_Rolladen_auto
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2016-07-27 16:30:21   Device          du_Rolladen_wz_sunset
     2016-07-27 16:30:21   cmd             5
     2016-07-27 16:30:21   cmd_event       du_Rolladen_wz_sunset
     2016-07-27 16:30:21   cmd_nr          5
     2016-07-27 16:30:20   e_du_Rolladen_wz_sunrise_STATE an
     2016-07-27 16:30:21   e_du_Rolladen_wz_sunset_STATE an
     2016-07-27 16:30:21   state           cmd_5
     2016-07-27 16:26:53   timer_1_c1      28.07.2016 00:00:00|0123456
     2016-07-27 16:26:53   timer_2_c2      27.07.2016 21:30:00|0123456
     2016-07-27 16:12:59   timer_3_c3      28.07.2016 04:54:26|8
     2016-07-27 16:26:46   timer_4_c3      28.07.2016 04:54:26|7
     2016-07-27 16:12:59   timer_5_c4      28.07.2016 07:00:00|8
     2016-07-27 16:26:46   timer_6_c4      28.07.2016 08:00:00|7
   Condition:
     0            DOIF_time_once($hash,$hash->{timer}{0},$wday,"0123456") and  InternalDoIf($hash,'du_Rolladen_wz_sunset','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an" and InternalDoIf($hash,'du_Rolladen_wz_wc_auto','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
     1            DOIF_time_once($hash,$hash->{timer}{1},$wday,"0123456") and InternalDoIf($hash,'du_Rolladen_wz_sunset','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "aus" and InternalDoIf($hash,'du_Rolladen_wz_wc_auto','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
     2            ( DOIF_time_once($hash,$hash->{timer}{2},$wday,"8") or  DOIF_time_once($hash,$hash->{timer}{3},$wday,"7") ) and InternalDoIf($hash,'du_Rolladen_wz_sunrise','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an" and InternalDoIf($hash,'du_Rolladen_wz_wc_auto','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
     3            ( DOIF_time_once($hash,$hash->{timer}{4},$wday,"8") or DOIF_time_once($hash,$hash->{timer}{5},$wday,"7") ) and InternalDoIf($hash,'du_Rolladen_wz_sunrise','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "aus" and InternalDoIf($hash,'du_Rolladen_wz_wc_auto','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "an"
   Days:
     0          0123456
     1          0123456
     2          8
     3          7
     4          8
     5          7
   Devices:
     0           du_Rolladen_wz_sunset du_Rolladen_wz_wc_auto
     1           du_Rolladen_wz_sunset du_Rolladen_wz_wc_auto
     2           du_Rolladen_wz_sunrise du_Rolladen_wz_wc_auto
     3           du_Rolladen_wz_sunrise du_Rolladen_wz_wc_auto
     all         du_Rolladen_wz_sunset du_Rolladen_wz_wc_auto du_Rolladen_wz_sunrise
   Do:
     0:
       0            set wz_Rolladen_haupt A0,  set azi_Rolladen Zu
     1:
       0            set wz_Rolladen_haupt A0,  set azi_Rolladen Zu
     2:
       0            set wz_Rolladen_haupt AI, set azi_Rolladen Auf
     3:
       0            set wz_Rolladen_haupt AI,  set azi_Rolladen Auf
     4:
       0
   Helper:
     event      an
     globalinit 1
     last_timer 6
     sleeptimer -1
     timerdev   du_Rolladen_wz_sunset
     timerevent an
     triggerDev du_Rolladen_wz_sunset
     timerevents:
       an
     timereventsState:
       state: an
     triggerEvents:
       an
     triggerEventsState:
       state: an
   Internals:
     0           du_Rolladen_wz_sunset:STATE du_Rolladen_wz_wc_auto:STATE
     1           du_Rolladen_wz_sunset:STATE du_Rolladen_wz_wc_auto:STATE
     2           du_Rolladen_wz_sunrise:STATE du_Rolladen_wz_wc_auto:STATE
     3           du_Rolladen_wz_sunrise:STATE du_Rolladen_wz_wc_auto:STATE
     all         du_Rolladen_wz_sunset:STATE du_Rolladen_wz_wc_auto:STATE du_Rolladen_wz_sunrise:STATE
   Interval:
   Itimer:
     all         du_Rolladen_Zeit_wz_ru du_Rolladen_Zeit_wz_ho du_Rolladen_Zeit_wz_ho_we
   Localtime:
     0          1469656800
     1          1469647800
     2          1469674466
     3          1469674466
     4          1469682000
     5          1469685600
   Readings:
   Realtime:
     0          00:00:00
     1          21:30:00
     2          04:54:26
     3          04:54:26
     4          07:00:00
     5          08:00:00
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Time:
     0          {sunset(0,"16:00","[du_Rolladen_Zeit_wz_ru]")}
     1          [du_Rolladen_Zeit_wz_ru]
     2          {sunrise(0,"[du_Rolladen_Zeit_wz_ho]","12:00")}
     3          {sunrise(0,"[du_Rolladen_Zeit_wz_ho_we]","12:00")}
     4          [du_Rolladen_Zeit_wz_ho]
     5          [du_Rolladen_Zeit_wz_ho_we]
   Timecond:
     0          0
     1          1
     2          2
     3          2
     4          3
     5          3
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   Timers:
     0           0
     1           1
     2           2  3
     3           4  5
   Trigger:
   Triggertime:
     1469647800:
       localtime  1469647800
       Hash:
     1469656800:
       localtime  1469656800
       Hash:
     1469674466:
       localtime  1469674466
       Hash:
     1469682000:
       localtime  1469682000
       Hash:
     1469685600:
       localtime  1469685600
       Hash:
Attributes:
   do         always
   room       Rolladen Settings


Was siehst du? Is wie ne Glaskugel. Oder? :D

Bis denn
SouzA

EDIT: SORRY! Ich habe überlesen, dass ich das DOIF aktualisieren muss!
Das muss ich nun erstmal machen. Was bedeutet, dass ich erstmal schauen muss, wie das geht :)
Melde mich wieder!
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ellert

Nur am Rande: "|0123456" kannst Du weglassen, alle Tage ist default.

SouzA

So, aktualisiert!

Funzt. Bis auf, dass das Datum der am WE auszuführenden Befehle nicht passt. Auch hier wird der nächste Tag angegeben.


Das DOIF kann ja eigentlich alles... kann es mir auch ausspucken welcher Timer aktuell aktiv ist, also wann das Rollo das nächste mal hoch oder runter fährt?

Ich habe FunkOdyssey so verstanden, dass es mit dem Twilight-Modul funktionieren würde.
Aber wenn das Twilight auch im DOIF bearbeitet werden kann, so müssten doch vom sunset ähnliche Werte generiert werden können?

Vielen Dank für eure Hilfe. Die Steuerung läuft nun erstmal so, wie ich es mir vorgestellt habe! :D

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ellert

ZitatAuch hier wird der nächste Tag angegeben.

Die Timer werden unabhängig von den Wochentagen gesetzt, die Tage und die anderen Operanden werden erst geprüft, wenn der Timer fällig ist.

Deshalb kann der nächste Zeitpunkt nur unabhängig von der Wochentagprüfung und den anderen Bedingungen ermittelt werden, z.B. mit min(Timer_1, Timer_2, ...)

SouzA

Hi,

heute ist ein Update vom 98_DOIF mit dabei...
Sind die Änderungen dann mit drin?

Vielen Dank für eine Antwort!

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

FunkOdyssey

Zitat von: SouzA am 29 Juli 2016, 10:40:34
Hi,

heute ist ein Update vom 98_DOIF mit dabei...
Sind die Änderungen dann mit drin?

Vielen Dank für eine Antwort!

Bis denn
SouzA

Heute war kein DOIF-Update. Seit dem 26. April ist das Modul unverändert.

Kann es sein, dass du selber eine Beta hochgeladen hast und diese nicht per "exclude_from_update" vor dem nächsten FHEM-Update geschützt hast? :-)

SouzA

Möglich ist das... Wenn ich das DOIF jetzt excludiere, wie includiere ich es irgendwann wieder?

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ellert

Indem Du es nicht mehr excludierst  ::)

SouzA

Hmm, ich hätte gedacht, dass man das einmal global setzt und man das dann nicht mehr machen müsste.
Wenn man das jedes Mal machen muss, dann ist es klar.

Danke.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

Ellert

Du excludierst einmal, solange Du die Beta-Version laufen hast, wenn dann die Beta-Version ins normale Update geht, dann nimmst Du die Exklusion wieder raus.