Sinopé TH1400ZB

   
Model TH1400ZB
Vendor Sinopé
Description Zigbee low volt thermostat
Exposes climate (occupied_heating_setpoint, unoccupied_heating_setpoint, local_temperature, system_mode, pi_heating_demand, running_state), max_heat_setpoint_limit, min_heat_setpoint_limit, thermostat_occupancy, second_display_mode, thermostat_outdoor_temperature, outdoor_temperature_timeout, enable_outdoor_temperature, temperature_display_mode, time_format, backlight_auto_dim, keypad_lockout, connected_load, floor_control_mode, floor_max_heat_setpoint, floor_min_heat_setpoint, ambiant_max_heat_setpoint, floor_temperature_sensor, main_cycle_output, aux_cycle_output, pump_protection, aux_connected_load, linkquality
Picture Sinopé TH1400ZB

Notes

Setting outdoor temperature

To set the outdoor temperature (value below the Out label on the thermostat display), you need to send the value to the following MQTT topic:

zigbee2mqtt/<FRIENDLY_NAME>/set/thermostat_outdoor_temperature

If you want to automate the publishing of the outdoor temperature using Home Assistant, you may create an automation like this:

- id: 'Auto_Publish_Outdoor_Temprature'
  alias: 'Publish outside temperature'
  description: 'Automatically Publish the outdoor temperature to thermostats'
  mode: single
  trigger:
  - platform: state
    entity_id: sensor.<OUTDOOR_TEMPERATURE_SENSOR_NAME>
  condition: []
  action:
  - service: mqtt.publish
    data:
      topic: zigbee2mqtt/<FRIENDLY_NAME>/set/thermostat_outdoor_temperature
      payload_template: ""

Setting outdoor temperature

To enable time you need to send a blank message to the following MQTT topic:

zigbee2mqtt/<FRIENDLY_NAME>/set/thermostat_time

Every time the above message is sent, Zigbee2MQTT will calculate the current time and send it to the thermostat.

If the thermostat loses power, you need to do this again. For Home Assistant users: if you want to avoid remembering to do this, you can add the following action to your Auto_Publish_Outdoor_Temperature automation (noted above).

  - service: mqtt.publish
    data:
      topic: zigbee2mqtt/<FRIENDLY_NAME>/set/thermostat_time
      payload: ''

Options

How to use device type specific configuration

  • thermostat_unit: Controls the temperature unit of the thermostat (default celsius). The value must be one of celsius, fahrenheit

  • legacy: Set to false to disable the legacy integration (highly recommended), will change structure of the published payload (default true). The value must be true or false

  • power_calibration: Calibrates the power value (percentual offset), takes into effect on next report of device. The value must be a number.

  • power_precision: Number of digits after decimal point for power, takes into effect on next report of device. The value must be a number with a minimum value of 0 and with a with a maximum value of 3

  • current_calibration: Calibrates the current value (percentual offset), takes into effect on next report of device. The value must be a number.

  • current_precision: Number of digits after decimal point for current, takes into effect on next report of device. The value must be a number with a minimum value of 0 and with a with a maximum value of 3

  • voltage_calibration: Calibrates the voltage value (percentual offset), takes into effect on next report of device. The value must be a number.

  • voltage_precision: Number of digits after decimal point for voltage, takes into effect on next report of device. The value must be a number with a minimum value of 0 and with a with a maximum value of 3

Exposes

Climate

This climate device supports the following features: occupied_heating_setpoint, unoccupied_heating_setpoint, local_temperature, system_mode, pi_heating_demand, running_state.

  • occupied_heating_setpoint: Temperature setpoint. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"occupied_heating_setpoint": VALUE} where VALUE is the °C between 5 and 36. To read send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"occupied_heating_setpoint": ""}.
  • pi_heating_demand: Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"pi_heating_demand": VALUE} where VALUE is the % between 0 and 100. Reading (/get) this attribute is not possible.
  • local_temperature: Current temperature measured on the device (in °C). To read send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"local_temperature": ""}.
  • system_mode: Mode of this device. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"system_mode": VALUE} where VALUE is one of: off, heat. To read send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"system_mode": ""}.
  • running_state: The current running state. Possible values are: idle, heat. Reading (/get) this attribute is not possible.

Max_heat_setpoint_limit (numeric)

Maximum Heating set point limit. Value can be found in the published state on the max_heat_setpoint_limit property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"max_heat_setpoint_limit": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"max_heat_setpoint_limit": NEW_VALUE}. The minimal value is 5 and the maximum value is 36. The unit of this value is °C.

Min_heat_setpoint_limit (numeric)

Minimum Heating set point limit. Value can be found in the published state on the min_heat_setpoint_limit property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"min_heat_setpoint_limit": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"min_heat_setpoint_limit": NEW_VALUE}. The minimal value is 5 and the maximum value is 36. The unit of this value is °C.

Thermostat_occupancy (enum)

Occupancy state of the thermostat. Value can be found in the published state on the thermostat_occupancy property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"thermostat_occupancy": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"thermostat_occupancy": NEW_VALUE}. The possible values are: unoccupied, occupied.

Second_display_mode (enum)

Displays the outdoor temperature and then returns to the set point in “auto” mode, or clears in “outdoor temp” mode when expired.. Value can be found in the published state on the second_display_mode property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"second_display_mode": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"second_display_mode": NEW_VALUE}. The possible values are: auto, setpoint, outdoor temp.

Thermostat_outdoor_temperature (numeric)

Outdoor temperature for the secondary display. Value can be found in the published state on the thermostat_outdoor_temperature property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"thermostat_outdoor_temperature": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"thermostat_outdoor_temperature": NEW_VALUE}. The minimal value is -99.5 and the maximum value is 99.5. The unit of this value is °C.

Outdoor_temperature_timeout (numeric)

Time in seconds after which the outdoor temperature is considered to have expired. Value can be found in the published state on the outdoor_temperature_timeout property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"outdoor_temperature_timeout": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"outdoor_temperature_timeout": NEW_VALUE}. The minimal value is 30 and the maximum value is 64800. The unit of this value is Seconds. Besides the numeric values the following values are accepected: 15 min, 30 min, 1 hour.

Enable_outdoor_temperature (binary)

DEPRECATED: Use second_display_mode or control via outdoor_temperature_timeout. Value can be found in the published state on the enable_outdoor_temperature property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"enable_outdoor_temperature": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"enable_outdoor_temperature": NEW_VALUE}. If value equals ON enable_outdoor_temperature is ON, if OFF OFF.

Temperature_display_mode (enum)

The temperature format displayed on the thermostat screen. Value can be found in the published state on the temperature_display_mode property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"temperature_display_mode": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"temperature_display_mode": NEW_VALUE}. The possible values are: celsius, fahrenheit.

Time_format (enum)

The time format featured on the thermostat display. Value can be found in the published state on the time_format property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"time_format": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"time_format": NEW_VALUE}. The possible values are: 24h, 12h.

Backlight_auto_dim (enum)

The display backlight behavior. Value can be found in the published state on the backlight_auto_dim property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"backlight_auto_dim": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"backlight_auto_dim": NEW_VALUE}. The possible values are: on_demand, sensing.

Keypad_lockout (enum)

Enables or disables the device’s buttons. Value can be found in the published state on the keypad_lockout property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"keypad_lockout": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"keypad_lockout": NEW_VALUE}. The possible values are: unlock, lock1.

Connected_load (numeric)

The power in watts of the electrical load connected to the device. Value can be found in the published state on the connected_load property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"connected_load": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"connected_load": NEW_VALUE}. The minimal value is 1 and the maximum value is 20000. The unit of this value is W.

Floor_control_mode (enum)

Control mode using floor or ambient temperature. Value can be found in the published state on the floor_control_mode property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"floor_control_mode": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"floor_control_mode": NEW_VALUE}. The possible values are: ambiant, floor.

Floor_max_heat_setpoint (numeric)

The maximum floor temperature limit of the floor when in ambient control mode. Value can be found in the published state on the floor_max_heat_setpoint property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"floor_max_heat_setpoint": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"floor_max_heat_setpoint": NEW_VALUE}. The minimal value is 7 and the maximum value is 36. The unit of this value is °C. Besides the numeric values the following values are accepected: off.

Floor_min_heat_setpoint (numeric)

The minimum floor temperature limit of the floor when in ambient control mode. Value can be found in the published state on the floor_min_heat_setpoint property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"floor_min_heat_setpoint": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"floor_min_heat_setpoint": NEW_VALUE}. The minimal value is 5 and the maximum value is 34. The unit of this value is °C. Besides the numeric values the following values are accepected: off.

Ambiant_max_heat_setpoint (numeric)

The maximum ambient temperature limit when in floor control mode. Value can be found in the published state on the ambiant_max_heat_setpoint property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"ambiant_max_heat_setpoint": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"ambiant_max_heat_setpoint": NEW_VALUE}. The minimal value is 5 and the maximum value is 36. The unit of this value is °C. Besides the numeric values the following values are accepected: off.

Floor_temperature_sensor (enum)

The floor sensor. Value can be found in the published state on the floor_temperature_sensor property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"floor_temperature_sensor": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"floor_temperature_sensor": NEW_VALUE}. The possible values are: 10k, 12k.

Main_cycle_output (enum)

The length of the control cycle according to the type of load connected to the thermostats. Value can be found in the published state on the main_cycle_output property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"main_cycle_output": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"main_cycle_output": NEW_VALUE}. The possible values are: 15_sec, 5_min, 10_min, 15_min, 20_min, 30_min.

Aux_cycle_output (enum)

The length of the control cycle according to the type of auxiliary load connected to the thermostats. Value can be found in the published state on the aux_cycle_output property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"aux_cycle_output": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"aux_cycle_output": NEW_VALUE}. The possible values are: off, 15_sec, 5_min, 10_min, 15_min, 20_min, 30_min.

Pump_protection (binary)

This function prevents the seizure of the pump. Value can be found in the published state on the pump_protection property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"pump_protection": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"pump_protection": NEW_VALUE}. If value equals ON pump_protection is ON, if OFF OFF.

Aux_connected_load (numeric)

The power in watts of the heater connected to the auxiliary output of the thermostat. Value can be found in the published state on the aux_connected_load property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"aux_connected_load": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"aux_connected_load": NEW_VALUE}. The minimal value is 0 and the maximum value is 20000. The unit of this value is W.

Linkquality (numeric)

Link quality (signal strength). Value can be found in the published state on the linkquality property. It’s not possible to read (/get) or write (/set) this value. The minimal value is 0 and the maximum value is 255. The unit of this value is lqi.