Ubisys H1

ModelH1
VendorUbisys
DescriptionHeating regulator
Exposesbattery, climate (system_mode, running_mode, occupied_heating_setpoint, unoccupied_heating_setpoint, local_temperature, pi_heating_demand, schedule), vacation_mode, local_temperature_offset, occupied_heating_default_setpoint, remote_temperature_duration, linkquality
PictureUbisys H1

Notes

You can get a detailed user manual on the Ubisysopen in new window website.

Pairing

Initial pairing

  1. make sure the H1 is mounted securely
  2. enable joining in zigbee2mqtt
  3. remove the plastic battery tab
  4. wait, the TRV will first calibrate, after this is successful it will automatically try to join

If the display remains blank, try replacing the batteries. Mine shipped with empty batteries.

Pairing after the device has been calibrated

  1. press the button to wake the display
  2. press and hold the button for 10 seconds with the display wake
  3. turn the dial until you see the 'factory reset' icon (gear with a arrow around it)
  4. press the button once (icon should be flashing)
  5. turn the dial until you see checkmark next to the icon
  6. enable joining in zigbe2mqtt
  7. press the button to confirm (the device will now reset, re-calibrate, and try to join)

Turning off

You can turn off the H1 by setting the system_mode to off or by using the on device menu, the device will now be in frost protection mode and will not execute any schedules or try and heat to the setpoint.

You can turn on the device again by setting system_mode to heat or by turning the dial on the device.

Vacation Mode

When in vacation mode (occupied heating) setpoint and schedule will be ignored. It will keep the room at 16ºC by default, however this can be changed by setting the unoccupied heating setpoint.

mosquitto_pub -t zigbee2mqtt/<friendly_name>/set/unoccupied_heating_setpoint -m 14

Scheduling

You can configure a schedule for the thermostat as wel, when the schedule ends the TRV will revert to the value configured in occupied_heating_default_setpoint.:w

Remote Temperature

When running on a firmware version that is 1.5.0 or higher, you can now bind a sensor supporting msTemperatureMeasurement to the TRV.

# NOTE: if the msTemperatureMeasurement is not on endpoint 1, change the endpoint number on the sensor_friendly_name device.
mosquitto_pub -t zigbee2mqtt/bridge/request/device/bind -m '{"clusters":["msTemperatureMeasurement"],"from":"<sensor_friendly_name>/1","to":"<trv_friendly_name>/1"}'

You can configure how long the remote temperature remains valid by setting remote_temperature_duration which defaults to 1 hour. You can manually read the remote_temperature attribute to see what value the device is using. It does not support reporting, when the value is not set or expire it will read as -327.68.

OTA updates

This device supports OTA updates, for more information see OTA updates.

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

Battery (numeric)

Remaining battery in %, can take up to 24 hours before reported. Value can be found in the published state on the battery property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"battery": ""}. It's not possible to write (/set) this value. The minimal value is 0 and the maximum value is 100. The unit of this value is %.

Climate

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

  • 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 7 and 30. 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. To read send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"pi_heating_demand": ""}.
  • 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": ""}.

Vacation mode (binary)

When Vacation Mode is active the schedule is disabled and unoccupied_heating_setpoint is used.. Value can be found in the published state on the vacation_mode property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"vacation_mode": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"vacation_mode": NEW_VALUE}. If value equals true vacation mode is ON, if false OFF.

Local temperature offset (numeric)

Specifies the temperature offset for the locally measured temperature value.. Value can be found in the published state on the local_temperature_offset property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"local_temperature_offset": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"local_temperature_offset": NEW_VALUE}. The minimal value is -10 and the maximum value is 10. The unit of this value is ºC.

Occupied heating default setpoint (numeric)

Specifies the default heating setpoint during occupancy, representing the targeted temperature when a recurring weekly schedule ends without a follow-up schedule.. Value can be found in the published state on the occupied_heating_default_setpoint property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"occupied_heating_default_setpoint": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"occupied_heating_default_setpoint": NEW_VALUE}. The minimal value is 7 and the maximum value is 30. The unit of this value is ºC.

Remote temperature duration (numeric)

Specifies the duration period in seconds, during which a remotely measured temperature value remains valid since its reception as attribute report.. Value can be found in the published state on the remote_temperature_duration property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"remote_temperature_duration": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"remote_temperature_duration": NEW_VALUE}. The minimal value is 0 and the maximum value is 86400. The unit of this value is s.

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.