mirror of
https://github.com/esphome/esphome.git
synced 2024-11-28 01:34:18 +01: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:
parent
e8fe653140
commit
ebb6d0d464
4 changed files with 21 additions and 7 deletions
|
@ -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',
|
||||||
|
|
Loading…
Reference in a new issue