Hey @loopj thanks so much for the info. This has sent me down a rabbit hole. Turns out the controller is actually a Vantage Controls IC-36 Infusion Controller. Strangely the controller is presenting itself as an EMC1000 on its http local ip. Looks like I need to track down a copy of design center to take a look at what is going on and prob update the firmware. I did get some interesting errors in the HA logs:
TypeError: Master.__init__() missing 4 required positional arguments: 'mtime', 'display_name', 'module_count', and 'serial_number'
2023-07-30 01:41:18.359 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 148, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 181, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 297, in async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 393, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/vantage/config_flow.py", line 70, in async_step_user
return await self.async_finish()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/vantage/config_flow.py", line 155, in async_finish
serial_number = await get_serial_from_controller(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiovantage/discovery.py", line 112, in get_serial_from_controller
async with Vantage(host, username, password, use_ssl=ssl) as vantage:
File "/usr/local/lib/python3.11/site-packages/aiovantage/__init__.py", line 113, in __aexit__
raise exc_val
File "/usr/local/lib/python3.11/site-packages/aiovantage/discovery.py", line 113, in get_serial_from_controller
master = await vantage.masters.afirst()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiovantage/query.py", line 151, in afirst
await self.__populate()
File "/usr/local/lib/python3.11/site-packages/aiovantage/controllers/base.py", line 367, in _lazy_initialize
await self.initialize()
File "/usr/local/lib/python3.11/site-packages/aiovantage/controllers/base.py", line 133, in initialize
async for obj in get_objects(self.config_client, types=self.vantage_types):
File "/usr/local/lib/python3.11/site-packages/aiovantage/config_client/requests.py", line 50, in get_objects
response = await client.request(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiovantage/config_client/__init__.py", line 164, in request
method = self._parser.parse(method_el, method_cls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/bases.py", line 54, in parse
result = handler.parse(source)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/handlers/native.py", line 59, in parse
return self.process_context(ctx)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/handlers/native.py", line 76, in process_context
self.parser.end(
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/bases.py", line 152, in end
return item.bind(qname, text, tail, objects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/nodes/element.py", line 88, in bind
obj = self.config.class_factory(self.meta.clazz, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/xsdata/formats/dataclass/parsers/config.py", line 10, in default_class_factory
return cls(**params) # type: ignore
^^^^^^^^^^^^^
Any Ideas?