[APP][Pro] Universal TUYA Zigbee Device App - test

Hi Dylan,

Is it possible to add this plant/soil sensor to the app?

https://nl.aliexpress.com/item/1005010793321103.html

Picture

Zigbee2mqtt device info

https://www.zigbee2mqtt.io/devices/ZS-SF00.html#arteco-zs-sf00

Interview
  "ids": {
    "modelId": "Arteco",
    "manufacturerName": "A89G12C"
  },
  "endpoints": {
    "ieeeAddress": "a4:c1:38:ce:a5:a2:98:55",
    "networkAddress": 2254,
    "modelId": "Arteco",
    "manufacturerName": "A89G12C",
    "endpointDescriptors": [
      {
        "status": "SUCCESS",
        "nwkAddrOfInterest": 2254,
        "_reserved": 26,
        "endpointId": 1,
        "applicationProfileId": 260,
        "applicationDeviceId": 770,
        "applicationDeviceVersion": 0,
        "_reserved1": 1,
        "inputClusters": [
          0,
          3,
          61184,
          1026,
          1029,
          1
        ],
        "outputClusters": [
          3,
          61184,
          4096
        ]
      }
    ],
    "deviceType": "enddevice",
    "receiveWhenIdle": false,
    "capabilities": {
      "alternatePANCoordinator": false,
      "deviceType": false,
      "powerSourceMains": false,
      "receiveWhenIdle": false,
      "security": false,
      "allocateAddress": true
    },
    "extendedEndpointDescriptors": {
      "1": {
        "clusters": {
          "basic": {
            "attributes": [
              {
                "acl": [
                  "readable"
                ],
                "id": 0,
                "name": "zclVersion",
                "value": 3
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 1,
                "name": "appVersion",
                "value": 0
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 5,
                "name": "modelId",
                "value": "Arteco"
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 4,
                "name": "manufacturerName",
                "value": "A89G12C"
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 7,
                "name": "powerSource",
                "value": "battery"
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "identify": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "writable"
                ],
                "id": 0,
                "name": "identifyTime",
                "value": 0
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 1
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "temperatureMeasurement": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "measuredValue",
                "value": 2200,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "relativeHumidity": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "measuredValue",
                "value": 0,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "powerConfiguration": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 32,
                "name": "batteryVoltage",
                "value": 30,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 33,
                "name": "batteryPercentageRemaining",
                "value": 200,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 49,
                "name": "batterySize",
                "value": "AAA"
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          }
        },
        "bindings": {
          "identify": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "writable"
                ],
                "id": 0,
                "name": "identifyTime",
                "value": 0
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 1
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          },
          "touchlink": {
            "attributes": [
              {
                "acl": [
                  "readable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 1
              }
            ],
            "commandsGenerated": "UNSUP_GENERAL_COMMAND",
            "commandsReceived": "UNSUP_GENERAL_COMMAND"
          }
        }
      }
    }
  }

It was a reply in the Message from @tlink

yes okay :slight_smile:

yes i will add it asap

1 Like

5.11.5 Zigbee IR remote

Device is recognized, but learning mode still not working. When button is pushed, it turns off right away. When sending IR through remote, nothing is receiverd.

Diagnostic report → caed9008-4d35-45ce-b62d-1d699c7e0b7d

@dlnraja please push 5.11.14 as _TZ3000_tzvbimpq isn’t recognized at the moment.

Manual update only installs 5.11.5.

In the driver.compose.json for the _TZ3000_tzvbimpq I also see the device model/product ID is missing. Does it need adding TS0042 for product ID?

Great job so far! Tried to add the _TZ3000_zgyzgdua->button_wireless_4 , aka [MOES Scene Switch 4 gang] - [MOES] / [_TZ3000_zgyzgdua"] #1327

Diagnostics report: 5e4fae16-bae2-4858-8cf9-7537ecefea50

Hi @dlnraja , thank you for the work you’ve put into adding all devices. I subscribed to a Git issue on the repository of Johan: Device Request - Smart button - HIMOJO/ TS0041 · Issue #781 · JohanBendz/com.tuya.zigbee · GitHub . The issue is quite old, but you replied to it stating the device was added. Unfortunately, I was not able to add the device via your app. This is mainly because you have a large volume of different devices, making it quite difficult to select the proper device type. Of course, I attempted to brute-force, hence trying all logical options for my button. Unfortunately, without success. The device interview details can be found on the Git issue page.

Besides this device (re-)request, I would like to kindly attend you to something. As some honest feed-forward, please maintain quality above volume. It seems you have automated quite a lot, which is not a bad thing on itself. However, it might be that due to the extremely large volume of devices, and the amount of automatization, the repository might become cluttered with devices, leaving the end-user in the (literal) dark. You have been able to create a huge repository of devices and fingerprints, which often comes at the cost of quality ~ be aware of going too fast.

As an example, I searched your Device Finder page with the device ID. A match was found (though only on the old Device Finder page, not on the new one), but no additional information was provided on which device it should be.

Again, thank you for the work you have put into the app; hope it gets accepted by Homey soon as an official app.

Edit: extra information on my attempts on adding the device

When adding the device, after attempt to pair with Homey, I get the error message: “Something went wrong when adding this device, please try again“. A rather general error message..

I jumped into my browser’s developer tools and found this error message, indicating something went wrong with the bindings (?).

.

Additionally, I jumped into your repository as well, finding the device ID in your code. This indicates you have added the device from my initial post. Also, from that results I do find this line of code (DeviceFingerprintDB.js #L1547), which indicates it is a switch_1gang device, giving me a bit more specification of the device type. Though for coding-layman, this approach would be unviable.

Hopefully this provides you with some extra information aiding in solving this problem, as it seems you do have added support for the device in your code.

I would post the links, though Homey only allows me to add 2 links per post.

Another device (Tuya Zigbee Radiator Valve) which seems to be added in your code, but I am unable to add to my Homey.

Interview of device
"ids": {
    "modelId": "TS0601",
    "manufacturerName": "_TZE204_9mjy74mp"
  },
  "endpoints": {
    "endpointDescriptors": [
      {
        "endpointId": 1,
        "applicationProfileId": 260,
        "applicationDeviceId": 81,
        "applicationDeviceVersion": 0,
        "_reserved1": 1,
        "inputClusters": [
          4,
          5,
          61184,
          0
        ],
        "outputClusters": [
          25,
          10
        ]
      }
    ],
    "endpoints": {
      "1": {
        "clusters": {
          "groups": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "nameSupport",
                "value": {
                  "type": "Buffer",
                  "data": [
                    0
                  ]
                },
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              }
            ]
          },
          "scenes": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 1,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 2,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 3,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 4,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2,
                "reportingConfiguration": {
                  "status": "NOT_FOUND",
                  "direction": "reported"
                }
              }
            ]
          },
          "basic": {
            "attributes": [
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 0,
                "name": "zclVersion",
                "value": 3
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 1,
                "name": "appVersion",
                "value": 73
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 2,
                "name": "stackVersion",
                "value": 0
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 3,
                "name": "hwVersion",
                "value": 1
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 4,
                "name": "manufacturerName",
                "value": "_TZE204_9mjy74mp"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 5,
                "name": "modelId",
                "value": "TS0601"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 6,
                "name": "dateCode",
                "value": ""
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 7,
                "name": "powerSource",
                "value": "battery"
              },
              {
                "acl": [
                  "readable",
                  "writable",
                  "reportable"
                ],
                "id": 65502
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 2
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65534,
                "name": "attributeReportingStatus",
                "value": "PENDING"
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65506
              },
              {
                "acl": [
                  "readable",
                  "reportable"
                ],
                "id": 65507
              }
            ]
          }
        },
        "bindings": {
          "ota": {
            "attributes": [
              {
                "acl": [
                  "readable"
                ],
                "id": 0
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 1
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 2
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 3
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 4
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 5
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 6
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 7
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 8
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 9
              },
              {
                "acl": [
                  "readable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 3
              }
            ]
          },
          "time": {
            "attributes": [
              {
                "acl": [
                  "readable"
                ],
                "id": 65533,
                "name": "clusterRevision",
                "value": 1
              }
            ]
          }
        }
      }
    }
  }


Also, if this is all a fault on my end due to my limited understanding of Zigbee, please accept my apology and again thanks for your work on the app :slight_smile: .

Hi Dylan,

good news! I just checked my device with v5.11.14 and without re-pairing it, all physical and virtual buttons work!

Never the less, I had a look at the interview of my device and compared it to the driver.compose.json and driver.flow.compose.json of switch_4gang and wall_switch_4gang_1way. It seems, that it is closer to the driver wall_switch_4gang_1way.

Maybe it’s a good idea to move the device to the driver wall_switch_4gang_1way? With switch_4gang there are a lot of flow cards like double or long press and battery flows the device doesn’t support.

The device just has four push-buttons and status leds on each button, indicating if the button is turned on or off.

Picture of the Device

hidden

Best regards, Hartmut

Ver.5.11.14. Once again my contact sensor installs as unknown.

To be sure please send me the manufacturer name, an new interview and a new diag log.

Perhaps the update of the homey system change de device id.

Hi Dylan,

I spoke to soon. To be sure, i re-paired the switch and after that again when i press a virtual button, all physical buttons turn on/off.

So what do you think about transferring the device (T0726/_TZ3002_pzao9ls1) to driver wall_switch_4gang_1way? Interview of the device is in post #1412.

Best regards, Hartmut

This one is an spécial driver for packetninja user. So perhaps later I will move it.

At the moment, I would keep the devices with no issues in Johan‘s app and the new ones here.

There is a lot in change with this app, which is great, but can force you to re-connect all your devices from time to time.

1 Like

Yesterday I received an email (from dlnrajanotifications@github.com) that this Tuya Zigbee PC switch device is supported in dlnraja/com.tuya.zigbee.

I installed the Tuya App from https://homey.app/a/com.dlnraja.tuya.zigbee/test. I see many devices, but not see the Tuya Zigbee PC switch device.

Does anybody know witch zigbee device I need to install?

Hi Peter,

Good news — the Arteco ZS-SF00 (fingerprint A89G12C / Arteco ) is already included in the Soil Moisture Sensor driver! It should pair directly as a soil sensor.

What works:

  • Soil moisture (%)
  • Temperature (°C)
  • Air humidity (%)
  • Illuminance (lux)
  • Battery (%)
  • Water shortage alarm

The device is a hybrid — it uses both standard Zigbee clusters (temperature, humidity, battery) and Tuya DPs (soil moisture, illuminance, water alarm). All these are mapped in the next version.

Soil fertility (μS/cm): This feature is not yet supported — the ZS-SF00 isn’t in Z2M’s main converters yet so the exact Tuya datapoint is unknown. Once paired, the diagnostic logs will show any unhandled DPs, which will help us add soil fertility support. If you can share a diagnostic report after pairing, I’ll map it!

Dylan~

update with this device will be in the next version on next hours..

1 Like

this device is to be installed on your desktop atx computer, with this zigbee device you can reboot or swich on , off your computer remotely. Please add it on the homey box then do an interview from Homey Developer Tools. to check if my implementation of this device to my app is good enought otherwise to fix it better.

Hi @tlink,

Thanks for the report — I found the two issues causing the double “lx” display on the _TZE204_ztqnh5cg :

  1. Detection Distance (DP9) was showing in “lx” instead of “m” — this is the radar’s target distance (how far away the detected person is). Fixed: now shows as “Detection Distance” in meters.
  2. DP104 (motion state) was incorrectly mapped as illuminance. This is a presence state enum (0=none, 1=presence, 2=moving) — not a lux value at all. That’s why one “lx” value seemed to follow human presence. Fixed: no longer displayed as a lux value.

After the update, you’ll see:

  • Illuminance (lux) — actual light level from DP12
  • Detection Distance (m) — how far away the detected person is
  • Motion — presence detection

These fixes will be in the next release.

Dylan

1443 FrankP — IR Remote Learning Mode

Hi FrankP, the IR learn mode has a fix in the latest code — it now guards against the device sending onOff=false immediately after the learn command, which was killing learn mode prematurely. Please update to the latest version and try again. If learning still doesn’t work, please share a new diagnostic report on the latest build so I can investigate the IR receive protocol.

#1444 FrankP — _TZ3000_tzvbimpq / TS0042

The _TZ3000_tzvbimpq and TS0042 are already in the 2-Button Wireless Controller driver. You’re running v5.11.5 — please update to the latest version. The device should pair as “Button Wireless 2”.

#1445 Wasdroger — MOES _TZ3000_zgyzgdua 4-gang

Hi Wasdroger, _TZ3000_zgyzgdua is already in the 4-Button Wireless Controller driver. The latest version includes improved pairing for battery-powered buttons (deferred cluster bindings to prevent timeouts). Please update and try pairing again. If issues persist, the diagnostic report will help diagnose further.

#1446 SkiMattie — HIMOJO TS0041

Hi SkiMattie, _TZ3000_ja5osu5g / TS0041 is in the 1-Button Wireless Controller driver. I found the cause of your binding error — the cluster bind was blocking init, causing a timeout on sleepy battery devices. Fixed in the next version (fire-and-forget binding). Pair the device as “Button Wireless 1” . After updating, try pairing again. Regarding the Radiator Valve — could you share the manufacturer name and model ID from the device interview?

Re: your feedback on quality — point well taken. I’ll work on improving the Device Finder and making device type selection clearer.

#1447 Hartmut_Dunker

Hi Hartmut, great to hear v5.11.14 works! Good suggestion about wall_switch_4gang_1way — I’ll look into moving the fingerprint to reduce the irrelevant flow cards. Thanks for the detailed analysis!

Hi Dylan,

Maybe I tried a bit to soon, it still adds as generic zigbee device.
Nonetheless I sent a diag after adding the soil sensor:
4fbd500e-f237-43dd-a0ab-76fc28f7cc87

Yeah apparently it’s something new of aliexpress:
They now sell 2 flavors of sensors: as Z2M only or as Tuya zigbee compatible (costing €2 more :nerd_face::zany_face:)
So I bought the Z2M version, just FYI (I’ve Z2M running as well).

Z2M version

Tuya zigbee version

Note:
The manufacturer and the model are swapped, I noticed it also in the interview code: