@@ -114,7 +114,8 @@ def __init__(
114
114
)
115
115
self ._entity_id_map : dict [str , str ] = {}
116
116
117
- async def _update_state (self , _ : datetime | None = None ) -> None :
117
+ @callback
118
+ def _update_state (self , _ : datetime | None = None ) -> None :
118
119
"""Update binary sensor state by getting dependent states."""
119
120
_LOGGER .debug (
120
121
"%s (%s): Updating %s" ,
@@ -165,32 +166,35 @@ async def _config_entry_update_listener(
165
166
"""Update listener."""
166
167
if config_entry .options :
167
168
return
168
- await self ._update_state ()
169
+ self ._update_state ()
169
170
170
- async def _remove_keys_to_track (self , keys : list [str ]) -> None :
171
+ @callback
172
+ def _remove_keys_to_track (self , keys : list [str ]) -> None :
171
173
"""Remove keys to track."""
172
174
for key in keys :
173
175
if key not in PLATFORM_MAP :
174
176
continue
175
177
self ._entity_id_map .pop (key , None )
176
- await self ._update_state ()
178
+ self ._update_state ()
177
179
178
- async def _add_keys_to_track (self , keys : list [str ]) -> None :
180
+ @callback
181
+ def _add_keys_to_track (self , keys : list [str ]) -> None :
179
182
"""Add keys to track."""
180
183
for key in keys :
181
184
if not (platform := PLATFORM_MAP .get (key )):
182
185
continue
183
186
self ._entity_id_map [key ] = self .ent_reg .async_get_entity_id (
184
187
platform , DOMAIN , self ._get_uid (key )
185
188
)
186
- await self ._update_state ()
189
+ self ._update_state ()
187
190
188
- async def _handle_calendar_state_changes (
191
+ @callback
192
+ def _handle_calendar_state_changes (
189
193
self , entity_id : str , _ : State , __ : State
190
194
) -> None :
191
195
"""Handle calendar state changes."""
192
196
if entity_id == self ._calendar_entity_id :
193
- await self ._update_state ()
197
+ self ._update_state ()
194
198
195
199
async def async_added_to_hass (self ) -> None :
196
200
"""Handle entity added to hass."""
@@ -223,6 +227,8 @@ async def async_added_to_hass(self) -> None:
223
227
self .config_entry .add_update_listener (self ._config_entry_update_listener )
224
228
)
225
229
230
+ self ._update_state ()
231
+
226
232
227
233
class LockCodeManagerCodeSlotInSyncEntity (
228
234
BaseLockCodeManagerCodeSlotPerLockEntity ,
@@ -283,15 +289,15 @@ async def async_update(self) -> None:
283
289
self .lock .lock .entity_id ,
284
290
self .slot_num ,
285
291
)
286
- await self ._update_state ()
292
+ await self ._async_update_state ()
287
293
288
294
def _get_entity_state (self , key : str ) -> str | None :
289
295
"""Get entity state."""
290
296
if (state := self .hass .states .get (self ._entity_id_map [key ])) is None :
291
297
return None
292
298
return state .state
293
299
294
- async def _update_state (
300
+ async def _async_update_state (
295
301
self ,
296
302
entity_id : str | None = None ,
297
303
from_state : State | None = None ,
@@ -371,10 +377,10 @@ async def _update_state(
371
377
else :
372
378
self ._attr_is_on = True
373
379
374
- if self ._attr_is_on is False :
375
- await self .coordinator .async_refresh ()
376
- else :
380
+ if self ._attr_is_on :
377
381
self .async_write_ha_state ()
382
+ else :
383
+ await self .coordinator .async_refresh ()
378
384
379
385
async def async_added_to_hass (self ) -> None :
380
386
"""Handle entity added to hass."""
@@ -383,6 +389,6 @@ async def async_added_to_hass(self) -> None:
383
389
# await CoordinatorEntity.async_added_to_hass(self)
384
390
385
391
self .async_on_remove (
386
- async_track_state_change (self .hass , MATCH_ALL , self ._update_state )
392
+ async_track_state_change (self .hass , MATCH_ALL , self ._async_update_state )
387
393
)
388
- await self ._update_state ()
394
+ await self ._async_update_state ()
0 commit comments