[Info] Welche Variablen verwaltet das FRITZ!OS und wie kann ich die auslesen oder ändern?

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
15,138
Punkte für Reaktionen
1,703
Punkte
113
Ich hatte zwar zu Beginn der letzten Labor-Reihe mal irgendwo kurz angerissen, daß AVM das "ctlmgr_ctl" erheblich aufgebohrt hat, aber das ist dann irgendwann wieder untergegangen, wie tiefgreifend die Änderungen dort wirklich waren bzw. sind.

Es tauchen ja auch immer wieder Fragen auf, wie man irgendwelche internen Einstellungen nun ändern kann und die meisten Namen (bzw. "Pfade") für solche Variablen werden dann mühsam aus den Lua-Seiten im GUI zusammengesucht.

Aber AVM hatte hier (sicherlich nicht vordergründig, aber man muß eben nehmen, was man kriegt) ein "Herz für Bastler" und hat dem Programm "ctlmgr_ctl" eine Frischzellenkur angedeihen lassen, die in folgendem "usage"-Screen gipfelt:
Code:
$ [COLOR="#0000FF"][B]ctlmgr_ctl[/B][/COLOR]
usage: ctlmgr_ctl [options] <r [ui-module key]+> | <w [ui-module key value]+> | <u [ui-module]*> | <del [ui-module command]+
options:
  -?                 - print this help
  -s STRING          - string: SID to use. (NULL)
  -v                 - bool: echo variable name, not only value. (NOTSET)
  -d CHAR            - use character instead of TAB for field delimiter. ()
  -D STRING          - switch debug logs on. (FUNC)
(r: read), then list of tuples describing each value to be read (at least one)
(w: write), then list of triples describing each value to be read (at least one)
(u: dump), then list of ui-modules. If empty, will provide list of available ui-modules
(del), then command string, which node should be deleted
(l: list), list variable
examples:
1) ctlmgr_ctl w wlan settings/STA_enabled 1
2) ctlmgr_ctl r wlan settings/STA_enabled
3) ctlmgr_ctl u wlan
4) ctlmgr_ctl del landevice landevice:command/landevice0
5) ctlmgr_ctl l landevice "settings/landevice/list(UID,allow_pcp_and_upnp,igd_fw_cnt_pcp,igd_fw_cnt_upnp)"
Mit der neuen Operation "dump" (alias "u") läßt sich dann sehr einfach eine (wohl ziemlich komplette) Liste der möglichen Einstellungen (settings) oder Status-Anzeigen (status) erstellen, die man über diese Schnittstelle (oder auch über das Lua-Query-Interface, das am Ende auf dieselben Daten zugreifen dürfte) abfragen und in vielen Fällen auch setzen kann.
Code:
$ [COLOR="#0000FF"][B]for module in $(ctlmgr_ctl u | sed -e "1,2d"); do ctlmgr_ctl -v u $module; done[/B][/COLOR]
Das dauert bei mir auf einer 7490 dann rund 25 Sekunden und man hat eine sehr lange Liste von Variablen (in einer Art Baumstruktur ausgegeben), die man vermutlich besser in eine Datei umgeleitet hätte.

Dort kann man sich dann in aller Ruhe umschauen und dann auch teilweise recht exotische "Pfade" für Variablen entdecken, z.B. findet man den 2,4 GHz-Kanal für das WLAN mit
Code:
$ [COLOR="#0000FF"][B]ctlmgr_ctl r wlan status/radios0/radio0/channel[/B][/COLOR]
13
, was sicherlich durch "Probieren" aufgrund der doppelten Array-Struktur ("radios0" und darin dann erst "radio0" und "radio1") eher schwer zu entdecken wäre.

Dabei stellt man dann (quasi im Vorübergehen) auch noch fest, daß AVM inzwischen sogar die Abfrage von mehr als einem DynDNS-Account über diese Schnittstelle ermöglicht ...früher gab es (nach meiner Ansicht und Erinnerung) dort nur einen "account0", nunmehr gibt es (wenn die eingerichtet sind über die "ar7.cfg", ob gar das auch über "ctlmgr_ctl w" jetzt möglich wäre, habe ich noch nicht probiert) da auch mehrere.

Wer also nach einer speziellen Einstellung bzw. nach einer Möglichkeit der Abfrage eines speziellen Wertes sucht, der wäre in einer solchen Liste in aller Regel auf der richtigen Spur - aber nicht jeder Wert muß dort auftauchen, es gibt (oder zumindest gab) auch ein paar Lua-Libraries, die direkt auf andere Komponenten zugreifen (z.B. die ausführlichen DSL-Parameter und -Statistiken müßten m.W. dazu gehören).

Die in der Liste enthaltenen Daten sollten sich auch "von außerhalb der Box" (passende Credentials in Form einer gültigen Admin-SID vorausgesetzt) über die "query.lua" aus der AVM-Firmware abfragen lassen (also auch bei einer unmodifizierten Firmware). Solange AVM diese Datei selbst verwendet (z.B. bei den regelmäßigen Statusabfragen für die "capture.lua"-Seite), ist die Gefahr, daß diese plötzlich ebenfalls verschwindet, eher gering einzuschätzen.
 
  • Like
Reaktionen: jha4711
Wow - was eine "geile" Information - Danke Dir !!!

Auf meiner gepatchten 6591 VF Edition hatte ich mühsam rausgefunden, dass ich dort mit
Code:
/usr/bin/ctlmgr_ctl w sipextra settings/gui_readonly 0
das bisher verborgene GUI-Element "Neue Telefonnummer" wieder zum Vorschein bringen kann.

Dank Deiner Info werde ich dort jetzt bestimmt noch weitere interessante Dinge entdecken. Super!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.