Hallo,
ich möchte testweise mal ein eigenes Modul schreiben.
Das soll regelmäßig etwas machen. Das macht man vermutlich über einen ausgelösten Event.
Ich kann aber in der Erklärung zur Modulprogrammierung außer den dort genannten Events nichts finden.
Ich möchte eigentlich kein extra "Device" wie ein "AT" haben.
Gibt es da eine Möglichkeit?
Ansonsten wäre meine Idee, dass das Modul beim Initialisieren, das kann man ja wohl als Event erkennen, selbst einen "AT" anlegt, der dann halt was triggert.
Klingt so, als wäre InternalTimer dein Freund.
Oder eben eine notifyFn, die auf $init_done lauscht (finde ich aber weniger elegant).
Beispielcode gibt es häufiger, ich habe z.B. den WeekdayTimer jüngst auf so eine InternalTimer-Lösung umgestellt:
sub WeekdayTimer_Define($$) {
my ($hash, $def) = @_;
[...]
InternalTimer(time(), "WeekdayTimer_Start",$hash,0);
return undef;
}.
sub WeekdayTimer_Start($) {
my ($hash) = @_;
my $name = $hash->{NAME};
my @a = split("[ \t\\\n]+", $hash->{DEF});
[...]
return undef;
}
Super. Das ist genau das, was ich gesucht habe.
Danke