Преглед изворни кода

添加网关传感器配置文件

locky пре 3 година
родитељ
комит
a20baba485

+ 6 - 0
AnsjerPush/Config/__init__.py

@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+"""
+@Author : Rocky
+@Time : 2022/8/8 11:24
+@File :__init__.py
+"""

+ 57 - 0
AnsjerPush/Config/gatewaySensorConfig.py

@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+"""
+@Author : Rocky
+@Time : 2022/8/8 11:20
+@File :gatewaySensorConfig.py
+"""
+
+# MQTT主题名
+SMART_SCENE_TOPIC = 'loocam/gateway_sensor/smart_scene/{}'
+GET_SCENE_TOPIC = 'loocam/gateway_sensor/get_scene/{}'
+
+# 传感器类型
+SENSOR_TYPE = {
+    'door_magnet': 215,
+    'smart_button': 216,
+    'water_flood_sensor': 217,
+    'smoke_sensor': 218,
+    'body_sensor': 219,
+    'tem_hum_sensor': 220,
+}
+
+# 事件类型
+EVENT_TYPE = {
+    # 门磁
+    'door_magnet_opening': 2150,
+    'door_magnet_closure': 2151,
+    'door_magnet_removal': 2152,
+    'door_magnet_low_power': 2153,
+    'door_magnet_start_detection': 2154,
+    'door_magnet_closure_detection': 2155,
+    # 智能按钮
+    'smart_button_press': 2160,
+    'smart_button_click': 2161,
+    'smart_button_double_click': 2162,
+    'smart_button_three_click': 2163,
+    'smart_button_low_power': 2164,
+    # 水浸
+    'flood_trigger': 2170,
+    'flood_recovery': 2171,
+    'flood_low_power': 2172,
+    # 烟雾
+    'smoke_trigger': 2180,
+    'smoke_recovery': 2181,
+    'smoke_removal': 2182,
+    'smoke_low_power': 2183,
+    # 人体红外
+    'someone_moves': 2190,
+    'no_one_moves': 2191,
+    'body_sensor_removal': 2192,
+    'body_sensor_low_power': 2193,
+    'body_sensor_start_detection': 2194,
+    'body_sensor_closure_detection': 2195,
+    # 温湿度
+    'temperature': 2200,
+    'humidity': 2201,
+    'tem_hum_sensor_low_power': 2202,
+}

+ 9 - 7
Controller/gatewayController.py

@@ -9,6 +9,7 @@ import time
 
 from django.views.generic.base import View
 
+from AnsjerPush.Config.gatewaySensorConfig import SENSOR_TYPE, EVENT_TYPE
 from Model.models import SensorRecord, GatewaySubDevice, GatewayPush, Device_Info, SceneLog, SmartScene
 from Object.ResponseObject import ResponseObject
 from Object.utils import LocalDateTimeUtil
@@ -63,7 +64,6 @@ class GatewayView(View):
         alarm = request_dict.get('alarm', None)
         defense = int(request_dict.get('defense', None))
         sensor_status = request_dict.get('sensor_status', None)
-        sensor_low_power = request_dict.get('sensor_low_power', None)
         logger.info('---调用网关推送接口--- request_dict:{}'.format(request_dict))
         if not all([serial_number, ieee_addr, src_addr, sensor_type, event_type, alarm]):
             return response.json(444)
@@ -86,21 +86,23 @@ class GatewayView(View):
                     'created_time': n_time,
                 }
                 # 处理温湿度
-                if sensor_type == 220 and (event_type == 2200 or event_type == 2201):
+                if sensor_type == SENSOR_TYPE['tem_hum_sensor'] and (
+                        event_type == EVENT_TYPE['temperature'] or event_type == EVENT_TYPE['humidity']):
                     num = request_dict.get('num', None)
                     num = str(int(num) / 100)
                     sensor_record_dict['alarm'] = num
-                    if event_type == 2200:
-                        alarm = alarm + ":" + num + "℃"
+                    if event_type == EVENT_TYPE['temperature']:
+                        alarm += ':' + num + '℃'
                     else:
-                        alarm = alarm + ":" + num + "%"
+                        alarm += ':' + num + '%'
                 # 写入传感器记录数据
                 SensorRecord.objects.create(**sensor_record_dict)
 
                 # (门磁,烟雾,人体)传感器被拆动/拆动恢复,修改拆动状态
                 if sensor_status:
                     gateway_sub_device_qs.update(is_tampered=1)
-                elif sensor_type == 215 or sensor_type == 218 or sensor_type == 219:
+                elif sensor_type == SENSOR_TYPE['door_magnet'] or sensor_type == SENSOR_TYPE['smoke_sensor'] or \
+                        sensor_type == SENSOR_TYPE['body_sensor']:
                     gateway_sub_device_qs.update(is_tampered=0)
 
             # 撤防状态不推送
@@ -222,7 +224,7 @@ class GatewayView(View):
             'device_id': device_id,
             'sub_device_id': sub_device_id,
             'created_time': n_time,
-            }
+        }
         tasks = eval(tasks)
 
         # if sub_device_id: