CONF_EVENT_AWAY = "event_arm_away" CONF_EVENT_HOME = "event_arm_home" CONF_EVENT_NIGHT = "event_arm_night" CONF_EVENT_DISARM = "event_disarm" DEFAULT_EVENT_AWAY = "alarm_arm_away" DEFAULT_EVENT_HOME = "alarm_arm_home" DEFAULT_EVENT_NIGHT = "alarm_arm_night" DEFAULT_EVENT_DISARM = "alarm_disarm" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_CODE): cv.string, vol.Optional(CONF_EVENT_AWAY, default=DEFAULT_EVENT_AWAY): cv.string, vol.Optional(CONF_EVENT_HOME, default=DEFAULT_EVENT_HOME): cv.string, vol.Optional(CONF_EVENT_NIGHT, default=DEFAULT_EVENT_NIGHT): cv.string, vol.Optional(CONF_EVENT_DISARM, default=DEFAULT_EVENT_DISARM): cv.string, vol.Optional(CONF_OPTIMISTIC, default=False): cv.boolean, }) SERVICE_PUSH_ALARM_STATE = "ifttt_push_alarm_state" PUSH_ALARM_STATE_SERVICE_SCHEMA = vol.Schema({ vol.Required(ATTR_ENTITY_ID): cv.entity_ids, vol.Required(ATTR_STATE): cv.string, }) def setup_platform(hass, config, add_entities, discovery_info=None): """Set up a control panel managed through IFTTT."""
STATES = { 'ARM': STATE_ALARM_ARMED_AWAY, 'DAY HOME': STATE_ALARM_ARMED_HOME, 'DISARM': STATE_ALARM_DISARMED, 'HOME': STATE_ALARM_ARMED_HOME, 'TRIGGERED': STATE_ALARM_TRIGGERED, 'UNKNOWN': STATE_UNKNOWN, } PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_REPORT_SERVER_CODES): vol.All(cv.ensure_list), vol.Optional(CONF_REPORT_SERVER_ENABLED, default=DEFAULT_REPORT_SERVER_ENABLED): cv.boolean, vol.Optional(CONF_REPORT_SERVER_PORT, default=DEFAULT_REPORT_SERVER_PORT): cv.port, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Egardia platform.""" from pythonegardia import egardiadevice name = config.get(CONF_NAME) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) host = config.get(CONF_HOST)
def no_application_protocol(value): """Validate that value is without the application protocol.""" protocol_separator = "://" if not value or protocol_separator in value: raise vol.Invalid( 'Invalid host, {} is not allowed'.format(protocol_separator)) return value PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): vol.All(cv.string, no_application_protocol), vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_CODE): cv.positive_int, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) def setup_platform(hass, config, add_entities, discovery_info=None): """Set up an iAlarm control panel.""" name = config.get(CONF_NAME) code = config.get(CONF_CODE) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) host = config.get(CONF_HOST) url = 'http://{}'.format(host) ialarm = IAlarmPanel(name, code, username, password, url)
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, STATE_UNKNOWN) import homeassistant.helpers.config_validation as cv REQUIREMENTS = ['concord232==0.15'] _LOGGER = logging.getLogger(__name__) DEFAULT_HOST = 'localhost' DEFAULT_NAME = 'CONCORD232' DEFAULT_PORT = 5007 SCAN_INTERVAL = timedelta(seconds=1) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Concord232 alarm control panel platform.""" name = config.get(CONF_NAME) host = config.get(CONF_HOST) port = config.get(CONF_PORT) url = 'http://{}:{}'.format(host, port) try: add_devices([Concord232Alarm(hass, url, name)]) except requests.exceptions.ConnectionError as ex:
STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED) REQUIREMENTS = ['concord232==0.15'] _LOGGER = logging.getLogger(__name__) DEFAULT_HOST = 'localhost' DEFAULT_NAME = 'CONCORD232' DEFAULT_PORT = 5007 SCAN_INTERVAL = datetime.timedelta(seconds=10) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_HOST, default=DEFAULT_HOST): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, }) def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the Concord232 alarm control panel platform.""" name = config.get(CONF_NAME) host = config.get(CONF_HOST) port = config.get(CONF_PORT) url = 'http://{}:{}'.format(host, port) try: add_entities([Concord232Alarm(url, name)], True)
STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME, STATE_ALARM_DISARMED, ) from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv _LOGGER = logging.getLogger(__name__) DEFAULT_NAME = "Alarm.com" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_CODE): cv.positive_int, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): """Set up a Alarm.com control panel.""" name = config.get(CONF_NAME) code = config.get(CONF_CODE) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD)
ALLOWED_STATES = [ STATE_ALARM_DISARMED, STATE_ALARM_ARMED_NIGHT, STATE_ALARM_ARMED_AWAY, STATE_ALARM_ARMED_HOME ] DATA_IFTTT_ALARM = 'ifttt_alarm' DEFAULT_NAME = "Home" EVENT_ALARM_ARM_AWAY = "alarm_arm_away" EVENT_ALARM_ARM_HOME = "alarm_arm_home" EVENT_ALARM_ARM_NIGHT = "alarm_arm_night" EVENT_ALARM_DISARM = "alarm_disarm" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_CODE): cv.string, }) SERVICE_PUSH_ALARM_STATE = "ifttt_push_alarm_state" PUSH_ALARM_STATE_SERVICE_SCHEMA = vol.Schema({ vol.Required(ATTR_ENTITY_ID): cv.entity_ids, vol.Required(ATTR_STATE): cv.string, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up a control panel managed through IFTTT."""
'DISARM': STATE_ALARM_DISARMED, 'HOME': STATE_ALARM_ARMED_HOME, 'TRIGGERED': STATE_ALARM_TRIGGERED, 'UNKNOWN': STATE_UNKNOWN, } PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_REPORT_SERVER_CODES): vol.All(cv.ensure_list), vol.Optional(CONF_REPORT_SERVER_ENABLED, default=DEFAULT_REPORT_SERVER_ENABLED): cv.boolean, vol.Optional(CONF_REPORT_SERVER_PORT, default=DEFAULT_REPORT_SERVER_PORT): cv.port, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Egardia platform.""" from pythonegardia import egardiadevice
COORDINATOR, DEFAULT_AREA_ID, DEFAULT_NAME, DOMAIN, LOGGER, MANUFACTURER, MODEL, STATE_MAP, ) from .coordinator import YaleDataUpdateCoordinator PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend({ vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_AREA_ID, default=DEFAULT_AREA_ID): cv.string, }) async def async_setup_platform( hass: HomeAssistant, config: ConfigType, async_add_entities: AddEntitiesCallback, discovery_info: DiscoveryInfoType | None = None, ) -> None: """Import Yale configuration from YAML.""" LOGGER.warning( "Loading Yale Alarm via platform setup is deprecated; Please remove it from your configuration"
_LOGGER = logging.getLogger(__name__) ARMED = 'armed' CONF_HOME_MODE_NAME = 'home_mode_name' CONF_AWAY_MODE_NAME = 'away_mode_name' CONF_NIGHT_MODE_NAME = 'night_mode_name' DISARMED = 'disarmed' ICON = 'mdi:security' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_HOME_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_AWAY_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_NIGHT_MODE_NAME, default=ARMED): cv.string, }) def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the Arlo Alarm Control Panels.""" arlo = hass.data[DATA_ARLO] if not arlo.base_stations: return home_mode_name = config.get(CONF_HOME_MODE_NAME) away_mode_name = config.get(CONF_AWAY_MODE_NAME) night_mode_name = config.get(CONF_NIGHT_MODE_NAME) base_stations = []
CONF_EVENT_AWAY = "event_arm_away" CONF_EVENT_HOME = "event_arm_home" CONF_EVENT_NIGHT = "event_arm_night" CONF_EVENT_DISARM = "event_disarm" DEFAULT_EVENT_AWAY = "alarm_arm_away" DEFAULT_EVENT_HOME = "alarm_arm_home" DEFAULT_EVENT_NIGHT = "alarm_arm_night" DEFAULT_EVENT_DISARM = "alarm_disarm" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_CODE): cv.string, vol.Optional(CONF_EVENT_AWAY, default=DEFAULT_EVENT_AWAY): cv.string, vol.Optional(CONF_EVENT_HOME, default=DEFAULT_EVENT_HOME): cv.string, vol.Optional(CONF_EVENT_NIGHT, default=DEFAULT_EVENT_NIGHT): cv.string, vol.Optional(CONF_EVENT_DISARM, default=DEFAULT_EVENT_DISARM): cv.string, vol.Optional(CONF_OPTIMISTIC, default=False): cv.boolean, }) SERVICE_PUSH_ALARM_STATE = "ifttt_push_alarm_state" PUSH_ALARM_STATE_SERVICE_SCHEMA = vol.Schema({ vol.Required(ATTR_ENTITY_ID): cv.entity_ids, vol.Required(ATTR_STATE): cv.string, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up a control panel managed through IFTTT."""
ARMED = 'armed' DISARMED = 'disarmed' ICON = 'mdi:security' CONF_HOME_MODE_NAME = 'home_mode_name' CONF_AWAY_MODE_NAME = 'away_mode_name' CONF_NIGHT_MODE_NAME = 'night_mode_name' CONF_ALARM_VOLUME = 'alarm_volume' DEFAULT_TRIGGER_TIME = timedelta(seconds=60) ALARM_VOLUME = '8' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_HOME_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_AWAY_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_NIGHT_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_ALARM_VOLUME, default=ALARM_VOLUME): cv.string, vol.Optional(CONF_TRIGGER_TIME, default=DEFAULT_TRIGGER_TIME): vol.All(cv.time_period, cv.positive_timedelta), }) SERVICE_MODE = 'aarlo_set_mode' SIREN_ON = 'aarlo_siren_on' SIREN_OFF = 'aarlo_siren_off' ATTR_MODE = 'mode' ATTR_VOLUME = 'volume' ATTR_DURATION = 'duration' SERVICE_MODE_SCHEMA = vol.Schema({ vol.Required(ATTR_ENTITY_ID): cv.comp_entity_ids, vol.Required(ATTR_MODE): cv.string, })
_LOGGER = logging.getLogger(__name__) DEFAULT_NAME = "Alarm.com" CONF_FORCE_BYPASS = "******" CONF_NO_ENTRY_DELAY = "no_entry_delay" CONF_SILENT_ARMING = "silent_arming" DOMAIN = "alarmdotcomajax" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_CODE): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_FORCE_BYPASS, default="false"): cv.string, vol.Optional(CONF_NO_ENTRY_DELAY, default="false"): cv.string, vol.Optional(CONF_SILENT_ARMING, default="false"): cv.string, }) async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): """Set up a Alarm.com control panel.""" name = config.get(CONF_NAME)
STATE_ALARM_DISARMED, STATE_ALARM_ARMED_HOME, STATE_ALARM_ARMED_AWAY, EVENT_HOMEASSISTANT_STOP) import homeassistant.helpers.config_validation as cv REQUIREMENTS = ['simplisafe-python==1.0.5'] _LOGGER = logging.getLogger(__name__) DEFAULT_NAME = 'SimpliSafe' DOMAIN = 'simplisafe' NOTIFICATION_ID = 'simplisafe_notification' NOTIFICATION_TITLE = 'SimpliSafe Setup' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Optional(CONF_CODE): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the SimpliSafe platform.""" from simplipy.api import SimpliSafeApiInterface, get_systems name = config.get(CONF_NAME) code = config.get(CONF_CODE) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) simplisafe = SimpliSafeApiInterface() status = simplisafe.set_credentials(username, password) if status:
{ vol.Optional(CONF_VALUE_TEMPLATE): cv.template, vol.Optional(CONF_DISARM_ACTION): cv.SCRIPT_SCHEMA, vol.Optional(CONF_ARM_AWAY_ACTION): cv.SCRIPT_SCHEMA, vol.Optional(CONF_ARM_HOME_ACTION): cv.SCRIPT_SCHEMA, vol.Optional(CONF_ARM_NIGHT_ACTION): cv.SCRIPT_SCHEMA, vol.Optional(CONF_CODE_ARM_REQUIRED, default=True): cv.boolean, vol.Optional(CONF_NAME): cv.string, vol.Optional(CONF_UNIQUE_ID): cv.string, } ) PLATFORM_SCHEMA = PARENT_PLATFORM_SCHEMA.extend( { vol.Required(CONF_ALARM_CONTROL_PANELS): cv.schema_with_slug_keys( ALARM_CONTROL_PANEL_SCHEMA ), } ) async def _async_create_entities(hass, config): """Create Template Alarm Control Panels.""" alarm_control_panels = [] for device, device_config in config[CONF_ALARM_CONTROL_PANELS].items(): name = device_config.get(CONF_NAME, device) state_template = device_config.get(CONF_VALUE_TEMPLATE) disarm_action = device_config.get(CONF_DISARM_ACTION) arm_away_action = device_config.get(CONF_ARM_AWAY_ACTION) arm_home_action = device_config.get(CONF_ARM_HOME_ACTION)
_LOGGER = logging.getLogger(__name__) ARMED = 'armed' CONF_HOME_MODE_NAME = 'home_mode_name' CONF_AWAY_MODE_NAME = 'away_mode_name' DEPENDENCIES = ['arlo'] DISARMED = 'disarmed' ICON = 'mdi:security' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_HOME_MODE_NAME, default=ARMED): cv.string, vol.Optional(CONF_AWAY_MODE_NAME, default=ARMED): cv.string, }) @asyncio.coroutine def async_setup_platform(hass, config, async_add_devices, discovery_info=None): """Set up the Arlo Alarm Control Panels.""" data = hass.data[DATA_ARLO] if not data.base_stations: return home_mode_name = config.get(CONF_HOME_MODE_NAME) away_mode_name = config.get(CONF_AWAY_MODE_NAME) base_stations = [] for base_station in data.base_stations:
def no_application_protocol(value): """Validate that value is without the application protocol.""" protocol_separator = "://" if not value or protocol_separator in value: raise vol.Invalid( 'Invalid host, {} is not allowed'.format(protocol_separator)) return value PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_PASSWORD): cv.string, vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_HOST): vol.All(cv.string, no_application_protocol), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, }) def setup_platform(hass, config, add_devices, discovery_info=None): """Set up an iAlarm control panel.""" name = config.get(CONF_NAME) username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) host = config.get(CONF_HOST) url = 'http://{}'.format(host) ialarm = IAlarmPanel(name, username, password, url)