@@ -147,6 +147,14 @@ def __init__(self, hass, conf):
147147
148148 self .__id = 1
149149
150+ def _prefixed_entity_id (self , entity_id ):
151+ if self ._entity_prefix :
152+ domain , object_id = split_entity_id (entity_id )
153+ object_id = self ._entity_prefix + object_id
154+ entity_id = domain + '.' + object_id
155+ return entity_id
156+ return entity_id
157+
150158 @callback
151159 def _get_url (self ):
152160 """Get url to connect to."""
@@ -321,7 +329,6 @@ def _remove_prefix(entity_id):
321329 _LOGGER .error ('could not send data to remote connection: %s' , err )
322330 await self ._disconnected ()
323331
324-
325332 def state_changed (entity_id , state , attr ):
326333 """Publish remote state change on local instance."""
327334 domain , object_id = split_entity_id (entity_id )
@@ -359,9 +366,7 @@ def state_changed(entity_id, state, attr):
359366 except ValueError :
360367 pass
361368
362- if self ._entity_prefix :
363- object_id = self ._entity_prefix + object_id
364- entity_id = domain + '.' + object_id
369+ entity_id = self ._prefixed_entity_id (entity_id )
365370
366371 # Add local customization data
367372 if DATA_CUSTOMIZE in self ._hass .data :
@@ -382,6 +387,7 @@ def fire_event(message):
382387 data = message ['event' ]['data' ]
383388 entity_id = data ['entity_id' ]
384389 if not data ['new_state' ]:
390+ entity_id = self ._prefixed_entity_id (entity_id )
385391 # entity was removed in the remote instance
386392 with suppress (ValueError , AttributeError ):
387393 self ._entities .remove (entity_id )
0 commit comments