1 """Support for DSMR Reader through MQTT."""
3 from __future__
import annotations
14 from .const
import DOMAIN
15 from .definitions
import SENSORS, DSMRReaderSensorEntityDescription
20 config_entry: ConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Set up DSMR Reader sensors from config entry."""
28 """Representation of a DSMR sensor that is updated via MQTT."""
30 _attr_has_entity_name =
True
31 entity_description: DSMRReaderSensorEntityDescription
34 self, description: DSMRReaderSensorEntityDescription, config_entry: ConfigEntry
36 """Initialize the sensor."""
39 slug =
slugify(description.key.replace(
"/",
"_"))
44 """Subscribe to MQTT events."""
47 def message_received(message):
48 """Handle new MQTT messages."""
49 if message.payload ==
"":
60 await mqtt.async_subscribe(
63 except HomeAssistantError:
67 f
"cannot_subscribe_mqtt_topic_{self.entity_description.key}",
69 severity=IssueSeverity.WARNING,
70 translation_key=
"cannot_subscribe_mqtt_topic",
71 translation_placeholders={
None async_added_to_hass(self)
None __init__(self, DSMRReaderSensorEntityDescription description, ConfigEntry config_entry)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant _, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
None async_create_issue(HomeAssistant hass, str entry_id)