Added support to HTTPS URLs on SynologyDSM (#15270)
* Added support to HTTPS URLs on SynologyDSM * Bumped python-synology to 0.1.1 * Makes lint happy * Added attribution to Synology and fixed 3rd library version * Fixed requirements_all.txt * Makes SynologyDSM defaults to 5001 using SSL
This commit is contained in:
parent
5f7ac09a74
commit
a6e9dc81aa
2 changed files with 20 additions and 8 deletions
|
@ -12,18 +12,20 @@ import voluptuous as vol
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.components.sensor import PLATFORM_SCHEMA
|
||||
from homeassistant.const import (
|
||||
CONF_HOST, CONF_USERNAME, CONF_PASSWORD, CONF_PORT, TEMP_CELSIUS,
|
||||
CONF_MONITORED_CONDITIONS, EVENT_HOMEASSISTANT_START, CONF_DISKS)
|
||||
CONF_HOST, CONF_USERNAME, CONF_PASSWORD, CONF_PORT, CONF_SSL,
|
||||
ATTR_ATTRIBUTION, TEMP_CELSIUS, CONF_MONITORED_CONDITIONS,
|
||||
EVENT_HOMEASSISTANT_START, CONF_DISKS)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.util import Throttle
|
||||
|
||||
REQUIREMENTS = ['python-synology==0.1.0']
|
||||
REQUIREMENTS = ['python-synology==0.2.0']
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
CONF_ATTRIBUTION = 'Data provided by Synology'
|
||||
CONF_VOLUMES = 'volumes'
|
||||
DEFAULT_NAME = 'Synology DSM'
|
||||
DEFAULT_PORT = 5000
|
||||
DEFAULT_PORT = 5001
|
||||
|
||||
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
|
||||
|
||||
|
@ -74,6 +76,7 @@ _MONITORED_CONDITIONS = list(_UTILISATION_MON_COND.keys()) + \
|
|||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Required(CONF_HOST): cv.string,
|
||||
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||
vol.Optional(CONF_SSL, default=True): cv.boolean,
|
||||
vol.Required(CONF_USERNAME): cv.string,
|
||||
vol.Required(CONF_PASSWORD): cv.string,
|
||||
vol.Optional(CONF_MONITORED_CONDITIONS):
|
||||
|
@ -95,10 +98,11 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||
port = config.get(CONF_PORT)
|
||||
username = config.get(CONF_USERNAME)
|
||||
password = config.get(CONF_PASSWORD)
|
||||
use_ssl = config.get(CONF_SSL)
|
||||
unit = hass.config.units.temperature_unit
|
||||
monitored_conditions = config.get(CONF_MONITORED_CONDITIONS)
|
||||
|
||||
api = SynoApi(host, port, username, password, unit)
|
||||
api = SynoApi(host, port, username, password, unit, use_ssl)
|
||||
|
||||
sensors = [SynoNasUtilSensor(
|
||||
api, variable, _UTILISATION_MON_COND[variable])
|
||||
|
@ -128,13 +132,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||
class SynoApi(object):
|
||||
"""Class to interface with Synology DSM API."""
|
||||
|
||||
def __init__(self, host, port, username, password, temp_unit):
|
||||
def __init__(self, host, port, username, password, temp_unit, use_ssl):
|
||||
"""Initialize the API wrapper class."""
|
||||
from SynologyDSM import SynologyDSM
|
||||
self.temp_unit = temp_unit
|
||||
|
||||
try:
|
||||
self._api = SynologyDSM(host, port, username, password)
|
||||
self._api = SynologyDSM(host, port, username, password,
|
||||
use_https=use_ssl)
|
||||
except: # noqa: E722 # pylint: disable=bare-except
|
||||
_LOGGER.error("Error setting up Synology DSM")
|
||||
|
||||
|
@ -185,6 +190,13 @@ class SynoNasSensor(Entity):
|
|||
if self._api is not None:
|
||||
self._api.update()
|
||||
|
||||
@property
|
||||
def device_state_attributes(self):
|
||||
"""Return the state attributes."""
|
||||
return {
|
||||
ATTR_ATTRIBUTION: CONF_ATTRIBUTION,
|
||||
}
|
||||
|
||||
|
||||
class SynoNasUtilSensor(SynoNasSensor):
|
||||
"""Representation a Synology Utilisation Sensor."""
|
||||
|
|
|
@ -1080,7 +1080,7 @@ python-sochain-api==0.0.2
|
|||
python-songpal==0.0.7
|
||||
|
||||
# homeassistant.components.sensor.synologydsm
|
||||
python-synology==0.1.0
|
||||
python-synology==0.2.0
|
||||
|
||||
# homeassistant.components.tado
|
||||
python-tado==0.2.3
|
||||
|
|
Loading…
Add table
Reference in a new issue