FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: oaotto_123 am 27 September 2024, 13:38:14

Titel: Callmonitor
Beitrag von: oaotto_123 am 27 September 2024, 13:38:14
Hallo,
möchte über den Callmonitor mit einem notify
eine Meldung auf meiner Box aufploppen lassen,
finde aber den Fehler nicht bekomm auch keine Fehlermeldung

my_callmonitor:.*ring {
  my $number = ReadingsVal($NAME,"internal_number",99);
  my $handy="";
  if ($number == xxxx1) {$handy="tel1"}
  if ($number == xxx2) {$handy="tel2"}
  if ($number == xxxx3) {$handy="tel3"}
  fhem{ GetFileFromURL("http://192.168.178.177/control/message?popup=[my_callmonitor:external_name]\n [my_callmonitor:external_number]")}
}
Der befehl geht sendet aber nur "Text"
{ GetFileFromURL("http://192.168.178.177/control/message?popup=Text") }

das geht auch
my_callmonitor:.*ring {
  my $number = ReadingsVal($NAME,"internal_number",99);
  my $handy="";
  if ($number == xxxx1) {$handy="tel1"}
  if ($number == xxx2) {$handy="tel2"}
  if ($number == xxxx3) {$handy="tel3"}
  fhem("set teleBot message \@$handy Anruf von: [my_callmonitor:external_name]\n [my_callmonitor:external_number] \n ( $mday:$month:$year / $hms Uhr)")
}

Gruß Otto
Titel: Aw: Callmonitor
Beitrag von: Otto123 am 27 September 2024, 13:43:03
Hi,

könnte so gehen (ungetestet und nicht "schön gemacht"):
my_callmonitor:.*ring {
  my $number = ReadingsVal($NAME,"internal_number",99);
  my $external_number = ReadingsVal($NAME,"external_number",99);
  my $external_name = ReadingsVal($NAME,"external_name",99);
  my $handy="";
  if ($number == xxxx1) {$handy="tel1"}
  if ($number == xxx2) {$handy="tel2"}
  if ($number == xxxx3) {$handy="tel3"}
  fhem{ GetFileFromURL("http://192.168.178.177/control/message?popup=$external_name\n $external_number")}
}
Info: im set Befehl geht set magic ([my_callmonitor:external_number]) im GetFileFromUrl() gibt es das nicht.

Gruß Otto
Titel: Aw: Callmonitor
Beitrag von: oaotto_123 am 27 September 2024, 14:39:07
Hallo, danke schon mal ,bekomm da aber die Fehlermeldung

Global symbol "$external_name" requires explicit package name (did you forget to declare "my $external_name"?) at (eval 14849289) line 7.
Global symbol "$external_number" requires explicit package name (did you forget to declare "my $external_number"?) at (eval 14849289) line 7.
wie kann ich das umgehen ?

Gruß Otto
Titel: Aw: Callmonitor
Beitrag von: tobi01001 am 27 September 2024, 16:34:00
Hi,

pack mal die beiden $NAME im ReadingsVal in "", also "$NAME".

Gruß,
Tobias
Titel: Aw: Callmonitor
Beitrag von: Otto123 am 27 September 2024, 16:35:21
Sorry, jetzt erst gesehen: Die Zeile
  fhem{ GetFileFromURL("http://192.168.178.177/control/message?popup=$external_name\n $external_number")}
ist doch Unfug? Das muss einfach ohne fhem{} aufgerufen werden
  GetFileFromURL("http://192.168.178.177/control/message?popup=$external_name\n $external_number");
GetFileFromURL() ist kein FHEM Befehl sondern eine Perlfunktion.
Titel: Aw: Callmonitor
Beitrag von: oaotto_123 am 29 September 2024, 15:00:16
Hallo habs so probiert:
my_callmonitor:.*ring {
  my $number = ReadingsVal($NAME,"internal_number",99);
  my $handy="";
  if ($number == xxxx1) {$handy="tel1"}
  if ($number == xxx2) {$handy="tel2"}
  if ($number == xxxx3) {$handy="tel3"}
GetFileFromURL("http://192.168.178.177/control/message?popup=$external_name\n $external_number");

}
wenn ich so eingebe kommen die Fehler..:
Global symbol "$external_name" requires explicit package name (did you forget to declare "my $external_name"?) at (eval 787546) line 7.
Global symbol "$external_number" requires explicit package name (did you forget to declare "my $external_number"?) at (eval 787546) line 7.

Gruß Otto
Titel: Aw: Callmonitor
Beitrag von: Otto123 am 29 September 2024, 15:18:44
Da fehlt jetzt wieder die Hälfte, also nochmal im Ganzen:
my_callmonitor:.*ring {
  my $number = ReadingsVal($NAME,"internal_number","error");
  my $handy=""; 
  my $external_number = ReadingsVal($NAME,"external_number","error");
  my $external_name = ReadingsVal($NAME,"external_name","error");
  if ($number == xxxx1) {$handy="tel1"};
  if ($number == xxx2) {$handy="tel2"};
  if ($number == xxxx3) {$handy="tel3"};
  GetFileFromURL("http://192.168.178.177/control/message?popup=$external_name\n $external_number");
}

Gruß Otto