Ich bin stolzer Besitzer eines ALL3073WLAN von ALLNET. Das ist eine Netzwerksteckdose, welche über einen integrierten Webserver geschalten werden kann. Weitere Informationen findet man auf der offiziellen Herstellerseite von ALLNET http://www.allnet.de/de/allnet-brand/produkte/home-automation/home-automation-schaltgeraete/p/allnet-all3073wlan-wlan-steckdose-schaltbar-per-netzwerkip/. Die Funktionen des Adapters sind sehr vielfältig und evtl. werde ich dies auch einmal in einem HowTo alle Funktionen des Adapters ausführlich vorstellen. Aktuell ist dies die einzige völlig von Cloud-Diensten unabhängige Schaltlösung die auch ohne eine Zentrale Steuerung (Fritz!Box) funktionsfähig ist (Stand 24.10.2014).
Eigentlich habe ich mir den Adapter angeschafft, um meinen Router zu überwachen und bei einer längeren Unterbrechung der Internetverbindung den Router für ein paar Sekunden vom Strom zu nehmen und neu zu starten (Watchdog-Funktion des Gerätes). Aber natürlich war ich neugierig, welche Funktionen das Gerät sonst noch bietet und was man sonst noch alles damit anfangen kann. Kurz: Vieles! Aber eine Sache ist mir relativ schnell aufgefallen: Der Adapter hat Probleme mit Leerzeichen in der WLAN-SSID. Ein Test mit einer nicht Leerzeichen-SSID funktionierte problemlos. Dann viel mir auf, das im Webmenü bei dem Speichern der Einstellungen ein WLAN mit einem Leerzeichen überhaupt nicht gespeichert wird => Es wird eine Überprüfung der Zeichenfolge durchgeführt, welche die Eingabe als ungültig verwirft.
Update 21.10.2016: Wenn im Feld SSID der Netzwerkname in Anführungszeichen geschrieben wird, also "Meine SSID mit Leerzeichen", dann werden die unten genannten Schritte nicht mehr benötigt, wenn im Preshared-Key kein Leerzeichen enthalten ist.
Versuch 1:
In den Geräteeinstellungen gibt es eine Funktion, die Geräteeinstellungen in einer Konfigurationsdatei zu exportieren. Diese Datei ist eine SQLite Datenbank, welche im lokal auf meinem PC bearbeitet habe (z.B. mit dieser Software http://www.heise.de/download/sqlite-database-browser.html) und dort die SSID mit einem Leerzeichen eingetragen habe. Nun habe ich die Datei wieder zurückgespielt, was auch problemlos funktionierte, aber anscheinend wir auch hier eine Prüfung durchgeführt => WLAN-SSID-Feld wieder leer!
Versuch 2:
Mit der neusten Firmware von ALLNET hat man nicht nur Zugriff über HTTP/HTTPS/FTP sondern auch über SSH => Root-Zugriff!
Nun suchte ich die Scripts, welche den WLAN-Treiber ansteuern und die Verschlüsselungsmethode sowie SSID und Pre-Shared-Key übergeben. Nach einiger Suche bin ich im Verzeichnis /etc/scripts fündig geworden: Darin liegt eine Datei namens wlan.sh und reconfigure_wlan.sh. In der Datei reconfigure_wlan.sh gibt es folgende Zeilen:
if [ ${WLAN_AUTHMODE_STA} = "WPA2PSK-AES" ] ;then iwpriv ra0 set NetworkType=Infra iwpriv ra0 set AuthMode=WPA2PSK iwpriv ra0 set EncrypType=AES iwpriv ra0 set SSID=$SSID_STA iwpriv ra0 set WPAPSK=$ENCKEY_STA iwpriv ra0 set SSID=$SSID_STA fi
Hier waren also die Befehle, welche bei der WLAN-Einrichtung ausgeführt werden. Und bereits beim 1. Versuch funktionierte das WLAN problemlos:
iwpriv ra0 set AuthMode=WPA2PSK iwpriv ra0 set EncrypType=AES iwpriv ra0 set IEEE8021X=0 iwpriv ra0 set SSID="<WLAN-SSID mit Leerzeichen>" iwpriv ra0 set WPAPSK="<Pre-Shared-Key>" iwpriv ra0 set DefaultKeyID=2 iwpriv ra0 set SSID="<WLAN-SSID mit Leerzeichen>"
Jetzt noch ein Script unter /etc/init.d erstellen, das auch bei einem Neustart des Gerätes die WLAN-Daten korrekt übergibt und die Verbindung funktioniert auch noch nach einem Neustart!
Natürlich ist diese Lösung nicht optimal, da man hierdurch die Daten im Webinterface überschreibt. Den Fehler werde ich allerdings auch an ALLNET melden, da man die SSID/Pre-Shared-Key einfach mit " übergeben muss, damit auch Leerzeichen funktionieren. Ich hoffe, das es zeitnah ein Update geben wird, damit man diesen Workaround nicht mehr vornehmen muss.