ha(H3): превью шаблона с конверсиями; climate и сущности
- config flow: шаг preview (шаблон A/B/F, диапазон/шаг уставки, линейные коэффициенты num/den/offset, текст-превью по данным trial: hvac/fan/ swing/capabilities/текущая температура) - coordinator: push-driven DataUpdateCoordinator (снимок кэша, доступность online/recovering, первичный GET-батч, один batch_commit на действие) - overrides.py: ConversionSet (ручные линейные конверсии и диапазон поверх таблиц ядра, применяются в HA) - entity.py: DeviceInfo/unique_id/доступность, capabilities-фильтры - climate: hvac/fan/swing/vertical+horizontal swing/preset ECO-BOOST, уставка 16-30 °C (шаг по шаблону), current_temperature - sensor: room_temperature, error_code, connection_state (диагностика) - binary_sensor: connectivity + флаги op_status (PROTOCOL §8.4) - switch: 8 флагов-свойств; select: положения заслонок 0..N-1 - тесты: превью/конверсии/ошибки диапазона, сущности против mock_ac (снимок, команды, capabilities-фильтр, ручная конверсия), ConversionSet - mock_ac: --set NAME=VALUE (0b/0x) для сценариев - план: demand_control отложен (семантика не зафиксирована)
This commit is contained in:
@@ -17,13 +17,14 @@ async def test_setup_unload(hass: HomeAssistant, config_entry, socket_enabled):
|
||||
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
client = config_entry.runtime_data
|
||||
assert client is not None
|
||||
assert isinstance(client.state, State)
|
||||
runtime = config_entry.runtime_data
|
||||
assert runtime is not None
|
||||
assert isinstance(runtime.client.state, State)
|
||||
assert runtime.coordinator.data is not None
|
||||
|
||||
assert await hass.config_entries.async_unload(config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
assert client.cached(Prop.OPERATION_MODE) is None
|
||||
assert runtime.client.cached(Prop.OPERATION_MODE) is None
|
||||
|
||||
|
||||
async def test_two_entries_default_port(hass: HomeAssistant, entry_data, socket_enabled):
|
||||
@@ -44,9 +45,9 @@ async def test_two_entries_default_port(hass: HomeAssistant, entry_data, socket_
|
||||
assert first.state.name == "LOADED"
|
||||
assert second.state.name == "LOADED"
|
||||
|
||||
first_client = first.runtime_data
|
||||
first_runtime = first.runtime_data
|
||||
assert await hass.config_entries.async_unload(first.entry_id)
|
||||
assert first_client.cached(Prop.OPERATION_MODE) is None
|
||||
assert first_runtime.client.cached(Prop.OPERATION_MODE) is None
|
||||
assert second.state.name == "LOADED"
|
||||
assert await hass.config_entries.async_unload(second.entry_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user