To contribute to this page, edit the following file

Stelpro SMT402 #

Model SMT402
Vendor Stelpro
Description Maestro, line-voltage thermostat
Exposes local_temperature, keypad_lockout, climate (occupied_heating_setpoint, local_temperature, system_mode, running_state), linkquality
Picture Stelpro SMT402

Notes #

Device type specific configuration #

How to use device type specific configuration

Setting outdoor temperature #

To set outdoor temperature, 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_temp
  description: publish the outdoor temperature to Stelpro thermostat
  trigger:
    - platform: state
      entity_id: sensor.outdoor_sensor_temperature
      condition: []
  action:
    - service: mqtt.publish
      data_template:
      payload: ''
      topic: 'zigbee2mqtt/THERMOSTAT_FRIENDLY_NAME/set/thermostat_outdoor_temperature'

IMPORTANT: The outdoor temperature need to be refreshed at least each 4 hours, or the EXT display will be cleared on the thermostat.

Exposes #

Local_temperature (numeric) #

Current temperature measured on the device. Value can be found in the published state on the local_temperature property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"local_temperature": ""}. It’s not possible to write (/set) this value. The unit of this value is °C.

Keypad_lockout (binary) #

Enables/disables physical input on the device. 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}. If value equals lock1 keypad_lockout is ON, if unlock OFF.

Climate #

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

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.

Manual Home Assistant configuration #

Although Home Assistant integration through MQTT discovery is preferred, manual integration is possible with the following configuration:

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{ value_json.local_temperature }}"
    unit_of_measurement: "°C"
    device_class: "temperature"

binary_sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{ value_json.keypad_lockout }}"
    payload_on: "lock1"
    payload_off: "unlock"

climate:
  - platform: "mqtt"
    availability_topic: "zigbee2mqtt/bridge/state"
    temperature_unit: "C"
    temp_step: 0.5
    min_temp: "5"
    max_temp: "30"
    current_temperature_topic: true
    current_temperature_template: "{{ value_json.local_temperature }}"
    mode_state_topic: true
    mode_state_template: "{{ value_json.system_mode }}"
    modes: 
      - "off"
      - "auto"
      - "heat"
    mode_command_topic: true
    action_topic: true
    action_template: "{% set values = {'idle':'off','heat':'heating','cool':'cooling','fan only':'fan'} %}{{ values[value_json.running_state] }}"
    temperature_command_topic: "occupied_heating_setpoint"
    temperature_state_template: "{{ value_json.occupied_heating_setpoint }}"
    temperature_state_topic: true

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{ value_json.linkquality }}"
    unit_of_measurement: "lqi"
    icon: "mdi:signal"