Die beliebten Powerline Adapter mit WLAN-Funktion „TL-WPA4220“ von TP-Link lassen sich neben dem Webinterface auch über HTTP-GET-Requests steuern. Damit kann man sie auch bequem von außen z.B. in eigenen Python-Scripts konfigurieren und ansprechen. Einem automatisieren, regelmäßigen Neustart nachts (zur Vermeidung von deren obligatorischen Verbindungsabbrüchen) oder einer nächtlichen Deaktivierung des WLANs steht somit nichts mehr im Weg.

 

Grundlagen

Ich habe hier TL-WPA4220-Adapter in der Hardware-Version 1 mit der momentan aktuellsten, deutschen Firmware (TL-WPA4220v1_140711.DE) im Einsatz. Möglicherweise funktionieren die Befehle 1:1 nur mit dieser Kombination – also aktualisiert die Software auf den Adaptern am Besten bei Problemen. Ob andere Adapter sich genau so ansprechen lassen, ist mir nicht bekannt.

Als Authentifizierung (Nutzername und Passwort) setzen die Adapter auf die weit verbreitete HTTP Basic Authentication. Dabei werden Nutzername und Passwort im Format

Base64 kodiert. Eure Nutzername-Passwort-Kombination könnt ihr unter Linux ganz simpel in einen Base64-String umwandeln:

Statt „user“ und „pass“ müsst ihr natürlich eure Daten eintragen. Es gibt auch entsprechende Online-Tools für die komfortable Umwandlung (siehe z.B. hier).

Auf Client-Seite wird euch häufig die manuelle Umwandlung in einen Base64-String abgenommen – dazu später mehr.

 

Befehle

Für die nachfolgenden Befehle ist es wichtig, dass ihr die IP-Adresse eures Adapter habt. Nutzt ihr die REST-Schnittstelle öfters, bietet es sich an, dem /den Adapter[n] eine feste IP zu geben.

 

Neustart

Einer der wichtigsten Befehle vorab: der Neustart. Dieser muss bei vielen Änderungen an der Konfiguration im Anschluss abgeschickt werden, damit die Änderungen übernommen werden.

Die URL sieht folgendermaßen aus:

Parameter müssen hier keine zusätzlichen geschickt werden, sodass dieser Befehl selbsterklärend sein sollte.

 

Netz-Einstellungen

Den Adaptern kann wie bereits erwähnt eine statische IP zugewiesen werden. Das (und noch mehr) ist auch über die Schnittstelle möglich, wie nachfolgende URL zeigt:

Hier würden wir die IP-Adresse „192.168.11.82“ setzen mit der Subnetzmaske „255.255.255.0“. Die Parameterliste ist äquivalent mit der des Webinterfaces.

 

WLAN

Die Standard-Einstellungen des WLAN sind über folgende URL zu setzen:

Lasst ihr den Teil „&ap=1“ weg, so deaktiviert ihr die WLAN-Funktion. Alle weiteren Parameter in der URL sind wieder gleich denen im Webinterface.
Zusätzlich zu den Grundeinstellungen des WLANs gibt es auch noch eine URL für die erweiterten Einstellungen. Diese ist folgendermaßen aufgebaut:

Auch hier sind die Parameter identisch mit denen im Webinterface, sodass sich für eine genauere Erläuterung der einzelnen Parameter in Blick dorthinein anbietet.

 

Nutzung

Zum Testen der Befehle bieten sich HTTP-REST-Browsererweiterungen wie z.B. RESTClient unter Firefox an. Dort könnt ihr unter „Authentication“ direkt die Basic-Authentication auswählen und euren Nutzernamen und Passwort eintragen. Alternativ könnt ihr den Base64-String manuell eintragen, indem ihr den Header

eintragt, wobei „xxx“ natürlich für euren Base64-Nutzernamen:Passwort-String steht.

Die Nutzung über Python ist auch sehr komfortabel möglich dank des Moduls „requests“. Mit diesem könnt ihr z.B. ein Script zum Neustart des Adapters schreiben:


Wie ihr sehen könnt, ist es recht einfach, die Adapter über einfache HTTP-GET-Requests anzusteuern und damit einige Dinge zu automatisieren und konfigurieren ohne Nutzung des Webinterfaces über einen Browser.