Improve support for Aprilaire S86WMUPR (#133974)

This commit is contained in:
Matthew FitzGerald-Chamberlain 2025-01-02 01:39:57 -06:00 committed by GitHub
parent 2efc75fdf5
commit 5228f3d85c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 13 additions and 9 deletions

View File

@ -120,6 +120,8 @@ class AprilaireCoordinator(BaseDataUpdateCoordinatorProtocol):
"""Wait for the client to be ready.""" """Wait for the client to be ready."""
if not self.data or Attribute.MAC_ADDRESS not in self.data: if not self.data or Attribute.MAC_ADDRESS not in self.data:
await self.client.read_mac_address()
data = await self.client.wait_for_response( data = await self.client.wait_for_response(
FunctionalDomain.IDENTIFICATION, 2, WAIT_TIMEOUT FunctionalDomain.IDENTIFICATION, 2, WAIT_TIMEOUT
) )
@ -130,12 +132,9 @@ class AprilaireCoordinator(BaseDataUpdateCoordinatorProtocol):
return False return False
if not self.data or Attribute.NAME not in self.data:
await self.client.wait_for_response(
FunctionalDomain.IDENTIFICATION, 4, WAIT_TIMEOUT
)
if not self.data or Attribute.THERMOSTAT_MODES not in self.data: if not self.data or Attribute.THERMOSTAT_MODES not in self.data:
await self.client.read_thermostat_iaq_available()
await self.client.wait_for_response( await self.client.wait_for_response(
FunctionalDomain.CONTROL, 7, WAIT_TIMEOUT FunctionalDomain.CONTROL, 7, WAIT_TIMEOUT
) )
@ -144,10 +143,16 @@ class AprilaireCoordinator(BaseDataUpdateCoordinatorProtocol):
not self.data not self.data
or Attribute.INDOOR_TEMPERATURE_CONTROLLING_SENSOR_STATUS not in self.data or Attribute.INDOOR_TEMPERATURE_CONTROLLING_SENSOR_STATUS not in self.data
): ):
await self.client.read_sensors()
await self.client.wait_for_response( await self.client.wait_for_response(
FunctionalDomain.SENSORS, 2, WAIT_TIMEOUT FunctionalDomain.SENSORS, 2, WAIT_TIMEOUT
) )
await self.client.read_thermostat_status()
await self.client.read_iaq_status()
await ready_callback(True) await ready_callback(True)
return True return True

View File

@ -7,5 +7,5 @@
"integration_type": "device", "integration_type": "device",
"iot_class": "local_push", "iot_class": "local_push",
"loggers": ["pyaprilaire"], "loggers": ["pyaprilaire"],
"requirements": ["pyaprilaire==0.7.4"] "requirements": ["pyaprilaire==0.7.7"]
} }

View File

@ -1791,7 +1791,7 @@ pyairnow==1.2.1
pyairvisual==2023.08.1 pyairvisual==2023.08.1
# homeassistant.components.aprilaire # homeassistant.components.aprilaire
pyaprilaire==0.7.4 pyaprilaire==0.7.7
# homeassistant.components.asuswrt # homeassistant.components.asuswrt
pyasuswrt==0.1.21 pyasuswrt==0.1.21

View File

@ -1471,7 +1471,7 @@ pyairnow==1.2.1
pyairvisual==2023.08.1 pyairvisual==2023.08.1
# homeassistant.components.aprilaire # homeassistant.components.aprilaire
pyaprilaire==0.7.4 pyaprilaire==0.7.7
# homeassistant.components.asuswrt # homeassistant.components.asuswrt
pyasuswrt==0.1.21 pyasuswrt==0.1.21

View File

@ -95,7 +95,6 @@ async def test_config_flow_data(client: AprilaireClient, hass: HomeAssistant) ->
) )
client.start_listen.assert_called_once() client.start_listen.assert_called_once()
client.wait_for_response.assert_any_call(FunctionalDomain.IDENTIFICATION, 4, 30)
client.wait_for_response.assert_any_call(FunctionalDomain.CONTROL, 7, 30) client.wait_for_response.assert_any_call(FunctionalDomain.CONTROL, 7, 30)
client.wait_for_response.assert_any_call(FunctionalDomain.SENSORS, 2, 30) client.wait_for_response.assert_any_call(FunctionalDomain.SENSORS, 2, 30)
client.stop_listen.assert_called_once() client.stop_listen.assert_called_once()