FritzBox mit SOAP auslesen und steuern

Hallo Freunde,

gibt es eigentlich auch ne Möglichkeit nur den Status des WLANs auszulesen? Ich will ja nicht alles immer auslesen

Ja kannst natürlich nur einen Teil auslesen.
Alles auslesen ist auch nur als Hilfestellung zum erstellen eigener Scripte gedacht. Und sollte nicht zyklisch im Produktivsystem laufen.
Übersicht der Services der FritzBoxen – IP-Symcon
Michael
PS: Fertige Scripte bitte im Wiki eintragen.

Hallo zusammen,

hat es schon jemand geschafft, die Wählhilfe der Fritzbox über SOAP anzusprechen? Wir haben hier ein DECT-Headset an der Fritzbox, das naturgemäß nicht selbst wählen kann. Im Moment bauen wir eine Verbindung zum Headset über die TAPI-Services und den Wähl-Client von WIndows auf. Ich hätte aber gerne die wichtigsten Nummern in der IPS-Visualisierung zur Verfügung. Versucht habe ich folgendes:

<action>
<name>X_AVM-DE_DialNumber</name>
<argumentList>
<argument>
<name>NewX_AVM-DE_PhoneNumber</name>
<direction>in</direction>
<relatedStateVariable>X_AVM-DE_PhoneNumber</relatedStateVariable>
</argument>
</argumentList>
</action>
  • Danach habe ich mir zum testen folgendes Script zusammengebastelt, das leider nicht funktioniert. Der Fehler lautet „Invalid Args“. Für die Tests habe ich es erstmal mit einer internen Nummer probiert. Mit einer unserer externen VOIP-Nummern geht es aber auch nicht.

<?

$client = new SoapClient(
    null,
    array(
        'location'   => "http://fritz.box:49000/upnp/control/x_voip",
        'uri'        => "urn:dslforum-org:service:X_VoIP:1",
        'noroot'     => True,
        'login'      => "",
        'password'   => 'xxx',
        'trace'      => True,
        'exceptions' => 0
    )
);


$args = array ('NewX_AVM-DE_PhoneNumber' => "*610");
$result = $client->__soapCall("X_AVM-DE_DialNumber", $args );


if(is_soap_fault($result))
{
 print(" Fehlercode: $result->faultcode | Fehlerstring:
         $result->faultstring");
}
else
{
 print "$result<br>";
}

var_dump ($result);



?>


Der Aufruf der SOAP-Funktion erfolgt hier nicht wie in den anderen Beispielen über

$result = $client->X_AVM-DE_DialNumber(new SoapParam('*610',"NewX_AVM-DE_PhoneNumber"));

da der PHP-SOAP-Client dann den Bindestrich im Funktionsnamen als Trennzeichen interpretiert und von der Funktion nur noch „DE_DialNumber“ übrig bleibt, die die Fritzbox nicht kennt.
Die Wählhilfe in der Box ist natürlich aktiviert.

Habt Ihr eine Idee, was ich ändern muss, damit der Parameter der Telefonnummer richtig übergeben wird?

Danke und viele Grüße
Florian

Da Fehlt wohl der Haken bei TR-064:

Zugriff für Programme im Heimnetz zulassen
Diese Einstellung ermöglicht Programmen auf Computern oder Smartphones in Ihrem Heimnetz, Einstellungen der FRITZ!Box zu lesen und zu bearbeiten. Solche Programme sind beispielsweise das FRITZ!Box AddOn für Internet-Browser, die FRITZ!App Fon für Smartphones oder ein Einrichtungprogramm Ihres Diensteanbieters.
Wenn Sie ein FRITZ!Box-Kennwort für die Benutzeroberfläche vergeben haben (empfohlen), müssen Sie dieses Kennwort in dem Programm angeben, bevor Sie damit die Einstellungen der FRITZ!Box sehen oder bearbeiten können. Die Übertragung zwischen der FRITZ!Box und dem Programm erfolgt nach dem Standard TR-064. 

in der Box.

Interne Nummern gehen doch immer mit zwei Sternchen davor **610 oder ?

Der Haken bei TR-064 war/ist drin und mit den zwei ** geht’s leider auch nicht…

Das mit dem Bindestrich kannst du mit {„Funktion-mit-Bindestrich“} umgehen.
Versuch für den Parameter dann nochmal New SoapParam.
Michael

Hey, das funktioniert :). Danke !

Was steckt denn da dahinter? PHP-Insider Wissen oder fehlende PHP-Grundlagen bei mir?

Viele Grüße
Florian

Wie ich das mal gefunden hatte… keine Ahnung, ich glaube bei den Kommentaren bei PHP.net zu Soap.
Die Unterschiede zu dem Array mit der Funktion __soapcall und direkt der Ziel Aktion mit SoapParam weiss ich auch nicht mehr. Hatte damals viel ausprobiert.
Mit den { } kannst du auch eine Variable als Funktion über geben.
$client->{$StringVariableMitFunktionsnamen}
Michael

Hallo allerseits!

Ich verwende eine FRITZ!Box 7490 mit Fritz!OS 6.23

Nachdem ich mich auch endlich mal mit der FRITZ!Box befasst habe, habe ich erst einmal viel Zeit mit Skripten suchen verbracht :smiley: Nachdem ich dann aber endlich den Durchblick hatte, begann die Einrichtung und erste Erfolge stellten sich ein. Und siehe da, einiges lies sich sehr einfach (Herzlichen Dank an Michael! Super Arbeit!!! Und natürlich an alle die mitgewirkt haben :slight_smile: ) umsetzen. Anderes will allerdings einfach nicht klappen, deshalb hier meine Auflistung was funktioniert und was nicht funktioniert.

Eine sehr gute Übersicht bzgl. SOAP und was darüber so alles möglichst ist, findet man hier:
Tr64desc.xml - Fritz!Box
…einfach bei den Services die ganzen XML durchklicken und dann sieht man das ganze Ausmaß :smiley:

Funktioniert bei mir:
> Anrufer-Liste
> Anrufbeantworter-Liste (nur die Anzeige der Liste klappt, sonst nichts. In der FritzGUI klappt das Abhören mit Chrome Browser)
> DSL-Verbindungsgeschwindigkeit
> DSL-Verbindungsstatus
> Aktueller Downstream/Upstream/Traffic
> Externe IP Adresse
> FritzBox Uptime
> Anrufmonitor um Anrufe auf Dreamboxen anzuzeigen und Skripte zu triggern
> WLAN-Infos zu 2.4GHz, 5GHz und dem Gast-WLAN (SSID, Kanal, MAC, Status)
> DHCP-Einstellungen anzeigen
> FritzBox Infos (Modell, Firmware, Serial, …)

Jetzt aber zu den Dingen die nicht funktionieren und zu denen die ich nichts gefunden habe, was ich aber gerne umgesetzt hätte und wo ich hoffe, dass das von euch schon jemand gemacht hat und mir weiterhelfen kann :slight_smile:

Funktioniert nicht:
> Anrufbeantworter-Nachrichten abspielen/löschen/… (Ich verwende diese Version > FritzBox mit SOAP auslesen und steuern - Seite 6 // Fehlermeldungen kommen keine, es passiert einfach NICHTS :confused: - Beim Löschen/Refresh/Gehört markieren sehe ich im Chrome-Debug, dass die „aktion_FB_AB.php“ aufgerufen wird und ebenfalls die Nachrichten-Datei „Request URL:http://fritz.box/lua/photo.lua?sid==******&myabfile=/var/media/ftp/SanDisk-Cruzer-01/FRITZ/voicebox/rec/rec.0.000“. Bei Play/Pause passiert wirklich gar nichts.)

Suche ich:
> Anzeige der verbundenen WLAN-Clients (Anzahl auslesen klappt, aber keine Liste mit Gerätename/IP, getrennt nach eigenem WLAN und Gast-WLAN).

Ich hoffe mir kann jemand auf die Sprünge helfen :slight_smile:

Danke und Grüße,
Chris

AB abhören mit der aktuellen Firmware der Fritzbox nicht möglich. Mit der Vorversion hats noch geklappt. Hat sich wohl ein Bug seitens AVM eingeschlichen.

Gruß
Manfred

via Sony Xperia Z Ultra

Ich kann mein AB nicht mal aktivieren :frowning:
Stelle gerade alles was ich so habe zusammen. Und wollte das dann hier per RS Script Exporter rein stellen. Dauert aber bestimmt noch bis zum WE.
Michael

Danke für die Infos, da kann ich ja lange am AB rumprobieren :frowning:

Eine aktuelle Sammlung mit den aktuell möglichen Features, wäre sicher nicht schlecht. Man muss doch ein wenig suchen bis man alles zusammen hat. Aber dann läuft die SOAP Geschichte echt genial und schnell :slight_smile:

Bzgl. WLAN-Liste ausgeben scheint es wohl nichts zu geben?! Über die GUI würde ich es aber eh ungern machen, da ist man bei jeder Version am nachbessern :rolleyes:

Grüße,
Chris

PS: Michael > Glückwunsch zum Mod-Job :smiley:

Welche Liste meinst du genau ?
Michael

PS: Danke [emoji4]

Eine Liste mit den Geräten in meinem WLAN, eine Liste mit den Geräten im Gast-WLAN und eine Liste mit LAN-Geräten :slight_smile:
Die Anzahl bekommt man jeweils über SOAP raus. Aber mehr Infos will irgendwie nicht.

Hatte irgendwo in einer XML mal was gesehen, wo ich dachte das würde passen, aber klappte nichts…

Grüße,
Chris

Per Soap ist das auf max. 15 oder 16 Einträge gedeckelt. Hat AVM auch bestätigt. Also bringt das leider nix. Außer sie heben die Grenze mal auf…
Aber ich habe da eine Bastellösung, leider wieder Website der FB parsen. Und jede Liste ist je nach Box anders. Hatte ich irgendwo schon mal vorgestellt.
Werde ich aber auch mit rein packen in den Export.
Nur dieses Script ist dann leider nicht Plug and Play. :frowning:
Michael

Für das eigene WLAN und das Gäste-WLAN würden mir jeweils die max. 16 Einträge ausreichen. Da ist wohl eher weniger los. Gibt es da was über SOAP? LAN…könnte ich drauf verzichten, weil da ist deutlich mehr los :slight_smile:

Auslesen über UI…joa, wenn es sein muss würde ich es mal probier und so lange nutzen, bis es wieder nicht mehr geht :smiley: Plug and play muss nicht sein, denke bissi anpassen könnte ich hinbekommen…vlt… :smiley:

Dann warte ich mal :slight_smile:

Danke und Grüße,
Chris

Gibt glaube ich nur eine Liste für alles. Dort ist aber hinterlegt ob LAN WLAN. Gäste muss ich mal testen.
Michael

In der Übersicht gibt es zumindest eine getrennte Auflistung, was nicht unbedingt was bedeuten muss…

Hätte gedacht, dass man damit http://www.wehavemorefun.de/fritzbox/WlanconfigSCPD.xml#GetTotalAssociations und damit http://www.wehavemorefun.de/fritzbox/WlanconfigSCPD.xml#GetGenericAssociatedDeviceInfo in Kombination irgendwie sich eine Liste ausgeben lassen könnte. Aber das klappt nicht mal im Ansatz, zumindest nicht so wie ich es versuche g

-Chris-

[quote="„Nall chan,post:115,topic:35294“]

Habe eben eine Antwort von AVM erhalten
Zitat:
Dieser Punkt ist uns bekannt und es handelt sich dabei um eine interne Einschränkung, deren Zweck ist, Ressourcen zu sparen.
Derzeit können wir Ihnen leider nicht sagen, ob und wann diese Einschränkung aufgehoben wird.

Echt Schade :frowning:
Michael[/QUOTE]

Und vorhin per eMail dann was sehr erfreuliches :smiley:
Zitat von AVM:
Wir freuen uns, Ihnen mitteilen zu können, dass die Beschränkung auf 16 Geräte aufgehoben werden konnte. D.h. dass diese Erweiterung zunächst in den kommenden FRITZ!Laborversionen zur Verfügung stehen wird und absehbar auch Eingang in das nächste reguläre Release finden wird.

Freu
Wer hat denn eine 7490 oder 7390 und kann dies demnächst mal testen ?

Bei meiner Cable Box wird das wohl noch Jahre dauern … :mad:

Die WLAN-Host Listen (WlanconfigSCPD.xml#GetGenericAssociatedDeviceInfo) sind… naja ganz nett aber leider nur ergänzend mit Dieser kompletten Host-Liste (hostsSCPD.xml#GetGenericHostEntry) sinnvoll einzusetzen.
Es werden bei den WLAN-Hosts nur die MAC & IP-Adressen, sowie die Signalstärke und Geschwindigkeit übertragen. Nicht der Host-Name oder der Zustand on/offline.

Ein (zwei) Script welches diese Listen auslesen und auf Basis der MAC-Adressen zusammenführt habe ich soweit schon fast fertig.
Sogar WOL geht schon :smiley:

Michael

Mit dem aktuellen FritzOS (Laborversion > Fritz!Box 7490 > FRITZ!OS 06.25-30097 PHONE) wurde das 16 Hosts Limit (beim Auslesen der verbundenen Geräte im LAN/WLAN) aufgehoben, gerade getestet :smiley: :cool:

Grüße,
Chris