core: Adax heaters stopped working and remain in unavailable state no matter what I try

The problem

I have two Adax heaters that worked fine with HA for months. Tonight they both stopped updating attributes like room temperature and they stopped at the exact same time. It proved that both heaters went to unavailable and unfortunately I am unable to get them to work again.

  • I tried rebooting HA, the heaters, the network, reloading the integration, created an automation to reload integration each 5 minutes, but all not successful. The heaters remain in unavailable state.
  • I am using the local API to the heaters, so don’t think this can be caused by Cloud api issues.
  • I can ping the heaters successfully from HA, so connectivity is ok.

What version of Home Assistant Core has the issue?

2024.2.5

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Adax

Link to integration documentation on our website

https://www.home-assistant.io/integrations/adax/

Diagnostics information

Adax doesn’t provide Diagnostics download, debug log attached home-assistant_adax_2024-02-29T11-13-35.795Z.log

Example YAML snippet

No response

Anything in the logs that might be useful for us?

Both heaters keep repeatedly reporting the same error:

24-02-29 10:19:14.713 ERROR (MainThread) [adax_local] Failed to get status 400 Bad Request
2024-02-29 10:19:14.714 ERROR (MainThread) [homeassistant.components.climate] adax: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 599, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1259, in async_device_update
    await self.async_update()
  File "/usr/src/homeassistant/homeassistant/components/adax/climate.py", line 163, in async_update
    self._attr_target_temperature = data["target_temperature"]
                                    ~~~~^^^^^^^^^^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str
2024-02-29 10:19:14.729 ERROR (MainThread) [adax_local] Failed to get status 400 Bad Request
2024-02-29 10:19:14.730 ERROR (MainThread) [homeassistant.components.climate] adax: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 599, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1259, in async_device_update
    await self.async_update()
  File "/usr/src/homeassistant/homeassistant/components/adax/climate.py", line 163, in async_update
    self._attr_target_temperature = data["target_temperature"]
                                    ~~~~^^^^^^^^^^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str
                                    ~~~~^^^^^^^^^^^^^^^^^^^^^^
TypeError: tuple indices must be integers or slices, not str

Additional information

No response

About this issue

  • Original URL
  • State: open
  • Created 4 months ago
  • Comments: 17

Most upvoted comments

Works for me also; just re-paired one of my two Adax heaters and it now works again…I guess we’re good until 2028…

Quick tip on re-pairing: if your heaters come with detachable thermostats and one heater is within bluetooth range, you can use that one heater to pair all thermostats one by one and then just re-attach them at their original location once paired. Works for me.

Hello,

I have the same issue, around midnight all my six heaters stopped working (400 Bad Request). My first though was that the certificate had expired but the self signed is valid for 20 years from 2020 to 2040.

I also did some redesign on my network recently and though the DNS had been misconfigured, so I have done some troubleshooting today without success.

Now when you have the exact same issue I am suspecting that the Adax api has some error with leap year (29/2) as it was in the middle of the night all of them went bad