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

Hello dlnraja,

take care of yourself. Health issues are more important than this project.

Should we keep trying to re(add) non working devices if we see a new version has been released and give feedback if anything has changed?

ZG-204ZM is added as motion sensor now, but it seems to be sending a “no motion” signal sometimes. No Luminance Signal

_TZE200_rhgsbacq can be added as radar motion sensor, than same behaviour as ZG-204ZM or presence sensor radar, than not working at all.

I would love to be able to code myself, but I am not.

If I can support you in any other way, I would do so if I am able to.

could you plesae send me the intervew of all devices .

best regard.

ZG 204ZM

“ids”: {
“modelId”: “ZG-204ZM”,
“manufacturerName”: “HOBEIAN”
},
“endpoints”: {
“ieeeAddress”: “a4:c1:38:6e:9b:fb:5d:69”,
“networkAddress”: 35763,
“modelId”: “ZG-204ZM”,
“manufacturerName”: “HOBEIAN”,
“endpointDescriptors”: [
{
“status”: “SUCCESS”,
“nwkAddrOfInterest”: 35763,
“_reserved”: 20,
“endpointId”: 1,
“applicationProfileId”: 260,
“applicationDeviceId”: 1026,
“applicationDeviceVersion”: 0,
“_reserved1”: 1,
“inputClusters”: [
0,
3,
1280,
61184,
1,
1024
],
“outputClusters”: 
}
],
“deviceType”: “enddevice”,
“receiveWhenIdle”: false,
“swBuildId”: “0122052017”,
“capabilities”: {
“alternatePANCoordinator”: false,
“deviceType”: false,
“powerSourceMains”: false,
“receiveWhenIdle”: false,
“security”: false,
“allocateAddress”: true
},
“extendedEndpointDescriptors”: {
“1”: {
“clusters”: {
“basic”: {
“attributes”: [
{
“acl”: [
“readable”
],
“id”: 0,
“name”: “zclVersion”
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “appVersion”
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “stackVersion”
},
{
“acl”: [
“readable”
],
“id”: 3,
“name”: “hwVersion”
},
{
“acl”: [
“readable”,
“reportable”
],
“id”: 4,
“name”: “manufacturerName”,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 5,
“name”: “modelId”
},
{
“acl”: [
“readable”
],
“id”: 7,
“name”: “powerSource”
},
{
“acl”: [
“readable”,
“writable”
],
“id”: 18,
“name”: “deviceEnabled”
},
{
“acl”: [
“readable”
],
“id”: 16384,
“name”: “swBuildId”
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”
},
{
“acl”: [
“readable”
],
“id”: 6,
“name”: “dateCode”
}
],
“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”
},
“iasZone”: {
“attributes”: [
{
“acl”: [
“readable”
],
“id”: 0,
“name”: “zoneState”,
“value”: “enrolled”
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “zoneType”,
“value”: “motionSensor”
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “zoneStatus”,
“value”: {
“type”: “Buffer”,
“data”: [
1,
0
]
}
},
{
“acl”: [
“readable”,
“writable”
],
“id”: 16,
“name”: “iasCIEAddress”,
“value”: “88:1a:14:ff:fe:aa:dc:7f”
},
{
“acl”: [
“readable”
],
“id”: 17,
“name”: “zoneId”,
“value”: 0
},
{
“acl”: [
“readable”,
“writable”,
“reportable”
],
“id”: 61441,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”,
“writable”,
“reportable”
],
“id”: 19,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“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”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“illuminanceMeasurement”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 0,
“name”: “measuredValue”,
“value”: 31440,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: 4000
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
}
},
“bindings”: {}
}
}
}
“ids”: {
“modelId”: “TS0601”,
“manufacturerName”: “_TZE200_rhgsbacq”
},
“endpoints”: {
“ieeeAddress”: “a4:c1:38:36:d4:2a:62:d4”,
“networkAddress”: 8436,
“modelId”: “TS0601”,
“manufacturerName”: “_TZE200_rhgsbacq”,
“endpointDescriptors”: [
{
“status”: “SUCCESS”,
“nwkAddrOfInterest”: 8436,
“_reserved”: 26,
“endpointId”: 1,
“applicationProfileId”: 260,
“applicationDeviceId”: 1026,
“applicationDeviceVersion”: 0,
“_reserved1”: 1,
“inputClusters”: [
0,
3,
1280,
61184,
1026,
1029,
1,
1024
],
“outputClusters”: [
3
]
}
],
“deviceType”: “enddevice”,
“receiveWhenIdle”: false,
“swBuildId”: “0113102025”,
“capabilities”: {
“alternatePANCoordinator”: false,
“deviceType”: false,
“powerSourceMains”: false,
“receiveWhenIdle”: false,
“security”: false,
“allocateAddress”: true
},
“extendedEndpointDescriptors”: {
“1”: {
“clusters”: {
“basic”: {
“attributes”: [
{
“acl”: [
“readable”
],
“id”: 0,
“name”: “zclVersion”
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “appVersion”
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “stackVersion”
},
{
“acl”: [
“readable”
],
“id”: 3,
“name”: “hwVersion”
},
{
“acl”: [
“readable”,
“reportable”
],
“id”: 4,
“name”: “manufacturerName”,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 5,
“name”: “modelId”
},
{
“acl”: [
“readable”
],
“id”: 7,
“name”: “powerSource”
},
{
“acl”: [
“readable”,
“writable”
],
“id”: 18,
“name”: “deviceEnabled”
},
{
“acl”: [
“readable”
],
“id”: 16384,
“name”: “swBuildId”
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”
},
{
“acl”: [
“readable”
],
“id”: 6,
“name”: “dateCode”
}
],
“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”
},
“iasZone”: {
“attributes”: [
{
“acl”: [
“readable”
],
“id”: 0,
“name”: “zoneState”,
“value”: “enrolled”
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “zoneType”,
“value”: “motionSensor”
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “zoneStatus”,
“value”: {
“type”: “Buffer”,
“data”: [
1,
0
]
}
},
{
“acl”: [
“readable”,
“writable”
],
“id”: 16,
“name”: “iasCIEAddress”,
“value”: “88:1a:14:ff:fe:aa:dc:7f”
},
{
“acl”: [
“readable”
],
“id”: 17,
“name”: “zoneId”,
“value”: 0
},
{
“acl”: [
“readable”,
“writable”,
“reportable”
],
“id”: 61441,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”,
“writable”,
“reportable”
],
“id”: 19,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“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”: 2250,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: -32768
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: -32768
},
{
“acl”: [
“readable”
],
“id”: 3
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“relativeHumidity”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 0,
“name”: “measuredValue”,
“value”: 5430,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: 32768
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: 32768
},
{
“acl”: [
“readable”
],
“id”: 3,
“name”: “tolerance”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“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”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“illuminanceMeasurement”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 0,
“name”: “measuredValue”,
“value”: 1,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: 4000
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“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”
}
}
}
}
}



For readability, please use the ‘Preformatted text’ option when posting lengthy code / JSON output.

1 Like

G’day @dlnraja

It seems you’ve made progress! My Hobeian ZG-204ZL motion sensor is added correctly now! I’m getting a battery read out, but it’s saying 100%. I suspect, given the readouts for last motion and lux activity are the Unix Epoch date (1 Jan 1970, hence “56 years ago”) it’s not passing the data from the device to the app correctly.

The fact that none of my test flows are working backs up that theory. Thanks for your persistence, we’re getting closer!

Diagnostic code: 48f51f5b-6709-4595-82ad-143ae622d14a
Version: 5.2.50

Thx dude I will check :white_check_mark:

1 Like

_TZE200_rhgsbacq shows proper luminance data now, but temp, humidity and motion say “56 years ago”

No changes for ZG-204ZM

Hi Dylan, thanks for all your good work.

A friend of mine has a MOES button, modelID TS004F, manufacturerName _TZ3000_ja5osu5g.

In version 5.2.73 we could add it, but with wrong capabilities, so it timed out. In version 5.2.89 it is added OK, but only missing the long click capability. Single click and double click are visible.

Can you add this? Thank you again.

Awesome work, more progress, @dlnraja!
This morning I got a shock when my phone started reporting motion in one of my flows!

Still no lux detection or battery reporting (says 100% which wouldn’t be true) but this is great progress. Thank you!

Diagnostic code: 6306570e-34ca-4701-99b9-53b6adfa2bde
Version: 5.2.89

Replying to myself. Things are more complicated.

Adding under version 5.2.89 I did on my (another) homey. No problems except the long-click capability missing.

After updating the homey of my friend to app version 5.2.89 he could add the button, but had wrong capabilities. He had the on/off capability (which he had also before under 5.2.73) and didn’t get the button working, and got time outs when pushing the on/off button in the homey-android-app.

Conclusion: on one homey the button installs with just minor problem, but functional, on the other one it acts as a different kind of button, which is not functional.

After that he removed the button, removed the app (and also the Tuya Zigbee app of Johan Bendz), and installed the universal tuya zigbee app and the device again, with the same result. Is homey storing the info on a particular device in some sort of cach when once installed, so that after removing and installing again, it does not get updated capabilities?

Info:

MOES button, modelID TS004F, manufacturerName _TZ3000_ja5osu5g

https://www.bol.com/nl/nl/p/inteligentny-prze-acznik-scen-moes-zigbee/9300000179955882/?cid=1764579557076-8349888468332&bltgh=cd16104a-d9ce-4e32-8dd3-786bd15760b9.ProductList_Middle.12.ProductTitle

Could you please both of you give me the diagnose log of your app.

To investigate.

Will do, just takes some time to arrange :rofl:

1 Like

Hi dlnraja,

I have the device _TZE200_uj3f4wr5 (TS0601), which is a Venetian blinds controller. I submitted a request on GitHub to have it added. I can add the device to the app, but I’m unable to operate it — I only receive error messages. Can you look into it?
Diagnostic report: 3cc85b73-80c3-4eb8-8c74-7dc0cc3cafcf

please send me an new diagnose log , i have updated the app, will be released this night. and the device interview also

Hi @dlnraja and thanks for the app :slight_smile:

I renew my question after few months: can we install and use your app at the same time as the one from Johan?

Some of my zigbee devices doesn’t run with Johan’s app.

Thanks :slight_smile:

OK. Do you know the red cheeked old man? Thats me, full of shame. As I was preparing to make a diaognose log of my Homey/Moes device I suddenly saw the app it installed with the Tuya Zigbee from Johann Bendz (despite using the Universal Tuya Zigbee Device App while adding it). That solves the difference between my Homey and that of my friend.

The Moes device does install with that app, it only misses the long-press capability.

Under the Universal Tuya Zigbee Device App it also installs, but as a different button, with an on/off capability (see image).

The interview of the device:

"ids": {
    "modelId": "TS004F",
    "manufacturerName": "_TZ3000_ja5osu5g"
  },
  "endpoints": {
    "ieeeAddress": "70:ac:08:ff:fe:26:22:3c",
    "networkAddress": 32670,
    "modelId": "TS004F",
    "manufacturerName": "_TZ3000_ja5osu5g",
    "endpointDescriptors": [
      {
        "status": "SUCCESS",
        "nwkAddrOfInterest": 32670,
        "_reserved": 36,
        "endpointId": 1,
        "applicationProfileId": 260,
        "applicationDeviceId": 260,
        "applicationDeviceVersion": 0,
        "_reserved1": 1,
        "inputClusters": [
          0,
          1,
          3,
          4,
          6,
          4096,
          57345
        ],
        "outputClusters": [
          25,
          10,
          3,
          4,
          6,
          8,
          4096
        ]
      }
    ],
    "deviceType": "enddevice",
    "receiveWhenIdle": false,
    "capabilities": {
      "alternatePANCoordinator": false,
      "deviceType": false,
      "powerSourceMains": false,
      "receiveWhenIdle": false,
      "security": false,
      "allocateAddress": true
    },
    "extendedEndpointDescriptors": {
      "1": {
        "clusters": {
          "basic": {
            "commandsGenerated": "UNSUP_GENERAL_COMMAND"
          },
          "powerConfiguration": {},
          "identify": {},
          "groups": {},
          "onOff": {},
          "touchlink": {}
        },
        "bindings": {
          "identify": {},
          "groups": {},
          "onOff": {},
          "touchlink": {},
          "ota": {},
          "time": {},
          "levelControl": {
            "attributes": []
          }
        }
      }
    }
  }

I think he would appreciate if you could also add this button, with the correct 1 click, double click and long click capabilities.

Again, thank you for your hard work, and sorry for me causing confusion.

Yes you can, but be aware that (as you can read in my following own post) confusion and problems can occur, when devices that are supported in both apps, are installed in the wrong app.

2 Likes

yes , you can run Universal Tuya Zigbee alongside Johan Bendz’s “Zigbee” app without any conflict.

1 Like

Morning, @dlnraja. I got another shock this morning when my phone sent me a notification of a luminance change on my motion sensor! I was so excited! I went in to check the rest of the info and battery is now being reported correctly too. You’ve done it! My ZG-204ZL is now working perfectly.

Thank you for your hard work and persistence.

(I haven’t had a chance to try the smart button again, yet)

1 Like