Gast WLAN mit Voucherdruck

Schon vor einiger Zeit hatte ich auf eBay einen kleinen Nadeldrucker günstig erworben. Ein Einsatzzweck für diesen blieb allerdings lange aus. Nachdem er lange Zeit ungenutzt in der Ecke stand, kam mir neulich eine Idee, wie ich ihn doch sinnvoll nutzen könnte: Vielleicht kennt ihr das. Ihr habt Besuch und jemand verlangt nach dem Schlüssel für euer WLAN. Nun möchte man oft ungern jeden in sein Netz lassen, vor allem nicht zeitlich unbegrenzt. Einige Router bieten dafür die „Gastzugang“ Funktion an, welche ein zweites Gast WLAN aufspannt. Getrennt vom restlichen Geschehen. Allerdings hat man auch dort keine Möglichkeit wirklich benutzerspezifisch und zeitlich sinnvoll einzuschränken. Also hab ich mir Gedacht: Da musst du was basteln.

Nadeldrucker

Das Zauberwort lautet: Captive Portal. Ihr kennt das sicherlich wenn ihr im Hotel seid und euch beim Nutzen des WLAN zuerst eine Login Seite eingeblendet wird, bei der ihr euch mit Zugangsdaten, die ihr an der Rezeption erhaltet, anmelden müsst. Das Ganze ist dann auf die Zeit eures Aufenthalts beschränkt. Sowas wollte ich auch. Nur wie bekommt ein Gast ohne großen Aufwand seine Zugangsdaten? Hier kommt der oben erwähnte Drucker ins Spiel. Möchte jemand das Gast WLAN benutzen braucht er nur einen Button zu drücken und bekommt automatisiert eine Anmeldung generiert, die ihm auf dem Drucker ausgedruckt wird und nach einer gewissen Zeitspanne wieder ungültig wird. Dann habe noch eine kleine Seite gebaut um die Zugänge zu verwalten, falls man doch mal eingreifen muss. Und fertig.

Momentan nutze ich als Captive Portal CoovaChilli, was auf einem WT3020F läuft. Um Benutzer zu authentifizieren kommt FreeRADIUS zum Einsatz, was momentan zu Testzwecken in einer VM auf meinem Server läuft. Die Benutzerinformationen werden in einer MariaDB gespeichert, welche von FreeRADIUS abgefragt wird. Der Button, mit dem ein Benutzer einen neuen Zugang anfordern kann, ist mit einem der GPIOs des WT3020F verbunden. Im Hintergrund läuft ein kleines Skript, welches regelmäßig den Status abfragt. Wird der Button gedrückt wird per cURL eine kleine, in PHP geschriebene, Seite aufgerufen die zufällige Benutzerdaten generiert und in die Datenbank schreibt. Die Ausgabe davon wird direkt auf eine serielle Schnittstelle weitergeleitet an die der Drucker angeschlossen ist. Zu guter letzt habe ich noch einen kleinen AP an den WT3020F angeschlossen, da mir die Sendeleistung nicht ausgereicht hat.

 

 

In nächster Zeit werde ich euch noch Schritt für Schritt vorstellen wie ihr so ein System selbst umsetzen könnt. Für die Zukunft geplant habe ich das ganze noch einmal deutlich zu vereinfachen. Das heißt den WT3020F durch z.B. einen Raspberry Pi zu ersetzen, da man dort deutlich einfacher an die GPIOs kommt und dieser auch die Power hat um alle benötigten Dienste zu betreiben. Damit würde ein Server im Backend wegfallen, wie es momentan der Fall ist.

 

Ich hoffe euch hat der kurze Einblick in dieses Projekt gefallen. Falls ja könnt ihr euch auf einen weiteren Teil freuen.

 

Links


Xiaomi Yeelight – Licht in eurem Leben

Ich beschäftige mich gern mit Heimautomatisierung und Do-it-yourself Lösungen. Mein letztes Projekt war meine Beleuchtung zuhause zu automatisieren. Mit dem Xiaomi Yeelight habe ich eine Lösung gefunden die preiswert und einfach zu integrieren ist.

Nachdem das Qube Projekt seine Indiegogo Kampagne ziemlich verkackt hat war ich auf der Suche nach anderen LED Lampen mit WLAN (und vorzugsweise offener API). Die Philips Hue sind mir viel zu teuer, außerdem erfordern sie extra Hardware um nützlich zu sein. Nach einigen Monaten Suche bin ich auf die Xiaomi Yeelight auf Gearbest gestoßen.

Zu der Lampe: Ich erwarte nicht viel wenn ich Hardware sehr günstig in China kaufe und war extrem positiv überrascht über die Verarbeitungsqualität der Yeelight. Das Gehäuse fühlt sich robust und wertig an. Nichts knarzt, nichts wackelt. Zugegeben, die Lampe ist ein wenig länger als übliche Glühbirnen, wie wir sie kennen, aber das stört nicht weiter. Nur bei relativ kurzen Lampenschirmen könnte sie etwas hervorstehen.

Die Inbetriebnahme ist unkompliziert. Auspacken, reinschrauben und sich mit dem WLAN verbinden, welches die Glühbirne bereitstellt. Zur Konfiguration braucht man entweder die Yeelight App , oder MiHome aus dem Play Store (MiHome und Yeelight App für iOS). Wieso es zwei Apps gibt? Ich weiß es selbst nicht. Sie bieten die selben Grundfunktionen und sehen auch gleich aus. Der einzige für mich relevante Unterschied ist, dass die Yeelight App in den Einstellungen den Developer Mode anbietet. Dazu aber später mehr.

Beim ersten Start der Apps wird man aufgefordert einen Mi Account zu erstellen. Mag erst mal komisch klingen, aber ist für die „Cloud“ Features relevant. Über den Account kann man die Lampen übers Internet steuern ohne direkt im Netzwerk zu sein. Nach dem Erstellen des Accounts ist die Einrichtung einfach gehalten. Die App fragt nach dem WLAN zu welchem sich die Lampe verbinden soll und das wars. Von da an kann man seine Lampe problemlos über die App steuern. Da ich aber nicht vor hatte die App zu nutzen kommt nun der wirklich interessante Teil: Der Developer Mode.

Man kann über die Yeelight App in den Einstellungen den Developer Mode aktivieren. Der Developer Mode sorgt dafür, dass die Lampe eine json API bereitstellt, welche zur Integration in Fremddienste dient. Domoticz und (laut Doku) OpenHAB unterstützen die Yeelight von Haus aus. Der Developer Mode aktiviert eine offene API zur Integration der Lampen in Fremdsoftware.

Für den Fall, dass man eine Software nutzt, welche die Yeelight nicht von Haus aus unterstützt, gibt es eine umfangreich dokumentierte json API. Auf Github gibt es diverse Tools und Bibliotheken zur Integration in die verschiedensten Systeme und Programmiersprachen. Für die meisten Personen dürfte aber die Integration in Domoticz, OpenHAB, oder diverse andere Heimautomatisierungslösungen das Mittel der Wahl sein.

Falls man nicht auf Farben steht gibt es das Yeelight auch in Weiß oder als LED Strip. Alles über die selbe Software steuerbar.

Links


WT3020F

Hey der Blog ist wieder da!

Jeder der mich kennt, weiß dass ich gern mit Chinahardware rumspiele. Für den ersten Post im (nicht so neuen) Blog werde ich mein momentan liebstes Spielzeug vorstellen – Den Nexx WT3020F.

Der Nexx WT3020F ist ein extrem chinesischer Mini Router. Mit gerade einmal 6,5×4,5cm Grundfläche ist er enorm kompakt. Trotz der kleinen Größe bietet er sehr viele Funktionen die man bei anderen Routern in dieser Preisklasse vermisst. Wir haben 2 mal Ethernet, 1 mal USB und WLAN-N (bis 150 Mbit) an Bord. Außerdem wird dieser Router von OpenWRT unterstützt wodurch die Nutzungsmöglichkeiten enorm steigen.

Der Router an sich ist unspektakulär. Er kommt in einem kleinen, weißen Pappkarton mit nem USB Kabel. Die Specs sind ziemlich typisch für ein Gerät dieser Preisklasse.

580 Mhz
64 MB DDR
8 MB Flash

Das Gerät ist unglaublich chinesisch – unsicher, schnell zusammengehauen, dilettantisch umgesetzt. Man findet es unter nem dutzend anderer Namen im Netz und die Firmware ist eine kleine Katastrophe. Wie bei vielen sehr billigen Geräten aus China wird Sicherheit nicht besonders groß geschrieben. Per default ist ein telnet Server aktiv. Die Zugangsdaten sind nach einer Google-Suche problemlos ausfindig zu machen. In diesem Fall lautet der Username „nexxadmin“ und das Passwort „y1n2inc.com0755“. Alles in allem nichts besonderes.

Durch die geringe Größe ist der Router vielseitig einsetzbar. In meinem Fall benutze ich ihn mit einem alten Surfstick als mobilen WLAN Hotspot. Einen zweiten WT3020F nutze ich als Mesh Node um die WLAN Reichweite zu erhöhen.

Das Gerät gibt es sehr günstig aus China auf Gearbest oder auch auf Amazon.