diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index ae9f8c8d721eaa0c44d21a088489dbac30e76e9e..68161deea2f95c17db906ee5b29f1c17326ddc3a 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -36,10 +36,10 @@ SUPPORT_KODI = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_TURN_OFF_ACTION, default=None): vol.In(TURN_OFF_ACTION), - vol.Optional(CONF_USERNAME): cv.string, + vol.Inclusive(CONF_USERNAME, 'auth'): cv.string, + vol.Inclusive(CONF_PASSWORD, 'auth'): cv.string, }) @@ -51,11 +51,19 @@ def setup_platform(hass, config, add_devices, discovery_info=None): if jsonrpc_url: url = jsonrpc_url.rstrip('/jsonrpc') + username = config.get(CONF_USERNAME) + password = config.get(CONF_PASSWORD) + + if username is not None: + auth = (username, password) + else: + auth = None + add_devices([ KodiDevice( config.get(CONF_NAME), url, - auth=(config.get(CONF_USERNAME), config.get(CONF_PASSWORD)), + auth=auth, turn_off_action=config.get(CONF_TURN_OFF_ACTION)), ]) @@ -68,10 +76,15 @@ class KodiDevice(MediaPlayerDevice): import jsonrpc_requests self._name = name self._url = url + + kwargs = {'timeout': 5} + + if auth is not None: + kwargs['auth'] = auth + self._server = jsonrpc_requests.Server( - '{}/jsonrpc'.format(self._url), - auth=auth, - timeout=5) + '{}/jsonrpc'.format(self._url), **kwargs) + self._turn_off_action = turn_off_action self._players = list() self._properties = None diff --git a/homeassistant/components/notify/kodi.py b/homeassistant/components/notify/kodi.py index 6f725d63d4741235c845b4b3344897c090682898..1d95920d00b932f8b49bb909b29e9e25e21cde48 100644 --- a/homeassistant/components/notify/kodi.py +++ b/homeassistant/components/notify/kodi.py @@ -22,8 +22,8 @@ DEFAULT_PORT = 8080 PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, - vol.Optional(CONF_USERNAME): cv.string, - vol.Optional(CONF_PASSWORD): cv.string, + vol.Inclusive(CONF_USERNAME, 'auth'): cv.string, + vol.Inclusive(CONF_PASSWORD, 'auth'): cv.string, }) ATTR_DISPLAYTIME = 'displaytime' @@ -33,7 +33,13 @@ def get_service(hass, config): """Return the notify service.""" url = '{}:{}'.format(config.get(CONF_HOST), config.get(CONF_PORT)) - auth = (config.get(CONF_USERNAME), config.get(CONF_PASSWORD)) + username = config.get(CONF_USERNAME) + password = config.get(CONF_PASSWORD) + + if username is not None: + auth = (username, password) + else: + auth = None return KODINotificationService( url, @@ -48,10 +54,14 @@ class KODINotificationService(BaseNotificationService): """Initialize the service.""" import jsonrpc_requests self._url = url + + kwargs = {'timeout': 5} + + if auth is not None: + kwargs['auth'] = auth + self._server = jsonrpc_requests.Server( - '{}/jsonrpc'.format(self._url), - auth=auth, - timeout=5) + '{}/jsonrpc'.format(self._url), **kwargs) def send_message(self, message="", **kwargs): """Send a message to Kodi."""