### Link
https://www.alibaba.com/product-detail/Smart-Ultrasonic-Water-Flow-Met…er-With_1600722839075.html
### Database entry
{"id":15,"type":"EndDevice","ieeeAddr":"0xa4c1384c55aa7d9b","nwkAddr":23333,"manufId":4417,"manufName":"_TZE200_vuwtqx0t","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[4,5,61184,0],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65506":56,"65508":1,"65534":0,"appVersion":72,"modelId":"TS0601","manufacturerName":"_TZE200_vuwtqx0t","powerSource":3,"zclVersion":3,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":-708457359},"lastSeen":1707216891922}
### Comments
I've tried following the guide and i think I am close. I got the Tuya DP's from the dev portal as well as i think the datatypes. I'm getting let down in my lack of knowledge of JS/TS and Zigbee2MQTT in general.
Current WIP external converter: https://gist.github.com/michaeleverist/f8399bb79ac08a7667883bc2bef1b11f
Output from the script in tuya_dev:
`{"1":"Water consumption","2":"Month consumption","3":"Daily consumption","4":"Report period set","5":"Warning","6":"Month and daily frozen time set","13":"Switch","14":"Enable auto clean","16":"Meter ID","18":"Reverse Water Consumption","21":"Instantaneous Flow Rate","22":"Working temperature","26":"Power supply voltage"}
`
Tuya Dev device debugging info:





Not sure if I've missed anything else? Happy to keep working on it myself but am getting caught on the relationship between exposes :[] and mete tuyaDatapoints and how exposes knows which datapoint to use.
### External defintion
```shell
const definition = {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE200_vuwtqx0t',
description: 'Automatically generated definition',
extend: [],
meta: {},
};
module.exports = definition;
```