mirror of
https://github.com/python-kasa/python-kasa.git
synced 2025-08-09 20:24:02 +00:00
Enable multiple requests in smartprotocol (#584)
* Enable multiple requests in smartprotocol * Update following review * Remove error_code parameter in exceptions
This commit is contained in:
@@ -41,11 +41,18 @@ class TapoDevice(SmartDevice):
|
||||
raise AuthenticationException("Tapo plug requires authentication.")
|
||||
|
||||
if self._components is None:
|
||||
self._components = await self.protocol.query("component_nego")
|
||||
resp = await self.protocol.query("component_nego")
|
||||
self._components = resp["component_nego"]
|
||||
|
||||
self._info = await self.protocol.query("get_device_info")
|
||||
self._usage = await self.protocol.query("get_device_usage")
|
||||
self._time = await self.protocol.query("get_device_time")
|
||||
req = {
|
||||
"get_device_info": None,
|
||||
"get_device_usage": None,
|
||||
"get_device_time": None,
|
||||
}
|
||||
resp = await self.protocol.query(req)
|
||||
self._info = resp["get_device_info"]
|
||||
self._usage = resp["get_device_usage"]
|
||||
self._time = resp["get_device_time"]
|
||||
|
||||
self._last_update = self._data = {
|
||||
"components": self._components,
|
||||
|
@@ -39,8 +39,13 @@ class TapoPlug(TapoDevice):
|
||||
"""Call the device endpoint and update the device data."""
|
||||
await super().update(update_children)
|
||||
|
||||
self._energy = await self.protocol.query("get_energy_usage")
|
||||
self._emeter = await self.protocol.query("get_current_power")
|
||||
req = {
|
||||
"get_energy_usage": None,
|
||||
"get_current_power": None,
|
||||
}
|
||||
resp = await self.protocol.query(req)
|
||||
self._energy = resp["get_energy_usage"]
|
||||
self._emeter = resp["get_current_power"]
|
||||
|
||||
self._data["energy"] = self._energy
|
||||
self._data["emeter"] = self._emeter
|
||||
@@ -71,6 +76,13 @@ class TapoPlug(TapoDevice):
|
||||
}
|
||||
)
|
||||
|
||||
async def get_emeter_realtime(self) -> EmeterStatus:
|
||||
"""Retrieve current energy readings."""
|
||||
self._verify_emeter()
|
||||
resp = await self.protocol.query("get_energy_usage")
|
||||
self._energy = resp["get_energy_usage"]
|
||||
return self.emeter_realtime
|
||||
|
||||
@property
|
||||
def emeter_today(self) -> Optional[float]:
|
||||
"""Get the emeter value for today."""
|
||||
|
Reference in New Issue
Block a user