A node-red module to interact with the tuya smart devices
A node-red module which helps you to connect to any tuya device.
Table of contents
- Controls tuya device
- Controls multiple device using a single node using generic node (hub node)
- Can use device IP for communication
- Configure retry and find intervals
- Ability to setup Tuya Protocol Version
- Ability to listen to both
- Can store deviceId and deviceKey as crendentials
- Better error handling
Instructions for getting the device id is available here
You will get the device id and the key once you run the wizard program as per the instructiions
Get more details about latest version changes in the CHANGELOG.md
The node takes one input and one output. Once you drop the node into the flow, you need to use the deviceid and devicekey that you got from the getting started step.
Once you setup the node, you can then use input to send any command to the device as per the tuya standards.
If you need the error thrown by the node use the catch node.
The status output sends the state of the client (CONNECTING,CONNECTED,ERROR or DISCONNECTED). It will only send message if the state has been changed. . eg: even though multiple errors have been thrown, only once the ERROR state will be send. One possible scenario is
ERROR -> CONNECTING -> CONNECTED. again if ERROR occurs , then the state is send out of the node.
You can refer the example flow to get started
I am getting "Can't find device error"
The can't find device error can be due to many reasons
- Make sure the device is powered on
- Make sure the Device ID / IP / Key are correct
- Make sure that you haven't created multiple nodes for the same device. Multiple connections to the same device is not possible. This is a limitation of TuyAPI.
What is the difference between FindTimeout and RetryTimeout?
FindTimeoutis the time in milliseconds that tuya api will check for a device. Once the timeout has breached, the can't find device error is shown.
RetryTimeoutis the time in milliseconds to wait for the node to retry the connection once the device connection is disconnected due to some unexpected errors.
What is the purpose of the status output ?
The status output can be used to get the state of the current node(client). Whether disconnected or in error. You can make logic in node-red using this status. If you need to catch the whole error use the catch node.
MIT License - Copyright (c) 2020 Vinod S R
Your contributions are always welcome! Please have a look at the contribution guidelines first. :tada: