def get_details(self): """Get 7A outlet details.""" r, _ = helpers.call_api('/v1/device/' + self.cid + '/detail', 'get', headers=helpers.req_headers(self.manager)) if r is not None and all(x in r for x in self.det_keys): self.device_status = r.get('deviceStatus', self.device_status) self.details['active_time'] = r.get('activeTime', 0) self.details['energy'] = r.get('energy', 0) power = r.get('power', '0:0') power = round(float(helpers.calculate_hex(power)), 2) self.details['power'] = power voltage = r.get('voltage', '0:0') voltage = round(float(helpers.calculate_hex(voltage)), 2) self.details['voltage'] = voltage else: logger.debug('Unable to get %s details', self.device_name)
def parse_energy_detail(energy): """Parse energy details to be compatible with new and old firmware.""" try: if isinstance(energy, str) and ':' in energy: power = round(float(Helpers.calculate_hex(energy)), 2) else: power = float(energy) except ValueError: logger.debug('Error parsing power response - %s', energy) power = 0 return power
def get_details(self): r, _ = helpers.call_api( '/v1/device/' + self.cid + '/detail', 'get', headers=helpers.req_headers(self.manager) ) if r is not None and helpers.check_response(r, '7a_detail'): self.device_status = r.get('deviceStatus', self.device_status) self.details['active_time'] = r.get('activeTime', 0) self.details['energy'] = r.get('energy', 0) power = r.get('power', '0:0') power = round(float(helpers.calculate_hex(power)), 2) self.details['power'] = power voltage = r.get('voltage', '0:0') voltage = round(float(helpers.calculate_hex(voltage)), 2) self.details['voltage'] = voltage else: logger.debug('Unable to get {0} details'.format( self.device_name))