Tuya MQTT Integration

Von | Oktober 30, 2022
Tuya MQTT
Tuya MQTT Integration

Tuya MQTT Integration ist ein gutes Beispiel wie Sie Tuya Produktpalette leicht in verschiedene Smart Home Systeme integrieren und lokal betreiben, ohne Cloud Zwang. Die chinesische Firma stellt smarte Geräte wie Lampen, Sensoren, Schalter und Steckdosen her. Die Steuerung erfolgt normalerweise über die Tuya Cloud. Die Tuya Geräte finden Sie auch unter anderen Namen weil Tuya bietet anderen Firmen an, die Geräte als eigene Marke zu verkaufen. Bei vielen Tuya Geräten lässt sich Firmware austauschen und alternative Firmware flashen, z.B. Tasmota mit tuya-convert.

Die einfasste Weg ist natürlich mit Tuya MQTT Integration. Die Kommunikation erfolgt direkt vom lokalen Smart Home System über WLAN zum Tuya Gerät, die Tuya Cloud ist dann nicht mehr beteiligt, alles wird lokal abgewickelt.

>> ZUR INFO: Tuya MQTT Lösung ist universal und kann gleichzeitig auf mehreren Smart Home Systemen zum Einsatz kommen. Ist völlig egal ob Home Assistant, Node Red oder FHEM ist, die Tuya Geräte sind dann über die jeweilige Tuya MQTT Integration eingebunden.

Tuya MQTT – Tuya App, Cloud, IDs und Keys

Zuerst kommen wir von Tuya oder SmartLife App und Cloud nicht weg, aber das ist nur am Anfang so. Per Tuya App verbinden Sie sich mit Geräten in Heimnetzwerk, danach besuchen Sie iot.tuya.com (Development Platform) Seite. Dort müssen sie sich registrieren und bekommen Sie ein Entwickler Konto. !!! Zugangsdaten sind nicht gleich mit Tuya App Account. Wie Sie genau vorgehen, habe ich hier beschrieben (Tuya Home Assistant Integration). !!! Nicht vergessen !!! Access ID/Client ID, Access Secret und Device ID notieren für spätere Verwendung.

Tuya Cloud und Geräte ID
Tuya Cloud – Device ID für Tuya Geräte

Tuya MQTT – Software Installation

Sie haben Tuya Development Konto erfolgreich geöffnet und die Geräte integriert, weiter geht mit Software Installation. Die Software kann auf einem beliebigen Linux Gerät installiert werden, zum Beispiel Raspberry Pi, auf dem sich auch MQTT befindet. Wenn Sie keinen MQTT Server installiert haben, dann müssen Sie folgendes tun:

sudo apt install mosquitto
sudo apt install mosquitto-clients
sudo systemctl enable mosquitto # Autostart aktivieren

Jetzt holen wir Software von einen git Repository (TheAgentK), wenn keine git vorhanden ist, einfach mit „sudo apt install git“ nachinstallieren.

cd /opt 
sudo git clone https://github.com/TheAgentK/tuya-mqtt 
cd tuya-mqtt 
sudo apt install npm # Node js (npm) Installation
sudo npm install

Weiter geht mit MQTT Server Daten, kopieren Sie config.json.sample zu config.json.

sudo cp config.json.sample config.json

Die Datei config.json müssen Sie noch bearbeiten und gemäß MQTT Server anpassen.

sudo nano /opt/tuya-mqtt/config.json
Tuya MQTT - config.json
Tuya MQTT – config.json Datei gemäß eigenen MQTT Server anpassen

Für die Berechnung der Local IDs wird das Programm tuya-cli benutzt, und muss installiert werden:

cd /opt/tuya-mqtt
sudo npm i @tuyapi/cli -g # Installation
tuya-cli wizard # tuya cli starten
tuya cli wizard
tuya-cli erstellt uns benötigte Local ID für Tuya MQTT

Am Ende tuya cli erstellt conf Datei, die müssen Sie in devices.conf eintragen.

sudo nano /opt/tuya-mqtt/devices.conf

Datei devices.conf sehen dann ungefähr so aus:

[ 
{ name: 'Kinderzimmer Licht',
    id: '81550705d8bfxxxxx',
    key: '73f52dea761xxxxx' },
  { name: 'Tischlampe ',
    id: '81550705d8bfcxxxxxx',
    key: 'c042953a5xxxxxxx' } 
]

Um Funktion zu prüfen, starten wir Debug Ausgabe von tuya-mqtt.js

cd /opt/tuya-mqtt
DEBUG=tuya-mqtt:* node tuya-mqtt.js
tuya.js
Ausgabe tuya mqtt js

Die Software verbindet sich mit MQTT Server, ließt dann jede Device in devices.conf und listet schließlich die verfügbaren Topics auf. Testen Sie die Funktion mit Hilfe von MQTT-Explorer, Nachrichten die neue Geräte schicken an MQTT Server.

Wenn alles ordnungsgemäß funktioniert, dann wird tuya-mqtt noch als Service installiert.

sudo nano /etc/systemd/system/tuya-mqtt.service

Mit folgende Inhalt eintragen:

[Unit] 
Description=tuya-mqtt 
[Service] 
ExecStart=/opt/tuya-mqtt/tuya-mqtt.js 
Restart=always 
User=pi 
Group=pi 
Environment=PATH=/usr/bin:/usr/local/bin 
Environment=NODE_ENV=production 
WorkingDirectory=/opt/tuya-mqtt 
[Install] 
WantedBy=multi-user.target

Service starten Sie mit „sudo service tuya-mqtt start“ und Status prüfen mit: „sudo service tuya-mqtt status„. Wenn alles ordnungsgemäß funktioniert, aktivieren Sie Service mit „sudo systemctl enable tuya-mqtt„.

Tuya Integration in FHEM

Wie die Tuya Integration in Smart Home aussieht, zeige ich an Beispiel von FHEM.

defmod Tischlampe MQTT_DEVICE
attr Tischlampe devStateIcon on:light_light_dim_100@red off:light_light_dim_100@green
attr Tischlampe eventMap true:on false:off
attr Tischlampe group Licht
attr Tischlampe icon light_pendant_light
attr Tischlampe publishSet true false tuya/tischlampe_/dps/20/command
attr Tischlampe room Beleuchtung
attr Tischlampe sortby 3B
attr Tischlampe subscribeReading_state tuya/tischlampe_/dps/20/state
attr Tischlampe webCmd on:off

Die chinesische Cloud ist jetzt mit Tuya MQTT Methode umgegangen, aber die Firmware ist weiterhin ein potentielles Einfallstor in ihre Heimnetzwerk. Tuya meldet weiter jede Statusänderung an die Cloud. Wenn Sie sich von Cloud komplett lösen wollen, dann nur alternative Firmware oder Firewall welche Cloud DNS Abfragen blockiert.

(Visited 5.043 times, 1 visits today)

9 Gedanken zu „Tuya MQTT Integration

  1. Tempo

    Hallo,
    Tuya MQTT startet nicht.
    Fehlermeldung:
    sudo service tuya-mqtt status
    ● tuya-mqtt.service – tuya-mqtt
    Loaded: loaded (/etc/systemd/system/tuya-mqtt.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Sat 2022-12-03 03:52:39 GMT; 1min 24s ago
    Process: 519 ExecStart=/opt/tuya-mqtt/tuya-mqtt.js (code=exited, status=203/EXEC)
    Main PID: 519 (code=exited, status=203/EXEC)
    CPU: 16ms
    Dec 03 03:52:39 raspberrypi systemd[1]: tuya-mqtt.service: Scheduled restart job, restart counter is at 5.
    Dec 03 03:52:39 raspberrypi systemd[1]: Stopped tuya-mqtt.
    Dec 03 03:52:39 raspberrypi systemd[1]: tuya-mqtt.service: Start request repeated too quickly.
    Dec 03 03:52:39 raspberrypi systemd[1]: tuya-mqtt.service: Failed with result ‚exit-code‘.
    Dec 03 03:52:39 raspberrypi systemd[1]: Failed to start tuya-mqtt.
    ################

    Was ist faul?
    Danke.

  2. Hajo

    Passen die Berechtigungen im Ordner /opt/tuya-mqtt ?
    sudo chown benutzer:benutzer /opt/tuya-mqtt/ -R
    War bei mir das Problem, weil ich keinen Raspberry Pi einsetze und daher auch keinen Pi-User hab.
    Entsprechend musste ich auch die Service-Datei anpassen (Pi durch Username ersetzen).

  3. Martin

    Ich habe meine Steckdose erfolgreich auf MQTT umgestellt. Statusänderungen bekomme ich über MQTT mit, aber wie kann ich mit MQTT die Steckdose Ein- und Ausschalten?

    Danke.

  4. Frank Nosek

    Ich habe meine Pool Wärmepumpe erfolgreich integriert, allerdings wird bei jedem Neustart von fhem bzw. tuya-mqtt das Gerät neu angelegt. Hast Du hierzu eine Idee?
    Viele Grüße

    1. Hafti

      Hi Frank
      Ich habe gerade das gleiche vor und scheitere leider daran das er zwar mein Device findet aber keine Verbindung zu meiner Wärmepumpe aufbaut. Er zeigt damit alles als Offline an. Vor Ort geht das Gerät und auf der Tuya Cloud ist auch alles online.

      Hast du einen Tip für mich?

  5. Ratzebutz

    Ich habe dasselbe Problem wie Tempo.
    Ich habe die Berechtigungen geprüft, alles ok,
    drwxrwxrwx 7 orangepi orangepi 4096 1. Aug 22:00 tuya-mqtt
    Noch eine Idee?

    1. lutz

      Habe das gleiche Problem. Manuell kann ich tuya-mqtt starten. Der Service startet nicht

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert