[Jahreszeit berechnen] DOIF manuell auslösen

Begonnen von Loredo, 13 Juli 2015, 12:55:26

Vorheriges Thema - Nächstes Thema

Loredo

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)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Hans Franz

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
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20