Olimpia Splendid Unico — Local control integration (BLE pairing + TCP)

Hi everyone,

I’d like to share a custom integration I built for Olimpia Splendid Unico air conditioners.

Why

I’ve owned an Olimpia Splendid Unico Pro (with B1015 WiFi board) for about 3 years. These units have no native Home Assistant integration, no cloud API, no Alexa/Google Home support — the only way to control them remotely is through the dedicated “Olimpia Splendid Unico” app. I got tired of that limitation and couldn’t find any existing solution, so I decided to build one.

What it does

The integration provides full local TCP control (no cloud) with these features:

  • HVAC modes: Heat, Cool, Dry, Fan Only, Auto
  • Fan speed: Low, Mid, High, Auto
  • Swing control (on/off)
  • Target temperature & room temperature reading
  • Automatic reconnect and keepalive
  • BLE setup flow directly from the HA config UI: scan for the device, enter the PIN printed on the unit, complete ECDH pairing, configure WiFi — and the integration discovers the device IP automatically
  • Manual IP setup also available if you’ve already paired via the standalone CLI

How I built it

I want to be transparent: I’m a developer, but I honestly wouldn’t have tackled a project like this on my own — reverse-engineering a proprietary BLE pairing protocol and TCP control protocol from an APK is not something I’d have jumped into without help. I used Claude (Anthropic’s AI) extensively throughout the process: analyzing the decompiled APK, figuring out the protocol, and writing the integration code. Claude was an essential tool in making this happen. That said, all the testing and validation was done against my real device over a few days of focused work.

Compatibility

Tested on Olimpia Splendid Unico Pro with B1015 WiFi board. It should work with all Unico models that use the same B1015 board and the same app (Olimpia Splendid Unico v1.0.9 by Codermine).

If you have a different Unico model with the B1015 board, I’d love to hear if it works for you.

Installation

Available via HACS as a custom repository:

  1. Open HACS → three-dot menu → Custom repositories
  2. Add https://github.com/Daneel87/ha-olimpia-splendid-unico (category: Integration)
  3. Search for “Olimpia Splendid Unico” and install
  4. Restart HA → Settings → Devices & Services → Add Integration → search “Olimpia Splendid Unico”

Requirements: HA 2024.8.0+, device on the same LAN (TCP port 2000), Bluetooth adapter for BLE setup.

Tip: After BLE pairing and WiFi setup, it’s recommended to assign a static IP to the device via your router’s DHCP reservation. This prevents the IP from changing and the integration losing contact with the unit.

Links

I hope this can be useful to someone — I couldn’t find any other solution out there for these units. Feedback and bug reports are welcome!

1 Like

Hey Dude, thanks a lot!
I have a UNICO Olimpia Splendid Smart 12 SF and i searched this integration for years!
Yesterday i get it work - only tried on / off, and that works - other functions will try the next days!

1 Like

I also want to say a BIG THANK YOU for this integration :heart: It works for me.

1 Like

I’ve found a few limitations. My unit is an Olimpia Splendid Inverter 12HP.

  • Commands appeared to get lost - the a/con unit doesn’t beep to acknowledge them. Further investigation suggests that sending a setting which is unchanged is not acknowledged. And that commands sent immediately after powering up the unit are lost. I’ve addressed this with a 30 second delay after power up, and a 5 second delay (which may not be necessary) between other commands.

  • Swing commands get out of sync with the unit. When this happens swing_mode on, turns off swing mode and vice versa. You can demonstrate this by using the remote to toggle swing mode, and then the integration is out of step, so off means on, and on means off. Sync also appears to be lost when the unit is powered on. I note from the github repo that losing track of swing_mode is a hardware limitation.

I’m new to Home Assistant, and very much a user, not a developer. If there’s any simple way to turn on debugging in a way which would be useful, I’d be very happy to help.