Anova BLE control via BLE Proxy

I have successfully setup BLE proxy via 3 EP1 sensors in my home. I confirmed that each EP1 was proxying BLE traffic via the logs.

One device I really wanted to integrate into HA is my Anova sous vide cooker.

I added the correct YAML code to my EP1 sensor closest to my kitchen:

esp32_ble_tracker:
  scan_parameters:
    active: true

bluetooth_proxy:
  active: true

ble_client:
- mac_address: 34:03:DE:20:04:49
  id: my_anova

climate:
- platform: anova
  name: "My Anova stick"
  ble_client_id: my_anova
  unit_of_measurement: c
  update_interval: 10s

The ā€œMy Anova Stickā€ device was created and added to HA successfully. However I cant control it at all.

image

Any inputs to this device will just revert back to ā€œOffā€ and 32°
When I try to issue a command nothing happens.

I’ve restarted HA, turned the Anova off and on again, added the same YAML code to the other EP1s I have in the house. I uninstalled the Anova app off my phone, because the ESPhome docs say you cant use both at once, restarted the nearest EP1 and created a switch inside ESPhome to toggle the connection to see if that would work:

switch:
  - platform: restart
    name: "Anova ESP Restart"
  - platform: ble_client
    ble_client_id: my_anova
    name: "Anova ESP Bluetooth Connection"

I pulled up a laptop and turned on debug logs for the EP1 device near the cooker and every command I sent, off, increase or decrease temperature, resulted in the error copied from the logs:

[14:36:31][D][climate:010]: 'My Anova stick' - Setting
[14:36:31][D][climate:014]:   Mode: HEAT
[14:36:31][W][anova:041]: [34:03:DE:20:04:49] esp_ble_gattc_write_char failed, status=259

I searched esp_ble_gattc_write_char failed and wasn’t able to find anything useful to resolve my issue.

Any help would be greatly appreciated.

1 Like

FWIW, I had a similar problem with adding the anova to a bluetooth proxy in my house. I could get it to connect and show up, but that was about it. I’m curious what the solve is, though it’s no longer critical to me. I’ve locally integrated a wifi inkbird sous vide and that works for me atm.

Thanks for info, I’ll keep Inkbird in mind if decide to move away from Anova.

Doesn’t appear that Joule has been integrated into HA either.

Which devices from ANOVA are actually supported via BLE? I don’t want to spend time building my own sous vide machine.

Hi @iebooker sorry to drag up an old thread but I was wondering how you found your MAC address. I am not currently seeing it when I use the scanner but maybe it doesn’t have a name?

I’m not totally sure to be honest. Its been a while since I was messing around with this. It might have either popped up in the BLE logs of the EP1 or via my espresence sensors. If it wasn’t those 2 options it was probably my phone (maybe the Anova app), or some other BLE scanning app. I don’t have it handy currently to test out. Sorry, I couldn’t be more helpful.

I’m having the same issue with my Anova as well. Did you ever get it working? According to the Anova component on the ESPHome page, it says it’s not compatible with the Nano models, as they use a different protocol. My model is the " Anova Culinary Sous Vide Precision Cooker Mini Lite". I’m guessing it probably has the same known issue as the nano…

I was not able to get it working. It’s been a while since I tested but it might be a worth pulling back out and trying again.

Good luck, please share your results! It would be neat getting this going.

I was able to get it to work! I think the trick was to include ā€˜esp32_ble_tracker:’ and removing everything else. Here’s my esp config:

esphome:
  name: esp-ble
  friendly_name: esp-ble

esp32:
  board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key

ota:
  - platform: esphome
    password: !secret web_server_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.xxx.xxx
    gateway: 192.168.xxx.1
    subnet: 255.255.255.0
  fast_connect: True

esp32_ble_tracker:

ble_client:
  - mac_address: 01:02:03:04:61:F9
    id: anova_ble

climate:
  - platform: anova
    name: "Anova Sous Vide"
    ble_client_id: anova_ble
    unit_of_measurement: f  
    

I was able to get it to working as well!

I setup my EP1 again to control the Anova, but was running into the same issue.

[19:40:49.814][D][climate:011]: 'My Anova stick' - Setting
[19:40:49.819][D][climate:015]:   Mode: HEAT
[19:40:49.826][W][anova:045]: [34:03:DE:20:04:49] esp_ble_gattc_write_char failed, status=259

So because ChatGPT wasn’t really that great of an option in 2023 when I started this thread, compared to now, I’d figure I’d give it a shot.

I provided ChatGPT my EP1’s config, the error message and a link to the esphome anova documentation. One of the options ChatGPT provided was this:

2) Trim your node (at least for testing)
The EP1 ā€œeverything-presence-one-ble.yamlā€ package is pretty heavy on BLE. The BLE stack on ESP32 is RAM-tight and multiple BLE features can clash. For initial bring-up, flash a lean config on a spare ESP32 close to the cooker:
---It provided some boiler plate code here ---
Why: the BLE client component is happier when it isn’t competing with other BLE features and memory-hungry components. ESPHome docs also call out BLE stack limits and the requirement to include. Link to docs

So I backed up my config and flashed the basic BLE proxy, added the necessary BLE stuff for my Anova and it worked!

So it could’ve been my EP1 not playing well which was causing issues. I pulled out a spare Atom ESP32, flashed it with the basic BLE proxy firmware and its currently handling the connection to the Anova just fine.

Thanks @Albeesure for bringing this thread back to life and solving this problem for me! Cheers!