zigbee2mqtt icon indicating copy to clipboard operation
zigbee2mqtt copied to clipboard

[New device support]: _TZE200_vvmbj46n (Tuya Temperature and Humidity - TH05Z)

Open Jokanaan78 opened this issue 1 year ago • 30 comments

Link

https://fr.aliexpress.com/item/1005005923865974.html?gatewayAdapt=glo2fra

Database entry

{"id":67,"type":"EndDevice","ieeeAddr":"0xa4c138a978038dbe","nwkAddr":21189,"manufId":4417,"manufName":"_TZE200_vvmbj46n","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":{"65503":"l ,\u0011","65506":56,"65508":0,"65534":0,"modelId":"TS0601","manufacturerName":"_TZE200_vvmbj46n","powerSource":3,"zclVersion":3,"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":-1440156621},"lastSeen":1700109974399,"defaultSendRequestWhen":"immediate"}

Comments

I can make this work with the external converter (see below) but would rather have it checked by the pros and integrated into the platform

image

External converter

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_vvmbj46n',
        },
    ],
    model: 'TH05Z',
    vendor: 'TuYa',
    description: 'Tuya Zigbee Temperature & Humidity Sensor',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [e.temperature(), e.humidity(), e.battery(), tuya.exposes.batteryState(), tuya.exposes.temperatureUnit()],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
	[1, 'temperature', tuya.valueConverter.divideBy10],
	[2, 'humidity', tuya.valueConverter.raw],
	[3, 'battery_state', tuya.valueConverter.batteryState],
	[9, 'temperature_unit', tuya.valueConverter.temperatureUnitEnum],

        ],
    },
};

module.exports = definition;

Supported color modes

No response

Color temperature range

No response

Jokanaan78 avatar Nov 16 '23 05:11 Jokanaan78

Looks good, could you make a PR?

Koenkk avatar Nov 16 '23 16:11 Koenkk

I have unrecognized values with your code

info 2023-11-16 18:50:56MQTT publish: topic 'zigbee2mqtt/0xa4c1384eb0d22c4f', payload '{"battery":null,"battery_state":null,"humidity":39,"linkquality":134,"temperature":26.3,"temperature_unit":"celsius"}' debug 2023-11-16 18:50:56Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,1,134],"type":"Buffer"},"datatype":2,"dp":10}],"seq":63232}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:56Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,0],"type":"Buffer"},"datatype":2,"dp":11}],"seq":63488}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:56Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,60],"type":"Buffer"},"datatype":2,"dp":12}],"seq":63744}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:56Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,20],"type":"Buffer"},"datatype":2,"dp":13}],"seq":64000}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,120],"type":"Buffer"},"datatype":2,"dp":17}],"seq":64256}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,120],"type":"Buffer"},"datatype":2,"dp":18}],"seq":64512}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,6],"type":"Buffer"},"datatype":2,"dp":19}],"seq":64768}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,6],"type":"Buffer"},"datatype":2,"dp":20}],"seq":65024}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":255}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:57Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":1}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:58Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":3}' from endpoint 1 with groupID 0 debug 2023-11-16 18:50:59Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":7}' from endpoint 1 with groupID 0 debug 2023-11-16 18:51:01Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":12}' from endpoint 1 with groupID 0 debug 2023-11-16 18:51:03Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":17}' from endpoint 1 with groupID 0 debug 2023-11-16 18:51:05Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":22}' from endpoint 1 with groupID 0 debug 2023-11-16 18:51:21Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0],"type":"Buffer"},"datatype":4,"dp":9}],"seq":6656}' from endpoint 1 with groupID 0

On the other hand with this code which comes from here [(https://github.com/Koenkk/zigbee2mqtt/discussions/18827)] ` 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 ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access; const legacy = require('zigbee-herdsman-converters/lib/legacy');

const definition = { fingerprint: [{ modelID: 'TS0601', manufacturerName: '_TZE200_vvmbj46n' }], model: 'TSJS0601', vendor: 'TuYa', description: 'Temperature & humidity sensor with clock', fromZigbee: [legacy.fromZigbee.nous_lcd_temperature_humidity_sensor, fz.ignore_tuya_set_time], toZigbee: [legacy.toZigbee.nous_lcd_temperature_humidity_sensor], onEvent: tuya.onEventSetLocalTime, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']); }, exposes: [ e.temperature(), e.humidity(), e.battery(), //e.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1).withDescription('Temperature Report interval'), //e.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1).withDescription('Humidity Report interval'), e.enum('temperature_unit_convert', ea.STATE_SET, ['celsius', 'fahrenheit']).withDescription('Current display unit'), e.enum('temperature_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm']).withDescription('Temperature alarm status'), //e.numeric('max_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60).withDescription('Alarm temperature max'), //e.numeric('min_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60).withDescription('Alarm temperature min'), //e.enum('humidity_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm']).withDescription('Humidity alarm status'), // e.numeric('max_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100).withDescription('Alarm humidity max'), //e.numeric('min_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100).withDescription('Alarm humidity min'), ], };

module.exports = definition; `

with logs

info 2023-11-16 19:02:36MQTT publish: topic 'zigbee2mqtt/0xa4c1384eb0d22c4f', payload '{"battery":93,"humidity":45,"humidity_report_interval":120,"humidity_sensitivity":6,"linkquality":149,"max_humidity":60,"max_temperature":39,"min_humidity":20,"min_temperature":0,"temperature":23.7,"temperature_alarm":"canceled","temperature_report_interval":120,"temperature_sensitivity":0.6,"temperature_unit_convert":"celsius"}' debug 2023-11-16 19:02:36Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":15}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:36Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":17}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:37Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":21}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:39Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":25}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:41Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":30}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:43Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":35}' from endpoint 1 with groupID 0 debug 2023-11-16 19:02:45Received Zigbee message from '0xa4c1384eb0d22c4f', type 'commandMcuSyncTime', cluster 'manuSpecificTuya', data '{"payloadSize":40}' from endpoint 1 with groupID 0

sweepy-77 avatar Nov 16 '23 18:11 sweepy-77

Hello,

I would love to see this model integrated with Zigbee2mqtt ❤️

oallain avatar Nov 20 '23 20:11 oallain

Could you check if the issue is fixed with the following external converter: https://gist.github.com/Koenkk/78ac831ec1143edc92e8231eed73ebd6

  • save this as file next to configuration.yaml as ext_converter.js
  • add it to configuration.yaml:
external_converters:
  - ext_converter.js
  • start z2m, check if issue is fixed

Koenkk avatar Nov 21 '23 19:11 Koenkk

Hello @Koenkk

I try it, and it dosn't work, my z2m don't start, so i comment line in my configuration.yaml. I have :

  • create file ext_converter.js
  • set content form https://gist.githubusercontent.com/Koenkk/78ac831ec1143edc92e8231eed73ebd6/raw/5549c7abeebb1e79cf129eb2680ff8fabbf68e65/ext.js
  • add in my configuration.yaml
external_converters:
  - ext_converter.js
  • restart z2m

Try to start failled :(

oallain avatar Nov 25 '23 19:11 oallain

try below

` 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 legacy = require('zigbee-herdsman-converters/lib/legacy'); const extend = require('zigbee-herdsman-converters/lib/extend'); const ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access;

const definition = { fingerprint: tuya.fingerprint('TS0601', ['_TZE200_yjjdcqsq', '_TZE200_9yapgbuv', '_TZE204_upagmta9', '_TZE200_cirvgep4', '_TZE200_upagmta9', '_TZE200_vvmbj46n']), model: 'TS0601_temperature_humidity_sensor_2', vendor: 'TuYa', description: 'Temperature and humidity sensor', fromZigbee: [tuya.fz.datapoints], toZigbee: [tuya.tz.datapoints], onEvent: tuya.onEvent({queryOnDeviceAnnounce: true}), configure: async (device, coordinatorEndpoint, logger) => { await tuya.configureMagicPacket(device, coordinatorEndpoint, logger); // Required to get the device to start reporting await device.getEndpoint(1).command('manuSpecificTuya', 'dataQuery', {}); }, exposes: [e.temperature(), e.humidity(), e.battery(), tuya.exposes.temperatureUnit(),], meta: { tuyaDatapoints: [ [1, 'temperature', tuya.valueConverter.divideBy10], [2, 'humidity', tuya.valueConverter.raw], [4, 'battery', tuya.valueConverter.raw], [9, 'temperature_unit', tuya.valueConverter.temperatureUnitEnum], [10, 'alarm_temperature_max', tuya.valueConverter.divideBy10], [11, 'alarm_temperature_min', tuya.valueConverter.divideBy10], [12, 'alarm_humidity_max', tuya.valueConverter.raw], [13, 'alarm_humidity_max', tuya.valueConverter.raw], [14, 'alarm_temp', tuya.valueConverter.trueFalse1], [15, 'alarm_humidity', tuya.valueConverter.trueFalse1], [17, 'interval_report_temp', tuya.valueConverter.raw], [18, 'interval_report_humidity', tuya.valueConverter.raw], [19, 'sensitivity_temp', tuya.valueConverter.raw], [20, 'sensitivity_humidity', tuya.valueConverter.raw], ], }, whiteLabel: [ tuya.whitelabel('TuYa', 'ZTH01', 'Temperature and humidity sensor', ['_TZE200_yjjdcqsq']), tuya.whitelabel('TuYa', 'ZTH02', 'Temperature and humidity sensor', ['_TZE200_9yapgbuv']), tuya.whitelabel('TuYa', 'ZTH05', 'Temperature and humidity sensor', ['_TZE204_upagmta9', '_TZE200_upagmta9']), tuya.whitelabel('TuYa', 'ZTH05Z', 'Temperature and humidity sensor', ['_TZE200_vvmbj46n']), tuya.whitelabel('TuYa', 'ZTH08-E', 'Temperature and humidity sensor', ['_TZE200_cirvgep4']), ], };

module.exports = definition;`

sweepy-77 avatar Nov 25 '23 19:11 sweepy-77

Hello @Koenkk and @sweepy-77

Thanks for your help. I've seen that z2m's built-in editor displays errors. On both versions of your script, I get the following error:

Request 'zigbee2mqtt/bridge/request/extension/save' failed with error: 'tuya.onEvent is not a function'

oallain avatar Nov 26 '23 13:11 oallain

maybe a story of indentation look here: Edit adress https://gist.github.com/sweepy-77/772f25eb2efca35689a5309377d0da93

sweepy-77 avatar Nov 26 '23 14:11 sweepy-77

I have a new error :

Request 'zigbee2mqtt/bridge/request/extension/save' failed with error: 'ConstructorClass is not a constructor'

oallain avatar Nov 26 '23 17:11 oallain

This is working for me apart from the time sent to the device is one hour out. Is there something I can do to correct the time?

saxmanio85 avatar Nov 28 '23 21:11 saxmanio85

Hello, I wrongly thought it was complicated to add an "unsupported device", but in the end when the ".js" is available, it's very simple. Thank you very much for this work. One question: is it complicated / possible to replace the "Z" icon displayed in Z2M for these devices?

pubFbx avatar Nov 29 '23 10:11 pubFbx

So I've just tried the following (from here, I didnt write this: https://github.com/Koenkk/zigbee2mqtt/discussions/18827#discussioncomment-7150347 )

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 ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;
const legacy = require('zigbee-herdsman-converters/lib/legacy');

const definition = {
  fingerprint: [{
    modelID: 'TS0601',
    manufacturerName: '_TZE200_vvmbj46n'
  }],
  model: 'JM-TRH-ZGB-V1',
  vendor: 'TuYa',
  description: 'Temperature & humidity sensor with clock',
  fromZigbee: [legacy.fromZigbee.nous_lcd_temperature_humidity_sensor, fz.ignore_tuya_set_time],
  toZigbee: [legacy.toZigbee.nous_lcd_temperature_humidity_sensor],
  onEvent: tuya.onEventSetLocalTime,
  configure: async (device, coordinatorEndpoint, logger) => {
    const endpoint = device.getEndpoint(1);
    await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
  },
  exposes: [
    e.temperature(), e.humidity(), e.battery(),
    e.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(60)
    .withValueStep(1)
    .withDescription('Temperature Report interval'),
    e.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(60)
    .withValueStep(1)
    .withDescription('Humidity Report interval'),
    e.enum('temperature_unit_convert', ea.STATE_SET, ['celsius', 'fahrenheit']).withDescription(
      'Current display unit'),
    e.enum('temperature_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm'])
    .withDescription('Temperature alarm status'),
    e.numeric('max_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60)
    .withDescription('Alarm temperature max'),
    e.numeric('min_temperature', ea.STATE_SET).withUnit('°C').withValueMin(-20).withValueMax(60)
    .withDescription('Alarm temperature min'),
    e.enum('humidity_alarm', ea.STATE, ['canceled', 'lower_alarm', 'upper_alarm'])
    .withDescription('Humidity alarm status'),
    e.numeric('max_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100)
    .withDescription('Alarm humidity max'),
    e.numeric('min_humidity', ea.STATE_SET).withUnit('%').withValueMin(0).withValueMax(100)
    .withDescription('Alarm humidity min'),
  ],
};

module.exports = definition;

This sets the icon of the device successfully and unlocks a few other Exposes

saxmanio85 avatar Nov 29 '23 10:11 saxmanio85

Many thanks ! It's work :)

{
    "battery": 39,
    "humidity": 63,
    "humidity_alarm": "upper_alarm",
    "humidity_report_interval": 120,
    "humidity_sensitivity": 6,
    "last_seen": "2023-12-01T18:50:06+01:00",
    "linkquality": 140,
    "max_humidity": 60,
    "max_temperature": 39,
    "min_humidity": 20,
    "min_temperature": 0,
    "temperature": 22,
    "temperature_alarm": "canceled",
    "temperature_report_interval": 120,
    "temperature_sensitivity": 0.6,
    "temperature_unit_convert": "celsius"
}

I've just the "min_temperature" who is not good, because, the real min should be 17 and not 0.

oallain avatar Dec 01 '23 18:12 oallain

Can confirm that the external converter that saxmanio85 posted works fine for me.

baderas avatar Dec 25 '23 17:12 baderas

Can you modify the alarms with this code.

with the code below you can modify the alarm by turning on the backlight and have alerts on the minimum and maximum

https://gist.github.com/sweepy-77/772f25eb2efca35689a5309377d0da93

sweepy-77 avatar Dec 25 '23 20:12 sweepy-77

The code provided by @sweepy-77 at https://gist.github.com/sweepy-77/772f25eb2efca35689a5309377d0da93 is working for me.

grunthos503 avatar Dec 30 '23 23:12 grunthos503

@sweepy-77 could you make a PR for this?

Koenkk avatar Dec 31 '23 14:12 Koenkk

I've never done a PR and I don't see how to do it, I don't know if I'll succeed.

sweepy-77 avatar Jan 01 '24 16:01 sweepy-77

@sweepy-77 it can be done by clicking the pencil/edit icon here

Koenkk avatar Jan 02 '24 08:01 Koenkk

I succesfully added the device: Zigbee model 'TS0601' and manufacturer name '_TZE200_vvmbj46n' But I'm not able to set the "temperature_report_interval" and "humidity_report_interval". In the log I see

Received MQTT message on 'zigbee2mqtt/0xa4c13885784ea0aa/set' with data '{"temperature_report_interval":10}'

and

Publishing 'set' 'temperature_report_interval' to '0xa4c13885784ea0aa'

But nothing is changed on the device itself. What need to be done so I can change the report interval ?

kboeckx avatar Jan 03 '24 18:01 kboeckx

There is a button on the top of the device for lighting. Once turned on I send the order for the change

sweepy-77 avatar Jan 03 '24 22:01 sweepy-77

There is a button on the top of the device for lighting. Once turned on I send the order for the change

That did the trick ! Thx

kboeckx avatar Jan 04 '24 17:01 kboeckx

@Koenkk I followed your link and created the PR but I don't see it. I also saw that the ZTH05Z was added with version 1.35.0 with the model JM-TRH-ZGB-V1 #6705 but the commands to change the alarms and the interval report do not work.

sweepy-77 avatar Jan 07 '24 18:01 sweepy-77

@sweepy-77 I didn't see a PR indeed, there are some more docs here

Koenkk avatar Jan 08 '24 18:01 Koenkk

I have an issue with this device. I have 4 of them and from time to time they randomly stop refreshing the temperature and humidity. When I try to reconfigure it in Z2M I receive following logs:

Debug 2024-01-18 09:52:05Received MQTT message on 'zigbee2mqtt/bridge/request/device/configure' with data '{"id":"Termometr salon","transaction":"pxb8p-1"}'
Info 2024-01-18 09:52:05Configuring 'Termometr salon'
Error 2024-01-18 09:53:06Failed to configure 'Termometr salon', attempt 3 (Error: Bind 0xa4c138229d9cae94/1 genBasic from '0x00212effff09a2bd/1' failed (waiting for response TIMEOUT) at DeconzAdapter.bind (/app/node_modules/zigbee-herdsman/src/adapter/deconz/adapter/deconzAdapter.ts:776:19) at runNextTicks (node:internal/process/task_queues:60:5) at processTimers (node:internal/timers:509:9) at Endpoint.bind (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:545:13) at Object.bind (/app/node_modules/zigbee-herdsman-converters/src/lib/reporting.ts:43:9) at Object.configure (/app/node_modules/zigbee-herdsman-converters/src/devices/tuya.ts:5013:13) at Configure.configure (/app/lib/extension/configure.ts:120:13) at Configure.onMQTTMessage (/app/lib/extension/configure.ts:55:21) at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:167:17))
Info 2024-01-18 09:53:06MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{"id":"Termometr salon"},"error":"Failed to configure (Bind 0xa4c138229d9cae94/1 genBasic from '0x00212effff09a2bd/1' failed (waiting for response TIMEOUT))","status":"error","transaction":"pxb8p-1"}'

For another currently working device the same action in logs looks like:

Debug 2024-01-18 09:54:45Received MQTT message on 'zigbee2mqtt/bridge/request/device/configure' with data '{"id":"Termometr gabinet","transaction":"pxb8p-2"}'
Info 2024-01-18 09:54:45Configuring 'Termometr gabinet'
Info 2024-01-18 09:54:45Successfully configured 'Termometr gabinet'
Info 2024-01-18 09:54:45MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{"id":"Termometr gabinet"},"status":"ok","transaction":"pxb8p-2"}'

lukast008 avatar Jan 18 '24 08:01 lukast008

I have this fresh off the boat from china and it was discoverd/interviewed and setup somewhat correctly apart from there was no control over the reporting times. I then used the convertor posted by sweepy-77 and it works better than the auto interviewed setup but both versions show a battery % reporting over the top by about 100. so brand new batteries gave 200% and now a week later it is down to 195%. Any ideas how to correct or convert the value to the correct one ?
Please bear in mind this is my first venture into zigbee2mqtt and I am a very new newbie.

CBDesignS avatar Jan 19 '24 22:01 CBDesignS

More than a month after the pr and release. What is the current state, does work well or are there any issues?

I now also have this thermometer. Unfortunately, the temperature sensitivity and the temperature period report cannot be comprehensibly adjusted. I need an accuracy of 0.1 degrees and a message when the temperature changes by +- 0.1 degrees. How can I set these values?

robertp007 avatar Apr 22 '24 12:04 robertp007

I removed the custom convertor and reverted back to letting z2m find the device, it does and now and the device reports battery at 116% on a fresh set of 3 x AAA cells and once they discharge down the unit stops sending data but shows online at 34% charge. using the custom convertor The image shown in z2m used to show the correct picture of the device (at the top in the first post on this thread) but now using the discovered device it shows the generic picture with basic black & white Lcd display. Does the old Lcd version only have 2 cells to power it and the newer have 3 giving the incorrect battery data ?

CBDesignS avatar Apr 24 '24 11:04 CBDesignS

I have had a similar experience too. Only when I use the custom sensor description from saxmanio85 does the setting of temperature sensitivity and interval work moderatly. However, the temperature sensitivity does not allow a setting lower than 3. According to the enclosed user sheet, values below 1.0 should also be possible here. The automatic sensor integration via Z2M is not yet error-free and really usable.

robertp007 avatar May 02 '24 08:05 robertp007