@@ -125,27 +125,31 @@ async def connect(self) -> Version:
125125 for key in ["ame_regulation" , "template" ]:
126126 result_dict ["domain_objects" ].pop (key , None )
127127 LOGGER .debug ("HOI result_dict: %s" , json .dumps (result_dict , indent = 4 ))
128+ modules : dict [str , dict [str , str ]] = {}
128129 for module in result_dict ["domain_objects" ]["module" ]:
129- LOGGER .debug ("HOI vendor_name: %s" , module ["vendor_name" ] or "null" )
130- LOGGER .debug ("HOI vendor_model: %s" , module ["vendor_model" ] or "null" )
131- LOGGER .debug (
132- "HOI hardware_version: %s" , module ["hardware_version" ] or "null"
133- )
134- LOGGER .debug (
135- "HOI firmware_version: %s" , module ["firmware_version" ] or "null"
136- )
130+ link_id : str | None = None
137131 if module ["services" ] is not None :
138132 for value in module ["services" ].values ():
139133 if isinstance (value , list ):
140134 for item in value :
141135 for value_2 in item .values ():
142- LOGGER . debug ( "HOI id: %s" , value_2 )
136+ link_id = value_2
143137 break
144138 break
145139 else :
146- LOGGER . debug ( "HOI id: %s" , value ["id" ])
140+ link_id = value ["id" ]
147141 break
148142
143+ if link_id is not None :
144+ modules [link_id ] = {
145+ "firmware_version" : module ["firmware_version" ],
146+ "hardware_version" : module ["hardware_version" ],
147+ "vendor_model" : module ["vendor_model" ],
148+ "vendor_name" : module ["vendor_name" ],
149+ }
150+
151+ LOGGER .debug ("HOI modules: %s" , modules )
152+
149153 # Work-around for Stretch fw 2.7.18
150154 if not (vendor_names := result .findall ("./module/vendor_name" )):
151155 result = await self ._request (MODULES )
0 commit comments