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 | 
| Picture |  | 
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: "{{ states('sensor.<OUTDOOR_TEMPERATURE_SENSOR_NAME>') }}"
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
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/setwith payload- {"occupied_heating_setpoint": VALUE}where- VALUEis the °C between- 5and- 36. To read send a message to- zigbee2mqtt/FRIENDLY_NAME/getwith 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/setwith payload- {"pi_heating_demand": VALUE}where- VALUEis the % between- 0and- 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/getwith payload- {"local_temperature": ""}.
- system_mode: Mode of this device. To control publish a message to topic- zigbee2mqtt/FRIENDLY_NAME/setwith payload- {"system_mode": VALUE}where- VALUEis one of:- off,- heat. To read send a message to- zigbee2mqtt/FRIENDLY_NAME/getwith 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 s. Besides the numeric values the following values are accepted: 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 accepted: 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 accepted: 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 accepted: 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.
