DOIF regelmäßig alle x tage zu einer Uhrzeit ausführen...

Begonnen von Tsturm, 07 April 2019, 19:43:16

Vorheriges Thema - Nächstes Thema

Bartimaus

#15
So, Test läuft.

Um 09:00 hat es nicht gefeuert, weil +2 Tage.
Timer C01 steht auf übermorgen.

Jetzt heisst es warten

Internals:
  CFGFN     
  DEF        ([([09:00]+2*86400)])
(set PushiPhone message Testberegnung)
  FUUID      5d8324b5-f33f-dcb4-827c-bb432b0ab651dc72
  MODEL      FHEM
  NAME      TestBeregnung
  NR        747591
  NTFY_ORDER 50-TestBeregnung
  STATE      cmd_2
  TYPE      DOIF
  VERSION    19786 2019-07-05 21:47:08
  READINGS:
    2019-09-19 08:52:13  cmd            2
    2019-09-19 08:52:13  cmd_event      TestBeregnung
    2019-09-19 08:52:13  cmd_nr          2
    2019-09-19 08:52:05  mode            enabled
    2019-09-19 08:52:13  state          cmd_2
    2019-09-19 08:52:06  timer_01_c01    21.09.2019 09:00:00
  Regex:
    accu:
  attr:
    cmdState:
    wait:
    waitdel:
  condition:
    0          ::DOIF_time_once($hash,0,$wday)
  days:
  devices:
  do:
    0:
      0          set PushiPhone message Testberegnung
    1:
  helper:
    globalinit 1
    last_timer 1
    sleeptimer -1
    timerdev 
    timerevent
    timerevents
    timereventsState
    triggerDev
    DOIF_eventas:
      cmd_nr: 2
      cmd: 2
      cmd_event: TestBeregnung
      state: cmd_2
  internals:
  intervalfunc:
  itimer:
  localtime:
    0          1569049200
  readings:
  realtime:
    0          09:00:00
  time:
    0          ([09:00]+2*86400)
  timeCond:
    0          0
  timer:
    0          0
  timers:
    0          0
  triggertime:
    1569049200:
      localtime  1569049200
      hash:
  uiState:
  uiTable:
Attributes:
  room      TestDOIF


Edith:

Ha, ([59:00]) (set bla on) funzt tatsächlich.... Timer C01 auf 21.09.2019 11:00 Uhr....  :o :D
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Damian

Zitat von: Bartimaus am 19 September 2019, 10:09:47
Edith:

Ha, ([59:00]) (set bla on) funzt tatsächlich.... Timer C01 auf 21.09.2019 11:00 Uhr....  :o :D

Naja, wenn 42 funktioniert, dann auch 59 :) Bevor du weiter probierst, die größte mögliche Zahl an dieser Stelle liegt bei 99.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mi.ke

Zitat von: Damian am 07 April 2019, 20:55:58
Es gibt die Zeitvariable $yday mit Tag des Jahres.

Mit Modulo-Operator kannst du die Teilbarkeit überprüfen:

An ungeraden Tagen:

([18:00] and $yday %  2)

oder

jeden dritten Tag:

([18:00] and !($yday %  3))

usw.

Würde das auch mit Monaten funktionieren?

([18:00] and !($month % 3))

Oder gibt es einen anderen Weg, dass DOIF alle drei Monate auszuführen?

cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Per

Dann würde das in dem Monat aber jeden Tag ausgeführt werden.

Damian

Zitat von: mi.ke am 01 Januar 2023, 14:25:11
Würde das auch mit Monaten funktionieren?

([18:00] and !($month % 3))

Oder gibt es einen anderen Weg, dass DOIF alle drei Monate auszuführen?

cheers
mi.ke

Dann eher:

([18:00] and (($month-1) % 3) == 0 and $mday == 1)

ergibt:

01.01, 01.04, ...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mi.ke

Zitat von: Per am 01 Januar 2023, 15:12:18
Dann würde das in dem Monat aber jeden Tag ausgeführt werden.

Zitat von: Damian am 01 Januar 2023, 16:33:14
Dann eher:

([18:00] and (($month-1) % 3) == 0 and $mday == 1)

ergibt:

01.01, 01.04, ...

Danke Euch Beiden
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara