From 526c418e1e060120c16e75ab3d3d7c3cad7eb33f Mon Sep 17 00:00:00 2001 From: "Bill (William) O'Neill" Date: Thu, 27 Aug 2020 23:22:28 -0400 Subject: [PATCH] Support selecting http vs https protocols for qvrpro (#38951) * Support selecting http vs https protocols for qvrpro * Make protocol selection limited to http or https --- homeassistant/components/qvr_pro/__init__.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/qvr_pro/__init__.py b/homeassistant/components/qvr_pro/__init__.py index ed12cd49c51..d7f5c3e93cb 100644 --- a/homeassistant/components/qvr_pro/__init__.py +++ b/homeassistant/components/qvr_pro/__init__.py @@ -8,7 +8,13 @@ from requests.exceptions import ConnectionError as RequestsConnectionError import voluptuous as vol from homeassistant.components.camera import DOMAIN as CAMERA_DOMAIN -from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_PORT, CONF_USERNAME +from homeassistant.const import ( + CONF_HOST, + CONF_PASSWORD, + CONF_PORT, + CONF_PROTOCOL, + CONF_USERNAME, +) import homeassistant.helpers.config_validation as cv from homeassistant.helpers.discovery import load_platform @@ -20,6 +26,7 @@ from .const import ( ) DEFAULT_PORT = 8080 +DEFAULT_PROTOCOL = "http" SERVICE_CHANNEL_GUID = "guid" @@ -33,6 +40,9 @@ CONFIG_SCHEMA = vol.Schema( vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, + vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): vol.All( + cv.string, vol.In(["http", "https"]) + ), vol.Optional(CONF_EXCLUDE_CHANNELS, default=[]): vol.All( cv.ensure_list_csv, [cv.positive_int] ), @@ -54,10 +64,11 @@ def setup(hass, config): password = conf[CONF_PASSWORD] host = conf[CONF_HOST] port = conf[CONF_PORT] + protocol = conf[CONF_PROTOCOL] excluded_channels = conf[CONF_EXCLUDE_CHANNELS] try: - qvrpro = Client(user, password, host, port=port) + qvrpro = Client(user, password, host, protocol=protocol, port=port) channel_resp = qvrpro.get_channel_list()