Add thinkingcleaner optional host param (#32542)

* adding support for optional host param

as thinkingcleaner backend was having issues (again)
-> https://www.thinkingsync.com/

* Update switch.py

* Update sensor.py

* Update switch.py

* Update sensor.py

* Update switch.py

* Update switch.py

* Update sensor.py
This commit is contained in:
Mans Matulewicz 2020-03-09 12:56:26 +01:00 committed by GitHub
parent f7f6c47973
commit a6e0ab2b3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 9 deletions

View File

@ -2,10 +2,13 @@
from datetime import timedelta from datetime import timedelta
import logging import logging
from pythinkingcleaner import Discovery from pythinkingcleaner import Discovery, ThinkingCleaner
import voluptuous as vol
from homeassistant import util from homeassistant import util
from homeassistant.const import UNIT_PERCENTAGE from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -46,12 +49,18 @@ STATES = {
"st_unknown": "Unknown state", "st_unknown": "Unknown state",
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({vol.Optional(CONF_HOST): cv.string})
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the ThinkingCleaner platform.""" """Set up the ThinkingCleaner platform."""
discovery = Discovery() host = config.get(CONF_HOST)
devices = discovery.discover() if host:
devices = [ThinkingCleaner(host, "unknown")]
else:
discovery = Discovery()
devices = discovery.discover()
@util.Throttle(MIN_TIME_BETWEEN_SCANS, MIN_TIME_BETWEEN_FORCED_SCANS) @util.Throttle(MIN_TIME_BETWEEN_SCANS, MIN_TIME_BETWEEN_FORCED_SCANS)
def update_devices(): def update_devices():

View File

@ -3,10 +3,13 @@ from datetime import timedelta
import logging import logging
import time import time
from pythinkingcleaner import Discovery from pythinkingcleaner import Discovery, ThinkingCleaner
import voluptuous as vol
from homeassistant import util from homeassistant import util
from homeassistant.const import STATE_OFF, STATE_ON from homeassistant.components.switch import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, STATE_OFF, STATE_ON
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import ToggleEntity from homeassistant.helpers.entity import ToggleEntity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -23,12 +26,17 @@ SWITCH_TYPES = {
"find": ["Find", None, None], "find": ["Find", None, None],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({vol.Optional(CONF_HOST): cv.string})
def setup_platform(hass, config, add_entities, discovery_info=None): def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up the ThinkingCleaner platform.""" """Set up the ThinkingCleaner platform."""
host = config.get(CONF_HOST)
discovery = Discovery() if host:
devices = discovery.discover() devices = [ThinkingCleaner(host, "unknown")]
else:
discovery = Discovery()
devices = discovery.discover()
@util.Throttle(MIN_TIME_BETWEEN_SCANS, MIN_TIME_BETWEEN_FORCED_SCANS) @util.Throttle(MIN_TIME_BETWEEN_SCANS, MIN_TIME_BETWEEN_FORCED_SCANS)
def update_devices(): def update_devices():