Custom component to read and write data from Ensto BLE thermostats.
- Tested environment: Raspberry Pi 4, Home Assistant OS 17.1, Supervisor 2026.02.3, Core 2026.2.3
- Supported devices: Ensto ELTE6-BT, ECO10BT, ECO16BT, and EPHE5-BT thermostats (should work with all Ensto thermostats supporting the same BLE Interface Description)
- Multi-device support: Works with multiple thermostats and ESP32 Bluetooth proxies
- Installation type: Developed and tested only with Home Assistant OS. Other installation types are not guaranteed to work.
Note: This is a hobby project under active development.
- Search for
HASS Ensto BLEin HACS default repositories - Download the latest release
- Restart Home Assistant
- Navigate to Settings → Devices & services → Add Integration
- Search for "Hass Ensto BLE"
- Put the thermostat in pairing mode (hold BLE reset button >0.5 seconds until blue LED blinks)
- Navigate to Settings → Devices & services → Add Integration
- Search for "Hass Ensto BLE"
- Select your thermostat from the discovered devices list
- Choose currency for energy calculations (stored in thermostat memory)
- Navigate to Settings → Devices & services → Helpers → Create helper
- Select Generic thermostat and configure:
- Temperature sensor: Select floor or room temperature sensor
- Actuator switch: Select "Boost Mode" switch
- Cold/Hot tolerance: 0.5 is recommended
- Click Next → Submit → Finish
- Add a Thermostat card to your dashboard using the new climate entity
Configure the thermostat's heating mode.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Heating mode selector
- Select a mode from the dropdown menu
Available modes (not all thermostats support all modes):
- Floor – Floor sensor based heating (ECO16 only)
- Room – Room sensor based heating
- Combination – Combined floor and room sensors (ECO16 only)
- Power – Direct power control
Note: Floor temperature min/max values are only used in Combination mode. Boost power offset and vacation power offset are only used in Power mode.
Temporarily increase the temperature for a specified duration.
- Navigate to Settings → Devices & services → [Your thermostat]
- Configure the following:
- Boost duration – Duration in minutes
- Boost temperature offset – Offset from -20°C to +20°C (or Boost power offset from -100% to +100% in Power mode)
- Enable the Boost mode switch
- The Boost remaining sensor shows the countdown to zero, then automatically disables
Enable the thermostat's built-in adaptive temperature adjustment.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Adaptive temperature control switch
- Toggle on or off as needed
Configure automatic daylight saving time adjustments.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Daylight saving switch
- Toggle on or off as needed
The device automatically converts between UTC and local time based on this setting.
Synchronize the thermostat's internal clock with Home Assistant.
Home Assistant shows a notification if the device time differs by more than one minute.
- Navigate to Developer Tools → Actions
- Select service
hass_ensto_ble.set_device_time - Select your thermostat's DateTime entity as target
- Click Perform action
- Verify the Date and time sensor shows the correct local time
The notification disappears automatically once synchronized.
Note: Time is handled internally in UTC to ensure consistent operation across time zones.
Change the floor sensor type for accurate temperature readings (ECO16 only).
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Floor sensor type selector
- Select the appropriate sensor type from the dropdown menu
The thermostat will return updated temperature values based on the new sensor type.
Configure minimum and maximum floor temperature limits (ECO16 only, Combination mode).
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Floor temperature min and Floor temperature max entities
- Adjust values as needed
Constraints:
- Minimum must be at least 8°C lower than maximum
- These settings are only active in Combination heating mode
- Entities are disabled in other heating modes
Calibrate the room temperature sensor for accurate readings.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Room sensor calibration entity
- Set a value between -5.0°C and +5.0°C
Positive values increase the displayed temperature; negative values decrease it.
Configure the thermostat's heating power rating for energy calculations.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Heating power entity
- Set your thermostat's actual power rating (e.g., 900W)
This value is stored in the thermostat's memory and enables power consumption monitoring.
Configure the heated floor area for reference (ECO16 only).
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Floor area entity
- Set the floor area in square meters
This value is stored in the thermostat's memory.
Monitor power usage and historical data.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Power usage sensor
The sensor includes the following attributes:
- Last 24-hour thermostat on/off ratio
- Last 7-day thermostat on/off ratio
- Last 12-month thermostat on/off ratio
- Hourly floor and room temperature history
Monitor real-time power consumption and track energy usage.
Setup:
- Navigate to Settings → Devices & services → [Your thermostat]
- Set your thermostat's power rating in the Heating power entity
- The Current power sensor becomes available showing:
- Full heating power when the relay is ON
- 0W when the relay is OFF
Schedule a vacation period with reduced temperature.
- Navigate to Settings → Devices & services → [Your thermostat]
- Configure the following:
- Vacation start and Vacation end – Date and time
- Vacation temperature offset – Offset from -20°C to +20°C (or Vacation power offset from -100% to +100% in Power mode)
- Enable the Vacation mode switch
The thermostat automatically activates and deactivates vacation mode at the configured times.
Enable weekly scheduling for automated temperature control.
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the Calendar mode switch
- Toggle on to activate weekly scheduling, off for manual control
When enabled, the thermostat follows programmed weekly schedules instead of manual temperature settings.
- Navigate to Developer Tools → Actions
- Select service
hass_ensto_ble.get_calendar_day - Select your thermostat device as target
- Enter the day number (1=Monday, 7=Sunday)
- Click Perform action
- Navigate to Developer Tools → Actions
- Select service
hass_ensto_ble.set_calendar_day - Select your thermostat device as target
- Configure the day and up to six programs:
- start_hour: 6
start_minute: 0
end_hour: 8
end_minute: 30
temp_offset: 2.0
power_offset: 0
enabled: true
- start_hour: 17
start_minute: 0
end_hour: 22
end_minute: 0
temp_offset: 1.5
power_offset: 0
enabled: true- Click Perform action
Control the thermostat via external input signal.
Requirements:
- Firmware version 1.14 or newer
- External control wiring connected to the thermostat (see Ensto documentation)
Configuration:
- Navigate to Settings → Devices & services → [Your thermostat]
- Find the External control mode selector with options:
- Off – External control disabled
- Temperature – Set absolute target temperature
- Temperature change – Set temperature offset from normal target
- Configure the corresponding value:
- External control temperature (5°C to 35°C) when using Temperature mode
- External control offset (-20°C to +20°C) when using Temperature change mode
Some users need additional pairing via terminal to establish a Bluetooth connection.
- Open the Home Assistant terminal
- Run
bluetoothctl(you can continue entering commands while Bluetooth messages appear) - If you previously added the thermostat and then paired it to another device, first run:
remove XX:XX:XX:XX:XX:XX - Run the following commands (replace XX:XX:XX:XX:XX:XX with your device's MAC address):
trust XX:XX:XX:XX:XX:XX pair XX:XX:XX:XX:XX:XX - Set your Ensto thermostat to pairing mode (blue LED blinking)
- Proceed with adding the thermostat in Home Assistant
Incorrect internal time (e.g., years in the future or past) is commonly caused by a weak or dead RTC backup battery.
- Replace the CR1225 battery (see device installation manual)
- Use the
set_device_timeservice in Developer Tools to synchronize the time
Device names cannot be changed via Home Assistant on systems using BlueZ 5.82 or newer (Home Assistant OS 16.2+).
Cause: BlueZ 5.82+ enforces strict Bluetooth standards and blocks client-side writes to GAP (Generic Access Profile) characteristics, including UUID 2A00 (Device Name).
Workaround: Use Ensto's official mobile application (iOS/Android) to change the device name. The integration reads and displays the device name in Home Assistant.