1 """Schema definitions for LCN configuration and websockets api."""
3 import voluptuous
as vol
9 CONF_UNIT_OF_MEASUREMENT,
42 ADDRESS_SCHEMA = vol.Coerce(tuple)
48 DOMAIN_DATA_BINARY_SENSOR: VolDictType = {
49 vol.Required(CONF_SOURCE): vol.All(
50 vol.Upper, vol.In(SETPOINTS + KEYS + BINSENSOR_PORTS)
55 DOMAIN_DATA_CLIMATE: VolDictType = {
56 vol.Required(CONF_SOURCE): vol.All(vol.Upper, vol.In(VARIABLES)),
57 vol.Required(CONF_SETPOINT): vol.All(vol.Upper, vol.In(VARIABLES + SETPOINTS)),
58 vol.Optional(CONF_MAX_TEMP, default=DEFAULT_MAX_TEMP): vol.Coerce(float),
59 vol.Optional(CONF_MIN_TEMP, default=DEFAULT_MIN_TEMP): vol.Coerce(float),
60 vol.Optional(CONF_LOCKABLE, default=
False): vol.Coerce(bool),
61 vol.Optional(CONF_UNIT_OF_MEASUREMENT, default=UnitOfTemperature.CELSIUS): vol.In(
62 UnitOfTemperature.CELSIUS, UnitOfTemperature.FAHRENHEIT
67 DOMAIN_DATA_COVER: VolDictType = {
68 vol.Required(CONF_MOTOR): vol.All(vol.Upper, vol.In(MOTOR_PORTS)),
69 vol.Optional(CONF_REVERSE_TIME, default=
"rt1200"): vol.All(
70 vol.Upper, vol.In(MOTOR_REVERSE_TIME)
75 DOMAIN_DATA_LIGHT: VolDictType = {
76 vol.Required(CONF_OUTPUT): vol.All(vol.Upper, vol.In(OUTPUT_PORTS + RELAY_PORTS)),
77 vol.Optional(CONF_DIMMABLE, default=
False): vol.Coerce(bool),
78 vol.Optional(CONF_TRANSITION, default=0): vol.All(
79 vol.Coerce(float), vol.Range(min=0.0, max=486.0)
84 DOMAIN_DATA_SCENE: VolDictType = {
85 vol.Required(CONF_REGISTER): vol.All(vol.Coerce(int), vol.Range(0, 9)),
86 vol.Required(CONF_SCENE): vol.All(vol.Coerce(int), vol.Range(0, 9)),
87 vol.Optional(CONF_OUTPUTS, default=[]): vol.All(
88 cv.ensure_list, [vol.All(vol.Upper, vol.In(OUTPUT_PORTS + RELAY_PORTS))]
90 vol.Optional(CONF_TRANSITION, default=0): vol.Any(
91 vol.All(vol.Coerce(int), vol.Range(min=0.0, max=486.0))
95 DOMAIN_DATA_SENSOR: VolDictType = {
96 vol.Required(CONF_SOURCE): vol.All(
99 VARIABLES + SETPOINTS + THRESHOLDS + S0_INPUTS + LED_PORTS + LOGICOP_PORTS
102 vol.Optional(CONF_UNIT_OF_MEASUREMENT, default=
"native"): vol.All(
103 vol.Upper, vol.In(VAR_UNITS)
108 DOMAIN_DATA_SWITCH: VolDictType = {
109 vol.Required(CONF_OUTPUT): vol.All(
111 vol.In(OUTPUT_PORTS + RELAY_PORTS + SETPOINTS + KEYS),