mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Add generate home assistant config command (#208)
* Add generate home assistant config command * Lint * Lint
This commit is contained in:
		| @@ -1,10 +1,11 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| from esphomeyaml.automation import maybe_simple_id, ACTION_REGISTRY | ||||
| from esphomeyaml.components import mqtt | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.const import CONF_ID, CONF_MQTT_ID, CONF_OSCILLATION_COMMAND_TOPIC, \ | ||||
|     CONF_OSCILLATION_STATE_TOPIC, CONF_SPEED_COMMAND_TOPIC, CONF_SPEED_STATE_TOPIC, CONF_INTERNAL, \ | ||||
|     CONF_SPEED, CONF_OSCILLATING | ||||
|     CONF_SPEED, CONF_OSCILLATING, CONF_OSCILLATION_OUTPUT, CONF_NAME | ||||
| from esphomeyaml.helpers import Application, Pvariable, add, esphomelib_ns, setup_mqtt_component, \ | ||||
|     TemplateArguments, get_variable, templatable, bool_ | ||||
|  | ||||
| @@ -128,3 +129,15 @@ def fan_turn_on_to_code(config, action_id, arg_type): | ||||
|             yield None | ||||
|         add(action.set_speed(template_)) | ||||
|     yield action | ||||
|  | ||||
|  | ||||
| def core_to_hass_config(data, config): | ||||
|     ret = mqtt.build_hass_config(data, 'fan', config, include_state=True, include_command=True) | ||||
|     if ret is None: | ||||
|         return None | ||||
|     if CONF_OSCILLATION_OUTPUT in config: | ||||
|         default = mqtt.get_default_topic_for(data, 'fan', config[CONF_NAME], 'oscillation/state') | ||||
|         ret['oscillation_state_topic'] = config.get(CONF_OSCILLATION_STATE_TOPIC, default) | ||||
|         default = mqtt.get_default_topic_for(data, 'fan', config[CONF_NAME], 'oscillation/command') | ||||
|         ret['oscillation_command__topic'] = config.get(CONF_OSCILLATION_COMMAND_TOPIC, default) | ||||
|     return ret | ||||
|   | ||||
| @@ -27,3 +27,7 @@ def to_code(config): | ||||
|         add(fan_struct.Poutput.set_oscillation(oscillation_output)) | ||||
|  | ||||
|     fan.setup_fan(fan_struct.Pstate, fan_struct.Pmqtt, config) | ||||
|  | ||||
|  | ||||
| def to_hass_config(data, config): | ||||
|     return fan.core_to_hass_config(data, config) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| import voluptuous as vol | ||||
|  | ||||
| import esphomeyaml.config_validation as cv | ||||
| from esphomeyaml.components import fan | ||||
| from esphomeyaml.components import fan, mqtt | ||||
| from esphomeyaml.const import CONF_HIGH, CONF_LOW, CONF_MAKE_ID, CONF_MEDIUM, CONF_NAME, \ | ||||
|     CONF_OSCILLATION_OUTPUT, CONF_OUTPUT, CONF_SPEED, CONF_SPEED_COMMAND_TOPIC, \ | ||||
|     CONF_SPEED_STATE_TOPIC | ||||
| @@ -43,3 +43,14 @@ def to_code(config): | ||||
|         add(fan_struct.Poutput.set_oscillation(oscillation_output)) | ||||
|  | ||||
|     fan.setup_fan(fan_struct.Pstate, fan_struct.Pmqtt, config) | ||||
|  | ||||
|  | ||||
| def to_hass_config(data, config): | ||||
|     ret = fan.core_to_hass_config(data, config) | ||||
|     if ret is None: | ||||
|         return None | ||||
|     default = mqtt.get_default_topic_for(data, 'fan', config[CONF_NAME], 'speed/state') | ||||
|     ret['speed_state_topic'] = config.get(CONF_SPEED_STATE_TOPIC, default) | ||||
|     default = mqtt.get_default_topic_for(data, 'fan', config[CONF_NAME], 'speed/command') | ||||
|     ret['speed_command__topic'] = config.get(CONF_SPEED_COMMAND_TOPIC, default) | ||||
|     return ret | ||||
|   | ||||
		Reference in New Issue
	
	Block a user