FB_CALLMONITOR - "GET showPhonebookEntries" nicht vorhanden

Begonnen von alexmetz, 06 April 2018, 21:10:45

Vorheriges Thema - Nächstes Thema

alexmetz

Hallo zusammen,

habe den callmonitor schon seit einiger Zeit am laufen und wollte nun die Rückwärtssuche für das fritzbox-Telefonbuch aktivieren. Wenn jemand anruft zeigt er mir in den Readings auch den entsprechenden Namen.

Bei "GET showPhonebookIDs" kommt auch
Id    Name
-----------------
0   - Telefonbuch


Die Verbindung scheint also zu funktionieren. Allerdings gibt es kein "GET showPhonebookEntries". Der Eintrag existiert schlicht nicht. Gebe ich es in die Kommandozeile ein, kommt:
unknown argument showPhonebookEntries, choose one of search showPhonebookIds

Ein set rereadPhonebook hilft auch nix.

Meine config:
defmod FBcallmon FB_CALLMONITOR fritz.box
attr FBcallmon fritzbox-remote-phonebook 1
attr FBcallmon fritzbox-remote-phonebook-via tr064
attr FBcallmon group Fritzbox
attr FBcallmon icon it_telephone
attr FBcallmon local-area-code 089
attr FBcallmon reverse-search phonebook
attr FBcallmon room EG_Flur,x_Geräte



Eigentliches Ziel ist es irgendwie das FB-Telefonbuch nach Namen zu durchsuchen, um die zugehörige Telefonnummer zu bekommen, um diese dann anzurufen, also irgendwie so:{ rufjemandenan("Gustav")}

Wäre dankbar für Tips, warum der Eintrag nicht existiert und wie ich das Telefonbuch durchsuchen kann.

LG
Alex
FHEM auf RaspberryPi 4
Homematic

kct-networx

Hi,
bei mir ist es genau so.
Bekomme es auch nicht aktiviert.
Telefonbuch wird auch nicht berücksichtigt.

Außerdem wird im frontend FTUI neuerdings meine eigene Vorwahl vor der eigentlichen Rufnummer angezeigt. Also beispielsweise 069496911223344 wenn die Nummer 06911223344 anruft.
Sehr seltsam.
Habe es noch nicht greifen können wo hier das Problem liegt.

Grüße
Markus

JoWiemann

Hm, da hat sich wohl einer der Verletzung der Sorgfaltspflicht schuldig gemacht  ;)

Es gibt: $hash->{helper}{PHONEBOOKS} und $hash->{helper}{PHONEBOOK}.

Bei get/set wird nur auf $hash->{helper}{PHONEBOOK} (nur bei FritzBox Telnet) geprüft. Sofern aber $hash->{helper}{PHONEBOOKS} (bei FritzBox Web-Abfrage) gefüllt wird, läuft die Validierung ins leere, bzw die Abfrage ist für diesen Fall nicht programmiert.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alexmetz

versteh ich nicht ???
Was heisst das denn nun praktisch? D.h. was müssen wir ändern?

Liebe Grüße
Alex
FHEM auf RaspberryPi 4
Homematic

JoWiemann

Nun ja, ich habe nur aufgelistet warum das get nicht angezeigt wird. Ändern muss das der Maintainer des FB_CALLMONITOR. Wenn er denn Zeit hierfür hat.

Wenn Du möchtest kannst Du ja die Notwendigen Ergänzungen im Code vornehmen, testen und dem Maintainer einen Patch vorschlagen. MAINTAINER ist markusbloch.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alexmetz

Ah OK, Danke, aber warum geht es bei anderen? Kann ich das nicht so einstellen?
FHEM auf RaspberryPi 4
Homematic

JoWiemann

#6
Das kann nur bei FritzBoxen funktionieren, wo der Telnet Zugriff noch funktioniert. Sobald über Web auf die FritzBox zugegriffen wird und somit mehrere Telefonbücher berücksichtigt werden müssen, ist dieser Zweig tot. Da wirst Du nichts "machen" können, außer den fehlenden Zweig selber zu programmieren.

Grüße Jörg

PS: Anbei eine Version, wo ich das mal eingebaut habe. Allerdings weiß ich nicht, ob es das ist was Du möchtest. Denn dieses Get zeigt in einem Pop Up eine Tabelle aller Einträge. Ein Filter / Suchbegriff als Parameter des Get war nie vorgesehen. Allerdings habe ich nun einen optionalen Parameter vorgesehen, wenn mehrere FritzBox Telefonbücher vorhanden sind, über den das auszugebende Telefonbuch selektiert werden kann. Als Parameter ist die ID aus get showPhonebookIds zu übergeben.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alexmetz

FHEM auf RaspberryPi 4
Homematic

alexmetz

So habs nun ausprobiert. Liest brav das Telefonbuch aus. Super!! Danke!!

Jetzt wollte ich nach einem Namen suchen und die Telefonnummer ausgeben. Das Auslesen und Splitten der von "GET .. showPhonebookEntries" ausgegebenen Tabelle funktioniert gut, aber irgendwie scheint mein if-Vergleich (unten fett) nicht zu funktionieren, er kommt einfach kein TRUE heraus, auch wenn ich einen Namen eingebe, der vorhanden ist. Was mach ich da falsch??
sub
FB_ReverseSearch ($) {
 
  my $Suchname = $_[0];
  my $Suchnummer = "";
 
  my $result = fhem("get FBcallmon showPhonebookEntries 0");
  my @zeilen = split /\n/, $result;
  my (@name,@number);
  my $liste;

  foreach my $i (2..$#zeilen) {

    @zeilen[$i] =~ s/^.//; #löschen des ersten (^) Zeichens, egal was (.)
    @zeilen[$i] =~ tr/ //d; #löschen von Leerzeichen
   
    (@name[$i],@number[$i]) = (split /-/,@zeilen[$i])[0,1]; #Name und Nummer splitten
   
    $liste .= @name[$i]." ".@number[$i]."\n"; #nur zur Kontrolle
     
  [b]  if (@name[$i] eq $Suchname)[/b] {
  $Suchnummer = @number[$i];
  last;
}

  }

  return "Die Suche nach (".$Suchname.") ergab folgende Nummer:".$Suchnummer."\n\nUnd hier das komplette Telefonbuch:\n".$liste;

}


LG
Alex.
FHEM auf RaspberryPi 4
Homematic

Markus Bloch

Hallo zusammen,

ich habe das get-Kommando "showPhonebookEntries" für multiple Telefonbücher behoben.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

alexmetz

Ich habe meinen Fehler gefunden. Ich habe beim splitten $name und $number vertauscht. Is dann logisch, dass er in der Nummer den Namen nicht findet...

P.S: Funktioniert auch mit der gefixten Version von Markus. Danke dafür!

LG
Alex.
FHEM auf RaspberryPi 4
Homematic