Source code for ouimeaux.device.insight

from datetime import datetime
from .switch import Switch

[docs]class Insight(Switch): def __repr__(self): return '<WeMo Insight "{name}">'.format(name=self.name) @property def insight_params(self): params = self.insight.GetInsightParams().get('InsightParams') ( state, # 0 if off, 1 if on, 8 if on but load is off lastchange, onfor, # seconds ontoday, # seconds ontotal, # seconds timeperiod, # The period over which averages are calculated _x, # This one is always 19 for me; what is it? currentmw, todaymw, totalmw, powerthreshold ) = params.split('|') return {'state': state, 'lastchange': datetime.fromtimestamp(int(lastchange)), 'onfor': int(onfor), 'ontoday': int(ontoday), 'ontotal': int(ontotal), 'todaymw': int(float(todaymw)), 'totalmw': int(float(totalmw)), 'currentpower': int(float(currentmw))} @property def today_kwh(self): return self.insight_params['todaymw'] * 1.6666667e-8 @property def current_power(self): """ Returns the current power usage in mW. """ return self.insight_params['currentpower'] @property def today_on_time(self): return self.insight_params['ontoday'] @property def on_for(self): return self.insight_params['onfor'] @property def last_change(self): return self.insight_params['lastchange'] @property def today_standby_time(self): return self.insight_params['ontoday'] @property def ontotal(self): return self.insight_params['ontotal'] @property def totalmw(self): return self.insight_params['totalmw']