11"""Auto lights."""
2- from homeassistant .core import State
32from homeassistant .components .light import DOMAIN as LIGHT_DOMAIN
4- from homeassistant .helpers .event import async_track_state_change
3+ from homeassistant .helpers .event import async_track_state_change_event
54from homeassistant .const import (
65 STATE_ON ,
76 SERVICE_TURN_ON ,
87 SERVICE_TURN_OFF ,
98 ATTR_ENTITY_ID ,
109)
1110from homeassistant .util import slugify
11+ from homeassistant .core import Event
1212
1313from .ha_helpers import get_all_entities
1414
@@ -37,25 +37,31 @@ def __init__(self, auto_area) -> None:
3737
3838 # Config
3939 self .illuminance_threshold = (
40- self .auto_area .config_entry .options .get (CONFIG_AUTO_LIGHTS_MAX_ILLUMINANCE )
40+ self .auto_area .config_entry .options .get (
41+ CONFIG_AUTO_LIGHTS_MAX_ILLUMINANCE )
4142 or 0
4243 )
4344 self .is_sleeping_area = (
44- self .auto_area .config_entry .options .get (CONFIG_IS_SLEEPING_AREA ) or False
45+ self .auto_area .config_entry .options .get (
46+ CONFIG_IS_SLEEPING_AREA ) or False
4547 )
4648 self .excluded_light_entities = (
47- self .auto_area .config_entry .options .get (CONFIG_EXCLUDED_LIGHT_ENTITIES )
49+ self .auto_area .config_entry .options .get (
50+ CONFIG_EXCLUDED_LIGHT_ENTITIES )
4851 or []
4952 )
5053
5154 self .sleep_mode_entity_id = (
52- f"{ SLEEP_MODE_SWITCH_ENTITY_PREFIX } { slugify (self .auto_area .area .name )} "
55+ f"{ SLEEP_MODE_SWITCH_ENTITY_PREFIX } {
56+ slugify (self .auto_area .area .name )} "
5357 )
5458 self .presence_entity_id = (
55- f"{ PRESENCE_BINARY_SENSOR_ENTITY_PREFIX } { slugify (self .auto_area .area .name )} "
59+ f"{ PRESENCE_BINARY_SENSOR_ENTITY_PREFIX } {
60+ slugify (self .auto_area .area .name )} "
5661 )
5762 self .illuminance_entity_id = (
58- f"{ ILLUMINANCE_SENSOR_ENTITY_PREFIX } { slugify (self .auto_area .area .name )} "
63+ f"{ ILLUMINANCE_SENSOR_ENTITY_PREFIX } {
64+ slugify (self .auto_area .area .name )} "
5965 )
6066
6167 self .light_entity_ids = [
@@ -91,7 +97,7 @@ async def initialize(self):
9197 sleep_mode_state = self .hass .states .get (self .sleep_mode_entity_id )
9298 if sleep_mode_state :
9399 self .sleep_mode_enabled = sleep_mode_state .state == STATE_ON
94- self .unsubscribe_sleep_mode = async_track_state_change (
100+ self .unsubscribe_sleep_mode = async_track_state_change_event (
95101 self .hass ,
96102 self .sleep_mode_entity_id ,
97103 self .handle_sleep_mode_state_change ,
@@ -115,22 +121,24 @@ async def initialize(self):
115121 )
116122 self .lights_turned_on = False
117123
118- self .unsubscribe_presence = async_track_state_change (
124+ self .unsubscribe_presence = async_track_state_change_event (
119125 self .auto_area .hass ,
120126 self .presence_entity_id ,
121127 self .handle_presence_state_change ,
122128 )
123129
124- self .unsubscribe_illuminance = async_track_state_change (
130+ self .unsubscribe_illuminance = async_track_state_change_event (
125131 self .auto_area .hass ,
126132 self .illuminance_entity_id ,
127133 self .handle_illuminance_change ,
128134 )
129135
130- async def handle_presence_state_change (
131- self , entity_id , from_state : State , to_state : State
132- ):
136+ async def handle_presence_state_change (self , event : Event ):
133137 """Handle changes in presence."""
138+ entity_id = event .data .get ('entity_id' )
139+ from_state = event .data .get ('old_state' )
140+ to_state = event .data .get ('new_state' )
141+
134142 previous_state = from_state .state if from_state else ""
135143 current_state = to_state .state
136144
@@ -194,10 +202,12 @@ async def handle_presence_state_change(
194202 )
195203 self .lights_turned_on = False
196204
197- async def handle_sleep_mode_state_change (
198- self , entity_id , from_state : State , to_state : State
199- ):
205+ async def handle_sleep_mode_state_change (self , event : Event ):
200206 """Handle changes in sleep mode."""
207+ entity_id = event .data .get ('entity_id' )
208+ from_state = event .data .get ('old_state' )
209+ to_state = event .data .get ('new_state' )
210+
201211 previous_state = from_state .state if from_state else ""
202212 current_state = to_state .state if to_state else ""
203213
@@ -245,9 +255,7 @@ async def handle_sleep_mode_state_change(
245255 )
246256 self .lights_turned_on = True
247257
248- async def handle_illuminance_change (
249- self , _entity_id , _from_state : State , _to_state : State
250- ):
258+ async def handle_illuminance_change (self , _event : Event ):
251259 """Handle changes in illuminance."""
252260
253261 # Check for presence
0 commit comments