BTicino Thermostat (X8000/Smarther) — local, push-based integration

Hi everyone,

I’ve built a custom integration to control BTicino Smarther thermostats (tested on the X8000) fully over your local network, without going through BTicino’s cloud at runtime.

This is an independent, unofficial project — not affiliated with or supported by BTicino/Legrand. Use at your own risk.

How it works

The integration talks to the thermostat directly over TCP using its local XOpen V3 protocol, authenticated with HMAC-SHA256. Updates are push-based: the thermostat sends state changes in real time over the open connection — no polling. There’s automatic reconnection with exponential backoff if the connection drops.

Connection to bticino cloud APIs is required only for setup; once configured, no internet or cloud access is required for normal operation.

Features

  • Local, real-time push updates (XOpen V3, HMAC-SHA256 auth)
  • Climate entity: HVAC mode (Off/Heat/Cool/Auto), target temperature (7–40 °C, 0.5° step), preset modes (None, Boost 30/60/90 min, Protection)
  • Current temperature and humidity sensors
  • HVAC action (Heating/Cooling/Idle/Off) based on actual load state
  • Automatic reconnection on network drops
  • Config Flow UI setup — no YAML
  • Italian and English translations

Setup

You’ll need each thermostat’s local IP address; the local PIN (XOpen password) can be entered manually if you already know it, or retrieved automatically: log in once with same account you use for the Thermostat app and the integration lists every thermostat registered on it — for each one you just confirm its local IP.

Installation (HACS)

  1. HACS → three-dot menu → Custom repositories
  2. Add https://github.com/Mirmanero/ha-bticino-x8000, category Integration
  3. Search for BTicino Thermostat, install, restart HA
  4. Settings → Devices & Services → Add Integration → BTicino Thermostat

Repo: GitHub - Mirmanero/ha-bticino-x8000 · GitHub

I’ve only been able to test this against my own X8000 units — if you try it on another BTicino/Smarther model, working or not, please open an issue on GitHub so I can extend the compatibility list. Feedback and bug reports very welcome!

PS

If you found this useful, ko-fi — it goes toward my Claude subscription, which did a lot of the heavy lifting on this one :grinning_face_with_smiling_eyes:

2 Likes

Integration just installed and working perfectly; everything finally runs locally—goodbye, Cloud! Thanks!

2 Likes