From a7ecb054c11ba5b5968fa3522abb46a639cdd283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Mon, 17 Oct 2022 20:49:16 +0200 Subject: [PATCH] Decode all lightlevels --- custom_components/plejd/pyplejd/api.py | 3 --- custom_components/plejd/pyplejd/mesh.py | 22 ++++++++++--------- .../plejd/pyplejd/plejd_device.py | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/custom_components/plejd/pyplejd/api.py b/custom_components/plejd/pyplejd/api.py index 5384672..8d2e2da 100644 --- a/custom_components/plejd/pyplejd/api.py +++ b/custom_components/plejd/pyplejd/api.py @@ -50,7 +50,6 @@ async def get_site_data(username, password, siteId): return site_data async with ClientSession(base_url=API_BASE_URL, headers=headers) as session: session_token = await _login(session, username, password) - _LOGGER.debug("Session token: %s", session_token) session.headers["X-Parse-Session-Token"] = session_token details = await _get_site_details(session, siteId) site_data = details @@ -59,10 +58,8 @@ async def get_site_data(username, password, siteId): async def get_sites(username, password): async with ClientSession(base_url=API_BASE_URL, headers=headers) as session: session_token = await _login(session, username, password) - _LOGGER.debug("Session token: %s", session_token) session.headers["X-Parse-Session-Token"] = session_token sites = await _get_sites(session) - _LOGGER.debug("Sites: %s", sites) return sites["result"] diff --git a/custom_components/plejd/pyplejd/mesh.py b/custom_components/plejd/pyplejd/mesh.py index ea965fa..3b56fd5 100644 --- a/custom_components/plejd/pyplejd/mesh.py +++ b/custom_components/plejd/pyplejd/mesh.py @@ -55,7 +55,7 @@ class PlejdMesh(): def _disconnect(arg): if not self.connected: return - _LOGGER.error("_disconnect %s", arg) + _LOGGER.debug("_disconnect %s", arg) self.client = None self._connected = False if disconnect_callback: @@ -73,7 +73,7 @@ class PlejdMesh(): _LOGGER.warning("Error connecting to Plejd device: %s", str(e)) else: if len(self.mesh_nodes) == 0: - _LOGGER.warning("Failed to connect to plejd mesh - no devices discovered") + _LOGGER.debug("Failed to connect to plejd mesh - no devices discovered") else: _LOGGER.warning("Failed to connect to plejd mesh - %s", self.mesh_nodes) return False @@ -99,14 +99,16 @@ class PlejdMesh(): async def _lightlevel(_, lightlevel): _LOGGER.debug("Received LightLevel %s", lightlevel) - deviceState = { - "address": int(lightlevel[0]), - "state": bool(lightlevel[1]), - "dim": int.from_bytes(lightlevel[5:7], "little"), - } - _LOGGER.debug("Decoded LightLevel %s", deviceState) - if self.statecallback and deviceState is not None: - await self.statecallback(deviceState) + for i in range(0, len(lightlevel), 10): + ll = lightlevel[i:i+10] + deviceState = { + "address": int(ll[0]), + "state": bool(ll[1]), + "dim": int.from_bytes(ll[5:7], "little"), + } + _LOGGER.debug("Decoded LightLevel %s", deviceState) + if self.statecallback and deviceState is not None: + await self.statecallback(deviceState) await client.start_notify(PLEJD_LASTDATA, _lastdata) await client.start_notify(PLEJD_LIGHTLEVEL, _lightlevel) diff --git a/custom_components/plejd/pyplejd/plejd_device.py b/custom_components/plejd/pyplejd/plejd_device.py index ebe06b6..aa2a867 100644 --- a/custom_components/plejd/pyplejd/plejd_device.py +++ b/custom_components/plejd/pyplejd/plejd_device.py @@ -44,7 +44,7 @@ class PlejdDevice: self._dim = None def __repr__(self): - return f"" + return f", {self.address}, {self.BLE_address}, {self.data}>" pass @property