1 """Helper to test significant Fan state changes."""
3 from __future__
import annotations
13 from .
import ATTR_DIRECTION, ATTR_OSCILLATING, ATTR_PERCENTAGE, ATTR_PRESET_MODE
15 SIGNIFICANT_ATTRIBUTES: set[str] = {
32 """Test if state significantly changed."""
33 if old_state != new_state:
37 {k: v
for k, v
in old_attrs.items()
if k
in SIGNIFICANT_ATTRIBUTES}.items()
40 {k: v
for k, v
in new_attrs.items()
if k
in SIGNIFICANT_ATTRIBUTES}.items()
42 changed_attrs: set[str] = {item[0]
for item
in old_attrs_s ^ new_attrs_s}
44 for attr_name
in changed_attrs:
45 if attr_name != ATTR_PERCENTAGE:
48 old_attr_value = old_attrs.get(attr_name)
49 new_attr_value = new_attrs.get(attr_name)
bool|None async_check_significant_change(HomeAssistant hass, str old_state, dict old_attrs, str new_state, dict new_attrs, **Any kwargs)
bool check_absolute_change(float|None val1, float|None val2, float change)
bool check_valid_float(str|float value)