#Adax Local integration and Bluetooth Proxy

1 messages · Page 1 of 1 (latest)

rugged shore
#

Hi! I am trying to set up some Adax Neo heaters with the V2 Wifi + Bluetooth thermostat board: https://adax.no/en/produkt/wifi-thermostat-with-bluetooth/
This is supposed to be compatible with https://www.home-assistant.io/integrations/adax/.

I am going through the onboarding flow for it, using the Local setting, but getting Heater not found. Try to movethe heater closer to Home Assistant computer. instantly. To me, that probably means Bluetooth scanning fails. (screenshot #1) Checking the code of the original integration, I see that it's supposed to time out after 60 seconds, so I assume that line using the bleak Python Bluetooth library fails: https://github.com/Danielhiversen/pyAdaxLocal/blob/main/adax_local/__init__.py#L187
I do not know how to gather more logs about what might be going on, the system logs only show the WARN level log about a deprecation, but I smell that as unrelated (screenshot #2)

I am running HomeAssistant in Docker on a Synology NAS with no Bluetooth compatibility (you have to jump through many hoops including re-adding a BT kernel module they removed in Synology's 7.0 OS and forward the USB device to the container). Therefore I have added an ESPHome Bluetooth Proxy like so: https://esphome.io/projects/?type=bluetooth . The Bluetooth Proxy integration seems to work, as checking its logs it lists Bluetooth devices around the house, but I don't see a GUI for connecting to random Bluetooth devices, so I'm not sure if this bit of the setup is actually the culprit?

Any tips on how to proceed? Thank you!

WiFi-thermostat with Bluetooth. WiFi thermostats can either be controlled via the Adax WiFi app, or manually, directly on the thermostat.

Home Assistant

Instructions on how to integrate Adax heater into Home Assistant.

GitHub

Adax local. Contribute to Danielhiversen/pyAdaxLocal development by creating an account on GitHub.

rugged shore
#

After playing with the remote debugger debugpy it looks like bleak is correctly using the Bluetooth proxy and detecting devices:

#

What's happening afterwards is, we're iterating over the list of discovered devices like so:

    for discovered_item in discovered:
        metadata = discovered_item.metadata
    ...
#

.metadata is deprecated

#
    @property
    def metadata(self) -> dict:
        """
        Gets additional advertisement data for the device.

        .. deprecated:: 0.19.0
            Use :class:`AdvertisementData` from detection callback or
            :attr:`BleakScanner.discovered_devices_and_advertisement_data` instead.
        """
        warn(
            "BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead",
            FutureWarning,
            stacklevel=2,
        )
        return self._metadata