FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: justme1968 am 29 Januar 2013, 10:52:19

Titel: twilight vorschlag
Beitrag von: justme1968 am 29 Januar 2013, 10:52:19
ich denke der vorschlag ist hier besser aufgehoben als dort Link (http://forum.fhem.de/index.php?topic=10369.0).

eigentlich wäre es schön twilight genauso verwenden zu können wie sunrise/sunset und einen aufruf mit min und max auch für die verschiedenen twilight zeitpunkte zu haben. vielleicht könnte man etwas in dieser art
sub
twilight($$$$) {
  my ($twilight, $reading, $min, $max) = @_;
   
  my $t = hms2h(ReadingsVal($twilight,$reading,0));
   
  $t = hms2h($min) if(defined($min) && (hms2h($min) > $t));
  $t = hms2h($max) if(defined($max) && (hms2h($max) < $t));
   
  return h2hms_fmt($t);
}
noch in twilight einbauen. die sonderbehandlung um das event auf den nächsten tag zu verschieben wenn es direkt aus dem at aufgerufen wird sollte dann hier natürlich auch noch mit rein.

damit  wäre dann z.b. so etwas möglich:define a15 at *{twilight("myTwilight","ss_indoor","18:00","21:00")} set lamp1 on

gruss
andre
Titel: Antw:twilight vorschlag
Beitrag von: cotecmania am 02 Januar 2014, 17:50:19
Finde den Vorschlag auch gut !

Gruss
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 02 Januar 2014, 18:21:17
Ich denke mal darueber nach, wie ich es am einfachsten realisieren kann!
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 02 Januar 2014, 21:25:40
- dokumentation improved
59_Twilight now supports the function >>>> twilight($twilight, $reading, $min, $max) that works like sunset_abs() sunrise_abs()

Funktion eingebaut - eingecheckt! Prüft mal ob es so ok ist!

Zitatdie sonderbehandlung um das event auf den nächsten tag zu verschieben wenn es direkt aus dem at aufgerufen wird sollte dann hier natürlich auch noch mit rein.

Dieses Sonderverhalten habe ich erst einmal nicht eigebaut - ist in TW auch kompliziert, weil die ss/sr des nächsten Tages erst errechnet werden müssten. Vielleicht fällt uns ja noch etwas einfaches dazu ein.
Titel: Antw:twilight vorschlag
Beitrag von: cotecmania am 02 Januar 2014, 21:55:59
Hi,

das ging jetzt aber doch schnell  :)

Hast Du das mit dem Offset auch eingebaut oder wie kann ich die Zeiten bei Twilight mit den anderen Parametern anpassen ?
Mein indoor_horizon ist bereits 0 und wenn ich ihn erhoehe gehen die Schaltzeiten von ss_weather zurueck also Richtung frueher. Ich benötige eine Verschiebung nach hinten (spaeter).
Muss ich da mit den Längengraden spielen ?

Gruss
Titel: Antw:twilight vorschlag
Beitrag von: justme1968 am 02 Januar 2014, 22:04:48
klasse :)

wie wäre es einfach 24 stunden drauf zu addieren. das ist in erster näherung glaube ich besser als nichts.

gruss
  andre
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 02 Januar 2014, 22:26:34
Zitatwie wäre es einfach 24 stunden drauf zu addieren. das ist in erster näherung glaube ich besser als nich
Zitat

Unter welchen Umständen?
Wenn der Schaltzeitpunkt für den aktuellen Tag abgelaufen ist?
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 02 Januar 2014, 22:29:01
ZitatMein indoor_horizon ist bereits 0 und wenn ich ihn erhoehe gehen die Schaltzeiten von ss_weather zurueck also Richtung frueher. Ich benötige eine Verschiebung nach hinten (spaeter).

Ich meine, du kannst als indoor_horizon auch negative Werte angeben.
Titel: Antw:twilight vorschlag
Beitrag von: justme1968 am 02 Januar 2014, 22:53:48
ja. genau. wenn der zeitpunkt für den aktuellen tag abgelaufen ist. dann kann man es direkt in einem at verwenden.

gruss
  andre
Titel: Antw:twilight vorschlag
Beitrag von: cotecmania am 02 Januar 2014, 23:44:05
Zitat von: Dietmar63 am 02 Januar 2014, 22:29:01
Ich meine, du kannst als indoor_horizon auch negative Werte angeben.

Leider Nein.
Wenn ich -1 setze wird trotzdem 0 in den Settings angezeigt und die Zeiten aendern sich nicht.
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 03 Januar 2014, 01:03:09
dann habe ich ja zwei Dinge, die ich entsprechend verändern kann.
Titel: Antw:twilight vorschlag
Beitrag von: Strippenzieher am 03 Januar 2014, 07:42:56
Och Menno ... Ihr seid ja alle echt mal voll und sowieso ....

Jetzt habe ich mir gerade soviel Mühe gegeben twilight so in ein Notify rein zu mogeln, dass es wie sunrise funzt und nu verbessert ihr twilight so, dass man es wie sunrise nutzen kann ...**GRmPF**
Funktioniert denn jetzt auch:
define Sonnenaufgang at +*00:00:10 {my $Sonnenaufgang = twilight("sr_indoor"); Log 3, "Sonnenaufgang ist: $Sonnenaufgang Uhr"}
Oder wie muß ich das dann schreiben ??
BTW. ich finde es immer ziemlich irritierend wenn ich 32:26 Uhr lese, 8:26 Uhr wäre schon besser, ich weiß auch nicht was da das prob. mit at ist  ...

Sehr geile Sache, danke für die Erweiterung ... Und das meine ich ernst!!

MFG Chris
Titel: Antw:twilight vorschlag
Beitrag von: Dietmar63 am 03 Januar 2014, 12:20:47
nein, so:

define a15 at *{twilight("myTwilight","ss_indoor","18:00","21:00")} set lamp1 on

twilight akzeptiert zur Zeit vier Parameter:
twilight("myTwilight","ss_indoor","18:00","21:00")
wenn weder min noch max interessant sind, kann undef mitgegeben werden:
twilight("myTwilight","ss_indoor",undef,undef)

Einen Nachteil so zu verfahren will ich nicht verschweigen: Der at stellt immer den timer für den nächsten Tag kurz nachdem er geschaltet hat ein. Zu diesem Zeitpunkt hat TW aber noch nicht die Werte des folgenden Tages, so dass der at immer mit den Zeiten des Vortages schaltet.

Warum der Umweg über ein at?
Macht es doch einfach so:
define TwilightMessage1       notify Twilight.*:aktEvent:.*ss_weather.*      set lamp1 on
Titel: Antw:twilight vorschlag
Beitrag von: Strippenzieher am 07 Januar 2014, 11:36:22
Zitat von: Dietmar63 am 03 Januar 2014, 12:20:47
nein, so:

define a15 at *{twilight("myTwilight","ss_indoor","18:00","21:00")} set lamp1 on

twilight akzeptiert zur Zeit vier Parameter:
twilight("myTwilight","ss_indoor","18:00","21:00")
wenn weder min noch max interessant sind, kann undef mitgegeben werden:
twilight("myTwilight","ss_indoor",undef,undef)

Einen Nachteil so zu verfahren will ich nicht verschweigen: Der at stellt immer den timer für den nächsten Tag kurz nachdem er geschaltet hat ein. Zu diesem Zeitpunkt hat TW aber noch nicht die Werte des folgenden Tages, so dass der at immer mit den Zeiten des Vortages schaltet.

Warum der Umweg über ein at?
Macht es doch einfach so:
define TwilightMessage1       notify Twilight.*:aktEvent:.*ss_weather.*      set lamp1 on
so ähnlich mach ich es ja momentan schon ^^

Zitat von: Strippenzieher am 07 Januar 2014, 08:42:11
So mal als Zusammenfassung den endgültigen Code noch:
define WakeUp notify (Handys|Twilight) {}
Dann in DEF nachgetragen:
(Handys|Twilight) {
if (Value("Handys") eq "present" && Value("Twilight") eq "4" && Value("HUEDevice2") eq "off" && Value("HUEDevice1") eq "off") {
fhem ("set HUEDevice2 rgb FF6905:transitiontime 6000");;
fhem ("set HUEDevice1 on:transitiontime 6000");;
fhem ("define WakeUp_Aus at +01:00 set HUEDevice2 off;; set HUEDevice1 off")}}


Nur eben über den "STATE" von meinem eingerichteten "Twilight" ...
Ich hatte nur gedacht, ich könnte mir mit dem "at" das define von "Twilight" sparen.

MFG Chris