New Vantage InFusion integration using AsyncIO

If you mean VirtualThermostat objects, then good news! I just added support for these (as well as Generic HVAC RS485 and HVAC-IU objects) in a recent release.

These are available in the 0.14.0rc1 release on HACS or GitHub.

1 Like

Hi i’m testing the integration and it seems to work well. If i change the ip address of the controller do i have to start all over again? is there no way to change ip in the configuration?

upgrade to new update, 13 works well, but then when update to 14.1 it gives the following error log. can’t set up.

2025-03-16 00:05:48.906 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Vantage InFusion for vantage
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 753, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/vantage/init.py”, line 63, in async_setup_entry
await vantage.initialize()
File “/usr/local/lib/python3.13/site-packages/aiovantage/init.py”, line 321, in initialize
await asyncio.gather(
…<7 lines>…
)
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 143, in initialize
await self.fetch_state()
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 152, in fetch_state
attrs_changed = await obj.fetch_state()
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 217, in fetch_state
fetched_properties[prop] = await getter(self)
^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/load.py”, line 71, in get_level
return await self.invoke(“Load.GetLevelHW” if hw else “Load.GetLevel”)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 185, in invoke
_command, _vid, result, _method, *args = Converter.tokenize(return_line)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected at least 4, got 3)

Hey there, can you share details about the version of your vantage controller firmware please?

upgraded version from 3.9 to 4.5.02. Had error again. Busy upgrading all components now. will let you know update. Thanks again.

Updated everything and get this error, thank you in advance.

2025-03-16 21:25:33.794 DEBUG (MainThread) [aiovantage] Sending command: INVOKE 47 CurrentSensor.GetCurrentHW
2025-03-16 21:25:33.796 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Vantage InFusion for vantage
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 753, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/vantage/init.py”, line 63, in async_setup_entry
await vantage.initialize()
File “/usr/local/lib/python3.13/site-packages/aiovantage/init.py”, line 321, in initialize
await asyncio.gather(
…<7 lines>…
)
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 143, in initialize
await self.fetch_state()
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 152, in fetch_state
attrs_changed = await obj.fetch_state()
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/rgb_load.py”, line 560, in fetch_state
props_changed.extend(self.update_properties({prop: await getter()}))
^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/rgb_load.py”, line 528, in get_rgbw_color
[await self.get_rgbw(chan) for chan in self.RGBChannel]
^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/rgb_load.py”, line 465, in get_rgbw
return await self.invoke(
^^^^^^^^^^^^^^^^^^
“RGBLoad.GetRGBWHW” if hw else “RGBLoad.GetRGBW”, channel
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 181, in invoke
response = await self.command_client.raw_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_command_client/client.py”, line 159, in raw_request
raise_command_error(int(match.group(1)), match.group(2))
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/errors.py”, line 97, in raise_command_error
raise error_cls(message)
aiovantage.errors.FailedError: “Failed”

I just pushed version 0.14.2 to HACS which I believe should fix this issue, please let me know if that works!

For future, I track issues on GitHub here:

I’m more active on GitHub than in the Home Assistant community.

Thanks Loopj, youre helping me to slowly learn. I am working on getting to know Github so forgive the ongoing ignorance.

I tried the update. I get the following error on install. Says failed to set up.

Logger: homeassistant.config_entries
Source: config_entries.py:751
First occurred: 5:41:00 AM (1 occurrences)
Last logged: 5:41:00 AM

Error setting up entry Vantage InFusion for vantage
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 751, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/vantage/init.py”, line 63, in async_setup_entry
await vantage.initialize()
File “/usr/local/lib/python3.13/site-packages/aiovantage/init.py”, line 321, in initialize
await asyncio.gather(
…<7 lines>…
)
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 143, in initialize
await self.fetch_state()
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 152, in fetch_state
attrs_changed = await obj.fetch_state()
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 217, in fetch_state
fetched_properties[prop] = await getter(self)
^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/thermostat.py”, line 172, in get_cool_set_point
return await self.invoke(
^^^^^^^^^^^^^^^^^^
“Thermostat.GetCoolSetPointHW” if hw else “Thermostat.GetCoolSetPoint”
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 188, in invoke
return self._parse_object_response(method, result, *args, as_type=as_type)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 315, in _parse_object_response
return Converter.deserialize(signature, get_output_value(out))
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_command_client/converter.py”, line 253, in deserialize
return converter.deserialize(value, data_type=data_type, **kwargs)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_command_client/converter.py”, line 118, in deserialize
return Decimal(value.replace(“.”, “”)) / 1000
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class ‘decimal.ConversionSyntax’>]

Not sure why that’s happening, it seems that one of your thermostats is reporting a strange value for a setpoint. I’ve made the parsing a little more error tolerant, and adding some logging. This has released in 0.14.3 and is now live on HACS.

thanks bud, appreciate the effort here. I would have no idea otherwise. Just tried 14.3, looks like a different problem. 13.9 works perfectly for some reason.

Here is the new error :

Logger: homeassistant.config_entries
Source: config_entries.py:751
First occurred: 5:48:57 AM (1 occurrences)
Last logged: 5:48:57 AM

Error setting up entry Vantage InFusion for vantage
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 751, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/vantage/init.py”, line 63, in async_setup_entry
await vantage.initialize()
File “/usr/local/lib/python3.13/site-packages/aiovantage/init.py”, line 321, in initialize
await asyncio.gather(
…<7 lines>…
)
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 143, in initialize
await self.fetch_state()
File “/usr/local/lib/python3.13/site-packages/aiovantage/_controllers/base.py”, line 152, in fetch_state
attrs_changed = await obj.fetch_state()
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 218, in fetch_state
fetched_properties[prop] = await getter(self)
^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/load.py”, line 71, in get_level
return await self.invoke(“Load.GetLevelHW” if hw else “Load.GetLevel”)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/aiovantage/_object_interfaces/base.py”, line 186, in invoke
_command, _vid, result, _method, *args = Converter.tokenize(return_line)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected at least 4, got 3)