Tuya und Tuyaconvert

Wer mit smarten Steckdosen, Leuchte, Lampen etc. hantiert, wird früher oder später auf den Namen Tuya stoßen. Die Plattform wird kommerziell an Firmen verkauft, die eigene IoT-Gadget auf den Markt bringen aber keine Backend-Struktur betreiben wollen. Meist basieren die Systeme auf dem bekannten ESP8266 und werden vom Hardware-Hersteller einfach in eigene Geräte integriert. Von Tuya kommt dann die Firmware, das Backend und sogar die App um das "Smarte Gerät" zu verwalten.

Smart Home by Tuya

Wie bei vielen ESP8266-Derivaten üblich, lässt sich durch mehrfachen Drücken eines Tasters oder Ein/Aus-Schaltungen ein Initialisierungsmode starten, bei dem das Gerät einen AccessPoint aufspannt.

 

Das Gerät wird über die Tuya-App konfiguriert, welche Sie erst auf ihrem Smartphone installieren und ein Konto einrichten müssen. Eine Konfiguration oder Nutzung der App oder des Device ohne Cloud ist anscheinend nicht möglich. Tuya kennt also immer ihre Telefonnummer oder Mailadresse und ihren Standort. Nach der Einrichtung können Sie dann ihr Device mit dem temporär aufgespannten WLAN des Geräts verbinden, Über UDP-Pakete, die die App regelmäßig sendet, erhält das Gerät dann die SSID, das Kennwort und ihre ID, so dass sich das Gerät an der Tuya-Cloud anmelden kann.

Idealerweise reicht dann genau auch diese eine App, um alle Geräte zu steuern, die auf der Tuya-Plattform basieren. Umgekehrt bedeutet dies aber auch, dass ohne die Tuya-Cloud nichts nutzbar ist und ein Hersteller ihre Daten verwaltet, von dem Sie die Geräte weder gekauft haben noch einen anderen Vertrag abgeschlossen haben. Größter Kritikpunkt ist hier natürlich die Sicherheit nud die Angst ist nicht ganz unberechtigt.

Smart Home - Smart Hack Wie der Weg ins digitale Zuhause zum Spaziergang wird
https://media.ccc.de/v/35c3-9723-smart_home_-_smart_hack

Hier wurde nun real präsentiert, was wir eigentlich schon immer alle wussten. Sehr viele Smart Devices basieren im Innern alle auf dem ESP8266 und auch wenn die Programmierung einfach ist und sogar viele freie fertige Firmware-Lösungen bereit stehen, gibt es halt auch Firmen, die als Anbieter einer eigenen Firmware samt einem Baukasten zur App-Entwicklung und der erforderlichen Backend-Struktur (Server in der Cloud). Dass bei dem Preisdruck und Geschwindigkeit die Sicherheit und der Datenschutz auch mal absichtlich unter den Tisch fällt, verwundert kaum.

Die verschiedenen Geräte mögen zwar nett sein aber warum gibt es keine Option ohne Cloud zu arbeiten. Also bleibt doch wieder umflashen.

Daher war es nur eine Frage der Zeit, bis jemand den "Upgrade-Mechanismus" dieser Geräte analysiert und über DNS-Umleitungen und eigene Server diese Geräte mit einer eigenen Firmware versieht.

Eigene Firmware mit Löten

In meinem Fall waren es vier Steckdosen des Herstellers Gosund. SP111 Smart Socket, welche ca. 13€/Stück im 4-er Paket gekostet haben und per WLAN sowohl 230V schalten als auch den Stromverbrauch messen sollen.

 Die Steckdosen kommen gut verpackt und sehen hochwertig aus

Ich habe mich schon vorher im Internet informiert und die Steckdosen sind sehr einfach zu öffnen. eine kleine Kreuzschraube hält den Einsatz fest und darunter kommt ein ESP8266 mit beschrifteten Kontaktflächen (GND, TxD, RxD, IO0, 3,3Volt) zum Vorschein.

Das ist eine einfache Übung hier vier Kabel anzusetzen oder über Kontakte aufzulegen und eine eigene Firmware zu flashen. Da brauchen wir nur die Pins zum Schalten und zur Energiemessung. Auch hier haben anderen Autoren schon ganze Arbeit geleistet.

Das GS111 und die Shelly PlugS-Geräte (Shelly IoT) sind sehr ähnlich aufgebaut.

Gosund SP111 mit Tasmota flashen
https://www.youtube.com/watch?v=_cVoaJAQ0V4

Alles über die Gosund SP111 Steckdose [Smart Home, Tasmota, Flashen, Tuya, SmartLife, Alexa, MQTT]
https://www.youtube.com/watch?v=trkCGIxGu7I

OTA flashen wieder möglich [Smart Home Tuya LSC smart connect Maxcio Etersky gosund ioBroker]
https://www.youtube.com/watch?v=jkHaffRVRrE

Beim Einsatz von Tasmota ist als Gerät ein "45 BlitzWolf SHP2" einzustellen, wobei GPIO1 und GPIO3 auf den Wert "00" gestellt werden. Weiterhin messen wir die Spannung natürlich in "Volt" und über "PowerSet" kann man eine Kalibrierung machen, d.h. man schließt einen entsprechenden stabilen Verbraucher (klassische Glühbirne mit bekanntem Verbrauch) an und trägt den gemessenen Wert ein. Über SetOption21=1 kann man die Spannung auch ausgeschaltet messen und mit SetOption0=1 stellt das Relais den Zustand nach einem Stromausfall wieder her. Mit dem Wert bei Teleperiod stelle ich das Intervall für den Verbrauch ein. Mir reicht hier alle 60 Sekunden.

  • BAUSATZ - Blitzwolf BW-SHP6/Gosund SP111 TASMOTA Flashtool + USB-Konverter (15,90€)
    https://www.ebay.de/itm/264489975341
    Fertiger Bausatz mit Kontaktstiften und Träger aus dem 3D-Drucker zum Flashen ohne Löten

Tuya Convert: Firmwaretausch ohne Löten

Wenn Sie lieber nicht lösen oder Geräte öffnen, dann gab es zumindest Anfang 2019 noch eine Lösung diese Geräte zu aktualisieren. Alle Tuya-Geräte haben einen eingebauten Update-Mechanismus, über den Sie eine neue Firmware von Tuya über Internet beziehen können und diesen Weg kann man kapern.

Wenn man bedenkt, dass die Firmware nicht nur ihr WLAN-Kennwort kennt sondern auch in ihrem Haus-LAN Mitglied ist, eröffnet das ganz neue Optionen für Angreifer. Ein ESP8266 kann problemlos selbst DHCP-Server sein und als Man in the Middle Verbindungen mitlauschen, ihr Subnetz abscannen oder als Wanze missbrauch werden. Da frage ich mich wirklich, ob das Autoupdate einer Firmware vom Hersteller oder einer anderen Quelle in meinem Interesse ist.

Nachdem die Technik des Update analysiert und die schwache Absicherung verstanden wurde, war es wohl nur ein kleiner Schritt eine "Internet Simulation" auf Basis eines Raspberry aufzusetzen, der ein WLAN samt DHCP und DNS-Service aufspannt und die Anfragen des IoT-Geräts einfach anstelle von Tuya beantwortet. So bekommen Sie dann eine eigene Firmware (Siehe auch ESP8266 3rd Party Firmware) ganz ohne Lösen auf das Gerät

Es gibt erste Hinweise, dass Tuya das Update besser absichern will und das Update auf dem Weg irgendwann nicht mehr gehen könnte. Daher schaue ich immer nach Geräten, die auch per Lötpads erreichbar sind.

Eine genaue Beschreibung der Einrichtung erspare ich mir, da es massenhaft Seite und insbesondere den c't-Artikel und das GitHub-Repository sehr umfangreich sind.

Tuya Geräte mit Tasmota per OTA flashen 2020 [Gosund Nous SP 111 Steckdose]
https://www.youtube.com/watch?v=h0zotDplv2k

Tasmota OTA auf Gosund Steckdosen
https://www.youtube.com/watch?v=xKHZILKtMP4

Hier nur eine Kurzfassung mit einem Raspberry Pi

# Rasbian Lite auf SD-Karte kopieren 
# Datei "ssh." anlegen, damit der RasPI den SSH Daemon startet.
# Anschluss an Ethernet
# WLAN Adapter mit AP-Mode Support in USB-Port stecken.
# Einschalten
# Putty: Anmelden mit User:pi Kennwort:raspberry
# Updates einspielen
sudo apt-get update && sudo apt-get -y upgrade 

# git installieren
sudo apt-get install git

# Tuya-Convert laden und installieren
git clone https://GitHub.com/ct-Open-Source/tuya-convert
cd tuya-convert sudo
./install_prereq.sh

# Tuya Convert Dienste starten (DHCP, DNS, MQTT und HTTP-Server)
sudo ./start_flash.sh

# Nun das fragliche Gerät in den Pairing-Mode versetzen. Meist ein Druck auf eine Taste oder mehrfach Ein/Ausschalten

# Am Ende den RasPi sauber herunter fahren
sudo shutdown now

Das Device sollte dann per WLAN die SSID-Broadcasts mit den Zugangsdaten erkennen und sich mit dem vom Raspberry aufgespannten WLAN verbinden. Tuyaconvert installiert dann erst

Mein Einsatz

Ich habe alle vier Steckdosen auf Tasmota umgeflashed und in mein FCIOT-WLAN eingebunden. Dort können Sie nur meinen MQTT-Server erreichen aber nie mehr zu Tuya oder das Internet kommunizieren. Die Zwischenstecker sind an ausgewählte Systeme angeschlossen, z.B.

  • Fernseher
    Damit kann ich per Zeitsteuerung das Gerät komplett stromlos machen aber auch die Nutzung erkennen. Wer minderjährige Kinde hat, sollte darauf achten womit sie ihre Zeit verbringen
  • Waschmaschine und Trockner
    Hier kann das ansonsten "dummer Gerät" etwas smarter gemacht werden, indem das Ende der Laufzeit erkannt und gemeldet wird. Interessant ist hier aber auch das "Einschalten" zu geplanten Zeiten oder wenn die Solaranlage genug Strom liefert
  • Kühlschränke/Gefrierschränke
    Hier überbrücke ich das Relays, damit diese Geräte nicht aus versehen ausgeschaltet werden und beschränke mich auf die Ermittlung des Stromverbrauchs
  • Pool-Pumpen u.a.
    Die Messung des Stromverbrauchs erlaubt durchaus Rückschlüsse auf das Betriebsverhalten. Das gilt insbesondere, wenn der Energiebedarf sich in bekannten Regionen bewegt und plötzlich mehr oder deutlich weniger Energie benötigt wird. So lässt sich indirekt ein verstopfter Zulauf oder eine trockenlaufende Pumpe erkennen.

Ich bin sicher, sie haben auch noch die ein oder andere Idee. Ja, man kann auch per Smartphone die Gartenbeleuchtung oder andere Verbraucher "smart" schalten aber eigentlich interessiert mich eher die Automatisierung um eben nicht dauert mit Smartphone o.ä. agieren zu müssen.

Auch im IT-Umfeld kann so eine Zwischensteckdose an einem Switch, Router oder PC nicht nur den Strombedarf erfassten sondern auch ein Fern-Reset und Stromsparfunktionen ermöglichen.

Weitere Links