tadasdanielius/daikin_altherma

Incompatible with current firmware

MarkoBolt opened this issue · 11 comments

Seems like that the most recent firmware of the Daikin controller version: 436CC160000 is not compatible.

Model nr: BRP069A62

Thanks for bringing this up. Is there any errors or anything that might help us to make compatible with new version?

How can I assist with debugging?

Firmware: 436CC160000
Model: BRP069A62

I can see the following in Homeassistant:
Screenshot 2023-08-31 at 19 52 14

jaakla commented

Update: "Remove and add again" fixed it for me.

I have same error with following log. I checked the IP address and daikin own app gives different one (192.168.1.178) which may be (also) the issue, but could not figure how I could fix the IP address really. Adding new integration with the new IP does not work also.

This error originated from a custom integration.

Logger: homeassistant.config_entries
Source: custom_components/daikin_altherma/__init__.py:33 
Integration: Daikin Altherma HVAC (documentation, issues) 
First occurred: September 1, 2023 at 8:51:14 PM (3 occurrences) 
Last logged: 9:21:24 AM

Error setting up entry Daikin HVAC controller (173400236) for daikin_altherma
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 980, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1085, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection
    sock = await self._connect_sock(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 628, in sock_connect
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 668, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('192.168.1.182', 80)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 388, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/daikin_altherma/__init__.py", line 68, in async_setup_entry
    hass.data[DOMAIN][entry.entry_id] = api = await setup_api_instance(
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/daikin_altherma/__init__.py", line 33, in setup_api_instance
    await device.discover_units()
  File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 458, in discover_units
    resp_obj = await self._connection.request(dest)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 39, in request
    result = await self._request(dest, payload, wait_for_response, assert_response_fn)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 45, in _request
    await self.connect()
  File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 30, in connect
    self._client = await self._session.ws_connect(self.ws_address)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 779, in _ws_connect
    resp = await self.request(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 536, in _request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 540, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 901, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1209, in _create_direct_connection
    raise last_exc
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1178, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 988, in _wrap_create_connection
    raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host 192.168.1.182:80 ssl:default [Connect call failed ('192.168.1.182', 80)]
jaakla commented

by "adding new does not work" I mean that after giving IP next screen is and it does not add anything:
Screenshot 2023-09-06 at 09 27 08

It might be useful to remove the old "integration" and try adding it again. Here are a few things to try:

  1. Open your browser and go to http://your_daikin_ip/. This should result in an HTTP 500 error, but that's actually a good sign.
    image

  2. Try going to http://your_daikin_ip/mca. If you see something like this,
    image
    then it's probably a good sign.

  3. Restart the Daikin gateway, and immediately after it loads, try repeating the first step. The reason for this step is that a freshly booted device normally does not throw an HTTP 500 error but allows you to see some information and upload firmware. After some time, it starts to throw the 500 error.

I would recommend trying both the new and old addresses. Additionally, it would be helpful if you could log into your router and check the assigned address.

I have the same IP address and can find the unit after rebooting and see the following:

LAN adapter firmware: 1700390A
Smart grid: disabled
IP address: 192.168.15.XXX
MAC address:
Serial number:
User interface SW: v01.06.00
User interface EEPROM: --
Hydro SW: --
Hydro EEPROM: --

I did do some logging and got the following:

2023-09-07 12:41:08.306 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Daikin HVAC controller (172300139) for daikin_altherma
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 980, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore[return-value] # noqa
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1085, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 1069, in create_connection
sock = await self._connect_sock(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 973, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 628, in sock_connect
return await fut
^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/selector_events.py", line 668, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
OSError: [Errno 113] Connect call failed ('192.168.15.138', 80)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/daikin_altherma/init.py", line 68, in async_setup_entry
hass.data[DOMAIN][entry.entry_id] = api = await setup_api_instance(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/daikin_altherma/init.py", line 33, in setup_api_instance
await device.discover_units()
File "/usr/local/lib/python3.11/site-packages/pyaltherma/controllers.py", line 458, in discover_units
resp_obj = await self._connection.request(dest)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 39, in request
result = await self._request(dest, payload, wait_for_response, assert_response_fn)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 45, in _request
await self.connect()
File "/usr/local/lib/python3.11/site-packages/pyaltherma/comm.py", line 30, in connect
self._client = await self._session.ws_connect(self.ws_address)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 779, in _ws_connect
resp = await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 536, in _request
conn = await self._connector.connect(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 540, in connect
proto = await self._create_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 901, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1209, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 1178, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/connector.py", line 988, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host 192.168.15.138:80 ssl:default [Connect call failed ('192.168.15.138', 80)]
2023-09-07 12:41:08.331 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: daikin_altherma, co2signal, dsmr, otbr, matter, sensor.dsmr
2023-09-07 12:41:11.526 ERROR (MainThread) [homeassistant.components.sensor] Error adding entities for domain sensor with platform speedtestdotnet
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/init.py", line 591, in state
numerical_value = float(value) # type:ignore[arg-type]
^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'

It seems like that daikin has closed local access to the gateway. Try to open in browser http://192.168.15.XXX/ and https://192.168.15.XXX/
Maybe they just changed the port or switched to SSL

http://192.168.15.XXX seems to connect to a white page in the browser.

Based from what you see is a good sign.
There must be something with the configuration. I have 1700390A version as well. Seems to be working just fine. Have you tried to remove integration and add again? Any potential connection complexities between HA and Daikin gateway?

That worked for me. Remove and add again. So simple but weird that it is necessary.

That worked for me. Remove and add again. So simple but weird that it is necessary.