FHEM Forum

FHEM => Automatisierung => Thema gestartet von: dietzi am 07 Mai 2019, 08:58:25

Titel: [Gelöst] Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: dietzi am 07 Mai 2019, 08:58:25
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
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: amenomade am 07 Mai 2019, 09:17:48
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")
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: dietzi am 07 Mai 2019, 09:45:31
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.....
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: marvin78 am 07 Mai 2019, 09:53:05
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.
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: dietzi am 07 Mai 2019, 09:53:40
Geht auch nicht. Habe inzwischen alle Möglichkeiten durch.....
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: marvin78 am 07 Mai 2019, 09:53:53
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.
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: dietzi am 07 Mai 2019, 09:55:22
defmod n_test notify device:reading:.* {
  if($EVTPART1 eq "event") {
    fhem('set TelegramBot send @Kontakt_Name Nachricht');
  }
}
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: marvin78 am 07 Mai 2019, 10:02:21
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?
Titel: Antw:Telegram Nachricht an Kontakt senden @ explicit package name
Beitrag von: dietzi am 07 Mai 2019, 10:41:30
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