FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Loredo am 13 Juli 2015, 12:55:26

Titel: [Jahreszeit berechnen] DOIF manuell auslösen
Beitrag von: Loredo am 13 Juli 2015, 12:55:26
Hallo zusammen,


ich habe ein DOIF mit Zeitsteuerung definiert. Da ich aber für die erste Berechnung des Status nicht warten möchte, möchte ich das DOIF Device einmalig manuell antriggern. Wie macht man sowas? Ich konnte dazu leider keine Informationen finden  :-[


Hintergrund: Ich habe mir ein DOIF zur Berechnung der aktuellen Jahreszeit gebaut:




define di_Season DOIF (
   my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
   $mon++;


   [00:00] and
   (
      ($mon == 3 && $mday >= 20 )
      || $mon == 4
      || $mon == 5
      || ( $mon == 6 && $mday < 21 )
   )
)


DOELSEIF
(
   my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
   $mon++;


   [00:00] and
   (   ( $mon == 6 && $mday >= 21 )
      || $mon == 7
      || $mon == 8
      || ( $mon == 9 && $mday < 22 ) )
)


DOELSEIF
(
   my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
   $mon++;


   [00:00] and
   (   ( $mon == 9 && $mday >= 22 )
      || $mon == 10
      || $mon == 11
      || ( $mon == 12 && $mday < 21 ) )
)


DOELSEIF
(
   my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
   $mon++;


   [00:00] and
   (   ( $mon == 12 && $mday >= 21 )
      || $mon == 1
      || $mon == 2
      || ( $mon == 3 && $mday < 20 ) )
)


attr di_Season alias Season
attr di_Season cmdState spring|summer|autumn|winter
attr di_Season event-on-change state



Ich weiß, dass ich mit "setreading di_Season state summer" das Reading auch manuell setzen kann, bis es das erste Mal berechnet wird.
Fände es aber besser das Modul irgendwie einmal auszulösen, damit ich dann auch direkt die anderen internen DOIF Readings erstellt bekomme  8)
Titel: Antw:[Jahreszeit berechnen] DOIF manuell auslösen
Beitrag von: JoWiemann am 13 Juli 2015, 13:18:08
Hallo,

mal ein bischen klug scheißen: http://calumoth.de/wordpress/php-kalender-teil-4-jahreszeiten-148/

Grüße Jörg
Titel: Antw:[Jahreszeit berechnen] DOIF manuell auslösen
Beitrag von: Loredo am 13 Juli 2015, 13:22:55
Danke, mir genügt meine Genauigkeit (https://de.wikipedia.org/wiki/Jahreszeit).


Meine Frage lautete anders  ;)
Titel: Antw:[Jahreszeit berechnen] DOIF manuell auslösen
Beitrag von: Hans Franz am 13 Juli 2015, 14:05:53
Hallo,
Ich wurde es so ähnlich riskieren:
{
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
$mon++;
system("/bin/date 09220000");
system("/bin/date $mon$mday$hour$min");
}

und hoffen, daß zwischenzeitlich nicht zu viele Logeinträge ein falsches Datum aufweisen.

Gruß
Hans