Moin,
ich habe ein notify mit folgender enthaltenen Zeile:
fhem("set TelegramBot send @Kontakt_Name Nachricht");
Allerdings scheitert es an dem @-Zeichen. Im Log ist folgender Fehler zu sehen:
Global symbol "@Kontakt_Name" requires explicit package name (did you forget to declare "my @Kontakt_Name"?) at (eval 1090263) line 4.
Wie muss ich das @-Zeichen escapen damit alles rund läuft?
LG Dietzi
Ich würde sagen: mit \@
Ansonsten single quotes benutzen: 'set TelegramBot....' (solange deine Nachricht keine Variable enthält. Ggf. musst Du dann dieses String mit "." teilen und wo Variable sind, wieder die double quotes nutzen), z.B.:
fhem('set TelegramBot send @Kontakt '. "teil mit $var $iable")
Hilft alles leider nicht.
@Kontakt_Name
\@Kontakt_Name
'@Kontakt_Name'
'\@Kontakt_Name'
"@Kontakt_Name"
"\@Kontakt_Name"
Gebe ich den Befehl manuell ein läuft alles durch. Nur im notify funktionert es nicht. Es scheitert am @
Perl ist scheinbar der Meinung dass es sich durch das @ um eine Variable handelt was aber keine ist.....
Was ist mit dem hier?
fhem('set TelegramBot send @Kontakt_Name Nachricht');
Sonst musst du schon ein wenig mehr Infos bieten (bspw. das ganze notify). Du kannst nicht erwarten, dass man den Rest errät.
Geht auch nicht. Habe inzwischen alle Möglichkeiten durch.....
Zitat von: marvin78 am 07 Mai 2019, 09:53:05
Sonst musst du schon ein wenig mehr Infos bieten (bspw. das ganze notify). Du kannst nicht erwarten, dass man den Rest errät.
defmod n_test notify device:reading:.* {
if($EVTPART1 eq "event") {
fhem('set TelegramBot send @Kontakt_Name Nachricht');
}
}
Escape bitte mal mit doppeltem @.
Kommt hier der selbe Fehler, wie zu Beginn?
Was ergibt
{fhem('set TelegramBot send @Kontakt_Name Nachricht')}
in der Kommandozeile?
So.... War ein Fehler meinerseits. Wenn man ein Test-Notify anlegt und das update-reading nicht richtig setzt im Device wird es nichts....
Die richtige Anwendung ist mit Single-Quotes
fhem('set TelegramBot send @Kontakt_Name Nachricht');
Danke für eure Hilfe.
LG Dietzi