mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 11:47:06 +00:00
Netatmo: do not fail on schedule updates (#142933)
* do not fail on schedule updates * add test to check that the store data remains unchanged
This commit is contained in:
parent
3d83c6299b
commit
541b969d3b
@ -248,7 +248,9 @@ class NetatmoThermostat(NetatmoRoomEntity, ClimateEntity):
|
|||||||
if self.home.entity_id != data["home_id"]:
|
if self.home.entity_id != data["home_id"]:
|
||||||
return
|
return
|
||||||
|
|
||||||
if data["event_type"] == EVENT_TYPE_SCHEDULE and "schedule_id" in data:
|
if data["event_type"] == EVENT_TYPE_SCHEDULE:
|
||||||
|
# handle schedule change
|
||||||
|
if "schedule_id" in data:
|
||||||
self._selected_schedule = getattr(
|
self._selected_schedule = getattr(
|
||||||
self.hass.data[DOMAIN][DATA_SCHEDULES][self.home.entity_id].get(
|
self.hass.data[DOMAIN][DATA_SCHEDULES][self.home.entity_id].get(
|
||||||
data["schedule_id"]
|
data["schedule_id"]
|
||||||
@ -261,6 +263,7 @@ class NetatmoThermostat(NetatmoRoomEntity, ClimateEntity):
|
|||||||
)
|
)
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
self.data_handler.async_force_update(self._signal_name)
|
self.data_handler.async_force_update(self._signal_name)
|
||||||
|
# ignore other schedule events
|
||||||
return
|
return
|
||||||
|
|
||||||
home = data["home"]
|
home = data["home"]
|
||||||
|
@ -66,6 +66,34 @@ async def test_entity(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def test_schedule_update_webhook_event(
|
||||||
|
hass: HomeAssistant, config_entry: MockConfigEntry, netatmo_auth: AsyncMock
|
||||||
|
) -> None:
|
||||||
|
"""Test schedule update webhook event without schedule_id."""
|
||||||
|
|
||||||
|
with selected_platforms([Platform.CLIMATE]):
|
||||||
|
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
||||||
|
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
webhook_id = config_entry.data[CONF_WEBHOOK_ID]
|
||||||
|
climate_entity_livingroom = "climate.livingroom"
|
||||||
|
|
||||||
|
# Save initial state
|
||||||
|
initial_state = hass.states.get(climate_entity_livingroom)
|
||||||
|
|
||||||
|
# Create a schedule update event without a schedule_id (the event is sent when temperature sets of a schedule are changed)
|
||||||
|
response = {
|
||||||
|
"home_id": "91763b24c43d3e344f424e8b",
|
||||||
|
"event_type": "schedule",
|
||||||
|
"push_type": "home_event_changed",
|
||||||
|
}
|
||||||
|
await simulate_webhook(hass, webhook_id, response)
|
||||||
|
|
||||||
|
# State should be unchanged
|
||||||
|
assert hass.states.get(climate_entity_livingroom) == initial_state
|
||||||
|
|
||||||
|
|
||||||
async def test_webhook_event_handling_thermostats(
|
async def test_webhook_event_handling_thermostats(
|
||||||
hass: HomeAssistant, config_entry: MockConfigEntry, netatmo_auth: AsyncMock
|
hass: HomeAssistant, config_entry: MockConfigEntry, netatmo_auth: AsyncMock
|
||||||
) -> None:
|
) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user