@@ -115,31 +115,34 @@ async def async_added_to_hass(self) -> None:
115115
116116 ent_reg = er .async_get (self .hass )
117117 entries = er .async_entries_for_label (ent_reg , self ._label )
118- for entry in entries :
119- for label in entry .labels :
118+ for entity_entry in entries :
119+ for label in entity_entry .labels :
120120 if label == self ._label :
121121 LOGGER .debug (
122122 "Found label %s in entity %s" ,
123123 self ._label ,
124- entry .entity_id ,
124+ entity_entry .entity_id ,
125125 )
126126
127127 # Replay current state of the labelled entitiy
128- state = self .hass .states .get (entry .entity_id )
128+ state = self .hass .states .get (entity_entry .entity_id )
129129 state_event : Event [EventStateChangedData ] = Event (
130130 "" ,
131131 {
132- "entity_id" : entry .entity_id ,
132+ "entity_id" : entity_entry .entity_id ,
133133 "new_state" : state ,
134134 "old_state" : None ,
135135 },
136136 )
137137
138- self ._async_state_listener (state_event , update_state = False )
138+ if entity_entry and self ._label in entity_entry .labels :
139+ self ._async_state_listener (state_event , update_state = False )
139140
140141 self .async_on_remove (
141142 async_track_state_change_event (
142- self .hass , entry .entity_id , self ._async_state_listener
143+ self .hass ,
144+ entity_entry .entity_id ,
145+ self ._async_state_listener ,
143146 )
144147 )
145148
@@ -198,11 +201,10 @@ def _async_state_listener(
198201 new_state .state if new_state is not None else STATE_UNKNOWN
199202 )
200203
201- if not update_state :
202- return
203-
204204 self ._calc_state ()
205- self .async_write_ha_state ()
205+
206+ if update_state :
207+ self .async_write_ha_state ()
206208
207209 @callback
208210 def _calc_state (self ) -> None :
0 commit comments