mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Add domain paramteter to wifi. (#16)
* Add domain paramteter to wifi. - To be able to do OTA updates on networks that doesn't use .local as local domain parameter domain is added to wifi section. It's currently only used for OTA. * Centralised default parameter for domain. * Added input validation for domainname.
This commit is contained in:
		
				
					committed by
					
						 Otto Winter
						Otto Winter
					
				
			
			
				
	
			
			
			
						parent
						
							e8fe653140
						
					
				
				
					commit
					ebb6d0d464
				
			| @@ -8,8 +8,8 @@ import sys | |||||||
|  |  | ||||||
| from esphomeyaml import core, mqtt, wizard, writer, yaml_util, const | from esphomeyaml import core, mqtt, wizard, writer, yaml_util, const | ||||||
| from esphomeyaml.config import core_to_code, get_component, iter_components, read_config | from esphomeyaml.config import core_to_code, get_component, iter_components, read_config | ||||||
| from esphomeyaml.const import CONF_BAUD_RATE, CONF_ESPHOMEYAML, CONF_HOSTNAME, CONF_LOGGER, \ | from esphomeyaml.const import CONF_BAUD_RATE, CONF_DOMAIN, CONF_ESPHOMEYAML, CONF_HOSTNAME, \ | ||||||
|     CONF_MANUAL_IP, CONF_NAME, CONF_STATIC_IP, CONF_WIFI |     CONF_LOGGER, CONF_MANUAL_IP, CONF_NAME, CONF_STATIC_IP, CONF_WIFI | ||||||
| from esphomeyaml.core import ESPHomeYAMLError | from esphomeyaml.core import ESPHomeYAMLError | ||||||
| from esphomeyaml.helpers import AssignmentExpression, RawStatement, _EXPRESSIONS, add, add_task, \ | from esphomeyaml.helpers import AssignmentExpression, RawStatement, _EXPRESSIONS, add, add_task, \ | ||||||
|     color, get_variable, indent, quote, statement, Expression |     color, get_variable, indent, quote, statement, Expression | ||||||
| @@ -166,9 +166,9 @@ def upload_program(config, args, port): | |||||||
|     if CONF_MANUAL_IP in config[CONF_WIFI]: |     if CONF_MANUAL_IP in config[CONF_WIFI]: | ||||||
|         host = str(config[CONF_WIFI][CONF_MANUAL_IP][CONF_STATIC_IP]) |         host = str(config[CONF_WIFI][CONF_MANUAL_IP][CONF_STATIC_IP]) | ||||||
|     elif CONF_HOSTNAME in config[CONF_WIFI]: |     elif CONF_HOSTNAME in config[CONF_WIFI]: | ||||||
|         host = config[CONF_WIFI][CONF_HOSTNAME] + u'.local' |         host = config[CONF_WIFI][CONF_HOSTNAME] + config[CONF_WIFI][CONF_DOMAIN] | ||||||
|     else: |     else: | ||||||
|         host = config[CONF_ESPHOMEYAML][CONF_NAME] + u'.local' |         host = config[CONF_ESPHOMEYAML][CONF_NAME] + config[CONF_WIFI][CONF_DOMAIN] | ||||||
|  |  | ||||||
|     from esphomeyaml.components import ota |     from esphomeyaml.components import ota | ||||||
|     from esphomeyaml import espota |     from esphomeyaml import espota | ||||||
|   | |||||||
| @@ -2,9 +2,9 @@ import voluptuous as vol | |||||||
|  |  | ||||||
| import esphomeyaml.config_validation as cv | import esphomeyaml.config_validation as cv | ||||||
| from esphomeyaml import core | from esphomeyaml import core | ||||||
| from esphomeyaml.const import CONF_AP, CONF_CHANNEL, CONF_DNS1, CONF_DNS2, CONF_GATEWAY, \ | from esphomeyaml.const import CONF_AP, CONF_CHANNEL, CONF_DNS1, CONF_DNS2, CONF_DOMAIN, \ | ||||||
|     CONF_HOSTNAME, CONF_ID, CONF_MANUAL_IP, CONF_PASSWORD, CONF_SSID, CONF_STATIC_IP, CONF_SUBNET, \ |     CONF_GATEWAY, CONF_HOSTNAME, CONF_ID, CONF_MANUAL_IP, CONF_PASSWORD, CONF_SSID, \ | ||||||
|     ESP_PLATFORM_ESP8266 |     CONF_STATIC_IP, CONF_SUBNET, ESP_PLATFORM_ESP8266 | ||||||
| from esphomeyaml.helpers import App, Pvariable, StructInitializer, add, esphomelib_ns, global_ns | from esphomeyaml.helpers import App, Pvariable, StructInitializer, add, esphomelib_ns, global_ns | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -42,6 +42,7 @@ CONFIG_SCHEMA = vol.Schema({ | |||||||
|         vol.Optional(CONF_MANUAL_IP): AP_MANUAL_IP_SCHEMA, |         vol.Optional(CONF_MANUAL_IP): AP_MANUAL_IP_SCHEMA, | ||||||
|     }), |     }), | ||||||
|     vol.Optional(CONF_HOSTNAME): cv.hostname, |     vol.Optional(CONF_HOSTNAME): cv.hostname, | ||||||
|  |     vol.Required(CONF_DOMAIN, default='.local'): cv.domainname, | ||||||
| }) | }) | ||||||
|  |  | ||||||
| # pylint: disable=invalid-name | # pylint: disable=invalid-name | ||||||
|   | |||||||
| @@ -347,6 +347,18 @@ def hostname(value): | |||||||
|     return value |     return value | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def domainname(value): | ||||||
|  |     value = string(value) | ||||||
|  |     if not value.startswith('.'): | ||||||
|  |         raise vol.Invalid("Domainname must start with .") | ||||||
|  |     if value.startswith('..'): | ||||||
|  |         raise vol.Invalid("Domainname must start with single .") | ||||||
|  |     for c in value: | ||||||
|  |         if not (c.isalnum() or c in '._-'): | ||||||
|  |             raise vol.Invalid("Domainname can only have alphanumeric characters and _ or -") | ||||||
|  |     return value | ||||||
|  |  | ||||||
|  |  | ||||||
| def ssid(value): | def ssid(value): | ||||||
|     if value is None: |     if value is None: | ||||||
|         raise vol.Invalid("SSID can not be None") |         raise vol.Invalid("SSID can not be None") | ||||||
|   | |||||||
| @@ -228,6 +228,7 @@ CONF_TURN_OFF_ACTION = 'turn_off_action' | |||||||
| CONF_OPEN_ACTION = 'open_action' | CONF_OPEN_ACTION = 'open_action' | ||||||
| CONF_CLOSE_ACTION = 'close_action' | CONF_CLOSE_ACTION = 'close_action' | ||||||
| CONF_STOP_ACTION = 'stop_action' | CONF_STOP_ACTION = 'stop_action' | ||||||
|  | CONF_DOMAIN = 'domain' | ||||||
|  |  | ||||||
| ESP32_BOARDS = [ | ESP32_BOARDS = [ | ||||||
|     'featheresp32', 'node32s', 'espea32', 'firebeetle32', 'esp32doit-devkit-v1', |     'featheresp32', 'node32s', 'espea32', 'firebeetle32', 'esp32doit-devkit-v1', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user