Sonoff Basic

Nach einigen Lieferschwierigkeiten haben mich vor ein paar Tagen tatsächlich ein paar Sonoff Basic erreicht.

IMG_20180904_203533_697

Dieser sog. Smart-Switch wird per Wlan ins heimische Netzwerk eingebunden und ist dann per App, Webinterface, Tastendruck oder Alexa in der Lage einen angeschlossenen 230V Verbraucher zu schalten.

Inhalt

Firmware

Die werkseitige Firmware/App Kombination ist aufgrund von Sicherheitsaspekten (China-Cloud) in der Verwendung nicht zu empfehlen. Meiner Meinung nach zählt das für alle Software-Lösungen, die mit China zu tun haben.

Die Wlan-basierenden Sonoff Produkte nutzen zumeist den ESP2866 Chip, den ich euch bereits in vielen vorherigen Beiträgen vorgestellt habe. Ein netter Entwickler namens Theo Arends hat für die Sonoff Produkte eine eigene Firmware entwickelt – Tasmota.

zurück zum Inhalt

Tasmota

..bietet den Vorteil, dass die Sonoff Produkte keine China-Cloud benötigen und der volle Funktionsumfang erhalten bleibt. Überdies bietet Tasmota die Möglichkeit sämtliche Funktionen & Daten der Sonoff Produkte auch per MQTT zu steuern bzw. abzurufen – genial! Es ist auch weiterhin möglich die Sonoff Produkte über Alexa zu betreiben, dazu bietet die Firmware die Möglichkeit eine Hue-Bridge zu emulieren.

Download ZIP

zurück zum Inhalt

Basic vorbereiten

Ich setze voraus, dass ihr so schlau seid und den Basic im folgenden NICHT an das 230V Stromnetz anschließt.

Um die Firmware nun auf den Basic zu bekommen gibt es mehrere Wege. Ich nutze den Weg über einen USB to Serial Adapter und flashe die Firmware dann am PC.

Um das vernünftig zu machen ist es nötig eine Pinleiste in den Basic zu löten, um die serielle Schnittstelle nutzen zu können, dazu wird der Basic erstmal aus seinem Käfig befreit

P_20180904_204252

das Gehäuse lässt sich sehr leicht abziehen – zum Vorschein kommt dann die Platine, die sich einfach aus dem Unterteil herausnehmen lässt.

Die zusätzlichen Pins werden an den J1 Header gelötet.

P_20180904_204311.jpg

Auch wenn zum flashen nur 4 Pins des Headers benötigt werden, empfehle ich den kompletten Header zu bestücken (später mehr dazu).

Der Header ist wie folgt belegt (von links nach rechts):

  • 3,3 V
  • Rx
  • Tx
  • Ground
  • Gpio 14

Man muss nicht unbedingt eine Pinleiste anlöten. Wer abscheu gegen den Lötkolben besitzt, keine Pinleisten da hat oder was auch immer für einen Grund findet – der kann auch improvisieren, indem er eine entsprechende Stiftleiste während des Flashvorgangs irgendwie schräg an den Header hält und hofft den Kontakt zu behalten. Ich hab es lieber ordentlich – daher hab ich sowohl in alle Basics, wie auch in all meine S20 (auch denen von meinem Bruder 😉 ) eine Stiftleiste eingelötet.

zurück zum Inhalt

USB to Serial

Zum flashen der Firmware benötigt man einen USB to Serial Adapter

wie man auf der Rückseite erkennen kann, besitzt der Adapter die selben Pins wie der J1 Header des Sonoff Basic – angeschlossen wird er jedoch etwas anders, denn bei der Kommunikation der seriellen Schnittstelle ist es immer entscheidend, dass die jeweilige Rx mit Tx und Tx mit Rx verbunden wird – nur so kann eine Kommunikation stattfinden. 3,3V sowie Ground werden selbstverständlich Pin auf Pin angeschlossen.

Soweit kann man das ganze auch schon vorbereiten, der USB to Serial Adapter wird an dieser Stelle aber noch nicht in den USB-Port am PC gesteckt!

zurück zum Inhalt

Atom

Um die Firmware anzupassen und auf den Basic zu schieben benötigt man natürlich ein Programm – ich nutze für diesen Zweck Atom und das Paket Platform IO.

Sofern Ihr beides erfolgreich installiert habt  – seht ihr vor euch ein leeres Projekt. Hier könnt ihr nun das (zuvor entpackte) Sonoff-Tasmota-development öffnen

atomstart

dazu einfach auf „Open a Project“ klicken, den Pfad auswählen – fertig. Im nächsten Schritt sieht man links im Bild nun den Inhalt der Tasmota-Firmware. Hier interessiert uns hauptsächlich der Order „sonoff“ und die „platformio.ini“

atomtasmota.png

zurück zum Inhalt

platformio.ini

Klickt man links auf diese Datei, so kann man die Umgebung/Sprache der Firmware einstellen. Hier sollte man die Voreinstellung „env_default = sonoff“ auskommentieren (ein Semikolon an den Anfang der Zeile setzen) und stattdessen „env_default = sonoff-DE“ einkommentieren (das Semikolon am Anfang der Zeile entfernen).

zurück zum Inhalt

sonoff Ordner

In dem Ordner befindet sich eine Datei namens user_config.h – hier können alle spezifischen Daten eingetragen werden – so ist der Basic unmittelbar nach dem flashen betriebsbereit.

Spezifische Daten sind insbesondere:

  • Wlan SSID und Passwort
  • Name des Geräts (wichtig für MQTT)
  • IP Adresse des MQTT Servers & ggf. Passwort

Ihr könnt natürlich noch viele weitere Einstellungen vornehmen – schaut euch die Datei an – hinter den jeweiligen Parametern sind entsprechende Erklärungen vorhanden.

Ein MUSS ist das Ändern der beiden Dateien im Übrigen nicht. Man kann das Projekt auch einfach öffnen und direkt auf den Basic schieben. Jedes Sonoff-Gerät kann auch über WPS ins Wlan eingebunden werden und vollständig über die Weboberfläche verwaltet werden. Nähere Informationen dazu finden sich auf der Github Seite zum Projekt.

Ich hab jeweils die Daten direkt angepasst und die Firmware dann auf das jeweilige Gerät geschoben – macht es, wie ihr euch am sichersten fühlt.

Vor dem Upload ist es wichtig, unabhängig davon, dass die Dateien bearbeitet wurden, auf den Reiter „PlatformIO“ zu klicken und „Build“ auszuführen. In der Regel wird Atom euch aber auch darauf hinweisen, wenn ihr ohne „Build“ auf „Upload“ klickt und euch anbieten beides direkt auszuführen.

zurück zum Inhalt

Upload

Der USB to Serial Adapter kann nun in einen freien USB-Port am PC eingesteckt werden – dabei muss der Taster am Basic gedrückt gehalten werden – und das für etwa 10 Sekunden. Nur so wird erreicht, dass der Basic entsprechend bootet um geflasht werden zu können.

Die fertigen Daten werden in Atom gespeichert, danach kann man oben im Reiter auf „PlatformIO“ klicken und „Upload“ wählen

atomupload

ab dem Klick auf „Upload“ läuft alles automatisch. PlatformIO erkennt automatisch den COM-Port und beginnt den Upload der Daten.

Wenn der Vorgang erfolgreich abgeschlossen wurde, kann der USB-Adapter abgezogen , der Basic wieder in sein Gehäuse einziehen und für seinen Einsatzzweck verwendet werden.

atomupload3

Hier ein erfolgreicher Flash-Log. Build und Upload wurden in einem Schritt von Atom durchgeführt

 

Sollte das Flashen nicht erfolgreich verlaufen, zu erkennen an einer Fehlermeldung innerhalb des Fensters von PlatformIO, dann überprüft bitte die Verkabelung Basic -> USB Serial Adapter (Rx -> Tx / Tx -> Rx). Stellt sicher, dass ihr auch den Taster am Basic auch wirklich gedrückt haltet, während ihr den Stick in einen USB-Port einsteckt. Der Taster hat eine unwahrscheinlich schlechte Haptik und es ist kaum festzustellen, ob gedrückt oder nicht.

Ich habe etwa 20 Sonoff Geräte auf diese Methode geflasht und abgesehen von o.g. Flüchtigkeitsfehlern soweit keine Probleme gehabt.

zurück zum Inhalt

Inbetriebnahme

ACHTUNG: Im Folgenden wird am 230V Stromnetz gearbeitet. Unsachgemäße Arbeit an Spannungen in dieser Höhe können schwere Verletzungen oder den Tod nach sich ziehen. Nachahmungsversuche finden auf eure eigene Gefahr hin statt!

Nachdem der Basic erfolgreich geflasht wurde, kann man mal einen Test wagen. Dazu wird an den Input ein Kabel angeschlossen und anschließend in die Steckdose gesteckt.

P_20180906_223754.jpg

Nach kurzem Aufblinken der LED sollte sich der Basic kurze Zeit später im Heimnetz wiederfinden

Heimnetz

über die IP-Adresse und den Browser kann die Weboberfläche der Tasmota Firmware erreicht werden

tasmotafirmware

hier können sämtliche Einstellungen vorgenommen, Ein- oder Ausgeschaltet oder z.B. die Hue-Bridge Emulation aktiviert werden. Klickt euch einfach mal durch, viel schief gehen kann eigentlich nicht und wenn doch, dann lässt sich der Basic leicht zurücksetzen.

zurück zum Inhalt

Fhem

Da die Tasmota-Firmware mit MQTT kommuniziert, ist eine Nutzung in Fhem natürlich problemlos möglich.

Der Basic kann dazu auf verschiedene Arten eingebunden werden. Matthias Kleine hat z.B. ein Tasmota Modul entwickelt, des Weiteren lässt sich auch manuell ein MQTT-Device anlegen:

define Sonoff_Basic MQTT_DEVICE

legt ein entsprechendes (leeres) Device an.

Je nach dem ob ihr die MQTT-Topic Einstellungen verändert habt (oder am Besten nicht), lassen sich folgende Attribute setzen um den Basic aus Fhem heraus zu bedienen und den Status direkt aus MQTT heraus zu erhalten, anstelle von „GERÄTE-NAME“ wird selbstverständlich der Name eingesetzt, den ihr dem Gerät gegeben habt.

Status:

attr Sonoff_Basic subscribeReading_state stat/GERÄTE-NAME/POWER

On / Off Befehl:

attr Sonoff_Basic publishSet ON OFF cmnd/GERÄTE-NAME/POWER

&

attr Sonoff_Basic webCmd ON:OFF

Netzwerkstatus (optional):

attr Sonoff_Basic subscribeReading_network tele/GERÄTE-NAME/LWT

Weitere Readings könnt ihr euch auch mit dem Attribut „autoSubscribeReadings“ holen. Hier muss nur ein Topic, wie z.B. „tele/“ eingegeben werden, dann werden die unter tele ausgegebenen Readings automatisch erfasst und angelegt. Nachdem alle Readings implementiert wurden, kann das Attribut auch wieder entfernt werden.

attr Sonoff_Basic autoSubscribeReading tele/

Je nach Topic kann das autoSubscribeReading dann auch für z.B. /stat verwendet werden. Das funktioniert bei jedem MQTT Device gleichermaßen.

deviceoverview.png

Abweichend zur obigen Beschreibung heißt mein Basic in Fhem „Basic_1“ und hat den MQTT-Gerätenamen „SBSC_1“.

zurück zum Inhalt

GPIO 14

Bei der Bestückung des J1 Headers habe ich bereits auf den GPIO 14 hingewiesen. In der Weboberfläche kann man unter Einstellungen -> Modul konfigurieren eine Auswahl zur Nutzung des GPIO treffen.

tasmotagpio14

zurück zum Inhalt

Beispiel: 09 Switch 1

Schaltet man den GPIO 14 unter dieser Einstellung gegen Ground (am J1 Header) schaltet der Basic.

Durch Konsolenbefehle lässt sich das Schaltverhalten zusätzlich anpassen – so kann ein kleiner Schaltimpuls ausreichen um den Basic einzuschalten (wie man es bei einem Taster nutzt), oder alternativ der dauerhafte Kontakt zwischen GPIO 14 und Ground eingestellt werden (Verhalten eines Schalters). Der Basic lässt sich so optimal zur Schaltung von Beleuchtung nutzen und einfach in bestehende Installationen integrieren.

Der GPIO 14 darf dabei aber nicht mit der Netzspannung von 230V betrieben werden, die Verwendung eines Relais oder Stromstoßschalters ist daher zwingend notwendig.

zurück zum Inhalt

Schlusswort

Im Grunde werden alle Sonoff-Geräte auf die oben beschriebene Methode geflasht – die jeweilige Pinbelegung lässt sich leicht ergoogeln. Es ist aber immer darauf zu achten, dass beim Einstecken des USB to Serial Adapters auch immer ein Kontakt überbrückt werden muss (beim Sonoff Touch z.B. ist das etwas fummelig). Die Tasmota-Firmware ist meiner Meinung nach perfekt und gehört auf jedes Sonoff-Gerät (auch unabhängig von Fhem) . Die Einbindung in Fhem funktioniert spielend einfach – steht dem praktischen Einsatz also nichts mehr im Wege. Den praktischem Einsatz des Sonoff Basic werde ich anhand von diversen Beispielen sehr umfangreich beschreiben – ich hoffe ihr lest fleißig mit 🙂

zurück zum Inhalt