Eigene Firmware für Sonoff S20

02.12.2018

Nachdem ich nach meinen diversen Erfahrungen mit dem Arduino auch mal andere Projekte erforschen wollte, habe ich mich durch Artikel in zurückliegenden Ausgaben der c't inspirieren lassen und Projekte mit dem ESP8266 ausprobiert - zuerst der Umbau einer WLAN-fähigen Steckdose...

Produkte unter der Marke Sonoff sind bei Bastlern und Makern sehr beliebt - besonders da viele einen ESP8266 oder ähnliches enthalten und das Aufspielen eigener Software auf diese Systeme sehr einfach ist. Da ich mich schon immer darüber erregt hatte, wie teuer Netzwerk-schaltbare Steckdosen sind, habe ich mir eine WLAN-Steckdose gekauft: Die wird zwischen die normale Steckdose und einen Verbraucher geschaltet. Per App kann ich dann den Verbraucher vom Strom trennen/mit dem Strom verbinden ohne mich in seiner Nähe befinden zu müssen.

Auf der Packung meiner bei Amazon (geht noch billiger - aber ich habe mich über die relativ geringe Lieferdauer von 8 Tagen sehr gefreut - da bezahl ich auch mal die drei Euro mehr) georderten prangten auch Ankündigungen wie IFTTT, Amazon Alexa, Google Assistant oder nest - ich schloss mich da einem Zitat aus der c't an: "Wir gaben der Original-Firmware keine Chance!"

Also - aufgeschraubt das Ding, Arduino-IDE runtergeladen und Beispielfirmware drauf geladen. Zusammenschrauben und ausprobieren. Enttäuschung verarbeiten: Der Knopf hatte jegliche Funktion verloren. SSID und Passwort fürs WLAN mussten hart in die Firmware einprogrammiert werden. Das geht doch anders!?

Also fix das Repository geklont und losgelegt mit einer Internet-Recherche - siehe da: WPS funktioniert... Nach einer weiteren Runde Hacken hatte ich meine Firmware fertig und in einem neu eingerichteten Repository abgelegt: Die Steckdose sucht nun nach Einstecken nach dem zuletzt verbundenen WLAN - findet sie es nicht oder kann sie sich nicht damit verbinden, blinkt sie aufgeregt, was den Nutzer dazu veranlassen sollte, am Access Point PushButton-WPS zu aktivieren. Sobald er dies getan hat, muss er durch Drücken des Knopfes an der Steckdose den WPS-Prozess dort noch in Gang setzen. Ist dies erfolgreich, ist die Steckdose betriebsbereit und der angeschlossene Verbraucher zunächst deaktiviert (sichtbar durch das grüne Dauerleuchten. Nun kann man die Steckdose am Schalter aus- und einschalten und alternativ per WLAN über die rudimentäre Weboberfläche.

Aktualisierung vom 2. Dezember 2018

Die Implementierung einer Zeitsteuerung in der Steckdose wurde wieder fallengelassen - schließlich läuft ein Raspi bei mir Tag und Nacht - und damit habe ich einen fähigen Linux-Server, auf dem so nützliche Dinge wie at und cron zur Verfügung stehen. Daher habe ich entschieden, die Steckdose per wget ( curl ginge natürlich auch) zu steuern und mich in der vorweihnachtlichen Zeit lieber ein wenig zurückzulehnen... (Wem will ich was vormachen? Ich werde die Zeit natürlich für andere Dinge nutzen!)

Artikel, die hierher verlinken

Max7119 NTP Uhr

01.03.2020

Nach meinen Erfolgen mit E-Paper und WLAN-Steckdosen dachte ich mir, dass es an der Zeit sei, etwas neues auszuprobieren...

Sonoff S20 und MQTT

07.03.2019

Wie bereits verschiedentlich beschrieben habe ich noch einmal an meiner eigenen Firmware für WLAN.Steckdosen weitergeschraubt

E-Paper Türschild mit ESP8266

08.09.2018

Nach meinen ersten Versuchen, das E-Paper-Display mit einem Raspi anzusteuern habe ich nunmehr den Schritt gewagt und - durch die ersten Erfolge mit der WLAN-Steckdose unvorsichtig geworden - erste Versuche mit der Ansteuerung durch einen ESP gemacht.

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.