Fix Tibber Pulse device name and sensor update (#51402)

This commit is contained in:
Daniel Hjelseth Høyer 2021-06-03 11:59:22 +02:00 committed by GitHub
parent e8762bdea1
commit 1062acfe9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -186,6 +186,7 @@ class TibberSensor(SensorEntity):
"""Initialize the sensor."""
self._tibber_home = tibber_home
self._home_name = tibber_home.info["viewer"]["home"]["appNickname"]
self._device_name = None
if self._home_name is None:
self._home_name = tibber_home.info["viewer"]["home"]["address"].get(
"address1", ""
@ -202,7 +203,7 @@ class TibberSensor(SensorEntity):
"""Return the device_info of the device."""
device_info = {
"identifiers": {(TIBBER_DOMAIN, self.device_id)},
"name": self.name,
"name": self._device_name,
"manufacturer": MANUFACTURER,
}
if self._model is not None:
@ -237,6 +238,8 @@ class TibberSensorElPrice(TibberSensor):
self._attr_unique_id = f"{self._tibber_home.home_id}"
self._model = "Price Sensor"
self._device_name = self._attr_name
async def async_update(self):
"""Get the latest data and updates the states."""
now = dt_util.now()
@ -295,6 +298,7 @@ class TibberSensorRT(TibberSensor):
super().__init__(tibber_home)
self._sensor_name = sensor_name
self._model = "Tibber Pulse"
self._device_name = f"{self._model} {self._home_name}"
self._attr_device_class = device_class
self._attr_name = f"{self._sensor_name} {self._home_name}"
@ -330,7 +334,7 @@ class TibberSensorRT(TibberSensor):
self.async_on_remove(
async_dispatcher_connect(
self.hass,
SIGNAL_UPDATE_ENTITY.format(self._sensor_name),
SIGNAL_UPDATE_ENTITY.format(self.unique_id),
self._set_state,
)
)
@ -370,7 +374,7 @@ class TibberRtDataHandler:
self._async_add_entities = async_add_entities
self._tibber_home = tibber_home
self.hass = hass
self._entities = set()
self._entities = {}
async def async_callback(self, payload):
"""Handle received data."""
@ -393,7 +397,7 @@ class TibberRtDataHandler:
if sensor_type in self._entities:
async_dispatcher_send(
self.hass,
SIGNAL_UPDATE_ENTITY.format(RT_SENSOR_MAP[sensor_type][0]),
SIGNAL_UPDATE_ENTITY.format(self._entities[sensor_type]),
state,
timestamp,
)
@ -412,6 +416,6 @@ class TibberRtDataHandler:
state_class,
)
new_entities.append(entity)
self._entities.add(sensor_type)
self._entities[sensor_type] = entity.unique_id
if new_entities:
self._async_add_entities(new_entities)