Ensto wireless thermostats

Hi,

I have few of these new Ensto bluetooth electric underfloor thermostats. They comply with the new EcoDesign requirements so there is bluetooth connection.

https://www.ensto.com/products/heating-systems/heating-control/combination-thermostats_nonecodesign/eco16bt-j/

They are so called combination thermostats so there is in-floor and room thermostats available. There is an IOS and android app available where you can do limited configs and see status/stats.

I think that there is no active work ongoing for adding HA support. Or is there?

I have been googling a bit. I found interface specification document for the thermostats:
https://github.com/EnstoFlow/apidocs/blob/0f6ba5e6b95edc3aae9cd65c6cd0710682918a45/Ensto_BT_IOT_interface_specification.pdf

My questions are basically:

  • Would there be a group of coders interested to join forces for this project?
  • Any “push-to-the-right-direction” from the more experienced thermostat/BT integration experts?
  • Really, how big is this kind of project? I am not an HA/unix expert so I would love to have some kind of scale for this project requiremets. Any idea?

I am currently having hassio running on RPi3 and BTLE connection is already in use for Xiaomi temp sensor. However, for the connection I am using ESPHome due to the very limited BT range in RPi3.

Hey!

Did you explore this any further?
A few months back i tested the connection from raspbian terminal and managed to receive some sensorvalues. But with my limited knowledge I didn’t get any further than that…

Seems that EnstoFlow github page is closed.

Someone have this BT IOT interface specification PDF? I asked from Ensto techical support but didnt got any answer. I had it somewhere downloaded but couldn’t find it anywhere anymore…

Eventually, my project with Ensto thermostats didn’t startup. I moved to new flat and I don’t have the hardware anymore.

I should have the documentation still somewhere. I will have look

Hi there!

I uploaded the file to my google drive, I will delete it after a while. Not sure if Ensto has something against this circulating?

Tech support answered few days later and they didnt want give it out. But thank you very much, now i got it.

Olemme päättäneet, että emme julkaise tuota rajapintaa. Tuo vanha file oli joskus jäänyt hackatlonin jäljiltä sinne.

Please post a follow up if you get it to work with home assistant :slightly_smiling_face:.
I got totally stuck since I couldn’t get any bluetooth npm’s to work with node-red on hassio.

I guess there is no updates on this project? I would be intrested also.

Didn’t have much motivation / time lately for that, so didn’t even check it yet.

But i will try it sooner or later.

I’m also very curious to integrate these into my smart home. Either via an ESPhome node or anything similar.

I got five ENSTO thermostats (ECO16BT & ECO10BTW) and it would be much, much cheaper to integrate these than replacing them with e.g. Heatit Zwave comparables.

Please keep me updated and if there’s any progress or wish to get this started.
I bet there are quite a few of these out there especially in the Nordics?
I think they are here in Finland as it seems like they are a Finnish brand?

Hi,
I got my ECO10BTW today. Did anyone get this integration working? If not, I can try and give it a shot.
–Anand.

After some tinkering around, got this log in the BLE sniffer:

08:30:51.1980: received update from characteristic 4CC07BCF-0868-4B32-9DAD-BA4CC41E5316___1D14D6EE-FD63-4FA1-BFA4-8F47B42119F0: <00>
08:30:56.9440: failed to retrieve data from characteristic CBCC825B-5841-4852-A4F7-E33F539D4F72___F49CEFD5-209B-4531-99BD-123456789012: Error Domain=CBATTErrorDomain Code=15 "Encryption is insufficient." UserInfo={NSLocalizedDescription=Encryption is insufficient.}
08:30:56.9730: failed to retrieve data from characteristic 81D3B33C-BAFD-4F85-9BB2-8EEE9C0C6C33___F49CEFD5-209B-4531-99BD-123456789012: Error Domain=CBATTErrorDomain Code=15 "Encryption is insufficient." UserInfo={NSLocalizedDescription=Encryption is insufficient.}

And based on the document procured by @MikaJ, it looks like the devices and the mobile app are deployed with pre-configured keys (Section 3) to encrypt and exchange data. So unless those keys are known or Ensto provides an API to retrieve data from their servers, this integration is a deal breaker!

Hi,

I managed to get some useful data out of the device. See GitHub - tuomassalo/ensto-bt-thermostat-reader: Read Ensto BT thermostat readings with node and BLE

Comments and pull requests are welcome.

1 Like

Hi,
Thanks to @MikaJ for the spec and @tuomassalo for nice example implementation.
I was able to hack together an ESPHome implementation by only using YAML and lambdas.

It should work with all Ensto thermostats which follow that spec.

Any help is appreciated!

3 Likes

Hi, I upgraded my floor thermostat to ensto eco16bt, but noticed that there were quite interesting new? product on the shelf too. It was just a bit too expensive for my application.

Check this out, wifi + open api!

I got the integration by @jumakki working today, thanks a lot! I had to comment out the web_server -part to make it work, don’t know the exact issue why. I did not need to use Docker, as descripted in instructions, because HAAS now has nice ESPHome add-on where we can paste the ESPHome YAML.

As I understand this only supports one thermostat for each ESP32 unit? Should it be possible to develop this further to support multiple thermostat connecting using same ESP32? I might be interested to try out that track… Winter is coming.

I got the integration by @jumakki working today, thanks a lot!

Good to hear! Please check the updates I made just 2 days ago. I noticed that reconnecting didn’t work anymore after updating ESPHome and Home Assistant to latest versions. I had to always pair again after any connection issues. I fixed that and made some simplifications. Now it uses ble_client’s write API instead of writing manually. That should make it less prone to breakups in future ESPHome updates. Note that the used write API is supported only with ESPHome 2022.8.0 or later. So update to latest.

As I understand this only supports one thermostat for each ESP32 unit? Should it be possible to develop this further to support multiple thermostat connecting using same ESP32?

I believe it should be possible to support multiple thermostats. I have only one, so can’t test it myself, but you could make duplicates of all sensors, globals, ble_client etc. in YAML and change “ensto1” in all names and IDs in duplicates with “ensto2”. Should be simple enough to test. Note that there is max limit of 3 devices in BLE Client, as mentioned in https://esphome.io/components/ble_client.html

1 Like

Tried out the new version, but got some compile errors. Created Issue to github with log entries, as I did not have time to investigate. Combile errors · Issue #1 · jumakki/esphome-ensto · GitHub

I am trying to use this, but can’t get it working. I have ECO16BT thermostat. ESP can’t keep or establish connection with thermostat. Doesn’t matter if thermostat is pairing or not. ESP board that I am using is https://www.amazon.de/-/en/gp/product/B07VJ34N2Q/

[I][ble_adv:033]: New BLE device
[I][ble_adv:034]:   address: XX:XX:XX:XX:XX:XX
[I][ble_adv:035]:   Advertised manufacturer data:
[I][ble_adv:038]:     - 0x2806 (length 23)
[I][ble_adv:043]:     - ECO16BT;0;0;0;
[I][ble_adv:053]:     - is pairing = false
[D][esp32_ble_client:036]: Found device at MAC address [XX:XX:XX:XX:XX:XX]
[I][esp32_ble_client:058]: Attempting BLE connection to xx:xx:xx:xx:xx:xx
lld_pdu_get_tx_flush_nb HCI packet count mismatch (0, 1)
[W][ble_sensor:037]: [ensto1_adaptive_temp_control_characteristic] Disconnected!
[D][sensor:127]: 'ensto1_adaptive_temp_control_characteristic': Sending state nan  with 0 decimals of accuracy
[D][ble_client.automation:067]: Disconnected from xx:xx:xx:xx:xx:xx
[D][ble_client.automation:067]: Disconnected from xx:xx:xx:xx:xx:xx
[D][ble_client.automation:067]: Disconnected from xx:xx:xx:xx:xx:xx
[D][ble_client.automation:067]: Disconnected from xx:xx:xx:xx:xx:xx
[D][ble_client.automation:067]: Disconnected from xx:xx:xx:xx:xx:xx

Managed to solve problem, which was caused by too long distance between thermostat and esp32. Now it its working great.

1 Like