|
@@ -389,15 +389,29 @@ class GatewaySubDeviceView(View):
|
|
|
return response.json(444, {'error param': 'gatewaySubId'})
|
|
|
|
|
|
try:
|
|
|
- sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('status', 'is_tampered')
|
|
|
+ sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('device_type', 'status',
|
|
|
+ 'is_tampered')
|
|
|
if not sub_device_qs.exists():
|
|
|
return response.json(173)
|
|
|
scene_count = SmartScene.objects.filter(sub_device_id=sub_device_id).count()
|
|
|
res = {
|
|
|
'scene_count': scene_count,
|
|
|
- 'status': sub_device_qs[0]['status'],
|
|
|
- 'is_tampered': sub_device_qs[0]['is_tampered']
|
|
|
+ 'status': sub_device_qs[0]['status']
|
|
|
}
|
|
|
+
|
|
|
+ device_type = sub_device_qs[0]['device_type']
|
|
|
+ if device_type == 215 or device_type == 218 or device_type == 219: # 门磁,烟雾,人体传感器返回拆动状态
|
|
|
+ res['is_tampered'] = sub_device_qs[0]['is_tampered']
|
|
|
+ elif device_type == 220: # 温湿度传感器返回温湿度数据
|
|
|
+ tem_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id, event_type=18).\
|
|
|
+ order_by('-created_time').values('alarm')
|
|
|
+ hum_record_qs = SensorRecord.objects.filter(gateway_sub_device_id=sub_device_id, event_type=19).\
|
|
|
+ order_by('-created_time').values('alarm')
|
|
|
+ temperature = tem_record_qs[0]['alarm'] if tem_record_qs.exists() else ''
|
|
|
+ humidity = hum_record_qs[0]['alarm'] if tem_record_qs.exists() else ''
|
|
|
+ res['temperature'] = temperature
|
|
|
+ res['humidity'] = humidity
|
|
|
+
|
|
|
return response.json(0, res)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|