FHEM Forum

FHEM => Sonstiges => Thema gestartet von: mcp am 23 Dezember 2022, 14:44:55

Titel: InternalTimer änderbar?
Beitrag von: mcp am 23 Dezember 2022, 14:44:55
Hallo zusammen,

ich möchte aus einem Modul heraus interne Timer, die ebenso aus dem Modul heraus erstellt werden, nachträglich ändern, genauer gesagt die TRIGGERTIME.

Das Ändern ist nicht das Problem sondern eher, dass FHEM es nicht interessiert und die Funktion bzw. in diesem Fall eine anonyme sub nicht zur geänderten Zeit aufruft.

Was muss man tun damit FHEM die Timer bspw. neu einliest bzw. zur geänderten Zeit ausführt?

Oder muss man stattdessen den vorhandenen Timer löschen, den CODE ref deparsen und damit einen neuen Timer aufrufen?

Dankeschön :)
Titel: Antw:InternalTimer änderbar?
Beitrag von: CoolTux am 23 Dezember 2022, 14:48:56
Die alten, oder den alten Timer löschen und dann wieder neu anlegen entsprechend dem Code.

Ist das Dein Modul oder willst Du in ein Modul als User eingreifen (was untypisch wäre)?
Titel: Antw:InternalTimer änderbar?
Beitrag von: mcp am 23 Dezember 2022, 14:49:54
Mist, ich hab die Antwort befürchtet ;-/

Ist mein Modul...
Titel: Antw:InternalTimer änderbar?
Beitrag von: Beta-User am 23 Dezember 2022, 14:54:18
Zitat von: mcp am 23 Dezember 2022, 14:44:55
Was muss man tun damit FHEM die Timer bspw. neu einliest bzw. zur geänderten Zeit ausführt?
Jedenfalls habe ich das bisher immer so gemacht, und auch DefFn() von 90_at.pm macht es so ;) .

Falls du ein gepackagtes Modul hast, gibt es die Funktion resetRegIntTimer() aus dem Hilfscode in https://svn.fhem.de/trac/browser/trunk/fhem/lib/FHEM/Core/Timer/Register.pm. Macht aber nur Sinn, wenn du eine Vielzahl von vorher nicht absehbaren Timern mit unterschiedlichen Namen und Funktionen verwalten willst...
Titel: Antw:InternalTimer änderbar?
Beitrag von: rudolfkoenig am 23 Dezember 2022, 15:09:39
ZitatIst mein Modul...
Warum muss man in diesem Fall "den CODE ref deparsen" ?
Titel: Antw:InternalTimer änderbar?
Beitrag von: mcp am 23 Dezember 2022, 15:27:44
nein, muss man natürlich nicht :)

Wollte wahrscheinlich damit nur zum Ausdruck bringen, daß es sich um eine anonyme Funktion handelt.