mirror of
https://github.com/esphome/esphome.git
synced 2025-10-03 18:42:23 +01:00
Mqtt topics to support numeric fan speed (#1859)
* numeric speed added * when dumping config for MQTT components log a note when skipped due to is_internal * added new topics to paython code validation/generation * reformatted with black * formatting corrected * use dump_config_ mechanism to skip internal components * use dump_config_ mechanism to skip internal components * style issues resolved * do_dump_config removed * formatting fixed * formatting fixed * Drop parent dump_config() calls Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
This commit is contained in:
@@ -12,6 +12,8 @@ from esphome.const import (
|
||||
CONF_OSCILLATION_COMMAND_TOPIC,
|
||||
CONF_OSCILLATION_STATE_TOPIC,
|
||||
CONF_SPEED,
|
||||
CONF_SPEED_LEVEL_COMMAND_TOPIC,
|
||||
CONF_SPEED_LEVEL_STATE_TOPIC,
|
||||
CONF_SPEED_COMMAND_TOPIC,
|
||||
CONF_SPEED_STATE_TOPIC,
|
||||
CONF_NAME,
|
||||
@@ -57,6 +59,12 @@ FAN_SCHEMA = cv.NAMEABLE_SCHEMA.extend(cv.MQTT_COMMAND_COMPONENT_SCHEMA).extend(
|
||||
cv.Optional(CONF_OSCILLATION_COMMAND_TOPIC): cv.All(
|
||||
cv.requires_component("mqtt"), cv.subscribe_topic
|
||||
),
|
||||
cv.Optional(CONF_SPEED_LEVEL_STATE_TOPIC): cv.All(
|
||||
cv.requires_component("mqtt"), cv.publish_topic
|
||||
),
|
||||
cv.Optional(CONF_SPEED_LEVEL_COMMAND_TOPIC): cv.All(
|
||||
cv.requires_component("mqtt"), cv.subscribe_topic
|
||||
),
|
||||
cv.Optional(CONF_SPEED_STATE_TOPIC): cv.All(
|
||||
cv.requires_component("mqtt"), cv.publish_topic
|
||||
),
|
||||
@@ -104,6 +112,18 @@ async def setup_fan_core_(var, config):
|
||||
config[CONF_OSCILLATION_COMMAND_TOPIC]
|
||||
)
|
||||
)
|
||||
if CONF_SPEED_LEVEL_STATE_TOPIC in config:
|
||||
cg.add(
|
||||
mqtt_.set_custom_speed_level_state_topic(
|
||||
config[CONF_SPEED_LEVEL_STATE_TOPIC]
|
||||
)
|
||||
)
|
||||
if CONF_SPEED_LEVEL_COMMAND_TOPIC in config:
|
||||
cg.add(
|
||||
mqtt_.set_custom_speed_level_command_topic(
|
||||
config[CONF_SPEED_LEVEL_COMMAND_TOPIC]
|
||||
)
|
||||
)
|
||||
if CONF_SPEED_STATE_TOPIC in config:
|
||||
cg.add(mqtt_.set_custom_speed_state_topic(config[CONF_SPEED_STATE_TOPIC]))
|
||||
if CONF_SPEED_COMMAND_TOPIC in config:
|
||||
|
Reference in New Issue
Block a user