|
@@ -17,6 +17,7 @@ from core.time_plan import TimePlan
|
|
|
from core.event_type import EventType, event_desc_map
|
|
|
import core.g_LAS as g_las
|
|
|
import core.alarm_plan_helper as helper
|
|
|
+from core.linkage_action import LinkageAction
|
|
|
|
|
|
from db.db_process import (
|
|
|
db_req_que, DBRequest
|
|
@@ -189,7 +190,9 @@ class AlarmPlan:
|
|
|
threshold_time: int,
|
|
|
merge_time: int,
|
|
|
param: dict,
|
|
|
- cron: Optional[dict] = None
|
|
|
+ cron: Optional[dict] = None,
|
|
|
+ linkage_action: LinkageAction = LinkageAction(),
|
|
|
+ tenant_id:int = 0
|
|
|
):
|
|
|
self.lock_ = Lock()
|
|
|
self.plan_uuid_ = plan_uuid # 计划id
|
|
@@ -199,6 +202,8 @@ class AlarmPlan:
|
|
|
self.enable_ = enable # 是否启用
|
|
|
self.time_plan_ = time_plan # 时间计划
|
|
|
self.param_ = param # 参数
|
|
|
+ self.linkage_action_ = linkage_action # 联动动作
|
|
|
+ self.tenant_id_ = tenant_id # 租户id
|
|
|
|
|
|
# 维护状态(根据TimePlanu判断)
|
|
|
self.status_ = 0 # 0未激活,1激活,-1过期
|
|
@@ -213,7 +218,8 @@ class AlarmPlan:
|
|
|
if self.event_attr_ is None:
|
|
|
raise ValueError(f"Invalid event_type: {event_type}")
|
|
|
|
|
|
- self.cron_ = cron # {“hour": 6, "minute": 0}
|
|
|
+ # 计划任务的开始时间
|
|
|
+ self.cron_ = cron # {“hour": 7, "minute": 0}
|
|
|
|
|
|
def execute(self):
|
|
|
if self.status_ != 1:
|
|
@@ -346,17 +352,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(info),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
|
|
|
LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
|
|
|
|
|
|
self.event_attr_.reset()
|
|
@@ -419,17 +430,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(info),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
|
|
|
LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
|
|
|
|
|
|
self.event_attr_.reset()
|
|
@@ -492,17 +508,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(info),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
|
|
|
LOGDBG(f"new event: {event_desc_map[self.event_type_]}, stay_time: {stay_time}")
|
|
|
|
|
|
self.event_attr_.reset()
|
|
@@ -529,7 +550,7 @@ class AlarmPlan:
|
|
|
start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
params = {
|
|
|
"dev_id" : self.dev_id_,
|
|
|
- "event_type": event_desc_map[EventType.TOILETING_DETECTION.value],
|
|
|
+ "event_type": EventType.TOILETING_DETECTION.value,
|
|
|
"start_dt": start_dt,
|
|
|
"end_dt": end_dt
|
|
|
}
|
|
@@ -565,7 +586,7 @@ class AlarmPlan:
|
|
|
start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
params = {
|
|
|
"dev_id" : self.dev_id_,
|
|
|
- "event_type": event_desc_map[EventType.TOILETING_DETECTION.value],
|
|
|
+ "event_type": EventType.TOILETING_DETECTION.value,
|
|
|
"start_dt": start_dt,
|
|
|
"end_dt": end_dt
|
|
|
}
|
|
@@ -601,7 +622,7 @@ class AlarmPlan:
|
|
|
start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
params = {
|
|
|
"dev_id" : self.dev_id_,
|
|
|
- "event_type": event_desc_map[EventType.TOILETING_DETECTION.value],
|
|
|
+ "event_type": EventType.TOILETING_DETECTION.value,
|
|
|
"start_dt": start_dt,
|
|
|
"end_dt": end_dt
|
|
|
}
|
|
@@ -637,7 +658,7 @@ class AlarmPlan:
|
|
|
start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
params = {
|
|
|
"dev_id" : self.dev_id_,
|
|
|
- "event_type": event_desc_map[EventType.TOILETING_DETECTION.value],
|
|
|
+ "event_type": EventType.TOILETING_DETECTION.value,
|
|
|
"start_dt": start_dt,
|
|
|
"end_dt": end_dt
|
|
|
}
|
|
@@ -672,7 +693,7 @@ class AlarmPlan:
|
|
|
start_dt, end_dt = helper.get_query_time_range(self.param_)
|
|
|
params = {
|
|
|
"dev_id" : self.dev_id_,
|
|
|
- "event_type": event_desc_map[EventType.STAY_DETECTION.value],
|
|
|
+ "event_type": EventType.STAY_DETECTION.value,
|
|
|
"start_dt": start_dt,
|
|
|
"end_dt": end_dt
|
|
|
}
|
|
@@ -746,17 +767,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(info),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], info, linkage_action, "events")
|
|
|
LOGDBG(f"new event: {event_desc_map[self.event_type_]}, absence_time: {absence_time}")
|
|
|
|
|
|
self.event_attr_.reset()
|
|
@@ -809,17 +835,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": this_event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(last_info, ensure_ascii=False),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
|
|
|
|
|
|
LOGINFO(f"cb_toileting_frequency succeed")
|
|
|
else:
|
|
@@ -871,17 +902,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": this_event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(last_info, ensure_ascii=False),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
|
|
|
|
|
|
LOGINFO(f"cb_night_toileting_frequency succeed")
|
|
|
else:
|
|
@@ -936,17 +972,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": this_event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(last_info, ensure_ascii=False),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, linkage_action, "events")
|
|
|
|
|
|
LOGINFO(f"cb_toileting_frequency_abnormal succeed")
|
|
|
else:
|
|
@@ -1001,17 +1042,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": this_event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(last_info, ensure_ascii=False),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, self.plan_uuid_, event_desc_map[self.event_type_], last_info, linkage_action, "events")
|
|
|
|
|
|
LOGINFO(f"cb_night_toileting_frequency_abnormal succeed")
|
|
|
else:
|
|
@@ -1064,17 +1110,22 @@ class AlarmPlan:
|
|
|
"dev_id": dev_id,
|
|
|
"uuid": this_event_uuid,
|
|
|
"plan_uuid": self.plan_uuid_,
|
|
|
- "event_type": event_desc_map[self.event_type_],
|
|
|
+ "event_type": self.event_type_,
|
|
|
"info": json.dumps(last_info, ensure_ascii=False),
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_,
|
|
|
"is_handle": 0,
|
|
|
"create_time": get_bj_time_s(),
|
|
|
"is_deleted": 0,
|
|
|
+ "tenant_id": self.tenant_id_,
|
|
|
"remark": json.dumps({}, ensure_ascii=False)
|
|
|
}
|
|
|
db_req_que.put(DBRequest(sql=sqls.sql_insert_events, params=params, callback=None))
|
|
|
|
|
|
# 通知
|
|
|
- mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, "events")
|
|
|
+ linkage_action = {
|
|
|
+ "linkage_push_wechat_service": self.linkage_action_.wechat_service_
|
|
|
+ }
|
|
|
+ mqtt_send.alarm_event(dev_id, self.dev_name_, this_event_uuid, plan_uuid, event_desc_map[self.event_type_], last_info, linkage_action, "events")
|
|
|
|
|
|
LOGINFO(f"cb_bathroom_stay_frequency+- succeed")
|
|
|
else:
|