Allow downloading site data as diagnostics
This commit is contained in:
@@ -4,7 +4,7 @@ from datetime import timedelta
|
||||
from bleak_retry_connector import close_stale_connections
|
||||
|
||||
from .mesh import PlejdMesh
|
||||
from .api import get_cryptokey, get_devices
|
||||
from .api import get_cryptokey, get_devices, get_site_data
|
||||
from .plejd_device import PlejdDevice
|
||||
|
||||
from .const import PLEJD_SERVICE
|
||||
@@ -32,6 +32,9 @@ class PlejdManager:
|
||||
def connected(self):
|
||||
return self.mesh is not None and self.mesh.connected
|
||||
|
||||
async def get_site_data(self):
|
||||
return await get_site_data(**self.credentials)
|
||||
|
||||
async def get_devices(self):
|
||||
devices = await get_devices(**self.credentials)
|
||||
self.devices = {k: PlejdDevice(self, **v) for (k,v) in devices.items()}
|
||||
|
||||
@@ -43,13 +43,17 @@ async def _get_site_details(session, siteId):
|
||||
# fp.write(json.dumps(data))
|
||||
return data
|
||||
|
||||
site_data = None
|
||||
async def get_site_data(username, password, siteId):
|
||||
# TODO: Memoize this somehow?
|
||||
global site_data
|
||||
if site_data is not None:
|
||||
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
|
||||
return details
|
||||
|
||||
async def get_sites(username, password):
|
||||
|
||||
@@ -7,10 +7,10 @@ Device = namedtuple("Device", ["model", "type", "dimmable"])
|
||||
LIGHT = "light"
|
||||
SENSOR = "sensor"
|
||||
SWITCH = "switch"
|
||||
|
||||
UNKNOWN = "unknown"
|
||||
|
||||
HARDWARE_TYPES = {
|
||||
"0": Device("-unknown-", LIGHT, False),
|
||||
"0": Device("-unknown-", UNKNOWN, False),
|
||||
"1": Device("DIM-01", LIGHT, True),
|
||||
"2": Device("DIM-02", LIGHT, True),
|
||||
"3": Device("CTR-01", LIGHT, False),
|
||||
|
||||
Reference in New Issue
Block a user