From cfaa851b5b8ace3d14262c2e8c57a237d5f9d3ec Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 26 May 2020 22:11:40 -0700 Subject: [PATCH] Revert DSMR not calling entity methods (#36179) --- homeassistant/components/dsmr/sensor.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/dsmr/sensor.py b/homeassistant/components/dsmr/sensor.py index 484bd708489..4d780d48cd1 100644 --- a/homeassistant/components/dsmr/sensor.py +++ b/homeassistant/components/dsmr/sensor.py @@ -17,10 +17,6 @@ from homeassistant.const import ( ) from homeassistant.core import CoreState, callback from homeassistant.helpers import config_validation as cv -from homeassistant.helpers.dispatcher import ( - async_dispatcher_connect, - async_dispatcher_send, -) from homeassistant.helpers.entity import Entity _LOGGER = logging.getLogger(__name__) @@ -113,7 +109,11 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(devices) - update_entities_telegram = partial(async_dispatcher_send, hass, DOMAIN) + def update_entities_telegram(telegram): + """Update entities with latest telegram and trigger state update.""" + # Make all device entities aware of new telegram + for device in devices: + device.update_data(telegram) # Creates an asyncio.Protocol factory for reading DSMR telegrams from # serial and calls update_entities_telegram to update entities on arrival @@ -187,17 +187,12 @@ class DSMREntity(Entity): self._config = config self.telegram = {} - async def async_added_to_hass(self): - """When entity is added to hass.""" - self.async_on_remove( - async_dispatcher_connect(self.hass, DOMAIN, self.update_data) - ) - @callback def update_data(self, telegram): """Update data.""" self.telegram = telegram - self.async_write_ha_state() + if self.hass: + self.async_write_ha_state() def get_dsmr_object_attr(self, attribute): """Read attribute from last received telegram for this DSMR object."""