Ich möchte gerne aus einem DOIF Emails versenden, wenn ein Device eine schwache Batterie meldet. Die Email Routine DebianMail funktioniert bei mir in einem notify oder direkt in der FHEM Kommandozeile mit
{DebianMail('meineAdresse@web.de','FHEM: Batterie schwach','Vielleicht mal tauschen')}
in dem folgenden DOIF aber nicht:
{if([":^battery: low"])
{DebianMail('hechinger@web.de','FHEM: Batterie schwach','Vielleicht mal tauschen')}
}
ich bekomme dann in dem Reading eine Fehlermeldung
block_01 condition c01: Undefined subroutine &DOIF::DebianMail called, line 2.
und keine Email
Dies wundert mich, da die Routine ja wie gesagt, aus anderer Stelle aufgerufen, funktioniert und die subroutine in Ordnung sein müsste!
Hat irgendjemand eine Idee, was ich noch versuchen kann?
Zitat von: Fusssel am 01 März 2022, 15:07:58
Ich möchte gerne aus einem DOIF Emails versenden, wenn ein Device eine schwache Batterie meldet. Die Email Routine DebianMail funktioniert bei mir in einem notify oder direkt in der FHEM Kommandozeile mit
{DebianMail('meineAdresse@web.de','FHEM: Batterie schwach','Vielleicht mal tauschen')}
in dem folgenden DOIF aber nicht:
{if([":^battery: low"])
{DebianMail('hechinger@web.de','FHEM: Batterie schwach','Vielleicht mal tauschen')}
}
ich bekomme dann in dem Reading eine Fehlermeldung
block_01 condition c01: Undefined subroutine &DOIF::DebianMail called, line 2.
und keine Email
Dies wundert mich, da die Routine ja wie gesagt, aus anderer Stelle aufgerufen, funktioniert und die subroutine in Ordnung sein müsste!
Hat irgendjemand eine Idee, was ich noch versuchen kann?
Du befindest dich hier DOIF-Package, daher musst du ::DebianMail angeben
Danke Damian,
jetzt funktioniert es. Ganz verstanden habe ich es aber wohl noch nicht. Ist denn ein Notify kein Packet und braucht deshalb kein ::?
Besten Gruß
Martin
Zitat von: Fusssel am 01 März 2022, 15:43:29
Danke Damian,
jetzt funktioniert es. Ganz verstanden habe ich es aber wohl noch nicht. Ist denn ein Notify kein Packet und braucht deshalb kein ::?
Besten Gruß
Martin
ja, DOIF arbeitet im Perl-Modus im eigenen package namens DOIF, das hat den Vorteil, dass man eigene Funktionen definieren kann, die nicht mit anderen des System kollidieren können. Notify wie FHEM selbst arbeitet im package main, daher die Doppelpunkte.