From 8f64e8f75984d03d8a17242947eee5405efec855 Mon Sep 17 00:00:00 2001 From: YeonV Date: Thu, 12 Nov 2020 00:48:42 +0100 Subject: [PATCH] v0.0.6 --- custom_components/ledfxrm/__init__.py | 19 +++++++++++++------ custom_components/ledfxrm/binary_sensor.py | 6 +++++- custom_components/ledfxrm/const.py | 2 +- custom_components/ledfxrm/entity.py | 6 +++--- custom_components/ledfxrm/icon.png | Bin 28576 -> 0 bytes 5 files changed, 22 insertions(+), 11 deletions(-) delete mode 100644 custom_components/ledfxrm/icon.png diff --git a/custom_components/ledfxrm/__init__.py b/custom_components/ledfxrm/__init__.py index 8354889..0d25d74 100644 --- a/custom_components/ledfxrm/__init__.py +++ b/custom_components/ledfxrm/__init__.py @@ -20,7 +20,7 @@ ) -SCAN_INTERVAL = timedelta(seconds=300) +SCAN_INTERVAL = timedelta(seconds=30) DOMAIN = 'ledfxrm' DEPENDENCIES = ['mqtt'] @@ -66,9 +66,10 @@ async def async_setup(hass: HomeAssistant, config: Config): async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry): """Set up this integration using UI.""" - #logging.warning('ENTRY: %s', entry) + #str_mydict = ''.join('{}{}'.format(key, val) for key, val in entry.data.items()) #logging.warning('ENTRY: %s', str_mydict) + if hass.data.get(DOMAIN) is None: hass.data.setdefault(DOMAIN, {}) _LOGGER.info(STARTUP_MESSAGE) @@ -76,12 +77,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry): thehost = entry.data.get('host') theport = entry.data.get('port') theversion = entry.data.get('version') + #theurl = entry.data.get('rest_info').get('url') #thehost, theport = split_host_port(theurl) #logging.warning('URL %s ', theurl ) + #logging.warning('thehost %s ', thehost ) #logging.warning('theport %s ', theport ) - logging.warning('Version %s ', theversion ) + #logging.warning('Version %s ', theversion ) coordinator = LedfxrmDataUpdateCoordinator( hass, thehost, theport, theversion @@ -130,13 +133,17 @@ async def update(self): async with session.get(url3, ssl=False) as resp_scenes: rest_scenes = await resp_scenes.json() yz['rest_scenes'] = rest_scenes - #logging.warning('REST_API: %s', yz) + #service_data = {'entity_id': 'input_select.ledfx_seceneselector' ,'options': ['off' 'on']} #hass.services.call('input_select', 'set_options', service_data) - logging.warning('REST_API: %s', yz) + + #logging.warning('REST_API: %s', yz) return {'info':rest_info, 'devices': rest_devices, 'scenes': rest_scenes} - + async def async_change_something(self, state): + logging.warning('BOOOOM: %s', state) + + return {'status': 'ok'} class LedfxrmDataUpdateCoordinator(DataUpdateCoordinator): """Class to manage fetching data from the API.""" diff --git a/custom_components/ledfxrm/binary_sensor.py b/custom_components/ledfxrm/binary_sensor.py index fd76602..cc86ba6 100644 --- a/custom_components/ledfxrm/binary_sensor.py +++ b/custom_components/ledfxrm/binary_sensor.py @@ -1,5 +1,6 @@ """Binary sensor platform for ledfxrm.""" from homeassistant.components.binary_sensor import BinarySensorEntity +import logging from custom_components.ledfxrm.const import ( BINARY_SENSOR, @@ -32,4 +33,7 @@ def device_class(self): @property def is_on(self): """Return true if the binary_sensor is on.""" - return self.coordinator.data.get("bool_on", False) \ No newline at end of file + logging.warning('YZ: %s', self.coordinator.data) + if self.coordinator.data.get("info").get("version") is None: + return False + return True \ No newline at end of file diff --git a/custom_components/ledfxrm/const.py b/custom_components/ledfxrm/const.py index 2da4c12..181f3cb 100644 --- a/custom_components/ledfxrm/const.py +++ b/custom_components/ledfxrm/const.py @@ -3,7 +3,7 @@ NAME = "LedFX ReMote" DOMAIN = "ledfxrm" DOMAIN_DATA = f"{DOMAIN}_data" -VERSION = "0.0.1" +VERSION = "0.0.6" MANUFACTURER = "YeonV" ISSUE_URL = "https://github.com/YeonV/ledfxrm/issues" diff --git a/custom_components/ledfxrm/entity.py b/custom_components/ledfxrm/entity.py index 99f2c55..480b57b 100644 --- a/custom_components/ledfxrm/entity.py +++ b/custom_components/ledfxrm/entity.py @@ -17,13 +17,13 @@ def unique_id(self): @property def device_info(self): - logging.warning('YZ: %s', self.coordinator.data) + logging.warning('YZ: %s {% version_installed %}', self.coordinator.data) return { "identifiers": {(DOMAIN, self.unique_id)}, "name": NAME, - "model": self.coordinator.data.get("info").get("name"), + "model": self.coordinator.data.get("info").get("name") + ' ' + self.coordinator.data.get("info").get("version"), "manufacturer": MANUFACTURER, - "sw_version": self.coordinator.data.get("info").get("version"), + "sw_version": VERSION, } @property diff --git a/custom_components/ledfxrm/icon.png b/custom_components/ledfxrm/icon.png deleted file mode 100644 index 53284860af2e88fe44ba90dc09054ac7895798b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28576 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 Uvhmgb|LM-m$l9=3|G$_21I`J7y8r+H