mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Use URL validation schema for mqtt update entity_picture
and remove custom implementation (#129360)
This commit is contained in:
parent
3e4b67db6c
commit
c150b913ac
@ -141,7 +141,7 @@ MQTT_ORIGIN_INFO_SCHEMA = vol.All(
|
|||||||
MQTT_ENTITY_COMMON_SCHEMA = MQTT_AVAILABILITY_SCHEMA.extend(
|
MQTT_ENTITY_COMMON_SCHEMA = MQTT_AVAILABILITY_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
vol.Optional(CONF_DEVICE): MQTT_ENTITY_DEVICE_INFO_SCHEMA,
|
vol.Optional(CONF_DEVICE): MQTT_ENTITY_DEVICE_INFO_SCHEMA,
|
||||||
vol.Optional(CONF_ENTITY_PICTURE): cv.string,
|
vol.Optional(CONF_ENTITY_PICTURE): cv.url,
|
||||||
vol.Optional(CONF_ORIGIN): MQTT_ORIGIN_INFO_SCHEMA,
|
vol.Optional(CONF_ORIGIN): MQTT_ORIGIN_INFO_SCHEMA,
|
||||||
vol.Optional(CONF_ENABLED_BY_DEFAULT, default=True): cv.boolean,
|
vol.Optional(CONF_ENABLED_BY_DEFAULT, default=True): cv.boolean,
|
||||||
vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA,
|
vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA,
|
||||||
|
@ -96,13 +96,12 @@ class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
|||||||
|
|
||||||
_default_name = DEFAULT_NAME
|
_default_name = DEFAULT_NAME
|
||||||
_entity_id_format = update.ENTITY_ID_FORMAT
|
_entity_id_format = update.ENTITY_ID_FORMAT
|
||||||
_entity_picture: str | None
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def entity_picture(self) -> str | None:
|
def entity_picture(self) -> str | None:
|
||||||
"""Return the entity picture to use in the frontend."""
|
"""Return the entity picture to use in the frontend."""
|
||||||
if self._entity_picture is not None:
|
if self._attr_entity_picture is not None:
|
||||||
return self._entity_picture
|
return self._attr_entity_picture
|
||||||
|
|
||||||
return super().entity_picture
|
return super().entity_picture
|
||||||
|
|
||||||
@ -117,7 +116,6 @@ class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
|||||||
self._attr_release_summary = self._config.get(CONF_RELEASE_SUMMARY)
|
self._attr_release_summary = self._config.get(CONF_RELEASE_SUMMARY)
|
||||||
self._attr_release_url = self._config.get(CONF_RELEASE_URL)
|
self._attr_release_url = self._config.get(CONF_RELEASE_URL)
|
||||||
self._attr_title = self._config.get(CONF_TITLE)
|
self._attr_title = self._config.get(CONF_TITLE)
|
||||||
self._entity_picture: str | None = self._config.get(CONF_ENTITY_PICTURE)
|
|
||||||
self._templates = {
|
self._templates = {
|
||||||
CONF_VALUE_TEMPLATE: MqttValueTemplate(
|
CONF_VALUE_TEMPLATE: MqttValueTemplate(
|
||||||
config.get(CONF_VALUE_TEMPLATE),
|
config.get(CONF_VALUE_TEMPLATE),
|
||||||
@ -192,7 +190,7 @@ class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
|||||||
self._attr_release_url = json_payload["release_url"]
|
self._attr_release_url = json_payload["release_url"]
|
||||||
|
|
||||||
if "entity_picture" in json_payload:
|
if "entity_picture" in json_payload:
|
||||||
self._entity_picture = json_payload["entity_picture"]
|
self._attr_entity_picture = json_payload["entity_picture"]
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _handle_latest_version_received(self, msg: ReceiveMessage) -> None:
|
def _handle_latest_version_received(self, msg: ReceiveMessage) -> None:
|
||||||
@ -209,12 +207,12 @@ class MqttUpdate(MqttEntity, UpdateEntity, RestoreEntity):
|
|||||||
CONF_STATE_TOPIC,
|
CONF_STATE_TOPIC,
|
||||||
self._handle_state_message_received,
|
self._handle_state_message_received,
|
||||||
{
|
{
|
||||||
|
"_attr_entity_picture",
|
||||||
"_attr_installed_version",
|
"_attr_installed_version",
|
||||||
"_attr_latest_version",
|
"_attr_latest_version",
|
||||||
"_attr_title",
|
"_attr_title",
|
||||||
"_attr_release_summary",
|
"_attr_release_summary",
|
||||||
"_attr_release_url",
|
"_attr_release_url",
|
||||||
"_entity_picture",
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.add_subscription(
|
self.add_subscription(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user