|
@@ -6,6 +6,8 @@
|
|
|
@Email : zhangdongming@asj6.wecom.work
|
|
|
@Software: PyCharm
|
|
|
"""
|
|
|
+import time
|
|
|
+
|
|
|
from django.db import transaction
|
|
|
from django.db.models import Q
|
|
|
from django.views.generic.base import View
|
|
@@ -163,6 +165,20 @@ class GatewayDeviceView(View):
|
|
|
uid_set_qs.delete()
|
|
|
smart_scene_qs = SmartScene.objects.filter(device_id=device_id)
|
|
|
if smart_scene_qs.exists():
|
|
|
+ # 通知设备删除场景id
|
|
|
+ serial_number = device_qs.first().serial_number
|
|
|
+ topic_name = SMART_SCENE_TOPIC_NAME.format(serial_number)
|
|
|
+ smart_scene_info = smart_scene_qs.values('id')
|
|
|
+ for smart_scene in smart_scene_info:
|
|
|
+ msg = {
|
|
|
+ 'smart_scene_delete': int(smart_scene['id'])
|
|
|
+ }
|
|
|
+ success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg, 0)
|
|
|
+ try:
|
|
|
+ assert success
|
|
|
+ except AssertionError:
|
|
|
+ return response.json(10044)
|
|
|
+ time.sleep(0.3)
|
|
|
smart_scene_qs.delete()
|
|
|
scene_log_qs = SceneLog.objects.filter(device_id=device_id)
|
|
|
if scene_log_qs.exists():
|
|
@@ -174,18 +190,21 @@ class GatewayDeviceView(View):
|
|
|
for item in sub_ids:
|
|
|
sub_id = int(item)
|
|
|
ids.append(sub_id)
|
|
|
- # 删除智能按钮通知设备
|
|
|
- sub_device_qs = GatewaySubDevice.objects.filter(id=sub_id).values('device_type',
|
|
|
- 'device__serial_number',
|
|
|
- 'src_addr')
|
|
|
+ sub_device_qs = GatewaySubDevice.objects.filter(id=sub_id).values('device_type', 'src_addr',
|
|
|
+ 'device__serial_number')
|
|
|
+ serial_number = sub_device_qs[0]['device__serial_number']
|
|
|
+ topic_name = SMART_SCENE_TOPIC_NAME.format(serial_number)
|
|
|
device_type = sub_device_qs[0]['device_type']
|
|
|
- if device_type == 216:
|
|
|
- serial_number = sub_device_qs[0]['device__serial_number']
|
|
|
- topic_name = SMART_SCENE_TOPIC_NAME.format(serial_number)
|
|
|
+ if device_type == 216: # 删除智能按钮通知设备
|
|
|
msg = {
|
|
|
'sos_delete': int(sub_device_qs[0]['src_addr'], 16)
|
|
|
}
|
|
|
- CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
|
|
|
+ success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg, 0)
|
|
|
+ try:
|
|
|
+ assert success
|
|
|
+ except AssertionError:
|
|
|
+ return response.json(10044)
|
|
|
+ time.sleep(0.3)
|
|
|
family_device_qs = FamilyRoomDevice.objects.filter(sub_device__in=ids)
|
|
|
if family_device_qs.exists():
|
|
|
family_device_qs.delete()
|
|
@@ -194,6 +213,18 @@ class GatewayDeviceView(View):
|
|
|
gateway_sub_qs.delete()
|
|
|
smart_scene_qs = SmartScene.objects.filter(sub_device_id__in=ids)
|
|
|
if smart_scene_qs.exists():
|
|
|
+ smart_scene_info = smart_scene_qs.values('id')
|
|
|
+ for smart_scene in smart_scene_info:
|
|
|
+ # 通知设备删除场景id
|
|
|
+ msg = {
|
|
|
+ 'smart_scene_delete': int(smart_scene['id'])
|
|
|
+ }
|
|
|
+ success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg, 0)
|
|
|
+ try:
|
|
|
+ assert success
|
|
|
+ except AssertionError:
|
|
|
+ return response.json(10044)
|
|
|
+ time.sleep(0.3)
|
|
|
smart_scene_qs.delete()
|
|
|
scene_log_qs = SceneLog.objects.filter(sub_device_id__in=ids)
|
|
|
if scene_log_qs.exists():
|
|
@@ -290,3 +321,24 @@ class GatewayDeviceView(View):
|
|
|
except Exception as e:
|
|
|
print(e.args)
|
|
|
return response.json(500)
|
|
|
+
|
|
|
+#
|
|
|
+# ___====-_ _-====___
|
|
|
+# _--^^^#####// \\#####^^^--_
|
|
|
+# _-^##########// ( ) \\##########^-_
|
|
|
+# -############// |\^^/| \\############-
|
|
|
+# _/############// (@::@) \\############\_
|
|
|
+# /#############(( \\// ))#############\
|
|
|
+# -###############\\ (oo) //###############-
|
|
|
+# -#################\\ / VV \ //#################-
|
|
|
+# -###################\\/ \//###################-
|
|
|
+# _#/|##########/\######( /\ )######/\##########|\#_
|
|
|
+# |/ |#/\#/\#/\/ \#/\##\ | | /##/\#/ \/\#/\#/\#| \|
|
|
|
+# ` |/ V V ` V \#\| | | |/#/ V ' V V \| '
|
|
|
+# ` ` ` ` / | | | | \ ' ' ' '
|
|
|
+# ( | | | | )
|
|
|
+# __\ | | | | /__
|
|
|
+# (vvv(VVV)(VVV)vvv)
|
|
|
+# 神兽保佑
|
|
|
+# 代码无BUG!
|
|
|
+#
|