Deprecate implicit state_topic for MQTT discovery (#22998)

* Deprecate implicit state_topic for MQTT discovery

* Lint

* Add comments

* Modernize tests
This commit is contained in:
Erik Montnemery 2019-04-14 05:25:45 +02:00 committed by Paulus Schoutsen
parent 56b08a6ddb
commit d99637e51b
4 changed files with 233 additions and 90 deletions

View file

@ -14,8 +14,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.typing import ConfigType, HomeAssistantType
from . import (
ATTR_DISCOVERY_HASH, CONF_STATE_TOPIC, CONF_UNIQUE_ID, MqttDiscoveryUpdate,
subscription)
ATTR_DISCOVERY_HASH, CONF_UNIQUE_ID, MqttDiscoveryUpdate, subscription)
from .discovery import MQTT_DISCOVERY_NEW, clear_discovery_hash
_LOGGER = logging.getLogger(__name__)
@ -42,8 +41,6 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
"""Discover and add a MQTT camera."""
try:
discovery_hash = discovery_payload.pop(ATTR_DISCOVERY_HASH)
# state_topic is implicitly set by MQTT discovery, remove it
discovery_payload.pop(CONF_STATE_TOPIC, None)
config = PLATFORM_SCHEMA(discovery_payload)
await _async_setup_entity(config, async_add_entities,
discovery_hash)
@ -85,8 +82,6 @@ class MqttCamera(MqttDiscoveryUpdate, Camera):
async def discovery_update(self, discovery_payload):
"""Handle updated discovery message."""
# state_topic is implicitly set by MQTT discovery, remove it
discovery_payload.pop(CONF_STATE_TOPIC, None)
config = PLATFORM_SCHEMA(discovery_payload)
self._config = config
await self._subscribe_topics()