Homey Community Forum

Anleitung: Wie Tuya (SmartLife) Geräte ID's und Keys ermitteln?

Hallo Community,

Vorgeplänkel:
es gibt eine von Rens Brandwijk geschriebene App zur Einbindung von Tuya bzw. SmartLife Geräten (hauptsächlich die Steckdosen).
Da ich SmartLife Rolladenschalter besitze habe ich den Entwickler kontaktiert und nach Einbindung dieser Schalter gefragt. Dies hat er dankenswerterweise auch sofort in Angriff genommen und in folgendem Thread kann der Fortschritt (gegen Ende des Threads) verfolgt werden:

Kern der Sache:
Voraussetzung für die Einbindung von Tuya Geräten ist die Kenntnis deren ID und Key, welche aber leider in der Tuya-/SmartLife-App nicht angezeigt werden. Vielmehr ist dafür ein (meinem Empfinden nach) recht kompliziertes Verfahren nötig, welches ich nirgendwo von Anfang bis Ende Schritt für Schritt dokumentiert gefunden habe.

Um anderen Nutzern von Tuya-Geräten den Einstieg hoffentlich zu erleichtern, habe ich die Vorgehensweise im Folgenden festgehalten:

Ermittlung der ID’s und key’s der Geräte in der Tuya-App (Smart Life)

  1. “Node Version Manager for Windows” von folgender Quelle herunterladen: https://github.com/coreybutler/nvm-windows/releases
    (nvm-setup.zip der aktuellsten Releaseversion)

  2. Downloaddatei entpacken und darin enthaltene exe-Datei ausführen und installieren

  3. Windows Power-Shell als Administartor (Rechtsklick) ausführen

  4. In die Power-Shell folgende Befehle eingeben:

    • nvm
      (zum Testen ob die Installation funktioniert hat. Es sollte eine Versionsionformation gefolgt von einer Liste mit Befehlen angezeigt werden)
    • nvm install latest
      (installiert die aktuellste Node.js-Version, die Versionsnummer wird nach der Installation angezeigt)
    • nvm use VERSIONSNUMMER
      (Hierdurch wird die eben installierte Version von Node.js aktiviert. VERSIONSNUMMER ist natürlich durch die im vorherigen Schritt angezeigte Versionsnummer zu ersetzen.)

    Im Anschluss muss zunächst durch Eingabe von

    Set-ExecutionPolicy RemoteSigned

    in die Power-Shell (gefolgt von “J” als Bestätigung der angezeigten Nachfrage) die Ausführung von Skripten ermöglicht werden.
    Ohne diesen Befehl käme es bei dem folgenden Skriptaufruf in der Powershell zu einer Fehlermeldung, weil standardmäßig die Ausführung von Skripten systemseitig verweigert wird.

  5. Nun kann mit der Installation des CLI-Tools der Tuya-API begonnen werden, dazu folgenden Befehl in die Power-Shell eingeben:

    npm i @tuyapi/cli -g

  6. Nach Eingabe des Befehls

    tuya-cli list-app

    wird ein QR-Code in der Power-Shell angezeigt. Diesen mit einer geeigneten Handy-App einscannen und ein root-Zertifikat aufs Handy herunter laden.

  7. Das Zertifikat wie folgt auf dem Androidgerät als vertrauenswürdig installieren:

    • Einstellungen/Sicherheit/Von SD-Karte installieren…
    • das heruntergeladene Zertifikat auswählen und installieren (Auswahl “VPN und Apps”, nicht etwa “WLAN”(!), Zertifikatsname z.B. “Tuya”
    • dabei muss, falls noch kein Pin für die Android-Displaysperre eingerichtet ist, ein solcher vergeben werden
    • Anschließend kontrollieren, ob unter Einstellungen/Sicherheit/Vertrauenswürdige Anmeldedaten/Nutzer das Zertifikat eingetragen ist. Dabei wird nicht der oben eingetragene Name (im Beispiel “Tuya”) angezeigt, sondern “Node MITM Proxy CA” (war zumindest bei mir so).
  8. Auf dem Handy unter der benutzten WLAN-Verbindung (WLAN-Namen gedrückt halten, “Netzwerk ändern” auswählen und “erweiteret Optionen einblenden”) einen Proxy einrichten und dabei die Parameter (IP und Port) benutzen, die in der Power-Shell unterhalb des QR-Codes angezeigt werden.

  9. Die Tuya Smart App auf dem Handy öffnen, danach erscheint im Power-Shell-Fenster die Liste der Tuya-Geräte mit ID und Key. Wenn nicht, dann durch “runterziehen” der in der Tuya-App angezeigten Geräteliste diese aktualiseren. Evtl. ist es auch nötig in der Firewall den Port 8001 zu öffnen - brauchte ich aber nicht.

  10. Anschließend den Proxy unter der WLAN-Verbindung wieder löschen, da das Handy ansonsten unter dieser WLAN-Verbindung keine Internetverbindung mehr aufbauen kann.