Hi,
ich möchte verzögert auf ein Notify reagieren (Strommessung + Abschaltung des WallPlugs nach einer bestimmten Zeit). Im Notify verwende ich folgenden Perl-Aufruf:
WP1:(on|off) {
EventHandlerWP1Impl($EVENT);
}
Die Perl-Funktion sieht so aus (die Methode "DeleteTimerIfDefined" prüft ob der Timer existiert und löscht diesen ggf., analog zu defmod):
sub EventHandlerWP1Impl($)
{
my ($ev) = @_;
DeleteTimerIfDefined('tmp_timer_WP1AutoOff');
if($ev eq 'on' or $ev eq 'an')
{
my $ct = ReadingsVal("dAutoOffWP1", "cycleTime", "00:10:00");
fhem("define tmp_timer_WP1AutoOff at +*$ct { CheckWallplugPowerCyclic();;}");
}
}
Die Funktion aus dem Timer-Callback:
sub CheckWallplugPowerCyclic()
{
my $pwr = ReadingsNum("WP1", "power", -1);
if($pwr >= 0 && $pwr <= $mp)
{
fhem("set WP1 off");
}
}
}
Mein Problem ist, dass FHEM nach jedem Notify strukturelle Veränderungen an der Konfiguration meldet, als ob ich die cfg verändert habe und speichern muss.
Kann man das irgendwie umgehen, bzw. darf ich nur bestimmte Timer temporär verwenden?
Danke im Voraus!