|
@@ -12,7 +12,8 @@ from django.db.models import Count, Q
|
|
|
from django.views import View
|
|
|
|
|
|
from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC, SENSOR_TYPE, EVENT_TYPE, SCENE_EVENT_SOS
|
|
|
-from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog, FamilyRoom
|
|
|
+from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog, \
|
|
|
+ FamilyRoom, DeviceTemperatureUnit
|
|
|
from Service.CommonService import CommonService
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
|
|
@@ -60,6 +61,10 @@ class GatewaySubDeviceView(View):
|
|
|
return self.records_date(request_dict, response)
|
|
|
elif operation == 'update-emergency-status': # 更新智能按钮紧急开关状态
|
|
|
return self.update_emergency_status(request_dict, response)
|
|
|
+ elif operation == 'get-temperature-unit': # 查询温湿度传感器单位
|
|
|
+ return self.get_temperature_unit(request_dict, response)
|
|
|
+ elif operation == 'update-temperature-unit': # 修改温湿度传感器单位
|
|
|
+ return self.update_temperature_unit(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -125,18 +130,21 @@ class GatewaySubDeviceView(View):
|
|
|
firmware_version=firmware_version,
|
|
|
hardware_version=hardware_version,
|
|
|
created_time=now_time, updated_time=now_time)
|
|
|
-
|
|
|
+ sub_device_id = sub_device.id
|
|
|
family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, category=0).values(
|
|
|
'category_sort')
|
|
|
if family_room_device_qs.exists():
|
|
|
FamilyRoomDevice.objects.create(family_id=family_id, room_id=room_id, device_id=device_id,
|
|
|
- sub_device=sub_device.id, created_time=now_time,
|
|
|
+ sub_device=sub_device_id, created_time=now_time,
|
|
|
updated_time=now_time,
|
|
|
category_sort=family_room_device_qs[0]['category_sort'])
|
|
|
else:
|
|
|
FamilyRoomDevice.objects.create(family_id=family_id, room_id=room_id, device_id=device_id,
|
|
|
- sub_device=sub_device.id, created_time=now_time,
|
|
|
+ sub_device=sub_device_id, created_time=now_time,
|
|
|
updated_time=now_time)
|
|
|
+ # 温湿度传感器,设备温度单位表创建数据
|
|
|
+ if device_type == SENSOR_TYPE['tem_hum_sensor']:
|
|
|
+ DeviceTemperatureUnit.objects.create(sub_device_id=sub_device_id)
|
|
|
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
@@ -648,6 +656,54 @@ class GatewaySubDeviceView(View):
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
+ @staticmethod
|
|
|
+ def get_temperature_unit(request_dict, response):
|
|
|
+ """
|
|
|
+ 查询温湿度传感器单位
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict gatewaySubId: 子设备id
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ sub_device_id = request_dict.get('gatewaySubId', None)
|
|
|
+
|
|
|
+ if not all([sub_device_id]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ device_temperature_unit_qs = DeviceTemperatureUnit.objects.filter(sub_device_id=sub_device_id).\
|
|
|
+ values('temperature_unit')
|
|
|
+ if not device_temperature_unit_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ temperature_unit = device_temperature_unit_qs[0]['temperature_unit']
|
|
|
+ res = {
|
|
|
+ 'temperature_unit': temperature_unit
|
|
|
+ }
|
|
|
+ return response.json(0, res)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def update_temperature_unit(request_dict, response):
|
|
|
+ """
|
|
|
+ 修改温湿度传感器单位
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict gatewaySubId: 子设备id
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ sub_device_id = request_dict.get('gatewaySubId', None)
|
|
|
+ temperature_unit = request_dict.get('temperatureUnit', None)
|
|
|
+
|
|
|
+ if not all([sub_device_id, temperature_unit]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ temperature_unit = int(temperature_unit)
|
|
|
+ DeviceTemperatureUnit.objects.filter(sub_device_id=sub_device_id).update(temperature_unit=temperature_unit)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
#
|
|
|
# ___====-_ _-====___
|