fix: 区分一二代,signal/energy/status
This commit is contained in:
parent
6f4bff7e7e
commit
befe00d0cf
|
@ -194,6 +194,9 @@ class DeviceCountWithInfoSerializer(DeviceCountSerializer):
|
||||||
return online
|
return online
|
||||||
|
|
||||||
|
|
||||||
|
device_status_map = {'ON': 1, 'OFF': 0}
|
||||||
|
|
||||||
|
|
||||||
class DeviceInfoSerializer(serializers.ModelSerializer):
|
class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||||
device_name = serializers.SerializerMethodField()
|
device_name = serializers.SerializerMethodField()
|
||||||
status = serializers.SerializerMethodField()
|
status = serializers.SerializerMethodField()
|
||||||
|
@ -221,6 +224,7 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.latest = None
|
self.latest = None
|
||||||
self.cur_device = None
|
self.cur_device = None
|
||||||
|
self.mosq_device_info = None
|
||||||
|
|
||||||
def get_device_name(self, obj):
|
def get_device_name(self, obj):
|
||||||
qs = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id)
|
qs = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id)
|
||||||
|
@ -230,8 +234,14 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||||
return device.device_name
|
return device.device_name
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
def get_status(self, obj):
|
||||||
def get_status(obj):
|
# 区分一代和二代设备
|
||||||
|
if obj.chip_type == 'AIR-V2':
|
||||||
|
mosq_device_info = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id).first()
|
||||||
|
if mosq_device_info and mosq_device_info.led_status:
|
||||||
|
self.mosq_device_info = mosq_device_info
|
||||||
|
return device_status_map[mosq_device_info.led_status]
|
||||||
|
|
||||||
return obj.online
|
return obj.online
|
||||||
|
|
||||||
def get_count(self, obj) -> str:
|
def get_count(self, obj) -> str:
|
||||||
|
@ -239,20 +249,29 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
# 区分一代和二代设备
|
# 区分一代和二代设备
|
||||||
if obj.chip_type == 'AIR-V2':
|
if obj.chip_type == 'AIR-V2':
|
||||||
mosq_device_info = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id).first()
|
if self.mosq_device_info and self.mosq_device_info.count:
|
||||||
if mosq_device_info and mosq_device_info.count:
|
return self.mosq_device_info.count
|
||||||
return mosq_device_info.count
|
|
||||||
|
|
||||||
if self.latest:
|
if self.latest:
|
||||||
return self.latest['count']
|
return self.latest['count']
|
||||||
return '0'
|
return '0'
|
||||||
|
|
||||||
def get_signal(self, obj) -> str:
|
def get_signal(self, obj) -> str:
|
||||||
|
# 区分一代和二代设备
|
||||||
|
if obj.chip_type == 'AIR-V2':
|
||||||
|
if self.mosq_device_info and self.mosq_device_info.signal:
|
||||||
|
return self.mosq_device_info.signal
|
||||||
|
|
||||||
if self.latest:
|
if self.latest:
|
||||||
return self.latest['csq']
|
return self.latest['csq']
|
||||||
return '0'
|
return '0'
|
||||||
|
|
||||||
def get_energy(self, obj) -> str:
|
def get_energy(self, obj) -> str:
|
||||||
|
# 区分一代和二代设备
|
||||||
|
if obj.chip_type == 'AIR-V2':
|
||||||
|
if self.mosq_device_info and self.mosq_device_info.energy:
|
||||||
|
return self.mosq_device_info.energy
|
||||||
|
|
||||||
if self.latest:
|
if self.latest:
|
||||||
if float(self.latest['vol']) <= 100:
|
if float(self.latest['vol']) <= 100:
|
||||||
return '{}{}'.format(round(float(self.latest['vol']), 1), '%')
|
return '{}{}'.format(round(float(self.latest['vol']), 1), '%')
|
||||||
|
|
Loading…
Reference in New Issue