Hallo,
ich habe folgenden Code in meiner 99_MyUtils.pm warum funktioniert mein NotifyFn nicht?
package main;
use strict;
use warnings;
use POSIX;
sub MyUtils_Initialize($);
sub MyUtils_Notify($$);
sub MyUtils_Initialize($) {
my ($hash) = @_;
$hash->{NotifyFn} = "MyUtils_Notify";
Log3 "MyUtils", 1, "MyUtils INIT!";
return $hash;
}
sub MyUtils_Notify($$) {
my ($ntfy, $dev) = @_;
Log3 "MyUtils", 1, "MyUtils_Notify START!";
return if ($dev->{NAME} ne "global" || !grep(m/^INITIALIZED$/, @{$dev->{CHANGED}}));
fhem("set HMLAN hmPairForSec 900");
fhem("set HZ_1OG_Kueche_Clima regSet winOpnDetFall 0.5");
fhem("set HZ_1OG_Kueche_Clima controlMode auto");
fhem("set CUL_HM_HM_CC_RT_DN_2494B1 regSet winOpnDetFall 0.5");
fhem("set CUL_HM_HM_CC_RT_DN_2494B1 controlMode auto");
delete $modules{MyUtils}{NotifyFn};
}
1;
MyUtils_Notify wird aber nie gestartet.
Grüße Stefan
Zitatwarum funktioniert mein NotifyFn nicht?
Weil 99_MyUtils.pm als Hilfsmodul lediglich eine Funktionsbibliothek ist, und keine Gerätedefinition.
OK - grundsätzlich möchte ich, dass automatisch nach dem INIT aller Geräte bestimmte Kommandos abgearbeitet werden. Wie realisiere ich dies dann?
define blaNotify notify global:INITIALIZED {allesNachDemInit}
und in der 99_MyUtils.pm muss dann natürlich die Funktion allesNachDemInit vorhanden sein:
sub allesNachDemInit {
fhem("set HMLAN hmPairForSec 900");
fhem("set HZ_1OG_Kueche_Clima regSet winOpnDetFall 0.5");
fhem("set HZ_1OG_Kueche_Clima controlMode auto");
fhem("set CUL_HM_HM_CC_RT_DN_2494B1 regSet winOpnDetFall 0.5");
fhem("set CUL_HM_HM_CC_RT_DN_2494B1 controlMode auto");
return;
}
So wirklich viel Sinn ergibt mir das aber nicht, was Du da tun willst.
Warum um alles in der Welt will jemand hmPairForSec automatisiert setzen, um neue Geräte anzulernen und dann gleichzeitig sofort hinterher Kommandos schicken? Völlig absurd.
Das ist ein Test und ein Beispiel.
Kann mir jemand bitte helfen? Ich möchte gerne nach dem INIT bestimmte Prüfungen / Perl Code ausführen. Wie mache ich das?
betateilchen hat dir doch den Weg beschrieben...
*urg* das kommt davon wenn man mit dem Handy im Forum liest. Tausend mal sorry und vielen Dank! Genau der Post ist mir durch das Radar gerutscht.
Vielen Dank!
super geht alles! Man muss nur wissen, dass die define Zeile erst gegen Ende kommen darf.