diff --git a/collecting/kasa.py b/collecting/kasa.py index b1c3789..7730f02 100644 --- a/collecting/kasa.py +++ b/collecting/kasa.py @@ -1,5 +1,6 @@ -from kasa import SmartPlug, EmeterStatus +from kasa import SmartPlug from models.configuration import Configuration +from models.customeemterstatus import CustomEmeterStatus class KasaCollector: @@ -16,10 +17,21 @@ async def setup(self) -> None: if not self.device.has_emeter: raise Exception(f'{self.configuration.device} has no emeter.') - async def fetch(self) -> EmeterStatus: + async def fetch(self) -> CustomEmeterStatus: await self.device.update() - return await self.device.get_emeter_realtime() + emeter_status = await self.device.get_emeter_realtime() + today = self.device.emeter_today + this_month = self.device.emeter_this_month + + return CustomEmeterStatus( + emeter_status['voltage_mv'], + emeter_status['current_ma'], + emeter_status['power_mw'], + emeter_status['total_wh'], + today, + this_month + ) async def __get_device(self) -> SmartPlug: if self.configuration.device_type is 'plug': diff --git a/main.py b/main.py index 19ba1e6..06f9b7b 100644 --- a/main.py +++ b/main.py @@ -17,7 +17,7 @@ async def main() -> None: while True: data = await collector.fetch() - logger.info('Successfully fetched data.', data=data) + logger.info('Successfully fetched data.', data=data.__dict__) sleep(configuration.interval) diff --git a/models/customeemterstatus.py b/models/customeemterstatus.py new file mode 100644 index 0000000..f2aa169 --- /dev/null +++ b/models/customeemterstatus.py @@ -0,0 +1,11 @@ +from dataclasses import dataclass + + +@dataclass +class CustomEmeterStatus: + voltage_mv: int + power_mw: int + current_ma: int + total_wh: int + today_kwh: float + this_month_kwh: float