Beispiel #1
0
    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)
Beispiel #2
0
 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
Beispiel #3
0
    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))