mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Fix
This commit is contained in:
		| @@ -49,12 +49,14 @@ MQTTJsonMessageTrigger = mqtt_ns.class_('MQTTJsonMessageTrigger', | |||||||
| MQTTComponent = mqtt_ns.class_('MQTTComponent', Component) | MQTTComponent = mqtt_ns.class_('MQTTComponent', Component) | ||||||
|  |  | ||||||
|  |  | ||||||
| def validate_broker(value): | def validate_config(value): | ||||||
|     value = cv.string_strict(value) |     if CONF_PORT not in value: | ||||||
|     if u':' in value: |         parts = value[CONF_BROKER].split(u':') | ||||||
|         raise vol.Invalid(u"Please specify the port using the port: option") |         if len(parts) == 2: | ||||||
|     if not value: |             value[CONF_BROKER] = parts[1] | ||||||
|         raise vol.Invalid(u"Broker cannot be empty") |             value[CONF_PORT] = cv.port(parts[2]) | ||||||
|  |         else: | ||||||
|  |             value[CONF_PORT] = 1883 | ||||||
|     return value |     return value | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -65,10 +67,10 @@ def validate_fingerprint(value): | |||||||
|     return value |     return value | ||||||
|  |  | ||||||
|  |  | ||||||
| CONFIG_SCHEMA = vol.Schema({ | CONFIG_SCHEMA = vol.All(vol.Schema({ | ||||||
|     cv.GenerateID(): cv.declare_variable_id(MQTTClientComponent), |     cv.GenerateID(): cv.declare_variable_id(MQTTClientComponent), | ||||||
|     vol.Required(CONF_BROKER): validate_broker, |     vol.Required(CONF_BROKER): cv.string_strict, | ||||||
|     vol.Optional(CONF_PORT, default=1883): cv.port, |     vol.Optional(CONF_PORT): cv.port, | ||||||
|     vol.Optional(CONF_USERNAME, default=''): cv.string, |     vol.Optional(CONF_USERNAME, default=''): cv.string, | ||||||
|     vol.Optional(CONF_PASSWORD, default=''): cv.string, |     vol.Optional(CONF_PASSWORD, default=''): cv.string, | ||||||
|     vol.Optional(CONF_CLIENT_ID): vol.All(cv.string, vol.Length(max=23)), |     vol.Optional(CONF_CLIENT_ID): vol.All(cv.string, vol.Length(max=23)), | ||||||
| @@ -97,7 +99,7 @@ CONFIG_SCHEMA = vol.Schema({ | |||||||
|         vol.Required(CONF_TOPIC): cv.subscribe_topic, |         vol.Required(CONF_TOPIC): cv.subscribe_topic, | ||||||
|         vol.Optional(CONF_QOS, default=0): cv.mqtt_qos, |         vol.Optional(CONF_QOS, default=0): cv.mqtt_qos, | ||||||
|     }), |     }), | ||||||
| }) | }), validate_config) | ||||||
|  |  | ||||||
|  |  | ||||||
| def exp_mqtt_message(config): | def exp_mqtt_message(config): | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ import tornado.websocket | |||||||
|  |  | ||||||
| from esphomeyaml import const | from esphomeyaml import const | ||||||
| from esphomeyaml.__main__ import get_serial_ports | from esphomeyaml.__main__ import get_serial_ports | ||||||
| from esphomeyaml.helpers import run_system_command | from esphomeyaml.helpers import run_system_command, mkdir_p | ||||||
| from esphomeyaml.storage_json import StorageJSON, ext_storage_path | from esphomeyaml.storage_json import StorageJSON, ext_storage_path | ||||||
| from esphomeyaml.util import shlex_quote | from esphomeyaml.util import shlex_quote | ||||||
|  |  | ||||||
| @@ -38,7 +38,7 @@ COOKIE_SECRET = None | |||||||
| USING_PASSWORD = False | USING_PASSWORD = False | ||||||
| ON_HASSIO = False | ON_HASSIO = False | ||||||
| USING_HASSIO_AUTH = True | USING_HASSIO_AUTH = True | ||||||
| HASSIO_MQTT_CONFIG = {} | HASSIO_MQTT_CONFIG = None | ||||||
|  |  | ||||||
|  |  | ||||||
| # pylint: disable=abstract-method | # pylint: disable=abstract-method | ||||||
| @@ -453,10 +453,10 @@ def _get_mqtt_config_impl(): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     req = requests.get('http://hassio/services/mqtt', headers=headers) |     req = requests.get('http://hassio/services/mqtt', headers=headers) | ||||||
|     mqtt_config = req.json() |     mqtt_config = req.json()['data'] | ||||||
|     return { |     return { | ||||||
|         'addon': mqtt_config['addon'], |         'ssl': mqtt_config['ssl'], | ||||||
|         'host': mqtt_config['host'], |         'host': mqtt_config['host'] + ':' + mqtt_config['port'], | ||||||
|         'username': mqtt_config.get('username', ''), |         'username': mqtt_config.get('username', ''), | ||||||
|         'password': mqtt_config.get('password', '') |         'password': mqtt_config.get('password', '') | ||||||
|     } |     } | ||||||
| @@ -465,14 +465,14 @@ def _get_mqtt_config_impl(): | |||||||
| def get_mqtt_config_lazy(): | def get_mqtt_config_lazy(): | ||||||
|     global HASSIO_MQTT_CONFIG |     global HASSIO_MQTT_CONFIG | ||||||
|  |  | ||||||
|     if not ON_HASSIO or HASSIO_MQTT_CONFIG is None: |     if not ON_HASSIO: | ||||||
|         return None |         return None | ||||||
|  |  | ||||||
|     if not HASSIO_MQTT_CONFIG: |     if HASSIO_MQTT_CONFIG is None: | ||||||
|         try: |         try: | ||||||
|             HASSIO_MQTT_CONFIG = _get_mqtt_config_impl() |             HASSIO_MQTT_CONFIG = _get_mqtt_config_impl() | ||||||
|         except Exception:  # pylint: disable=broad-except |         except Exception:  # pylint: disable=broad-except | ||||||
|             HASSIO_MQTT_CONFIG = None |             pass | ||||||
|  |  | ||||||
|     return HASSIO_MQTT_CONFIG |     return HASSIO_MQTT_CONFIG | ||||||
|  |  | ||||||
| @@ -486,8 +486,8 @@ def start_web_server(args): | |||||||
|     global COOKIE_SECRET |     global COOKIE_SECRET | ||||||
|  |  | ||||||
|     CONFIG_DIR = args.configuration |     CONFIG_DIR = args.configuration | ||||||
|     if not os.path.exists(CONFIG_DIR): |     mkdir_p(CONFIG_DIR) | ||||||
|         os.makedirs(CONFIG_DIR) |     mkdir_p(os.path.join(CONFIG_DIR, ".esphomeyaml")) | ||||||
|  |  | ||||||
|     ON_HASSIO = args.hassio |     ON_HASSIO = args.hassio | ||||||
|     if ON_HASSIO: |     if ON_HASSIO: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user