Anrufname und Radiolautstärke mit Fritzbox

und warum schreibst Du es nicht gleich hin. Das bezieht sich auf dein ausgewähltes Telefonbuch. Jenachdem wieviele Du hast, hat jedes seine eigene Nummer.

…und ja, es zeigt alle Namen und Nummern an solange print_r… nicht auskommentiert wird.

Ich denke Du willst vergleichen oder nicht deswegen steht es im array.

…und ja, es zeigt alle Namen und Nummern an solange print_r… nicht auskommentiert wird.

Ich denke Du willst vergleichen oder nicht deswegen steht es im array.

meine Grundidee war (und ist immer noch) bei eingehendem Anruf den entsprechenden Namen aus dem Tel.Buch der Fritzbox zu erhalten.

und „solange print_r… nicht auskommentiert wird“ übersteigt meine Kenntnisse wieder mal.

Ich hab dir das Script noch mal angepasst. Ich hoffe, es ist jetzt genehm. Wenn du noch die Lautstärke ändern willst, einfach den Befehl dafür unter die echo Ausgabe in Zeile 64 schreiben. Wenn du den Namen in eine Variable schreibst, kommt vor das echo //

Das gibt es doch schon ewig hierim Forum.

In dem Thread ist auch dieser nette Linkgenannt.

Er will ja nicht die Anruferliste sondern das Telefonbuch auslesen.

Ähm, bin ich blind? :rolleyes:

Ja. :smiley:

Er will den Anrufername angezeigt bekommen (wenn ich richtig lesen kann) und genau das ist dort verwirklicht. Es muß doch nur das Script entsprechend verändert werden, damit nur der Name angezeigt wird. Bei mir ist das jedenfalls so realisiert.

Sorry ich bin raus. :confused:
Vielleicht sollte ich meinen APC ausschalten und nach Hause fahren. ist schon spät. :rolleyes:

seid mal ein wenig Nachsichtig mit Boui, der hat grad ne heftige Packung durch seine LAN-Adapter to CCU-Migration bekommen. Vielleicht auch mittlerweile von seiner Chefin:D

Ich kann dich ja mal anrufen, leider wirst Du meinen Namen aber nicht sehen, da ich nicht gelistet bin. Da nutzt dir weder Rückwärtssuche noch Anruferliste was.
Hättest Du mich jetzt aber in deinem Telefonbuch stehen, würdest Du auch meinen Namen sehen.

Ich hoffe, es war soweit verständlich.

Komme gerade nach Hause: 6 Servicemeldungen.
z.B. Fensterdrehgriff - Wandthermostat blinkt mit S und ich gehe zum Fenster und bewege nur den Griff einmal auf und zu und schon ist die Kommunikationsstörung weg. Ich habe die Versuche schon von 6 auf 10 gesetzt.

Da soll man mal nicht abdrehen.

Mit Telefonbüchern der Fritz könnt ihr mich nun muscheln. :cool:

was heisst denn hier genehm? Vielen herzlichen Dank. :slight_smile:
Aber eben, mein"Php-Verständnis. Egal von welcher Nummer ich anrufe zum testen, es zeigt mir immer den letzten Eintrag des Tel. Buches an. Und diese Fehlermeldung

Und für alle andern - Rainer hat es richtig interpretiert

Zeig mal dein ganzes Script. Du hast doch wieder irgendwas auseinander gepflügt. $book steht mit 1000%iger Sicherheit in meinem Script.

Ps. hier läuft es einwandfrei.:smiley:

<?

if ($IPS_SENDER == "Variable")
{
    $fritzbox_ip = '192.168.1.1';
    $fritzgui    = 'http://fritz.box/cgi-bin/webcm';
    $fritzCfg    = 'http://fritz.box/cgi-bin/firmwarecfg';
    $fritzseite  = '../html/de/menus/menu2.html';
    $telefonbuch = 0; // Auswahl des Telefonbuches
    $password    = '123456';

    $ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $login = curl_exec($ch);
    $session_status_simplexml = simplexml_load_string($login);

    if ($session_status_simplexml->iswriteaccess == 1)
    {
       $SID = $session_status_simplexml->SID;
    }
    else
    {
       $challenge = $session_status_simplexml->Challenge;
       $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
       $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
       $sendlogin = http_post_fields($fritzgui, $login);
       preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
       if (isset($matches[1]) && $matches[1] != '0000000000000000')
       {
          $SID = $matches[1];
       }
       else
       {
          echo "Fehler: Login fehlgeschlagen";
          return;
        }
    }

    curl_setopt($ch, CURLOPT_URL, $fritzCfg);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('sid' => $SID, 'PhonebookId' => $telefonbuch, 'PhonebookExportName' => 'Telefonbuch', 'PhonebookExport' => ""));
    $book = curl_exec($ch);
   curl_close($ch);

    $logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
    $sendlogout = http_post_fields($fritzgui, $logout);
}

$xml = simplexml_load_string($book);

foreach($xml->phonebook->contact as $nummer => $value)
{
    $nummern = $value->telephony->number."
";
    $namen = $value->person->realName."
";
    $daten[] = array(0 => trim($nummern), 1 => trim($namen));

}

$rufnummer = GetValue(34020 /*[Fritzbox Anrufe\FRITZ!Box\Verbindung 0 - Nummer - Extern]*/); // Nummer vom Anrufer, Variable z.B. mit GetValue und Trigger auf das Script

for($i=0; $i<count($daten); $i++)
{
    if($daten[$i][0] == $rufnummer)
    {
        SetValue(24396 /*[Fritzbox Anrufe\Nummernsuche\Anrufname]*/, $daten[$i][1]); // Ausgabe des Namen, z.B in Variable schreiben mit SetValue(xxxxx, $daten[$i][1]);
    }
}

?>

Ich hab dir dein Script angepasst. Das Script wird über die Variable der rufnummer getriggert und nicht über Execute!

Hast Du den Trigger gesetzt ? Auf Aktualisierung.

Zieh dir dein Script noch mal runter. Sollte jetzt auch bei dir gehen.!

ja, Trigger ist gesetzt.

Jetzt kommt folgendes

Notice:  Undefined variable: book in C:\IP-Symcon\scripts\25389.ips.php on line 48

Notice:  Trying to get property of non-object in C:\IP-Symcon\scripts\25389.ips.php on line 50

Notice:  Trying to get property of non-object in C:\IP-Symcon\scripts\25389.ips.php on line 50

Warning:  Invalid argument supplied for foreach() in C:\IP-Symcon\scripts\25389.ips.php on line 50

Notice:  Undefined variable: daten in C:\IP-Symcon\scripts\25389.ips.php on line 60

Habe Firmware-Version 84.04.88

Das steht jetzt bei dir als Anfang im Script?

if ($IPS_SENDER == "Variable")
{

Du darfst das Script nicht von Hand ausführen…!!!

ja, denn…

Zieh dir dein Script noch mal runter. Sollte jetzt auch bei dir gehen.!

auch wenn ichs nicht von Hand ausführe - der letzte Eintrag des Tel. Buches

die Variable blättert mir das ganze Tel. Buch durch und bleibt beim letzten Eintrag stehen.

Wird denn das Script getriggert. Mach das Script auf, ruf an und sieh über der Scriptausgabe ob das Script lief.

Die Variable der Rufnummer ist aber vom Typ String, sonst geht es nicht.