zigbee2mqtt icon indicating copy to clipboard operation
zigbee2mqtt copied to clipboard

Moes Thermostat can only set whole degrees

Open PulsarFX opened this issue 3 years ago • 4 comments

What happened?

Temperature target value for the BHT-002-GCLZB is reported in whole degrees and can only be set as whole degrees, whereas the device reports and changes in .5 degree steps.

What did you expect to happen?

I'd like to see and set current_heating_setpoint in .5 degree steps via mqtt like it is possible at the device itself.

How to reproduce it (minimal and precise)

Try to set a temperature for current_heating_setpoint with .5 degrees.

Zigbee2MQTT version

1.28.2

Adapter firmware version

20210708

Adapter

SONOFF Zigbee 3.0 USB Dongle Plus,TI CC2652P

Debug log

No response

PulsarFX avatar Nov 13 '22 22:11 PulsarFX

Same problem with MOES BRT-100-TRV

Ivano62 avatar Nov 14 '22 07:11 Ivano62

I have a few of these and I can confirm. I think it is an issue with the definition of the MQTT climate entity. Both precision and temp step should be: 0.5

      precision: 0.5
      temp_step: 0.5

Right now, the MQTT definition that Z2M sends to HomeAssistant looks like this, with temp_step defined as 1 and precision missing.

action_template: >-
  {% set values =
  {None:None,'idle':'off','heat':'heating','cool':'cooling','fan_only':'fan'}
  %}{{ values[value_json.running_state] }}
action_topic: zigbee2mqtt/TRV Living
availability:
  - topic: zigbee2mqtt/bridge/state
    value_template: '{{ value_json.state }}'
  - topic: zigbee2mqtt/TRV Living/availability
    value_template: '{{ value_json.state }}'
availability_mode: all
current_temperature_template: '{{ value_json.local_temperature }}'
current_temperature_topic: zigbee2mqtt/TRV Living
device:
  identifiers:
    - zigbee2mqtt_0xaaccc84fffecc3384
  manufacturer: Moes
  model: Thermostatic radiator valve (BRT-100-TRV)
  name: TRV Living
max_temp: '35'
min_temp: '5'
mode_state_template: '{{ value_json.system_mode }}'
mode_state_topic: zigbee2mqtt/TRV Living
modes:
  - heat
name: TRV Living
preset_mode_command_topic: zigbee2mqtt/TRV Living/set/preset
preset_mode_state_topic: zigbee2mqtt/TRV Living
preset_mode_value_template: '{{ value_json.preset }}'
preset_modes:
  - programming
  - manual
  - temporary_manual
  - holiday
temp_step: 1
temperature_command_topic: zigbee2mqtt/TRV Living/set/current_heating_setpoint
temperature_state_template: '{{ value_json.current_heating_setpoint }}'
temperature_state_topic: zigbee2mqtt/TRV Living
temperature_unit: C
unique_id: 0xaaccc84fffecc3384_climate_zigbee2mqtt
platform: mqtt

cristimi avatar Nov 16 '22 13:11 cristimi

Is there a way to test it with a different definition? In z2m gui I can also set only whole degrees. Does it ise the same definition?

PulsarFX avatar Nov 19 '22 22:11 PulsarFX

Same problem with MOES [BHT-002-GCLZB]

cambro1995 avatar Nov 29 '22 10:11 cambro1995

I also confirm that we cannot step by 0.5 degree for MOES BRT-100-TRV.

TTR6214 avatar Dec 10 '22 12:12 TTR6214

So I started digging around and found this:

my model starts here: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/moes.js#L98 and states: fromZigbee: [fz.moes_thermostat],

which is: const fz = require('../converters/fromZigbee');

this is where the settings for moes_thermostat starts: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/converters/fromZigbee.js#L3896 relevant snippet for local temp:

  case tuya.dataPoints.moesLocalTemp:
      temperature = value & 1<<15 ? value - (1<<16) + 1 : value;
      if (!['_TZE200_ztvwu4nk', '_TZE200_ye5jkfsb'].includes(meta.device.manufacturerName)) {
          // https://github.com/Koenkk/zigbee2mqtt/issues/11980
          temperature = temperature / 10;
      }

      return {local_temperature: parseFloat(temperature.toFixed(1))};

relevant snippet for heating setpoint:

case tuya.dataPoints.moesHeatingSetpoint:
    return {current_heating_setpoint: value};

my question is:

  • is fromZigbee.js right to convert heatingSetpoint as non-float?
  • is there a way to see the raw zigbee message from the thermostat to verify incoming data?

PulsarFX avatar Dec 12 '22 17:12 PulsarFX

has anyone tested this thermostat with the smartlife/tuya/moes app if .5°C is possible there? MOES support wants me to show them with their app, that I can only set 1C steps...

PulsarFX avatar Dec 14 '22 08:12 PulsarFX

On MOES BRT-100-TRV With physical input on the device the step is 0.5 °C, I don't use app

Ivano62 avatar Dec 14 '22 08:12 Ivano62

Yes, that's why I contacted support, as the display accepts .5C steps whereas zigbee can only set 1C steps. The question is: is it a zigbee2mqtt issue or a general issue with the device?

PulsarFX avatar Dec 14 '22 08:12 PulsarFX

Moes support states, that the thermostat can be set in .5C steps via Smartlife or their app.

PulsarFX avatar Dec 20 '22 11:12 PulsarFX

Anyone has Tuya app to verify? I have no Tuya hub yet, so can't try myself. Perhaps, this TRV has firmware update, but it isn't shown in Z2M. Maybe it will work with original Tuya app, and after update we would have better position reporting and proper setpoint option?..

osnwt avatar Dec 24 '22 02:12 osnwt

I bought the moes wireless zigbee hub and connected it with one of my thermostats. Guess what: smartlife app only allows to set whole degrees, too. >:-( The thermostat reports these versions: zigbee module 1.0.8 mcu model: 2.0.1

PulsarFX avatar Dec 28 '22 17:12 PulsarFX

Sad...

osnwt avatar Dec 28 '22 17:12 osnwt

I've sent a Video to moes support and got this response:

"I checked with TUYA team,zigbee thermostat can only set the temperature according to 1 C at present. Wifi thermostat can set 0.5C,hope you understand. I will apply for TUYA engineer to improve this function in the future."

Let's hope they get this fixed. For now there is nothing z2m can do to improve the implementation.

PulsarFX avatar Dec 31 '22 07:12 PulsarFX

Very strage, because via program e.g. "weekdays_pX_temperature" it is possible to set .5 Degrees values...why not for setpoint ?!

guny74 avatar Jan 04 '23 16:01 guny74

A year later, I asked again (also with the hint, that the program schedule can set .5 degrees) and got this reply from support : "This is indeed a fixed specification parameter of graffiti technology at present. We have also submitted an application, and hope that they can revise this problem as soon as possible after reviewing it. Thank you for your feedback again."

Honestly, I don't understand what they are trying to say :-D

PulsarFX avatar Dec 02 '23 22:12 PulsarFX

@ all subscribers: please see #19991 and check your device code

PulsarFX avatar Dec 06 '23 21:12 PulsarFX