Validate ports as a port (#17549)
* Validate ports as port Better than just a positive integer since it limits the range from 1 to 65535. * Validate port for Axis * Validate port for Xiaomi Home Camera * Validate port for Modbus * Validate port for Yamaha MusicCast Receivers * Update zhong_hong.py Validate port as a port, the gateway address as positive_int Also moved the default values to their variable * Validate port for the Asterisk Voicemail interface * Fix lint * Validate port for Xiaomi Cameras
This commit is contained in:
parent
50a66abd80
commit
b50c93ccb7
8 changed files with 18 additions and 15 deletions
|
@ -31,7 +31,7 @@ CONFIG_SCHEMA = vol.Schema({
|
||||||
DOMAIN: vol.Schema({
|
DOMAIN: vol.Schema({
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Required(CONF_PASSWORD): cv.string,
|
vol.Required(CONF_PASSWORD): cv.string,
|
||||||
vol.Required(CONF_PORT): int,
|
vol.Required(CONF_PORT): cv.port,
|
||||||
}),
|
}),
|
||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ AXIS_INCLUDE = EVENT_TYPES + PLATFORMS
|
||||||
AXIS_DEFAULT_HOST = '192.168.0.90'
|
AXIS_DEFAULT_HOST = '192.168.0.90'
|
||||||
AXIS_DEFAULT_USERNAME = 'root'
|
AXIS_DEFAULT_USERNAME = 'root'
|
||||||
AXIS_DEFAULT_PASSWORD = 'pass'
|
AXIS_DEFAULT_PASSWORD = 'pass'
|
||||||
|
DEFAULT_PORT = 80
|
||||||
|
|
||||||
DEVICE_SCHEMA = vol.Schema({
|
DEVICE_SCHEMA = vol.Schema({
|
||||||
vol.Required(CONF_INCLUDE):
|
vol.Required(CONF_INCLUDE):
|
||||||
|
@ -47,7 +48,7 @@ DEVICE_SCHEMA = vol.Schema({
|
||||||
vol.Optional(CONF_USERNAME, default=AXIS_DEFAULT_USERNAME): cv.string,
|
vol.Optional(CONF_USERNAME, default=AXIS_DEFAULT_USERNAME): cv.string,
|
||||||
vol.Optional(CONF_PASSWORD, default=AXIS_DEFAULT_PASSWORD): cv.string,
|
vol.Optional(CONF_PASSWORD, default=AXIS_DEFAULT_PASSWORD): cv.string,
|
||||||
vol.Optional(CONF_TRIGGER_TIME, default=0): cv.positive_int,
|
vol.Optional(CONF_TRIGGER_TIME, default=0): cv.positive_int,
|
||||||
vol.Optional(CONF_PORT, default=80): cv.positive_int,
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.Optional(ATTR_LOCATION, default=''): cv.string,
|
vol.Optional(ATTR_LOCATION, default=''): cv.string,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Required(CONF_MODEL): vol.Any(MODEL_YI,
|
vol.Required(CONF_MODEL): vol.Any(MODEL_YI,
|
||||||
MODEL_XIAOFANG),
|
MODEL_XIAOFANG),
|
||||||
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.string,
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.Optional(CONF_PATH, default=DEFAULT_PATH): cv.string,
|
vol.Optional(CONF_PATH, default=DEFAULT_PATH): cv.string,
|
||||||
vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
|
vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
|
||||||
vol.Required(CONF_PASSWORD): cv.string,
|
vol.Required(CONF_PASSWORD): cv.string,
|
||||||
|
|
|
@ -32,7 +32,7 @@ CONF_FFMPEG_ARGUMENTS = 'ffmpeg_arguments'
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_NAME): cv.string,
|
vol.Required(CONF_NAME): cv.string,
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.string,
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.Optional(CONF_PATH, default=DEFAULT_PATH): cv.string,
|
vol.Optional(CONF_PATH, default=DEFAULT_PATH): cv.string,
|
||||||
vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
|
vol.Optional(CONF_USERNAME, default=DEFAULT_USERNAME): cv.string,
|
||||||
vol.Required(CONF_PASSWORD): cv.string,
|
vol.Required(CONF_PASSWORD): cv.string,
|
||||||
|
|
|
@ -18,21 +18,23 @@ import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.helpers.dispatcher import (async_dispatcher_connect,
|
from homeassistant.helpers.dispatcher import (async_dispatcher_connect,
|
||||||
async_dispatcher_send)
|
async_dispatcher_send)
|
||||||
|
|
||||||
|
REQUIREMENTS = ['zhong_hong_hvac==1.0.9']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
CONF_GATEWAY_ADDRRESS = 'gateway_address'
|
CONF_GATEWAY_ADDRRESS = 'gateway_address'
|
||||||
|
|
||||||
REQUIREMENTS = ['zhong_hong_hvac==1.0.9']
|
DEFAULT_PORT = 9999
|
||||||
|
DEFAULT_GATEWAY_ADDRRESS = 1
|
||||||
|
|
||||||
SIGNAL_DEVICE_ADDED = 'zhong_hong_device_added'
|
SIGNAL_DEVICE_ADDED = 'zhong_hong_device_added'
|
||||||
SIGNAL_ZHONG_HONG_HUB_START = 'zhong_hong_hub_start'
|
SIGNAL_ZHONG_HONG_HUB_START = 'zhong_hong_hub_start'
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_HOST):
|
vol.Required(CONF_HOST): cv.string,
|
||||||
cv.string,
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.Optional(CONF_PORT, default=9999):
|
vol.Optional(CONF_GATEWAY_ADDRRESS, default=DEFAULT_GATEWAY_ADDRRESS):
|
||||||
vol.Coerce(int),
|
cv.positive_int,
|
||||||
vol.Optional(CONF_GATEWAY_ADDRRESS, default=1):
|
|
||||||
vol.Coerce(int),
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ DEFAULT_INTERVAL = 480
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.positive_int,
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.Optional(INTERVAL_SECONDS, default=DEFAULT_INTERVAL): cv.positive_int,
|
vol.Optional(INTERVAL_SECONDS, default=DEFAULT_INTERVAL): cv.positive_int,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ SERIAL_SCHEMA = {
|
||||||
|
|
||||||
ETHERNET_SCHEMA = {
|
ETHERNET_SCHEMA = {
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Required(CONF_PORT): cv.positive_int,
|
vol.Required(CONF_PORT): cv.port,
|
||||||
vol.Required(CONF_TYPE): vol.Any('tcp', 'udp', 'rtuovertcp'),
|
vol.Required(CONF_TYPE): vol.Any('tcp', 'udp', 'rtuovertcp'),
|
||||||
vol.Optional(CONF_TIMEOUT, default=3): cv.socket_timeout,
|
vol.Optional(CONF_TIMEOUT, default=3): cv.socket_timeout,
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ CONFIG_SCHEMA = vol.Schema({
|
||||||
vol.Optional(CONF_LOCAL_IP): vol.All(ip_address, cv.string),
|
vol.Optional(CONF_LOCAL_IP): vol.All(ip_address, cv.string),
|
||||||
vol.Optional(CONF_PORTS):
|
vol.Optional(CONF_PORTS):
|
||||||
vol.Schema({
|
vol.Schema({
|
||||||
vol.Any(CONF_HASS, cv.positive_int):
|
vol.Any(CONF_HASS, cv.port):
|
||||||
vol.Any(CONF_HASS, cv.positive_int)
|
vol.Any(CONF_HASS, cv.port)
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
Loading…
Add table
Reference in a new issue