Hoist mqtt name property and add icon support to MqttEntity (#47165)
* hoist common MqttEntity properties * remove default name for MqttEntity Default naming is sensible enough * disable overriding common MqttEntity schema * merge common MqttEntity schemas into MQTT_ENTITY_COMMON_SCHEMA
This commit is contained in:
parent
724574d336
commit
9e487eb260
17 changed files with 235 additions and 565 deletions
|
@ -17,12 +17,10 @@ from homeassistant.components.light import (
|
|||
LightEntity,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
CONF_DEVICE,
|
||||
CONF_NAME,
|
||||
CONF_OPTIMISTIC,
|
||||
CONF_PAYLOAD_OFF,
|
||||
CONF_PAYLOAD_ON,
|
||||
CONF_UNIQUE_ID,
|
||||
CONF_VALUE_TEMPLATE,
|
||||
STATE_ON,
|
||||
)
|
||||
|
@ -34,12 +32,7 @@ import homeassistant.util.color as color_util
|
|||
from .. import CONF_COMMAND_TOPIC, CONF_QOS, CONF_RETAIN, CONF_STATE_TOPIC, subscription
|
||||
from ... import mqtt
|
||||
from ..debug_info import log_messages
|
||||
from ..mixins import (
|
||||
MQTT_AVAILABILITY_SCHEMA,
|
||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA,
|
||||
MQTT_JSON_ATTRS_SCHEMA,
|
||||
MqttEntity,
|
||||
)
|
||||
from ..mixins import MQTT_ENTITY_COMMON_SCHEMA, MqttEntity
|
||||
from .schema import MQTT_LIGHT_SCHEMA_SCHEMA
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -110,7 +103,6 @@ PLATFORM_SCHEMA_BASIC = (
|
|||
vol.Optional(CONF_COLOR_TEMP_COMMAND_TOPIC): mqtt.valid_publish_topic,
|
||||
vol.Optional(CONF_COLOR_TEMP_STATE_TOPIC): mqtt.valid_subscribe_topic,
|
||||
vol.Optional(CONF_COLOR_TEMP_VALUE_TEMPLATE): cv.template,
|
||||
vol.Optional(CONF_DEVICE): MQTT_ENTITY_DEVICE_INFO_SCHEMA,
|
||||
vol.Optional(CONF_EFFECT_COMMAND_TOPIC): mqtt.valid_publish_topic,
|
||||
vol.Optional(CONF_EFFECT_LIST): vol.All(cv.ensure_list, [cv.string]),
|
||||
vol.Optional(CONF_EFFECT_STATE_TOPIC): mqtt.valid_subscribe_topic,
|
||||
|
@ -132,7 +124,6 @@ PLATFORM_SCHEMA_BASIC = (
|
|||
vol.Optional(CONF_RGB_STATE_TOPIC): mqtt.valid_subscribe_topic,
|
||||
vol.Optional(CONF_RGB_VALUE_TEMPLATE): cv.template,
|
||||
vol.Optional(CONF_STATE_VALUE_TEMPLATE): cv.template,
|
||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||
vol.Optional(CONF_WHITE_VALUE_COMMAND_TOPIC): mqtt.valid_publish_topic,
|
||||
vol.Optional(
|
||||
CONF_WHITE_VALUE_SCALE, default=DEFAULT_WHITE_VALUE_SCALE
|
||||
|
@ -144,8 +135,7 @@ PLATFORM_SCHEMA_BASIC = (
|
|||
vol.Optional(CONF_XY_VALUE_TEMPLATE): cv.template,
|
||||
}
|
||||
)
|
||||
.extend(MQTT_AVAILABILITY_SCHEMA.schema)
|
||||
.extend(MQTT_JSON_ATTRS_SCHEMA.schema)
|
||||
.extend(MQTT_ENTITY_COMMON_SCHEMA.schema)
|
||||
.extend(MQTT_LIGHT_SCHEMA_SCHEMA.schema)
|
||||
)
|
||||
|
||||
|
@ -194,8 +184,6 @@ class MqttLight(MqttEntity, LightEntity, RestoreEntity):
|
|||
|
||||
def _setup_from_config(self, config):
|
||||
"""(Re)Setup the entity."""
|
||||
self._config = config
|
||||
|
||||
topic = {
|
||||
key: config.get(key)
|
||||
for key in (
|
||||
|
@ -540,11 +528,6 @@ class MqttLight(MqttEntity, LightEntity, RestoreEntity):
|
|||
return white_value
|
||||
return None
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""Return the name of the device if any."""
|
||||
return self._config[CONF_NAME]
|
||||
|
||||
@property
|
||||
def is_on(self):
|
||||
"""Return true if device is on."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue