Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.11k stars 1.68k forks source link

Nous SZ-T04 - reporting interval #15736

Closed kiekerjan18 closed 1 year ago

kiekerjan18 commented 1 year ago

What happened?

Recently I convinced my father to move away from Tuya platform and join the power of Zigbee2Mqtt. He is comparing quite a lot and want at least what he gets on Tuya (and hopefully more).

Now we encounter with the following device: Nous SZ-T04 (https://www.zigbee2mqtt.io/devices/SZ-T04.html) an issue.

In Smartlife the minimal reporing interval is 1 minutes while in Zigbee2Mqtt this is only 5 minutes. If he sets the reporting interval in Smartfile to 1 minute and then pairs to Z2M the logs files get flooded with errors, since 1 minutes is not allowed, but the device do support it.

What did you expect to happen?

Any chance to adjust to a minimal reporting interval to 1 minute?

How to reproduce it (minimal and precise)

No response

Zigbee2MQTT version

1.28.4-dev commit: 58445a2

Adapter firmware version

20221102

Adapter

Sonoff Zigbee Dongle Plus

Debug log

No response

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

kiekerjan18 commented 1 year ago

I've solved it by creating an external converter and adjusting some values in the already available nous.js

https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/nous.js

I've adjusted:

e.temperature(), e.humidity(), e.battery(), exposes.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(5).withValueMax(120).withValueStep(5) .withDescription('Temperature Report interval'), exposes.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(5).withValueMax(120).withValueStep(5) .withDescription('Humidity Report interval'),

TO:

e.temperature(), e.humidity(), e.battery(), exposes.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1) .withDescription('Temperature Report interval'), exposes.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1) .withDescription('Humidity Report interval'),

Is it possible to make this adjustment in the file of zigbee-herdsman-converters as well? @Koenkk

mati1988r commented 1 year ago

I've solved it by creating an external converter and adjusting some values in the already available nous.js

https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/nous.js

I've adjusted:

e.temperature(), e.humidity(), e.battery(), exposes.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(5).withValueMax(120).withValueStep(5) .withDescription('Temperature Report interval'), exposes.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(5).withValueMax(120).withValueStep(5) .withDescription('Humidity Report interval'),

TO:

e.temperature(), e.humidity(), e.battery(), exposes.numeric('temperature_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1) .withDescription('Temperature Report interval'), exposes.numeric('humidity_report_interval', ea.STATE_SET).withUnit('min').withValueMin(1).withValueMax(120).withValueStep(1) .withDescription('Humidity Report interval'),

Is it possible to make this adjustment in the file of zigbee-herdsman-converters as well? @Koenkk

hi, can you send me file js with this change ?

kiekerjan18 commented 1 year ago

nous.zip