From d350d639cc12deee8a4d8197856645520ac07025 Mon Sep 17 00:00:00 2001 From: Andre Basche Date: Sat, 13 May 2023 00:16:52 +0200 Subject: [PATCH] Add maintenance cycle --- pyhon/__main__.py | 0 pyhon/appliance.py | 7 +++++-- pyhon/connection/api.py | 6 ++++++ 3 files changed, 11 insertions(+), 2 deletions(-) mode change 100644 => 100755 pyhon/__main__.py diff --git a/pyhon/__main__.py b/pyhon/__main__.py old mode 100644 new mode 100755 diff --git a/pyhon/appliance.py b/pyhon/appliance.py index 11749da..5201330 100644 --- a/pyhon/appliance.py +++ b/pyhon/appliance.py @@ -213,6 +213,7 @@ class HonAppliance: async def load_statistics(self): self._statistics = await self.api.load_statistics(self) + self._statistics |= await self.api.load_maintenance(self) async def update(self): now = datetime.now() @@ -258,20 +259,22 @@ class HonAppliance: return self._extra.data(result) return result - def diagnose(self, whitespace="\u200B \u200B ", command_only=False): + def diagnose(self, whitespace=" ", command_only=False): data = { "attributes": self.attributes.copy(), "appliance": self.info, + "statistics": self.statistics, "additional_data": self._additional_data, } if command_only: data.pop("attributes") data.pop("appliance") + data.pop("statistics") data |= {n: c.parameter_groups for n, c in self._commands.items()} extra = {n: c.data for n, c in self._commands.items() if c.data} if extra: data |= {"extra_command_data": extra} - for sensible in ["PK", "SK", "serialNumber", "code", "coords"]: + for sensible in ["PK", "SK", "serialNumber", "code", "coords", "device"]: data.get("appliance", {}).pop(sensible, None) result = helper.pretty_print({"data": data}, whitespace=whitespace) result += helper.pretty_print( diff --git a/pyhon/connection/api.py b/pyhon/connection/api.py index 87cc757..a0fc08b 100644 --- a/pyhon/connection/api.py +++ b/pyhon/connection/api.py @@ -140,6 +140,12 @@ class HonAPI: async with self._hon.get(url, params=params) as response: return (await response.json()).get("payload", {}) + async def load_maintenance(self, appliance: HonAppliance): + url = f"{const.API_URL}/commands/v1/maintenance-cycle" + params = {"macAddress": appliance.mac_address} + async with self._hon.get(url, params=params) as response: + return (await response.json()).get("payload", {}) + async def send_command( self, appliance: HonAppliance,