Inhalt
Tuya ist den Smart-Home-Betreibern seit langem ein Begriff. Die chinesische Firma stellt smarte Geräte wie Lampen, Sensoren, Schalter und Steckdosen her. Die Steuerung erfolgt normalerweise über die Tuya-Cloud.
Zudem bietet Tuya anderen Firmen an, die Geräte unter ihrem eigenen Markennamen zu verkaufen und ihren Kunden eine eigene, gebrandete Version der Cloud-Funktionen anzubieten. So findet man Tuya-Geräte unter vielen Namen, unter anderen auch als „essentials Smart Home Solutions”.
Was die Tuya-Geräte interessant macht, ist ihre leichte Umrüstbarkeit auf andere Firmware. Damit befreit man sich vom Zwang, die chinesische Cloud-Lösung benutzen zu müssen, die nach viele Berichten mitunter langsam und unzuverlässig ist. Unter anderem bei Tasmota, einer der alternativen Firmware-Lösungen, werden die verschiedenen Möglichkeiten beschrieben.
Tuya-Local
Es geht aber noch einfacher. Wer sich die Umrüstung nicht zutraut oder sich einfach die Mühe ersparen will, kann auch mit der Original-Firmware ohne Umwege über die Cloud arbeiten. Grundlage dafür ist die Software TuyAPI, die den Zugriff auf die Tuya-Geräte für verschiedene Systeme bereitstellt.
Die Kommunikation erfolgt dabei direkt vom lokalen System über WLAN zum Tuya-Gerät; die Tuya-Cloud ist dann nicht mehr beteiligt.
Einzige Hürde ist die Beschaffung der nötigen Geräte-IDs und -Keys. Die TuyAPI-Seite beschreibt den Vorgang zwar ausführlich, aber ich fasse das unten nochmal mit Abbildungen in Deutsch zusammen.
Wo Integrieren?
Die TuyAPI kann in verschiedene Software-Systeme integriert werden. Ich habe mir das für die Kommandozeile (tuyAPI/cli), homeassistant (local tuya), Node-Red (node-red-contrib-tuya-smart) und MQTT (tuya-mqtt) angesehen und getestet. Alle Lösungen funktionierten (nach etwas Einarbeitung) ohne Probleme. Weitere Lösungen gibt es u.a. auch für OpenHAB und FHEM.
Für jedes Gerät kann aber immer nur eine Lösung aktiv sein, weil tuyAPI ständig Verbindung zum Geräte-Interface hält. Aktiviert man eine zweite Instanz, bekommt diese keine Verbindung. Will man also die Tuya-Lösung parallel etwa in homeassistant und Node-Red nutzen, bleibt eigentlich nur die MQTT-Variante als universelle Basis-Lösung übrig. In homeassistant, Node-Red und andere übergeordnete Steuersysteme werden die Geräte dann über die jeweilige MQTT-Integration eingebunden.
IDs und Keys besorgen
IDs und Keys werden für den Aufbau der Kommunikation zu den Tuya-Geräten benötigt. Die ID ist eine eindeutige Adresse im Tuya-Netz, während der Key zur Authentisierung nötig ist. Beides bekommt man über die Tuya-Entwicklungsumgebung. Und das läuft so:
- Geräte über die Tuya-Smart-App registrieren:
- App auf eurem Smartphone installieren
- Konto erstellen und aktivieren
- Geräteregistrierung nach Anweisung
Die Tuya-App funktioniert auch für alle anderen Tuya-basierten Marken. - Auf der Tuya-Entwicklungsplattform iot.tuya.com registrieren und anmelden
- Ein neues Cloud Projekt anlegen und öffnen
- Unter dem Projektnamen stehen
Access ID
undAccess Secret
- für späteren Gebrauch kopieren - Unter
Link Devices
den TabLink Devices by App Account
wählen und nach den Anweisungen die Tuya-Smart-App verlinken - Auf dem Tab
Device List
erscheinen dann die Geräte aus der App - dieID
unter demDevice Name
für jedes Gerät notieren
Unsere notierte Liste enthält jetzt die Access ID
, das Access Secret
und für jedes Gerät eine Device ID
. Damit können wir uns später die Local ID
s erzeugen lassen.
Software installieren
Die Software kann auf einem beliebigen Linux Server installiert werden - bei mir läuft sie auf dem gleichen Raspberry, auf dem sich auch MQTT befindet.
Die Software selbst holt ihr aus ihrem git-Repository und installiert sie in /opt:
cd /opt
sudogit clone https://github.com/TheAgentK/tuya-mqtt
cd tuya-mqtt
sudonpm install
cd .. sudo chown -R pi:pi tuya-mqtt
Kopiert die Konfigurationsdatei und tragt die Zugangsdaten für euren MQTT-Server ein:
cp config.json.sample config.json
viconfig.json
Der Inhalt sieht dann in etwa so aus:
{ "host": "localhost", "port": 1883, "topic": "tuya/", "mqtt_user": "user", "mqtt_pass": "secret" }
Zuletzt muss noch die Gerätekonfiguration angelegt werden. Dafür ist der Output von tuya-cli nötig, den ihr einfach in devices.conf
umleiten könnt - siehe nächster Abschnitt.
Local IDs erzeugen
Für die Berechnung der Local IDs wird das Kommandozeilenprogramm tuya-cli
benutzt, das schon mit tuya-mqtt
installiert wurde:
$ tuya-cli wizard > devices.conf ? The API key from tuya.com: owieuqfgcbe78etrcbeoqwe ? The API secret from tuya.com: hfiwe8764ucrbewuiortqcb ? Provide a 'virtual ID' of a device currently registered in the app: 1234567890abcdefghijkl $
In der devices.conf
findet ihr dann folgendes:
[ { name: 'device1', id: '1234567890abcdefghijkl', key: 'f48af11f51cf2813' } ]
Der Name kann beliebig angepasst werden; er bildet später einen Teil der MQTT-Topics.
Erster Start
Der erste Start kann, um die Funktion zu prüfen, auf der Kommandozeile mit Debug-Ausgaben erfolgen:
DEBUG=tuya-mqtt:* node tuya-mqtt.js
Die Ausgabe sollte etwa so aussehen:
tuya-mqtt:info Connection established to MQTT server +0ms tuya-mqtt:tuyapi Search for device id 1234567890abcdefghijkl +0ms tuya-mqtt:tuyapi Found device id 1234567890abcdefghijkl +1s tuya-mqtt:tuyapi Received JSON data from device 1234567890abcdefghijkl -> {"1":false,"2":false,"3":false,"4":false,"5":false,"6":0,"7":0,"8":0,"9":0,"10":0} +57ms tuya-mqtt:tuyapi Connected to device device1 (1234567890abcdefghijkl, abcdefghi123456) +957ms tuya-mqtt:tuyapi Received JSON data from device 1234567890abcdefghijkl -> {"1":false,"2":false,"3":false,"4":false,"5":false,"6":0,"7":0,"8":0,"9":0,"10":0} +32ms tuya-mqtt:state MQTT DPS JSON: tuya/mp1/dps/state -> {"1":false,"2":false,"3":false,"4":false,"5":false,"6":0,"7":0,"8":0,"9":0,"10":0} +0ms tuya-mqtt:state MQTT DPS1: tuya/mp1/dps/1/state -> false +1ms tuya-mqtt:state MQTT DPS2: tuya/mp1/dps/2/state -> false +1ms tuya-mqtt:state MQTT DPS3: tuya/mp1/dps/3/state -> false +1ms tuya-mqtt:state MQTT DPS4: tuya/mp1/dps/4/state -> false +1ms tuya-mqtt:state MQTT DPS5: tuya/mp1/dps/5/state -> false +1ms tuya-mqtt:state MQTT DPS6: tuya/mp1/dps/6/state -> 0 +0ms tuya-mqtt:state MQTT DPS7: tuya/mp1/dps/7/state -> 0 +1ms tuya-mqtt:state MQTT DPS8: tuya/mp1/dps/8/state -> 0 +1ms tuya-mqtt:state MQTT DPS9: tuya/mp1/dps/9/state -> 0 +1ms tuya-mqtt:state MQTT DPS10: tuya/mp1/dps/10/state -> 0 +0ms
Die Software meldet sich am MQTT-Server an, verbindet sich dann mit jedem Device in devices.conf
und listet schließlich die verfügbaren Topics auf.
Testet die Funktion, indem ihr von einem MQTT-Client (auf Linux z.B. MQTTfx oder MQTT-Explorer) Messages an Topics des neuen Geräts schickt und prüft die Reaktion.
Am Ende stoppt ihr tuya-mqtt
mit Ctrl-C
.
Service einrichten
Ist alles erfolgreich gelaufen, wird tuya-mqtt
noch als Service installiert, damit er bei jedem Systemstart mitgestartet wird.
Erzeugt dafür die Datei /etc/systemd/system/tuya-mqtt.service
mit folgendem Inhalt:
[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
Startet den Service mit
sudo service tuya-mqtt start
und prüft mit
sudo service tuya-mqtt status
ob der Zustand des Service normal ist. Das sollte etwa so aussehen:
$ sudo service tuya-mqtt status ● tuya-mqtt.service - tuya-mqtt Loaded: loaded (/etc/systemd/system/tuya-mqtt.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2021-01-18 19:23:01 CET; 1s ago Main PID: 22318 (node) Tasks: 7 (limit: 3859) CGroup: /system.slice/tuya-mqtt.service └─22318 node /opt/tuya-mqtt/tuya-mqtt.js Jan 18 19:23:01 node systemd[1]: Started tuya-mqtt. $
Schließlich aktiviert ihr den Service mit
sudo systemctl enable tuya-mqtt
Falls neue Geräte aufgenommen werden sollen, fügt ihr sie eurem Tuya-Cloud-Projekt hinzu und ermittelt die Local ID
mit tuya-cli
. Die Ausgabe hängt ihr an devices.conf
an und startet tuya-mqtt
neu. Danach sollten sie in MQTT verfügbar sein.
Fazit
Den Umweg über die chinesische Cloud sind wir mit dieser Methode los. Allerdings bleibt die Firmware der Geräte weiterhin ein potentielles Einfallstor in unser LAN. Sie meldet jede Statusänderung weiter an die Cloud und kann unbekannte Funktionen besitzen oder durch ein Firmware-Update bekommen.
Wenn man sich ganz von der fremden Cloud lösen will, kann man Verbindungen und DNS-Abfragen mit einer Firewall wie pi-hole blockieren oder eben doch die gründliche Lösung des Flashens mit einer alternativen Firmware wählen.
Hallo,
deine Beschreibung ist sehr gut, allerdings fehlt etwas, zumindest nach dem Stand den ich herausgefunden habe. Um das device zu bekommen muss man noch eine APP in der Tuya-Cloud konfigurieren bei der dann AUTHORIZATION aktiviert werden muss. Sonst geht der Aufruf um den eigenen Key zu generieren nicht. Weiterhin kann man zwar den Status der Dosen sehen, allerdings wird kein Schaltvorgang ausgelöst wenn man den Status aus einem Client heraus verändert. Gibt es hier eine Lösung, falls bei dir das gleiche Problem aufgetreten ist.
Vielen Dank und Gruß
Holger Fiedler
Kannst du bitte nochmal genauer beschreiben, was du wo wie eingestellt hast? Aktuell bekomme ich ein „cross-region access is not allowed” und finde die Einstellung die du beschreibst, nicht.
Hallo danke erstmal für den Beitrag der hilft wirklich schon sehr weiter um Tuya Geräte per mqtt anzubinden. ich habe aktuell aber ein Problem und weiß nicht wie ich weiter komme, weil ich nicht weiß, was ich anstelle von pi:pi einsetzen muss.
An dieser Stelle.:
sudo chown -R pi:pi tuya-mqtt
Kopiert die Konfigurationsdatei und tragt die Zugangsdaten für euren MQTT-Server ein:
cp config.json.sample config.json
vi config.json
Hallo Janßen,
pi:pi ist der Nutzer und die Gruppe, unter dem der tuya-mqtt Service laufen soll. Das muss mit der Eintragung in deinem Service-File übereinstimmen (tuya-mqtt.service: User=pi Group=pi). Welcher Nutzer das sein soll, hängt von deiner Systemkonfiguration ab. Beim Raspberry OS ist das üblicherweise der Nutzer pi.
Gruß
Jörg
Moin,
Kopiert die Konfigurationsdatei
OK
und wo muss die dann hin *Kratzamkopf*
Gruß
Frank
Die Kopie bleibt im selben Verzeichnis, in dem auch das Original liegt, im Beispiel oben also unter /opt/tuya-mqtt.
Moin,
jetzt hänge ich wieder fest.…
pi@raspberrypi:~ $ DEBUG=tuya-mqtt:* node tuya-mqtt.js
internal/modules/cjs/loader.js:905
throw err;
^
Error: Cannot find module ‘/home/pi/tuya-mqtt.js’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
at internal/main/run_main_module.js:17:47 {
code: ‘MODULE_NOT_FOUND’,
requireStack: []
Wie löse ich das Problem?
Danke für die Antwort habe es nun ans laufen bekommen.
Nur weiß ich nicht wie das Topic heißt mit welchem ich aus Openhab die Werte abfragen kann. habe schon alles aus probiert. bekomme die channels nicht zum laufen .
Die topics heißen bei mir für den Status tuya/mp1/dps/1/state und für die Kommandos tuya/mp1/dps/1/command,wobei die Kanäle (die Zahl zwischen dps und state) von 1 bis 5 hochzählen.
Am besten Du verbindest dich mal mit z.B. dem MQTT-Explorer mit deinem Broker und schaust, welche Nachrichten beim Schalten der Steckdosen einlaufen.
Hallo zusammen,
ich habe leider auch ein Problem. Zwar kann ich scheinbar per ´sudo service tuya-mqtt start´ den service starten, jedoch gibt ´ sudo service tuya-mqtt status´ folgendes zurück:
● tuya-mqtt.service - tuya-mqtt
Loaded: loaded (/etc/systemd/system/tuya-mqtt.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2021-09-04 08:26:52 BST; 21s ago
Process: 1580 ExecStart=/opt/tuya-mqtt/tuya-mqtt.js (code=exited, status=203/EXEC)
Main PID: 1580 (code=exited, status=203/EXEC)
Der Service startet also nicht, es erfolgt keine Kommunikation mit MQTT.
Starte ich ´DEBUG=tuya-mqtt:* node tuya-mqtt.js´ aus dem Verzeichnis /opt/tuya-mqtt/ so bekomme ich folgende Ausgabe:
tuya-mqtt:info Connection established to MQTT server +0ms
tuya-mqtt:tuyapi Search for device id bf8a39f7310df6122cmthq +0ms
tuya-mqtt:tuyapi Found device id bf8a39f7310df6122cmthq +1s
tuya-mqtt:tuyapi Received JSON data from device bf8a39f7310df6122cmthq -> {„1”:true,„2”:„colour”,„3”:25,„4”:255,„5”:„00141c00c4ff19”,„101”:true} +146ms
tuya-mqtt:tuyapi Connected to device LED SmartRGB (bf8a39f7310df6122cmthq, 3227646d21b6ba08) +972ms
tuya-mqtt:tuyapi Received JSON data from device bf8a39f7310df6122cmthq -> {„1”:true,„2”:„colour”,„3”:25,„4”:255,„5”:„00141c00c4ff19”,„101”:true} +52ms
Hier scheint also alles zu laufen.
Meine Frage: Was muss ich tun damit die Services korrekt starten?
Ist natürlich aus der Ferne schwierig zu beurteilen, aber ich würde mal prüfen, ob der User, unter dem der Service laufen soll, die nötigen Rechte hat. Möglicherweise findest Du auch im syslog noch Hinweise.
Hatte das selbe Problem. Ich musste in meinem EXEC und PATH etwas anpassen. Anbei meine Config, Achtung ich führe es aktuell noch als ROOT aus.
[Unit]
Description=tuya-mqtt
[Service]
ExecStart=node /opt/tuya-mqtt/tuya-mqtt.js
Restart=always
User=root
Group=root
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Environment=NODE_ENV=production
WorkingDirectory=/opt/tuya-mqtt
[Install]
WantedBy=multi-user.target
Danke für den Hinweis mit dem ExecStart=node /opt/tuya-mqtt/tuya-mqtt.js
Das node machte den Unterschied.
Nun sehe ich meine Geräte im MQTT Broker, aber wie steuere ich sie denn?
Wie bekomme ich Sie mit MQTThing in Homebridge so eingebracht, dass ich die Stati setzen kann und der Schalter dann reagiert?
genau an dieser Stelle geht es bei mir auch nicht weiter - ich starte tuya-cli … und bekomme keine Rückmeldung … d.h. ich muss den Prozess abbrechen … und bekomme keine Einträge in die devices.conf
Wenn man nur tuya-cli wizard > devices.conf startet sieht man, dass noch eine Abfrage erfolgt. Ich habe daher mit sudo nano devices.conf eine Datei angelegt und dort die Bildschrimausgabe von tuya-cli reinkopiert
Hey, das war echt die Lösung meines Problems. Nur habe ich nun ein besonderes Problem:
Ich kann nun den Switch einschalten über OH(klappt)
Klicke ich nun auf aus, kommt kein Command im MQTT an (klappt nicht)
Schalte ich wieder ein, kommt der Command im MQTT an (command set:true) (klappt)
Schalte ich es wieder aus, klappt es auch wieder. (Command set:false)
Hier einmal mein Log.
tuya-mqtt:command Received MQTT message -> {„topic”:„tuya/kühlschrank_patrick/dps/1/command”,„message”:„true”} +13s
tuya-mqtt:command Received command for DPS1: true +13s
tuya-mqtt:tuyapi Set device 04200098b4e62d1075c0 -> {„dps”:„1”,„set”:true} +13s
tuya-mqtt:tuyapi Received JSON data from device 04200098b4e62d1075c0 -> {„1”:true} +53ms
tuya-mqtt:state MQTT DPS JSON: tuya/kühlschrank_patrick/dps/state -> {„1”:true} +13s
tuya-mqtt:state MQTT DPS1: tuya/kühlschrank_patrick/dps/1/state -> true +0ms
tuya-mqtt:command Received MQTT message -> {„topic”:„tuya/kühlschrank_patrick/dps/1/command”,„message”:„true”} +22s
tuya-mqtt:command Received command for DPS1: true +22s
tuya-mqtt:tuyapi Set device 04200098b4e62d1075c0 -> {„dps”:„1”,„set”:true} +22s
tuya-mqtt:tuyapi Received JSON data from device 04200098b4e62d1075c0 -> {„1”:true} +29ms
tuya-mqtt:state MQTT DPS JSON: tuya/kühlschrank_patrick/dps/state -> {„1”:true} +22s
tuya-mqtt:state MQTT DPS1: tuya/kühlschrank_patrick/dps/1/state -> true +0ms
tuya-mqtt:command Received MQTT message -> {„topic”:„tuya/kühlschrank_patrick/dps/1/command”,„message”:„false”} +9s
tuya-mqtt:command Received command for DPS1: false +9s
tuya-mqtt:tuyapi Set device 04200098b4e62d1075c0 -> {„dps”:„1”,„set”:false} +9s
tuya-mqtt:tuyapi Received JSON data from device 04200098b4e62d1075c0 -> {„1”:false} +108ms
tuya-mqtt:state MQTT DPS JSON: tuya/kühlschrank_patrick/dps/state -> {„1”:false} +9s
tuya-mqtt:state MQTT DPS1: tuya/kühlschrank_patrick/dps/1/state -> false +0ms
Was kann das Problem sein, ich steh grad wie ein Ochs vorm Berg.
Hallo, bei mir wurde tuya-cli nicht installiert, kann ich das nach installieren? Oder wie rufe ich das auf?
Gruß
Matthias
@Matthias,
ich konnte das mit „sudo npm i @tuyapi/cli -g” lösen.
Gruß Sal
Hallo zusammen,
ich musste auch tuya-cli nachinstallieren, allerdings funktioniert der Aufruf: „$ tuya-cli wizard > devices.conf”. Es wird keinerlei ID abgefragt, die erzeugte Datei schaut so aus „? The API key from tuya.com: [29D[29C”.
Wer kann bitte helfen?
Danke im Voraus MR
Vielen Dank für die sehr gute Anleitung. Genau das habe ich schon seit Wochen gesucht. Damit werde ich meine Homebridge hoffentlich deutlich einfacher steuern können.
mit dem Debug-Befehl landen bei mir Einträge im MQTT, die schon ziemlich gut aussehen.
Dann habe ich den Service gemäß Anleitung gestartet, jedoch erhalte ich dann einen Fehler.
sudo service tuya-mqtt status
* tuya-mqtt.service - tuya-mqtt
Loaded: loaded (/etc/systemd/system/tuya-mqtt.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2021-12-04 18:14:07 GMT; 6s ago
Process: 8243 ExecStart=/opt/tuya-mqtt/tuya-mqtt.js (code=exited, status=203/EXEC)
Main PID: 8243 (code=exited, status=203/EXEC)
Dez 04 18:14:07 homebridge systemd[1]: tuya-mqtt.service: Service RestartSec=100ms expired, scheduling restart.
Dez 04 18:14:07 homebridge systemd[1]: tuya-mqtt.service: Scheduled restart job, restart counter is at 5.
Dez 04 18:14:07 homebridge systemd[1]: Stopped tuya-mqtt.
Dez 04 18:14:07 homebridge systemd[1]: tuya-mqtt.service: Start request repeated too quickly.
Dez 04 18:14:07 homebridge systemd[1]: tuya-mqtt.service: Failed with result ‘exit-code’.
Dez 04 18:14:07 homebridge systemd[1]: Failed to start tuya-mqtt.
Wie kann ich das beheben?
So, ich habe nun mit der von Jan-Patrick beschriebenen Änderung den Dienst zum laufen bekommen. Die Geräte werden nun auch einwandfrei per MQTT eingesteuert.
Dann gestaltete sich noch die Steuerung in der Homebridge als schwierig. Das Auslesen des Status war ja einfach. Hier nutze ich MQTThing.
{
„type”: „outlet”,
„name”: „Stern------Kids”,
„topics”: {
„getOn”: „tuya/geraetename/dps/1/state”,
„setOn”: „tuya/geraetename/dps/1/command”
},
„onValue”: „true”,
„offValue”: „false”,
„accessory”: „mqttthing”
},
Mit tuya/bad-licht/dps/1/state klappt das Auslesen des Status. Allerdings hatte ich keine Idee, wie ich ein Kommando absetze. Mit tuya/geraetename/dps/1/command kann man diesen dann aber absetzen.
Hat das Gerät zwei Schalter, dann muss tuya/geraetename/dps/1/state mit tuya/geraetename/dps/2/state als zweiter Eintrag ergänzt werden.
Für die Einrichtung in Node-red habe ich das Plugin node-red-contrib-tuya-local genutzt. Eine weiter Schwierigkeit war die Eingabe der IP Adressen von der Fritz!Box. Hier habe ich die neuen wlan0 Geräte nach und nach mit der Mac-Adresse ausfindig gemacht.
Hier lauten die Inject Befehle entweder true und false bzw. bei Geräten mit 2 Schaltern
{„set”: true, „dps” : 1} bow. {„set”: true, „dps” : 2} zum einschalten.
{„set”: false, „dps” : 1} bow. {„set”: false, „dps” : 2} zum ausschalten.
Ich hoffe, das hilft dem einen oder anderen weiter.
Vielen Dank für die Arbeit. Einwandfrei.
Hallo zusammen,
ich komme leider nur bis zur dem Punkt:
- tuya-cli wizard > devices.conf
- tuya-cli musst ich vorher ebenfalls nachinstallieren: sudo npm i @tuyapi/cli -g”
- leider passiert nichts, es wird nichts abgefragt
- wenn ich mit CTLC beende habe ich eine deices.conf mit folgendem Inhalt: ? The API key from tuya.com: [29D[29C
Was mache ich falsch?
Danke schon mal im Voraus für die Hilfe
Rumsfelder, ich hatte den Fehler auch. Du darfst nur tuya-cli wizard in die Konsole kopieren. das > devices.conf gehört da nicht hin. Ist ein Fehler in der Anleitung.
Bekomme den Service auch nicht mit der Lösung von Jan-Patrick zum Laufen.
mit „node” kommt „exec format error” und „executeble path not absolut und ohne kommt beim Start kein Fehler aber geht trotztem nicht
bei mir gehts nur mit ExecStart= /absoluter Pfad/node /opt/tuya-mqtt/tuya-mqtt.js
aber wie lautet das MQTT Topic für das Schalten eines Geräts ( bei mit ein tuya_smart_valve_conrtoller )
MQTTFX liefert z.B beim Schalten am Gerät „tuya/smart_valve_controller/dps/1/state” und als Wert „true” oder „false”.
jedoch alleBefehle zum Schalten über MQTTFX werden ignotiert.
Mir geht es auch so. Kann über State alle Befehle abfragen, aber nichts senden mit command. Kann evtl. jemand helfen?
Wenn ich das richtig sehe, sind hier lediglich TuYa-Geräte mit WLAN gemeint. Wenn man welche mit Zigbee nutzt, hat man mit deren Cloud eigentlich von Haus aus nix am Hut 🙂 Außer der (von mir) genutzte MQTT-Server sucht doch irgendwo nach Firmwareupdates.
Vielleicht sollte man das ganz zu Anfang klarstellen, welche „Funktechnologie” hier betroffen ist.
Hallo Florian..
nachdem ich entnerft ca. 4 Stunden probiert habe , fand ich raus das ews einfach ZU EINFACH geht. Alles was ich mühevoll über MQTT gelernt hab,m gilt hier nicht:
pi@homeauto:/root $ mosquitto_pub -h localhost -t tuya/st_3_frei/dps/1/command -m true
pi@homeauto:/root $ mosquitto_pub -h localhost -t tuya/st_3_frei/dps/1/command -m false
schaltet ein/aus
nebenbei tuya-cli wurde hier nicht automatisch mit tuya-mqtt installiert , das musste ich hier mit :
sudo npm i @tuyapi/cli -g
nachinstallieren
Komme leider über den Step : /node_modules/.bin/tuya-cli wizard nicht drüber.
habe mir auf der Tuya Developer Seite „Access ID/Client ID” und „Access Secret/Client Secret” generiert. Auch mein Account verbunden. Sehe dort auch das Device
root@zigbee:/opt/tuya-mqtt# ./node_modules/.bin/tuya-cli wizard
? The API key from tuya.com: jt7wf4vexxxxxxxj
? The API secret from tuya.com aa94ad9ad606408xxxx
? Provide a ‘virtual ID’ of a device currently registered in the app: 123456xxxl
There was an issue fetching that device. Make sure your account is linked and the ID is correct.
Wäre nett für einen Tip! Danke
Auch ich komme hier nicht weiter. Wenn man „DEBUG=* tuya-cli wizard” eingibt erhält man folgende Rückmeldung: cross-region access is not allowed.
Ich habe schon alle Regionen in Tuya durchprobiert. Es kommt bei allen Einstellungen. Kann ich auf dem Raspi wo tuya-mqtt läuft noch etwas einstellen?
Hallo, ich habe es bis zum Testen erfolgreich geschafft.
Doch bei dem Befehl DEBUG=tuya-mqtt:* node tuya-mqtt.js
bekomme ich folgende Ausgabe:
tuya-mqtt:info Connection established to MQTT server +0ms
tuya-mqtt:tuyapi Search for device id bf941e31d7b89d8899qpsk +0ms
tuya-mqtt:error bind EADDRINUSE 0.0.0.0:6666 +0ms
tuya-mqtt:error Will attempt to find device again in 60 seconds +0ms
kannst du mir sagen, wo hier der Fehler liegt?
Grüße Toolmaster
Hallo hoffe du kannst mir helfen!
ich habe im Internet einge Webcam mit Tuya . Applikation bestellt.
Leider sind diese Webcams in der Tuya-Cloud schon mit einem Account verbunden, habe auch die Anfrage gesandt, dies zu löschen aber nimand kann mitr unterstützung geben.
Gibt es eine Möglichkeit diese vom Account oder von der Cloud zu befreien?
Es sind INQMEGAPRO Webcams, die ich über Amazon beziogen habe.
Anfrega bei TUYA bei Amazon und bei IOMEGAPRO diekt alles negative antworten.
Danek für deine Untertaützung oder Antwort.
Hallo,
erst mal vielen Dank für deine Arbeit, hat mir schon sehr geholfen!
habe inzwischen 2 Teckin W-Lan Schalter, 1 W-Lan Smartmeter und 1 Beok Zigbee Heizungsthermostat eingebunden und mit openhab 3 verbunden.
Daten abrufen funktioniert bei allen Geräten ohne Probleme!
Problem habe ich nur bei dem Heizungsthermostat die Temperatur ein zu stellen!
da fehlt mir das passende Kommando?
mit ‘commandTopic=„tuya/zx-5028/dps/command” ’ kann ich zwar Daten senden, aber das Thermostat reagiert nicht!
zx-5028 ist das Zigbee Gateway und das Thermostat ist da als Sub-Device verbunden!
Danke für die Anleitung.
Klappt bestens, alle Geräte eingelesen mit tuya-cli wizard