This addon connects Tuya WiFi devices with openHAB or compatible systems. The control and status reporting is done on the local network. Cloud access is only needed for discovery and initial connection.
Devices need to be connected to a Tuya account (Tuya App or SmartLife App). Each device has a unique "local key" (password/secret) which needs to be added during thing creation. It is highly recommended to use the discovery feature for that, but you can also sniff the local key with a MITM proxy during pairing.
Please note that only one local connection is allowed per device. Using the app (or other tools like tuya-mqtt) and the binding in parallel is not supported by Tuya devices and will cause problems such as inability to discover the IP address and/or inability to control the devices. The other app (and/or tuya-mqtt) must be closed in order for this binding to operate properly.
There are two things:
project thing represents a Tuya developer portal cloud project (see below).
project things must be configured manually and are needed for discovery only.
tuyadevice things represent a single device. They can be configured manually or by discovery.
Discovery is supported for
tuyadevice things. By using discovery all necessary setting of the device are retrieved from your cloud account.
First create and link a Tuya Develop Account:
iot.tuya.com(the Tuya developer portal) and create an account. You can choose any credentials (email/password) you like (it is not necessary that they are the same as in the app). After confirming your account, log in to your new account.
The next steps are performed in openHAB's Main UI:
project and enter your credentials (
password, from the app - not your cloud account!) and the cloud project credentials (
countryCode is the international dial prefix of the country you registered your app in (e.g.
49 for Germany or
43 for Austria). Depending on the app you use, set
tuyaSmart (for the Tuya Smart app) or
smartLife (for the Smart Life app). The
datacenter needs to be set to the same value as in your IoT project.
The thing should come online immediately.
If the thing does not come online, check
The best way to configure a
tuyaDevice is using the discovery service.
The mandatory parameters are
deviceId is used to identify the device, the
productId identifies the type of the device and the
localKey is a kind of password for access control. These parameters are set during discovery. If you want to manually configure the device, you can also read those values from the cloud project above.
For line powered device on the same subnet
ip address and
protocol version are automatically detected. Tuya devices announce their presence via UDP broadcast packets, which is usually not available in other subnets. Battery powered devices do not announce their presence at all. There is no clear rule how to determine if a device has protocol 3.3 or 3.1. It is recommended to start with 3.3 and watch the log file if it that works and use 3.1 otherwise.
Some devices do not automatically refresh channels (e.g. some power meters). The
pollingInterval can be increased from the default value
0 (off) to a minimum of 10s or higher. The device is then requested to refresh its data channels and reports the status.
In case something is not working, please open an issue on GitHub and add TRACE level logs.
Channels are added automatically based on device schemas on first startup. The binding first tries to get it from a database of known device schemas. If no schema is found a schema retrieved from the cloud during discovery is used (if applicable).
The device will change to OFFLINE status if no device schema could be determined.
Channels can also be added manually. The available channel-types are
switch. Depending on the channel one or more parameters are available. If a schema is available (which should be the case in most setups), these parameters are auto-configured.
All channels have at least the
dp parameter which is used to identify the channel when communication with the device.
color channel has a second (optional) parameter
dp2. This parameter identifies the ON/OFF switch that is usually available on color lights.
dimmer channel has two additional mandatory (
max) and one (optional) parameter
max parameters define the range allowed for controlling the brightness (most common are 0-255 or 10-1000). The
dp2parameter identifies the ON/OFF switch that is usually available on dimmable lights.
number channel has two additional mandatory (
max) parameters. The
max parameters define the range allowed (e.g. 0-86400 for turn-off "countdown").
string channel has one additional (optional) parameter
range. It contains a comma-separated list of command options for this channel (e.g.
white,colour,scene,music for the "workMode" channel).
projectthing is not coming
ONLINEcheck if you see your devices in the cloud-account on
iot.tuya.com. If the listis empty, most likely you selected a wrong datacenter.
Configuring IP address '192.168.1.100' for thing 'tuya:tuya:tuyaDevice:bf3122fba012345fc9pqa'. If this is missing, try configuring the IP manually. The MAC of your device can be found in the auto-discovered thing properties (this helps to identify the device in your router).
log:set TRACE org.smarthomej.binding.tuyaon the Karaf console to enable TRACE logging. Use
log:tailto display the log. You can revert to normal logging with
log:set DEFAULT org.smarthomej.binding.tuya