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.
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.
Seiteninhalt:
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 in Artikel Tuya Home Assistant Integration beschrieben.
Nicht vergessen! – Access ID/Client ID, Access Secret und Device ID notieren für spätere Verwendung.
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
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
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
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.
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?
Habe das gleiche Problem. Manuell kann ich tuya-mqtt starten. Der Service startet nicht
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
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?
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.
Mit Integration in Home Assistant, FHEM, ioBroker, etc. Zum Beispiel Home Assistant MQTT
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).
Richtig ist: sudo chown -R user:user /opt/tuya-mqtt/
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.