@@ -16,6 +16,7 @@ from equipment.models import (IsolationPointInfo, IsolationPointUserInfo, Thermo |
||
16 | 16 |
ThermometerMeasureLogInfo) |
17 | 17 |
from utils.error.errno_utils import IsolationPointStatusCode, ThermometerEquipmentStatusCode |
18 | 18 |
from utils.redis.rcharging import get_charging_delta_stamp, set_charging_stamp |
19 |
+from utils.redis.rfever import del_fever_stamp, get_fever_delta_stamp, set_fever_stamp |
|
19 | 20 |
from utils.redis.rscreen import get_screen_info, set_screen_info |
20 | 21 |
|
21 | 22 |
|
@@ -322,6 +323,20 @@ def mqtt_upload_temperature(payload): |
||
322 | 323 |
# 过去半小时内如果有充电记录的,当前温度大于37度的过滤掉 |
323 | 324 |
if temperature > 37 and get_charging_delta_stamp(macid) < 1800: |
324 | 325 |
ignore_temperature = True |
326 |
+ # 过去10分钟连续大于37.3度再取最高温度 |
|
327 |
+ if temperature > settings.FEVER_TEMPERATURE: |
|
328 |
+ delta_stamp = get_fever_delta_stamp(macid) |
|
329 |
+ # 首次超过37.3 |
|
330 |
+ if not delta_stamp: |
|
331 |
+ set_fever_stamp(macid) |
|
332 |
+ ignore_temperature = True |
|
333 |
+ # 连续10分钟超过37.3 |
|
334 |
+ elif delta_stamp > 600: |
|
335 |
+ pass |
|
336 |
+ else: |
|
337 |
+ ignore_temperature = True |
|
338 |
+ else: |
|
339 |
+ del_fever_stamp(macid) |
|
325 | 340 |
|
326 | 341 |
current_time = payload.get('current_time', '') |
327 | 342 |
start_stamp = end_stamp = tc.string_to_timestamp(current_time) |
@@ -0,0 +1,25 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from TimeConvert import TimeConvert as tc |
|
4 |
+ |
|
5 |
+from utils.redis.connect import r |
|
6 |
+from utils.redis.rkeys import TWJC_FEVER_STAMP_HASH |
|
7 |
+ |
|
8 |
+ |
|
9 |
+def set_fever_stamp(macid): |
|
10 |
+ r.hset(TWJC_FEVER_STAMP_HASH, macid, tc.utc_timestamp()) |
|
11 |
+ |
|
12 |
+ |
|
13 |
+def del_fever_stamp(macid): |
|
14 |
+ return r.hdel(TWJC_FEVER_STAMP_HASH, macid) |
|
15 |
+ |
|
16 |
+ |
|
17 |
+def get_fever_stamp(macid): |
|
18 |
+ return r.hgetint(TWJC_FEVER_STAMP_HASH, macid) |
|
19 |
+ |
|
20 |
+ |
|
21 |
+def get_fever_delta_stamp(macid): |
|
22 |
+ stamp = get_fever_stamp(macid) |
|
23 |
+ if not stamp: |
|
24 |
+ return 0 |
|
25 |
+ return tc.utc_timestamp() - stamp |
@@ -6,3 +6,4 @@ TWJC_POINT_INFO = 'twjc:point:info:%s' # uuid, point_id |
||
6 | 6 |
TWJC_SCREEN_INFO = 'twjc:screen:info:%s' # point_id, screen_info |
7 | 7 |
|
8 | 8 |
TWJC_CHARGING_STAMP_HASH = 'twjc:charging:stamp:hash' # HASH, macid:stamp |
9 |
+TWJC_FEVER_STAMP_HASH = 'twjc:fever:stamp:hash' # HASH, macid:stamp |