Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New device support]: Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL- _TZE200_v1jqz5cy #18704

Open
cloudbr34k84 opened this issue Aug 23, 2023 · 153 comments
Labels
new device support New device support request

Comments

@cloudbr34k84
Copy link

Link

https://www.aliexpress.com/item/1005005575336871.html?spm=a2g0o.order_list.order_list_main.11.28e31802Wxn6Wl

Database entry

{"id":115,"type":"EndDevice","ieeeAddr":"0xe0798dfffeb87446","nwkAddr":42479,"manufId":4098,"manufName":"_TZE200_v1jqz5cy","powerSource":"Battery","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"\u00195y,f\u00195y,\u0012\u001a5y,\u0012\u001e5y,\u0011"5y,\u0011","65506":31,"65508":0,"appVersion":65,"modelId":"TS0601","manufacturerName":"_TZE200_v1jqz5cy","stackVersion":0,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":65,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1692789799130,"defaultSendRequestWhen":"immediate"}

Comments

Would someone be willing to make a converter> here are the Data Points

1: TDS
2: temperature
101: ORP
102: CL
7: Battery Percentage
105: backlight Value
10: ph Value
11: EC Value
108: EC Max Value
109: EC Min Value
110: ORP max
111: ORP min
112: CL Max Value
113: CL Min Value
114: PH??
115: EC??
116: ORP??
117: Salt

External converter

No response

Supported color modes

No response

Color temperature range

No response

@cloudbr34k84 cloudbr34k84 added the new device support New device support request label Aug 23, 2023
@cloudbr34k84
Copy link
Author

im giving it a crack

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');

const definition = {
    // Since a lot of TuYa devices use the same modelID, but use different datapoints
    // it's necessary to provide a fingerprint instead of a zigbeeModel
    fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'BLE-YL01',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: 'TZE200_v1jqz5cy',
        },
    ],
    model: 'WiFi Chlorine Meter BLE-YL01',
    vendor: 'yieryi',
    description: 'Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered',
    fromZigbee: [tuya.fz.datapoints, tuya.fz.gateway_connection_status],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [
        e.tds(),
        e.temperature()
        e.orp()
        e.cl()
        e.batterypercentage()
        e.backlightvalue()
        e.pHvalue()
        e.ecvalue()
        e.ecmaxvalue()
        e.ecminvalue()
        e.orpmaxvalue()
        e.orpminvalue()
        e.clmaxvalue()
        e.clminvalue()
        e.salt()
        // Here you should put all functionality that your device exposes
    ],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
            [1, 'tds', tuya.valueConverter.raw],
            [2, 'temperature', tuya.valueConverter.raw.divideBy10],
            [101, 'orp', tuya.valueConverter.raw],
            [102, 'cl', tuya.valueConverter.raw],
            [7, 'batterypercentage', tuya.valueConverter.raw],
            [105, 'backlightvalue', tuya.valueConverter.raw],
            [10, 'pHvalue', tuya.valueConverter.raw],
            [11, 'ecvalue', tuya.valueConverter.raw],
            [108, 'ecmaxvalue', tuya.valueConverter.raw],
            [109, 'ecminvalue', tuya.valueConverter.raw],
            [110, 'orpmaxvalue', tuya.valueConverter.raw],
            [111, 'orpminvalue', tuya.valueConverter.raw],
            [112, 'clmaxvalue', tuya.valueConverter.raw],
            [113, 'clminvalue', tuya.valueConverter.raw],
            [117, 'salt', tuya.valueConverter.raw],

        ],
    },
};

module.exports = definition;

Gor my first error

[09:44:12] INFO: Preparing to start...
[09:44:13] INFO: Socat not enabled
[09:44:13] INFO: Starting Zigbee2MQTT...
/app/data/extension/externally-loaded.js:30
        e.tds(),
          ^
TypeError: e.tds is not a function
    at /app/data/extension/externally-loaded.js:30:11
    at Script.runInContext (node:vm:141:12)
    at Script.runInNewContext (node:vm:146:17)
    at Object.runInNewContext (node:vm:306:38)
    at loadModuleFromText (/app/lib/util/utils.ts:152:8)
    at loadModuleFromFile (/app/lib/util/utils.ts:159:12)
    at Object.getExternalConvertersDefinitions (/app/lib/util/utils.ts:169:25)
    at getExternalConvertersDefinitions.next (<anonymous>)
    at new ExternalConverters (/app/lib/extension/externalConverters.ts:12:20)
    at new Controller (/app/lib/controller.ts:84:58)

@cloudbr34k84
Copy link
Author

@Koenkk where is a list of the supported datapoints?

@Koenkk
Copy link
Owner

Koenkk commented Aug 25, 2023

Here is a list of all standard exposes, but you can easily create new ones: example

@mochitoju
Copy link

mochitoju commented Sep 1, 2023

Is the device already available in z2m or hast anybody a solution?

@cloudbr34k84
Copy link
Author

no its not, i dont know what im doing lol

@cloudbr34k84
Copy link
Author

Here is a list of all standard exposes, but you can easily create new ones: example

thanks but I don't really know what im looking for

@tschiex
Copy link

tschiex commented Sep 6, 2023

I just got the very same device here, connected to my Home Assistant server, through ZHA.
I would be happy to help here. I can write code, but am a ZigBee/Z2MQTT/ZHA newbie...

@cloudbr34k84 Brad, how did you get the Data Points?

@cloudbr34k84
Copy link
Author

cloudbr34k84 commented Sep 6, 2023 via email

@cloudbr34k84
Copy link
Author

@Koenkk any chance you can help create the converter pls?

@mochitoju
Copy link

Yes, that would bei great!

@Freev4lley
Copy link

That would be great for me too!!!

@Koenkk
Copy link
Owner

Koenkk commented Sep 9, 2023

With the following ext converter, what shows up in the z2m frontend -> device -> state page?

https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b

@tschiex
Copy link

tschiex commented Sep 10, 2023

Sorry Koenkk, I don't have Z2M installed on HA, but ZHA. Is it easy to switch back and forth?

BTW, I bought a Tuya Gateway and followed the instructions on Z2M
https://www.zigbee2mqtt.io/advanced/support-new-devices/03_find_tuya_data_points.html

and found more DP Ids:

1: TDS
2: Temperature
101: ORP
102: Chlorine
7: Battery Percentage
103: pH Calibration
104: Backlight
105: Backlight Value
10: pH Value
11: EC Value
106: pH Max Value
107: pH Min Value
108: EC Max Value
109: EC Min Value
110: ORP Max Value
111: ORP Min Value
112: Chlorine Max Value
113: Chlorine Min Value
114: PH Calibration
115: EC Calibration
116: ORP Calibration
117: Salt

(Translation of Chinese by Google Translate camera from Tuya IoT platform website).

There are apparently 2 pH calibration DP Ids (and there are 2 pH calibration standards: Asia uses 6.86/4.00/9.18, EU uses 7/4/10). The two pH calibration DPs could be these 2 maybe?

I was told the device apparently works on deconz: https://forum.phoscon.de/t/tuya-tze200-v1jqz5cy-zigbee-chlorine-meter/3930 (see zigpy/zha-device-handlers#2565).

and here: dresden-elektronik/deconz-rest-plugin#7215

@cloudbr34k84
Copy link
Author

cloudbr34k84 commented Sep 10, 2023

With the following ext converter, what shows up in the z2m frontend -> device -> state page?

https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b
Nothing shows except Linkquality
image

info  2023-09-11 09:30:42: Device '**0xdc8e95fffe832b2f**' joined
info  2023-09-11 09:30:43: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"**0xdc8e95fffe832b2f**","ieee_address":"**0xdc8e95fffe832b2f**"},"type":"device_joined"}'
info  2023-09-11 09:30:43: MQTT publish: topic 'zigbee2mqtt/**0xdc8e95fffe832b2f**/availability', payload '{"state":"online"}'
info  2023-09-11 09:30:43: Starting interview of '0xdc8e95fffe832b2f'
info  2023-09-11 09:30:43: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"**0xdc8e95fffe832b2f**","ieee_address":"0xdc8e95fffe832b2f","status":"started"},"type":"device_interview"}'
info  2023-09-11 09:30:43: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0xdc8e95fffe832b2f","ieee_address":"0xdc8e95fffe832b2f"},"type":"device_announce"}'
info  2023-09-11 09:30:47: MQTT publish: topic 'zigbee2mqtt/Front Patio EM GPO', payload '{"current_left":0,"energy":0,"linkquality":21,"power_left":0,"state_left":"ON","state_right":"ON","voltage_left":246}'
info  2023-09-11 09:30:47: MQTT publish: topic 'zigbee2mqtt/Hot Water System EM Clamp', payload '{"current":2.3,"energy":0.17,"linkquality":83,"power":566.6,"voltage":248.7}'
info  2023-09-11 09:30:47: MQTT publish: topic 'zigbee2mqtt/Garage Door', payload '{"garage_door_contact":true,"linkquality":94,"trigger":false}'
info  2023-09-11 09:30:48: Successfully interviewed '0xdc8e95fffe832b2f', device has successfully been paired
warn  2023-09-11 09:30:48: Device '0xdc8e95fffe832b2f' with Zigbee model 'TS0601' and manufacturer name '_TZE200_v1jqz5cy' is NOT supported, please follow https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html
info  2023-09-11 09:30:48: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":null,"friendly_name":"0xdc8e95fffe832b2f","ieee_address":"0xdc8e95fffe832b2f","status":"successful","supported":false},"type":"device_interview"}'
warn  2023-09-11 09:30:48: Received message from unsupported device with Zigbee model 'TS0601' and manufacturer name '_TZE200_v1jqz5cy'
warn  2023-09-11 09:30:48: Please see: https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html
warn  2023-09-11 09:30:49: Received message from unsupported device with Zigbee model 'TS0601' and manufacturer name '_TZE200_v1jqz5cy'
warn  2023-09-11 09:30:49: Please see: https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html

@tschiex
Copy link

tschiex commented Sep 11, 2023

Brad,

I'm not a Z2M specialist, but the fact that Z2M says:

warn 2023-09-11 09:30:48: Device '0xdc8e95fffe832b2f' with Zigbee model 'TS0601' and manufacturer name '_TZE200_v1jqz5cy' is NOT supported, please follow https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html

may be a hint that Koenkk's handler above is not accessible to Zigbee2MQTT in your setup.

@tschiex
Copy link

tschiex commented Sep 11, 2023

Or may be the handler is wrong.... Looking into it, I see:

    fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'BLE-YL01',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: 'TZE200_v1jqz5cy',
        },
    ],

I assume the modelId is important for recognizing the device?

Because it reports 'TS0601' not 'BLE-YL01'.

Brad, I suppose you should edit Koenkk's script and replace the

            modelID: 'BLE-YL01',

by

            modelID: 'TS0601',

@BabaIsYou
Copy link

I was told the device apparently works on deconz: https://forum.phoscon.de/t/tuya-tze200-v1jqz5cy-zigbee-chlorine-meter/3930 (see zigpy/zha-device-handlers#2565).

It's a wok in progress ... ;-)

@Koenkk
Copy link
Owner

Koenkk commented Sep 11, 2023

@cloudbr34k84
Copy link
Author

Made a mistake, updated https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b

Hey @Koenkk Thanks, its now added correctly, but it has not exposed any entities

info  2023-09-12 07:44:57: Successfully interviewed '0xdc8e95fffe832b2f', device has successfully been paired
info  2023-09-12 07:44:57: Device '0xdc8e95fffe832b2f' is supported, identified as: yieryi Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered (WiFi Chlorine Meter BLE-YL01)
info  2023-09-12 07:44:57: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered","exposes":[{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"WiFi Chlorine Meter BLE-YL01","options":[{"access":2,"description":"Number of digits after decimal point for temperature, takes into effect on next report of device.","name":"temperature_precision","property":"temperature_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the temperature value (absolute offset), takes into effect on next report of device.","name":"temperature_calibration","property":"temperature_calibration","type":"numeric"}],"supports_ota":false,"vendor":"yieryi"},"friendly_name":"0xdc8e95fffe832b2f","ieee_address":"0xdc8e95fffe832b2f","status":"successful","supported":true},"type":"device_interview"}'
info  2023-09-12 07:44:57: Configuring '0xdc8e95fffe832b2f'
info  2023-09-12 07:44:57: Successfully configured '0xdc8e95fffe832b2f'

@alray31
Copy link

alray31 commented Sep 12, 2023

Made a mistake, updated https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b

Hey @Koenkk Thanks, its now added correctly, but it has not exposed any entities

info  2023-09-12 07:44:57: Successfully interviewed '0xdc8e95fffe832b2f', device has successfully been paired
info  2023-09-12 07:44:57: Device '0xdc8e95fffe832b2f' is supported, identified as: yieryi Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered (WiFi Chlorine Meter BLE-YL01)
info  2023-09-12 07:44:57: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered","exposes":[{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"WiFi Chlorine Meter BLE-YL01","options":[{"access":2,"description":"Number of digits after decimal point for temperature, takes into effect on next report of device.","name":"temperature_precision","property":"temperature_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the temperature value (absolute offset), takes into effect on next report of device.","name":"temperature_calibration","property":"temperature_calibration","type":"numeric"}],"supports_ota":false,"vendor":"yieryi"},"friendly_name":"0xdc8e95fffe832b2f","ieee_address":"0xdc8e95fffe832b2f","status":"successful","supported":true},"type":"device_interview"}'
info  2023-09-12 07:44:57: Configuring '0xdc8e95fffe832b2f'
info  2023-09-12 07:44:57: Successfully configured '0xdc8e95fffe832b2f'

I'm not an expert but if you look at the other tuya converters that are using datapoints in zigbee-herdsman-convert/src/devices/tuya.ts, you also need to add the corresponding entries in the expose section, i.e.: exposes: [e.tds, e.temperature, etc...

example:
image

So maybe try this? :

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');

const definition = {
    // Since a lot of TuYa devices use the same modelID, but use different datapoints
    // it's necessary to provide a fingerprint instead of a zigbeeModel
    fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE200_v1jqz5cy',
        },
    ],
    model: 'WiFi Chlorine Meter BLE-YL01',
    vendor: 'yieryi',
    description: 'Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered',
    fromZigbee: [tuya.fz.datapoints, tuya.fz.gateway_connection_status],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [e.tds(), e.temperature(), e.orp(), e.cl(), e.batterypercentage(), e.backlightvalue(), e.pHvalue(), e.ecvalue(), e.ecmaxvalue(), e.orpmaxvalue(), e.orpminvalue(), e.clmaxvalue(), e.clminvalue(), e.salt()],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
            [1, 'tds', tuya.valueConverter.raw],
            [2, 'temperature', tuya.valueConverter.raw.divideBy10],
            [101, 'orp', tuya.valueConverter.raw],
            [102, 'cl', tuya.valueConverter.raw],
            [7, 'batterypercentage', tuya.valueConverter.raw],
            [105, 'backlightvalue', tuya.valueConverter.raw],
            [10, 'pHvalue', tuya.valueConverter.raw],
            [11, 'ecvalue', tuya.valueConverter.raw],
            [108, 'ecmaxvalue', tuya.valueConverter.raw],
            [109, 'ecminvalue', tuya.valueConverter.raw],
            [110, 'orpmaxvalue', tuya.valueConverter.raw],
            [111, 'orpminvalue', tuya.valueConverter.raw],
            [112, 'clmaxvalue', tuya.valueConverter.raw],
            [113, 'clminvalue', tuya.valueConverter.raw],
            [117, 'salt', tuya.valueConverter.raw],

        ],
    },
};

module.exports = definition;

@Koenkk
Copy link
Owner

Koenkk commented Sep 13, 2023

Please make a screenshot of the z2m frontend -> device page -> state page?

@cloudbr34k84
Copy link
Author

Please make a screenshot of the z2m frontend -> device page -> state page?

@Koenkk
Screenshot_20230914-044527.png

@Koenkk
Copy link
Owner

Koenkk commented Sep 14, 2023

With the following converter: https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b , can you provide the debug log when pairing the device + 5 minutes after this?

See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

@cloudbr34k84
Copy link
Author

With the following converter: https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b , can you provide the debug log when pairing the device + 5 minutes after this?

See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

Hey @Koenkk thanks for helping on this
When I copy the new code and enable debugging and restart I get an error from the converter

[06:33:10] INFO: Preparing to start...
[06:33:10] INFO: Socat not enabled
[06:33:10] INFO: Zigbee Herdsman debug logging enabled
[06:33:10] INFO: Starting Zigbee2MQTT...
/app/data/extension/externally-loaded.js:27
    onEvent: tuya.onEvent(), // Add this if you are getting no converter for 'commandMcuSyncTime'
                  ^
TypeError: tuya.onEvent is not a function
    at /app/data/extension/externally-loaded.js:27:19
    at Script.runInContext (node:vm:141:12)
    at Script.runInNewContext (node:vm:146:17)
    at Object.runInNewContext (node:vm:306:38)
    at loadModuleFromText (/app/lib/util/utils.ts:152:8)
    at loadModuleFromFile (/app/lib/util/utils.ts:159:12)
    at Object.getExternalConvertersDefinitions (/app/lib/util/utils.ts:169:25)
    at getExternalConvertersDefinitions.next (<anonymous>)
    at new ExternalConverters (/app/lib/extension/externalConverters.ts:12:20)
    at new Controller (/app/lib/controller.ts:84:58)

@Koenkk
Copy link
Owner

Koenkk commented Sep 16, 2023

I forgot to mention that this converter only works with the latest-dev branch. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

@cloudbr34k84
Copy link
Author

cloudbr34k84 commented Sep 16, 2023

I forgot to mention that this converter only works with the latest-dev branch. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)
@Koenkk
Ok so I have updated my Z2M Edge version - Zigbee2MQTT version
1.33.0-dev commit: 0a69bb5
I have deleted and re-added the device
there are no entities in the State Tab except "linkquality": 87
log.txt

@cloudbr34k84
Copy link
Author

Made a mistake, updated https://gist.github.com/Koenkk/7262a8a36bb84327ff563e0b8256024b

Hey @Koenkk Thanks, its now added correctly, but it has not exposed any entities

info  2023-09-12 07:44:57: Successfully interviewed '0xdc8e95fffe832b2f', device has successfully been paired
info  2023-09-12 07:44:57: Device '0xdc8e95fffe832b2f' is supported, identified as: yieryi Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered (WiFi Chlorine Meter BLE-YL01)
info  2023-09-12 07:44:57: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered","exposes":[{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"WiFi Chlorine Meter BLE-YL01","options":[{"access":2,"description":"Number of digits after decimal point for temperature, takes into effect on next report of device.","name":"temperature_precision","property":"temperature_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the temperature value (absolute offset), takes into effect on next report of device.","name":"temperature_calibration","property":"temperature_calibration","type":"numeric"}],"supports_ota":false,"vendor":"yieryi"},"friendly_name":"0xdc8e95fffe832b2f","ieee_address":"0xdc8e95fffe832b2f","status":"successful","supported":true},"type":"device_interview"}'
info  2023-09-12 07:44:57: Configuring '0xdc8e95fffe832b2f'
info  2023-09-12 07:44:57: Successfully configured '0xdc8e95fffe832b2f'

I'm not an expert but if you look at the other tuya converters that are using datapoints in zigbee-herdsman-convert/src/devices/tuya.ts, you also need to add the corresponding entries in the expose section, i.e.: exposes: [e.tds, e.temperature, etc...

example: image

So maybe try this? :

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');

const definition = {
    // Since a lot of TuYa devices use the same modelID, but use different datapoints
    // it's necessary to provide a fingerprint instead of a zigbeeModel
    fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE200_v1jqz5cy',
        },
    ],
    model: 'WiFi Chlorine Meter BLE-YL01',
    vendor: 'yieryi',
    description: 'Smart WiFi Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Swimming Pool Water Quality Analyzer USB Solar Powered',
    fromZigbee: [tuya.fz.datapoints, tuya.fz.gateway_connection_status],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [e.tds(), e.temperature(), e.orp(), e.cl(), e.batterypercentage(), e.backlightvalue(), e.pHvalue(), e.ecvalue(), e.ecmaxvalue(), e.orpmaxvalue(), e.orpminvalue(), e.clmaxvalue(), e.clminvalue(), e.salt()],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
            [1, 'tds', tuya.valueConverter.raw],
            [2, 'temperature', tuya.valueConverter.raw.divideBy10],
            [101, 'orp', tuya.valueConverter.raw],
            [102, 'cl', tuya.valueConverter.raw],
            [7, 'batterypercentage', tuya.valueConverter.raw],
            [105, 'backlightvalue', tuya.valueConverter.raw],
            [10, 'pHvalue', tuya.valueConverter.raw],
            [11, 'ecvalue', tuya.valueConverter.raw],
            [108, 'ecmaxvalue', tuya.valueConverter.raw],
            [109, 'ecminvalue', tuya.valueConverter.raw],
            [110, 'orpmaxvalue', tuya.valueConverter.raw],
            [111, 'orpminvalue', tuya.valueConverter.raw],
            [112, 'clmaxvalue', tuya.valueConverter.raw],
            [113, 'clminvalue', tuya.valueConverter.raw],
            [117, 'salt', tuya.valueConverter.raw],

        ],
    },
};

module.exports = definition;

tried this, same issue as when I attempted. i don't understand how to create a new function

[08:30:22] INFO: Preparing to start... [08:30:22] INFO: Socat not enabled [08:30:23] INFO: Zigbee Herdsman debug logging enabled [08:30:23] INFO: Starting Zigbee2MQTT... /app/data/extension/externally-loaded.js:29 exposes: [e.tds(), e.temperature(), e.orp(), e.cl(), e.batterypercentage(), e.backlightvalue(), e.pHvalue(), e.ecvalue(), e.ecmaxvalue(), e.orpmaxvalue(), e.orpminvalue(), e.clmaxvalue(), e.clminvalue(), e.salt()], ^ TypeError: e.tds is not a function at /app/data/extension/externally-loaded.js:29:17 at Script.runInContext (node:vm:141:12) at Script.runInNewContext (node:vm:146:17) at Object.runInNewContext (node:vm:306:38) at loadModuleFromText (/app/lib/util/utils.ts:152:8) at loadModuleFromFile (/app/lib/util/utils.ts:159:12) at Object.getExternalConvertersDefinitions (/app/lib/util/utils.ts:169:25) at getExternalConvertersDefinitions.next (<anonymous>) at new ExternalConverters (/app/lib/extension/externalConverters.ts:12:20) at new Controller (/app/lib/controller.ts:84:58)

@cloudbr34k84
Copy link
Author

@Koenkk
not sure if this is helping but I added the exposes entities

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');

const definition = {
    // Since a lot of TuYa devices use the same modelID, but use different datapoints
    // it's necessary to provide a fingerprint instead of a zigbeeModel
    fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE200_v1jqz5cy',
        },
    ],
    model: 'WiFi Chlorine Meter BLE-YL01',
    vendor: 'yieryi',
    description: 'Zigbee Chlorine Meter PH ORP EC TDS Salinity Temp CL Tester Solar Powered',
    fromZigbee: [tuya.fz.datapoints, tuya.fz.gateway_connection_status],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEvent(), // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [
        e.numeric('tdsvalue', ea.STATE).withUnit('ppm').withDescription('Total Dissolved Solids Value'),
        e.temperature(),
        e.numeric('orpvalue', ea.STATE).withUnit('mV').withDescription('Oxidation Reduction Potential Value'),
        e.numeric('clvalue', ea.STATE).withUnit('ppm').withDescription('Free Chlorine Value'),
        e.numeric('batterypercentage', ea.STATE).withUnit('%').withDescription('Remaining battery in %, can take up to 24 hours before reported.').withValueMin(0).withValueMax(100),
        // e.backlightvalue(),
        e.numeric('pHvalue', ea.STATE).withUnit('pH').withDescription('pH Value'),
        e.numeric('ecvalue', ea.STATE).withUnit('µS/cm').withDescription('Electrical Conductivity Value'),
        e.numeric('ecmaxvalue', ea.STATE).withUnit('µS/cm').withDescription('Electrical Conductivity Max Value'),
        e.numeric('ecminvalue', ea.STATE).withUnit('µS/cm').withDescription('Electrical Conductivity Min Value'),
        e.numeric('orpmaxvalue', ea.STATE).withUnit('mV').withDescription('Oxidation Reduction Potential Max Value'),
        e.numeric('orpminvalue', ea.STATE).withUnit('mV').withDescription('Oxidation Reduction Potential Min Value'),
        e.numeric('CLmaxvalue', ea.STATE).withUnit('ppm').withDescription('Free Chlorine Max Value'),
        e.numeric('clmaxvalue', ea.STATE).withUnit('ppm').withDescription('Free Chlorine Min Value'),
        e.numeric('saltvalue', ea.STATE).withUnit('µS/cm').withDescription('Salt Value'),
        e.numeric('phmaxvalue', ea.STATE).withUnit('pH').withDescription('pH Max Value'),
        e.numeric('phminvalue', ea.STATE).withUnit('pH').withDescription('pH Min Value')
    ],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
            [1, 'tdsvalue', tuya.valueConverter.raw],
            [2, 'temperature', tuya.valueConverter.raw.divideBy10],
            [7, 'batterypercentage', tuya.valueConverter.raw],
            [10, 'pHvalue', tuya.valueConverter.raw],
            [11, 'ecvalue', tuya.valueConverter.raw],
            [101, 'orpvalue', tuya.valueConverter.raw],
            [102, 'clvalue', tuya.valueConverter.raw],
            [105, 'backlightvalue', tuya.valueConverter.raw],
            [106, 'phmaxvalue', tuya.valueConverter.raw],
            [107, 'phminvalue', tuya.valueConverter.raw],
            [108, 'ecmaxvalue', tuya.valueConverter.raw],
            [109, 'ecminvalue', tuya.valueConverter.raw],
            [110, 'orpmaxvalue', tuya.valueConverter.raw],
            [111, 'orpminvalue', tuya.valueConverter.raw],
            [112, 'clmaxvalue', tuya.valueConverter.raw],
            [113, 'clminvalue', tuya.valueConverter.raw],
            [117, 'saltvalue', tuya.valueConverter.raw],

        ],
    },
};

module.exports = definition;

@juan11perez
Copy link

Edit: With the Z2M Logs I found the suitable command and it is working for me now.

@Mushupm

Can you explain how to send this command?

Thank you

@Mushupm
Copy link

Mushupm commented May 10, 2024

I have not been able to use this device with Z2M.
It was working with Tuya app.
Device is dead getting water inside electronic case.
The seal between upper and lower case was probably bad.
I got back money from Aliexpress and I will not try again this device.
I baught a temperature sensor (Owon) that I should receive today.

@juan11perez
Copy link

@Mushupm
Thank you very much for your response. Much appreciaated.
Seems this device is just not good

@vgibara
Copy link

vgibara commented Jun 18, 2024

No one have a solution for negative orp ?

@pipiche38
Copy link

@Koenkk Could you please tell me how you achieved this? I have the device almost working on ZHA but the only way I have found to get an update is to send again a tuya data query (command 0x03) to the Tuya manufacturer cluster. Is there another way? For the calibration, remember my ZigBee trace above :-) 4 janv. 2024 00:19:39 ve1koz111 @.***>:

Looks like it's updating approximately every 10 minutes for me now. I guess the only thing left to crack is the calibration —

I'm looking at that device, and wonder why you are refering to command 0x03 to do the Tuya Data Query while when looking a sniff, the Tuya GW does a Command 0x00 on DP 0x69 Type 0x02 with a Payload of 0x00000001

thanks for your view

@GPSPerth
Copy link

@Koenkk I can add the device, trigger a call to cluster 0xEF00, attribute 0x03, get values, but there's no way it will poll. Once it's added, call triggered, that's it..

@KennethMod
Copy link

Update on my side:

  1. Moved to dev image
  2. Re-paired the device -> still nothing on values
  3. Manually triggered a call to cluster 0xEF00, attribute 0x03 -> Invoked '61184.3' with payload '{}'

... and now I got values!!

Can you describe step 3 little bit more how to trigger the device? Is this via MQTT or directly in Z2M?

Edit: Think that I have found the way to send it out: image

But still no values visible in Z2M...

Edit 2: Now values are coming up. Is there a way to automize this dev command or is this just an initial thing? image

Hi @hsdneo,

How did you manage to send the command, I tried a few things in the Dev console, but no luck, I can't just add the cluster id, command and attribute, as there is no attribute textbox in the dev console (not one you can freely input text for anyway)

image

This is for a BLE-YL01 BTW, it mis missing pretty much everything

Thanks!

{
"ec": 0,
"ec_max": 20000,
"ec_min": 0,
"free_chlorine": 0.1,
"free_chlorine_max": 4,
"free_chlorine_min": 0,
"last_seen": "2024-09-07T12:24:39+02:00",
"linkquality": 94,
"orp": 233,
"orp_max": 999,
"orp_min": 0,
"ph_max": 14,
"ph_min": 0,
"salinity": 0,
"battery": null,
"ph": null,
"tds": null,
"temperature": null
}

@R3yn4ld
Copy link

R3yn4ld commented Sep 28, 2024

Update on my side:

  1. Moved to dev image
  2. Re-paired the device -> still nothing on values
  3. Manually triggered a call to cluster 0xEF00, attribute 0x03 -> Invoked '61184.3' with payload '{}'

... and now I got values!!

Can you describe step 3 little bit more how to trigger the device? Is this via MQTT or directly in Z2M?
Edit: Think that I have found the way to send it out: image
But still no values visible in Z2M...
Edit 2: Now values are coming up. Is there a way to automize this dev command or is this just an initial thing? image

Hi @hsdneo,

How did you manage to send the command, I tried a few things in the Dev console, but no luck, I can't just add the cluster id, command and attribute, as there is no attribute textbox in the dev console (not one you can freely input text for anyway)

image

This is for a BLE-YL01 BTW, it mis missing pretty much everything

Thanks!

{ "ec": 0, "ec_max": 20000, "ec_min": 0, "free_chlorine": 0.1, "free_chlorine_max": 4, "free_chlorine_min": 0, "last_seen": "2024-09-07T12:24:39+02:00", "linkquality": 94, "orp": 233, "orp_max": 999, "orp_min": 0, "ph_max": 14, "ph_min": 0, "salinity": 0, "battery": null, "ph": null, "tds": null, "temperature": null }

Seen here: https://youtu.be/8zGAHyCan0c?t=326:
image

It does not work for me, I get "Error: no datapoint defined for 'command'" like you.

@snyfear
Copy link

snyfear commented Oct 9, 2024

Same problem with the second Device I received from Domadoo. "z2m: Publish 'set' 'command' to '0x94b216fffe900a1c' failed: 'Error: No datapoint defined for 'command" even with Z2M edge version. The first device i received accepted successfully this modification and was sending values after. How can i make it work, I don't have Zigbee bridge yet? Thanks in advance,

### EDIT : I finally get it work back. For all who had the _"Error: No datapoint defined for 'command'" issue when tring to send the "Console Dev" 0xEF00 0x03 command I had to come back to Zigbee2MQTT 1.39.0 version. (it was impossible with the 1.40.x version).

Whith version 1.39.0 instead if 1.40.0 I could get back the result "Invoked '61184.3' with payload '{}' and then values like :
{
"battery": 100,
"ec": 489,
"ec_max": 20000,
"ec_min": 0,
"free_chlorine": 0.1,
"free_chlorine_max": 4,
"free_chlorine_min": 0,
"linkquality": 81,
"orp": 240,
"orp_max": 999,
"orp_min": 0,
"ph": 7.3,
"ph_max": 14,
"ph_min": 0,
"salinity": 244,
"tds": 244,
"temperature": 17
}

@mirch73
Copy link

mirch73 commented Oct 17, 2024

how can I revert to an older version of Z2M? My BLE-YL01 also no longer transmits data. Z2M Version 1.40.2

@leonshadow15
Copy link

Same issue here with a Tuya TS0601/BLE-YL01. It stopped getting data from sensors, Z2M 1.40.2.
The 0XEF00 comando 0x03 returns the error "no data point defined for 'command'"

@Charmio1
Copy link

Same problem with the second Device I received from Domadoo. "z2m: Publish 'set' 'command' to '0x94b216fffe900a1c' failed: 'Error: No datapoint defined for 'command" even with Z2M edge version. The first device i received accepted successfully this modification and was sending values after. How can i make it work, I don't have Zigbee bridge yet? Thanks in advance,

### EDIT : I finally get it work back. For all who had the _"Error: No datapoint defined for 'command'" issue when tring to send the "Console Dev" 0xEF00 0x03 command I had to come back to Zigbee2MQTT 1.39.0 version. (it was impossible with the 1.40.x version).

Whith version 1.39.0 instead if 1.40.0 I could get back the result "Invoked '61184.3' with payload '{}' and then values like : { "battery": 100, "ec": 489, "ec_max": 20000, "ec_min": 0, "free_chlorine": 0.1, "free_chlorine_max": 4, "free_chlorine_min": 0, "linkquality": 81, "orp": 240, "orp_max": 999, "orp_min": 0, "ph": 7.3, "ph_max": 14, "ph_min": 0, "salinity": 244, "tds": 244, "temperature": 17 }

Great find snyfear!
We're you able upgrade to the latest version after sending this command on the older version? Or are we stuck on the older version if we want to use this?

@snyfear
Copy link

snyfear commented Oct 23, 2024

I tried to upgrade again After the downgrade but thé data stop to update so i kept the 1.39

@jturello-ulink
Copy link

I can confirm: I've been using my pool monitoring without issues (expect for the weird values mentionned above) for months and suddenly a few weeks ago all values stopped updating except for linkQuality signal strength. Thanks to the above comments, I've restore Z2M 1.39.1 version (was 1.40.2) and values are back!

To downgrade Z2M, I went to HA settings -> system -> backups, and found a zigbee2mqtt module backup in 1.39.1 version, then select it and click on "restore" option.

@lasry1
Copy link

lasry1 commented Oct 29, 2024

Is there a solution available for those without a backup on version 1.39.1? Any way of installing an older version of it from scratch?

@catrielmuller
Copy link

catrielmuller commented Oct 29, 2024

Is there a solution available for those without a backup on version 1.39.1? Any way of installing an older version of it from scratch?

  • Stop the Z2M Service
  • Make a Backup of you current coordinator_backup.json
  • Modify the coordinator_backup.json file and delete the all entries of the device attribute:

Should looks like this:

"devices": []

Example (Don't modify the rest of the values, I changed for XXXX to not expose my config)

{
  "metadata": {
    "format": "zigpy/open-coordinator-backup",
    "version": 1,
    "source": "[email protected]",
    "internal": {
      "date": "2024-10-28T23:04:14.577Z",
      "znpVersion": 1
    }
  },
  "stack_specific": {
    "zstack": {
      "tclk_seed": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
  },
  "coordinator_ieee": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "pan_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "extended_pan_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "nwk_update_id": X,
  "security_level": X,
  "channel": X,
  "channel_mask": [
    X
  ],
  "network_key": {
    "key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "sequence_number": X,
    "frame_counter": XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  },
  "devices": []
}
  • Revert you image to 1.39.1
  • Start the Z2M again

@lasry1
Copy link

lasry1 commented Oct 30, 2024

Is there a solution available for those without a backup on version 1.39.1? Any way of installing an older version of it from scratch?

  • Stop the Z2M Service
  • Make a Backup of you current coordinator_backup.json
  • Modify the coordinator_backup.json file and delete the all entries of the device attribute:

Should looks like this:

"devices": []

Example (Don't modify the rest of the values, I changed for XXXX to not expose my config)

{
  "metadata": {
    "format": "zigpy/open-coordinator-backup",
    "version": 1,
    "source": "[email protected]",
    "internal": {
      "date": "2024-10-28T23:04:14.577Z",
      "znpVersion": 1
    }
  },
  "stack_specific": {
    "zstack": {
      "tclk_seed": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
  },
  "coordinator_ieee": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "pan_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "extended_pan_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "nwk_update_id": X,
  "security_level": X,
  "channel": X,
  "channel_mask": [
    X
  ],
  "network_key": {
    "key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "sequence_number": X,
    "frame_counter": XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  },
  "devices": []
}
  • Revert you image to 1.39.1
  • Start the Z2M again

How can I revert the image to 1.39.1 without a backup with that version?

@catrielmuller
Copy link

catrielmuller commented Oct 30, 2024

How can I revert the image to 1.39.1 without a backup with that version?

You don't need a backup of z2m, you can use the image hosted on DockerHub -> https://hub.docker.com/layers/koenkk/zigbee2mqtt/1.39.1/images/sha256-a342efc7d6f04c29b8310ab2890a7a2697c955b5066d892dfe00aef65c1b4107?context=explore

If you use Docker / DockerComposer / Kubernetes you only need is modify the tag of the koenkk/zigbee2mqtt image to revert that to an older version

@lasry1
Copy link

lasry1 commented Oct 30, 2024

How can I revert the image to 1.39.1 without a backup with that version?

You don't need a backup of z2m, you can use the image hosted on DockerHub -> https://hub.docker.com/layers/koenkk/zigbee2mqtt/1.39.1/images/sha256-a342efc7d6f04c29b8310ab2890a7a2697c955b5066d892dfe00aef65c1b4107?context=explore

If you use Docker / DockerComposer / Kubernetes you only need is modify the tag of the koenkk/zigbee2mqtt image to revert that to an older version

Oh i see, i use Home assistant native OS. Sadly i don’t think is that easy within this environment or at least not in a way i know 😅 thank you though

@catrielmuller
Copy link

How can I revert the image to 1.39.1 without a backup with that version?

You don't need a backup of z2m, you can use the image hosted on DockerHub -> https://hub.docker.com/layers/koenkk/zigbee2mqtt/1.39.1/images/sha256-a342efc7d6f04c29b8310ab2890a7a2697c955b5066d892dfe00aef65c1b4107?context=explore
If you use Docker / DockerComposer / Kubernetes you only need is modify the tag of the koenkk/zigbee2mqtt image to revert that to an older version

Oh i see, i use Home assistant native OS. Sadly i don’t think is that easy within this environment or at least not in a way i know 😅 thank you though

Sorry, I use Kubernetes on my env. But I just saw the code of the HAOS, and they basically use docker to handle the addons,
I made a fork of the repository that you can use to get the 1.39.1

Please before to anything backup all of your folder just in case.

https://github.com/catrielmuller/hassio-zigbee2mqtt-1-39-1

I cannot tested properly because I don't have any VM software to test HAOS quick on my pc (So I use a devcontainer and looks like works).

Here is an small tutorial -> https://www.youtube.com/watch?v=nV3wWkEyt8w

@R3yn4ld
Copy link

R3yn4ld commented Nov 4, 2024

Thank you very much @catrielmuller

Just downgraded Z2M to 1.39.1 on latest aarch64 Hassio thanks to your repo and now:

image

@Charmio1
Copy link

Charmio1 commented Nov 19, 2024

PROBLEM RESOLVED!
Just an update for everyone, I upgraded to Zigbee2MQTT version
1.41.0 (from 1.40.x) and the device now just works. Gone is the issue of no sensor values being received. Seemingly there's not even any need to send the "cluster 0xEF00, attribute 0x03" command in Dev console. I can see from my history that data was received and everything started working 3 minutes after the update without me needing to do anything.

Now all that's needed is the ability to calibrate it, which is apparently rather important for the sensors this device uses.

The guys working on getting this device working with ZHA have already made some progress. @tschiex has identified the Data Point ID's used for calibration: zigpy/zha-device-handlers#2565 (comment)

Unfortunately I'm personally too inexperienced to make use of that information and get it working with Z2M (for now!), but perhaps someone else will find it useful.

@aqwserf
Copy link

aqwserf commented Jan 8, 2025

Hi! I'm having more or less the same issue. Just received this device with z2m 2.0.0-2, and I'm having issues after the initial association.

I initially seemed to work but after a couple of minutes, I started to get this message (twice) every 3-4 minutes:

z2m: EventBus error 'OnEvent/deviceMessage': ZCL command 0x94b216fffe89ac77/1 manuSpecificTuya.mcuVersionRequest({"seq":2}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (no response received (190) Error: waiting for response TIMEOUT)

So I tried to enter the cluster 0xEF00, attribute 0x03 but as others, I'm getting a:

Publish 'set' 'command' to '0x94b216fffe89ac77' failed: 'Error: No datapoint defined for 'command''.

and I don't have any backup of 1.39 as mentionned by others 😞

I then tried to Permit all joined -> Reconfigure -> push red button for 5s and it works for 1mn or so and then the TIMEOUT error message again, or the exact sames values being sent.

See full log in here:tuya.txt

Any ideas?

Thanks!

@aqwserf
Copy link

aqwserf commented Jan 9, 2025

After reading other comments, apparently sending commands with 1.39 and upgrading back to 1.4x doesn't seem to work (no values sent).

I found an old 1.37 backup but I would definitely like to make it work (by sending the famous command and upgrade) or out of the box on 2.x.

@Koenkk any ideas? I'm able to provide any relevant information needed. Thanks!

@werdnum
Copy link

werdnum commented Jan 15, 2025

Did upgrading past 1.41.0 help other folks?

@tschiex
Copy link

tschiex commented Jan 15, 2025 via email

@aqwserf
Copy link

aqwserf commented Jan 15, 2025

Good news on my side.
I finally tried to reverted back to 1.37.1-4 (no issues from 2.0.0-2 btw, even with the breaking changes...), added the device, sent the command and everything was working! 🥳 got data every 10mn
Feeling lucky, I then tried to upgrade to 2.0.0-2 and surprisingly, everything is working again! I even get data every 5mn instead of 10mn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device support New device support request
Projects
None yet
Development

No branches or pull requests