yf_yzl 2 years atrás
parent
commit
24b0244eb1

+ 1 - 1
scripts/cbd_msg.py

@@ -111,7 +111,7 @@ def product_cbd_alarm():
             for m, n in indentify_result.items():
                 total_warning += f"害虫{insect_dict.get(m)},数量{str(n)};"
             # 写入数据库
-            if total_warning:
+            if total_warning.replace(" ", ""):
                 alarm_obj = MongoCBDPestWarning.objects.create(
                     device_id=device_id,
                     warning_content=f"{total_warning}请注意防范!",

+ 82 - 0
scripts/test/add_qxz_data.py

@@ -0,0 +1,82 @@
+import os
+import sys
+import time
+import django
+local_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+print(local_path)
+if local_path not in sys.path:
+    sys.path.append(local_path)
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kedong.settings")
+django.setup()
+from django.conf import settings
+from smartfarming.models.device import MongoDevice
+from smartfarming.models.weather import QXZdata_New
+import json
+import requests
+import pymongo
+from urllib import parse
+
+
+my_client = pymongo.MongoClient(host="8.136.98.49", port=27017, username="root", password="yfkj@6020")
+my_col = my_client['smartfarming']['sa_device']
+
+qx_device = {
+    "861551056086614"
+}
+
+
+def dsj_qxz_conf_info():
+    user = parse.quote_plus("root")
+    passwd = parse.quote_plus("yfkj@6020")
+    # 账号密码方式连接MongoDB | "mongodb://用户名:密码@公网ip:端口/"
+    myclient = pymongo.MongoClient("mongodb://{0}:{1}@8.136.98.49:57017/".format(user,passwd))
+    # myclient = pymongo.MongoClient("mongodb://127.0.0.1:12514/")
+    # 指定数据库
+    db = myclient.smartfarming
+    # 指定集合
+    collection1 = db.sa_qxz_data
+    for i in qx_device:
+        data = {'device_id': i,'uptime':{'$gt':1697951100}}
+        cursor = collection1.find(data,{'_id':0,'id':0})
+        print(cursor.count(), "-----------", i)
+        for i in cursor:
+            qx_data = QXZdata_New.objects.create(
+                device_id = i['device_id'],
+                uptime = i['uptime'],
+                e1 = i['e1'],
+                e2 = i['e2'],
+                e3 = i['e3'],
+                e4 = i['e4'],
+                e5 = i['e5'],
+                e6 = i['e6'],
+                e7 = i['e7'],
+                e8 = i['e8'],
+                e9 = i['e9'],
+                e10 = i['e10'],
+                e11 = i['e11'],
+                e12 = i['e12'],
+                e13 = i['e13'],
+                e14 = i['e14'],
+                e15 = i['e15'],
+                e16 = i['e16'],
+                e17 = i['e17'],
+                e18 = i['e18'],
+                e19 = i['e19'],
+                e20 = i['e20'],
+                e21 = i['e21'],
+                e22 = i['e22'],
+                e23 = i['e23'],
+                e24 = i['e24'],
+                e25 = i['e25'],
+                e26 = i['e26'],
+                e27 = i['e27'],
+                e28 = i['e28'],
+                e29 = i['e29'],
+                e30 = i['e30']
+            )
+        
+    return True
+
+
+if __name__ == "__main__":
+    dsj_qxz_conf_info()

+ 15 - 61
scripts/test/scd_device_data.py

@@ -1,9 +1,8 @@
 import os
 import sys
-import time
+import datetime
 import django
 local_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-print(local_path)
 if local_path not in sys.path:
     sys.path.append(local_path)
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kedong.settings")
@@ -14,13 +13,13 @@ import json
 import requests
 import pymongo
 from urllib import parse
+from tqdm import tqdm
 
 
 my_client = pymongo.MongoClient(host="8.136.98.49", port=27017, username="root", password="yfkj@6020")
 my_col = my_client['smartfarming']['sa_device']
 
 scd_device = {
-    "865328061465380",
     "865328061478136",
     "865328061471529",
     "865328061466933",
@@ -51,69 +50,24 @@ def dsj_qxz_conf_info():
     collection = db.sa_device
     collection1 = db.sa_device_scd_data
 
-    for i in scd_device:
-        device_info = collection.find_one({'device_id':i})
-        device_id = device_info['id']
-        id = device_info["id"]
-        device, is_created = MongoDevice.objects.get_or_create(
-            device_id = device_info["device_id"],
-            defaults={
-                "dver_num": device_info["dver_num"],
-                "device_model": device_info["device_model"],
-                "device_type_id": device_info["device_type_id"],
-                "device_name": device_info["device_name"],
-                "owner_uid": device_info["owner_uid"],
-                "user_dealer": device_info["user_dealer"],
-                "province": device_info["province"],
-                "city": device_info["city"],
-                "district": device_info["district"],
-                "device_code": device_info["device_code"],
-                "device_status": device_info["device_status"],
-                "off_time": device_info["off_time"],
-                "ftp_push_addr": device_info["ftp_push_addr"],
-                "serverconf": device_info["serverconf"],
-                "lng": device_info["lng"],
-                "lat": device_info["lat"],
-                "gps": device_info["gps"],
-                "addtime": device_info["addtime"],
-                "uptime": device_info["uptime"],
-                "glass_slide_time": device_info["glass_slide_time"],
-                "cultivate_time": device_info["cultivate_time"],
-                "add_position": device_info["add_position"],
-                "simid": device_info["simid"],
-                "disable": device_info["disable"],
-                "decoy": device_info["decoy"],
-                "sim_dealer": device_info["sim_dealer"],
-                "xy_uptime": device_info["xy_uptime"],
-                "networking": device_info["networking"],
-                "equipment": device_info["equipment"],
-                "sale_uid": device_info["sale_uid"],
-                "salesman_task_number": device_info["salesman_task_number"],
-                "whether_equipment_status": device_info["whether_equipment_status"],
-                "device_expire_time": device_info["device_expire_time"],
-                "device_activation": device_info["device_activation"],
-                "device_expire": device_info["device_expire"],
-                "device_expire_days": device_info["device_expire_days"],
-                "water_pump_switch": device_info["water_pump_switch"],
-                "device_notes": device_info["device_notes"],
-                "water_pump_times": device_info["water_pump_times"],
-                "water_pump_switch_times": device_info["water_pump_switch_times"],
-                "xy_expire_time": device_info["xy_expire_time"],
-                "device_tag": device_info["device_tag"]
-            }
-        )
-        print(device.id, is_created)
-        data = {'device_id': device_id,'addtime':{'$gt':1681808604}}
+    for d_id in scd_device:
+        device = collection.find_one({"device_id": d_id}, {"id": 1, "_id": 0})
+        start = "2023-10-22 13:23:05"
+        end = "2023-12-06 14:43:00"
+        start = int(datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S").timestamp())
+        end = int(datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S").timestamp())
+        data = {'device_id': device.get("id"), 'addtime':{'$gt':start, "$lt": end}}
         cursor = collection1.find(data,{'_id':0,'id':0,'device_id':0})
-
-        for i in cursor:
-            scd_data = MongoSCDData.objects.create(
-                device_id=device.id,
+        device_id = MongoDevice.objects.get(device_id=d_id).id
+        print("数据量", cursor.count())
+        for i in tqdm(list(cursor)):
+            MongoSCDData.objects.create(
+                device_id=device_id,
                 device_data=i["device_data"],
                 addtime=i['addtime'],
                 device_status=i['device_status']
             )
-            print(scd_data.id)
+        
     return True
 
 

+ 544 - 275
smartfarming/api/views/weather/weather.py

@@ -496,192 +496,288 @@ def qxz_day_data(request):
 
     """
     device_id = request.POST.get("device_id")
-    qxz_dict_1 = copy.deepcopy(qxz_dict)    # 如果不拷贝 后面折线图修改字典会导致字典内容变化   从而造成数据错误
-    
-    times = ""
-
-    try:
-        MongoDevice.objects.get(device_id=device_id)
-    except:
-        logger.error(f"{device_id} 暂无此设备")
-        raise PortError('device_id',"暂无此设备")
-
-    qxz_list = QXZstatus_New.objects.filter(device_id=device_id).order_by("-uptime").first()
-    if qxz_list:
-        times = qxz_list.uptime
+    # 获取最近24小时的开始时间与结束时间
+    end = int(time.time())
+    start = end - 24 * 3600
+    # 查询数据
+    qxz_data = QXZdata_New.objects.filter(device_id=device_id).filter(uptime__range=(start, end))
+    e1, e2 ,e3,e4,e5,e6,e7,e8,e9,e10 = [999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0]
+    e11,e12,e13,e14,e15,e16,e17,e18,e19,e20 = [999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0]
+    e21,e22,e23,e24,e25,e26,e27,e28,e29,e30 = [999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0],[999999, -99999, 0, 0]
+    for m in qxz_data:
+        uptime = m.uptime
+        k1 = (m.e1).split("#")[0]
+        if k1:
+            k1 = float(k1)
+            if e1[0] >= k1:
+                e1[0] = k1
+                e1[2] = uptime
+            if e1[1] <= k1:
+                e1[1] = k1
+                e1[3] = uptime
+        k2 = (m.e2).split("#")[0]
+        if k2:
+            k2 = float(k2)
+            if e2[0] >= k2:
+                e2[0] = k2
+                e2[2] = uptime
+            if e2[1] <= k2:
+                e2[1] = k2
+                e2[3] = uptime
+        k3 = (m.e3).split("#")[0]
+        if k3:
+            k3 = float(k3)
+            if e3[0] >= k3:
+                e3[0] = k3
+                e3[2] = uptime
+            if e3[1] <= k3:
+                e3[1] = k3
+                e3[3] = uptime
+        k4 = (m.e4).split("#")[0]
+        if k4:
+            k4 = float(k4)
+            if e4[0] >= k4:
+                e4[0] = k4
+                e4[2] = uptime
+            if e4[1] <= k4:
+                e4[1] = k4
+                e4[3] = uptime
+        k5 = m.e5
+        if k5:
+            k5 = float(k5.split("#")[0])
+            if e5[0] >= k5:
+                e5[0] = k5
+                e5[2] = uptime
+            if e5[1] <= k5:
+                e5[1] = k5
+                e5[3] = uptime
+        k6 = (m.e6)
+        if k6:
+            k6 = float(k6.split("#")[0])
+            if e6[0] >= k6:
+                e6[0] = k6
+                e6[2] = uptime
+            if e6[1] <= k6:
+                e6[1] = k6
+                e6[3] = uptime
+        k7 = (m.e7)
+        if k7:
+            k7 = float(k7.split("#")[0])
+            if e7[0] >= k7:
+                e7[0] = k7
+                e7[2] = uptime
+            if e7[1] <= k7:
+                e7[1] = k7
+                e7[3] = uptime
+        k8 = (m.e8)
+        if k8:
+            k8 = float(k8.split("#")[0])
+            if e8[0] >= k8:
+                e8[0] = k8
+                e8[2] = uptime
+            if e8[1] <= k8:
+                e8[1] = k8
+                e8[3] = uptime
+        k9 = (m.e9)
+        if k9:
+            k9 = float(k9.split("#")[0])
+            if e9[0] >= k9:
+                e9[0] = k9
+                e9[2] = uptime
+            if e9[1] <= k9:
+                e9[1] = k9
+                e9[3] = uptime
+        k10 = (m.e10)
+        if k10:
+            k10 = float(k10.split("#")[0])
+            if e10[0] >= k10:
+                e10[0] = k10
+                e10[2] = uptime
+            if e10[1] <= k10:
+                e10[1] = k10
+                e10[3] = uptime
+        k11 = (m.e11)
+        if k11:
+            k11 = float(k11.split("#")[0])
+            if e11[0] >= k11:
+                e11[0] = k11
+                e11[2] = uptime
+            if e11[1] <= k11:
+                e11[1] = k11
+                e11[3] = uptime
+        k12 = (m.e12)
+        if k12:
+            k12 = float(k12.split("#")[0])
+            if e12[0] >= k12:
+                e12[0] = k12
+                e12[2] = uptime
+            if e12[1] <= k12:
+                e12[1] = k12
+                e12[3] = uptime
+        k13 = (m.e13)
+        if k13:
+            k13 = float(k13.split("#")[0])
+            if e13[0] >= k13:
+                e13[0] = k13
+                e13[2] = uptime
+            if e13[1] <= k13:
+                e13[1] = k13
+                e13[3] = uptime
+        k14 = (m.e14)
+        if k14:
+            k14 = float(k14.split("#")[0])
+            if e14[0] >= k14:
+                e14[0] = k14
+                e14[2] = uptime
+            if e14[1] <= k14:
+                e14[1] = k14
+                e14[3] = uptime
+        k15 = (m.e15)
+        if k15:
+            k15 = float(k15.split("#")[0])
+            if e15[0] >= k15:
+                e15[0] = k15
+                e15[2] = uptime
+            if e15[1] <= k15:
+                e15[1] = k15
+                e15[3] = uptime
+        k16 = (m.e16)
+        if k16:
+            k16 = float(k16.split("#")[0])
+            if e16[0] >= k16:
+                e16[0] = k16
+                e16[2] = uptime
+            if e16[1] <= k16:
+                e16[1] = k16
+                e16[3] = uptime
+        k17 = (m.e17)
+        if k17:
+            k17 = float(k17.split("#")[0])
+            if e17[0] >= k17:
+                e17[0] = k17
+                e17[2] = uptime
+            if e17[1] <= k17:
+                e17[1] = k17
+                e17[3] = uptime
+        k18 = (m.e18)
+        if k18:
+            k18 = float(k18.split("#")[0])
+            if e18[0] >= k18:
+                e18[0] = k18
+                e18[2] = uptime
+            if e18[1] <= k18:
+                e18[1] = k18
+                e18[3] = uptime
+        k19 = (m.e19)
+        if k19:
+            k19 = float(k19.split("#")[0])
+            if e19[0] >= k19:
+                e19[0] = k19
+                e19[2] = uptime
+            if e19[1] <= k19:
+                e19[1] = k19
+                e19[3] = uptime
+        k20 = (m.e20)
+        if k20:
+            k20 = float(k20.split("#")[0])
+            if e20[0] >= k20:
+                e20[0] = k20
+                e20[2] = uptime
+            if e20[1] <= k20:
+                e20[1] = k20
+                e20[3] = uptime
+        k21 = (m.e21)
+        if k21:
+            k21 = float(k21.split("#")[0])
+            if e21[0] >= k21:
+                e21[0] = k21
+                e21[2] = uptime
+            if e21[1] <= k21:
+                e21[1] = k21
+                e21[3] = uptime
+        k22 = (m.e22)
+        if k22:
+            k22 = float(k22.split("#")[0])
+            if e22[0] >= k22:
+                e22[0] = k22
+                e22[2] = uptime
+            if e22[1] <= k22:
+                e22[1] = k22
+                e22[3] = uptime
+        k23 = (m.e23)
+        if k23:
+            k23 = float(k23.split("#")[0])
+            if e23[0] >= k23:
+                e23[0] = k23
+                e23[2] = uptime
+            if e23[1] <= k23:
+                e23[1] = k23
+                e23[3] = uptime
+        k24 = (m.e24)
+        if k24:
+            k24 = float(k24.split("#")[0])
+            if e24[0] >= k24:
+                e24[0] = k24
+                e24[2] = uptime
+            if e24[1] <= k24:
+                e24[1] = k24
+                e24[3] = uptime
+        k25 = (m.e25)
+        if k25:
+            k25 = float(k25.split("#")[0])
+            if e25[0] >= k25:
+                e25[0] = k25
+                e25[2] = uptime
+            if e25[1] <= k25:
+                e25[1] = k25
+                e25[3] = uptime
+        k26 = (m.e26)
+        if k26:
+            k26 = float(k26.split("#")[0])
+            if e26[0] >= k26:
+                e26[0] = k26
+                e26[2] = uptime
+            if e26[1] <= k26:
+                e26[1] = k26
+                e26[3] = uptime
+        k27 = (m.e27)
+        if k27:
+            k27 = float(k27.split("#")[0])
+            if e27[0] >= k27:
+                e27[0] = k27
+                e27[2] = uptime
+            if e27[1] <= k27:
+                e27[1] = k27
+                e27[3] = uptime
+        k28 = (m.e28)
+        if k28:
+            k28 = float(k28.split("#")[0])
+            if e28[0] >= k28:
+                e28[0] = k28
+                e28[2] = uptime
+            if e28[1] <= k28:
+                e28[1] = k28
+                e28[3] = uptime
+        k29 = (m.e29)
+        if k29:
+            k29 = float(k29.split("#")[0])
+            if e29[0] >= k29:
+                e29[0] = k29
+                e29[2] = uptime
+            if e29[1] <= k29:
+                e29[1] = k29
+                e29[3] = uptime
+        k30 = (m.e30)
+        if k30:
+            k30 = float(k30.split("#")[0])
+            if e30[0] >= k30:
+                e30[0] = k30
+                e30[2] = uptime
+            if e30[1] <= k30:
+                e30[1] = k30
+                e30[3] = uptime
 
 
-    # 获取最新一条数据的时间然后进行时间格式转换,再获取前一天时间
-    if times:
-        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(times))
-        times_type = datetime.datetime.strptime(str(otherStyleTime), "%Y-%m-%d %H:%M:%S")
-        now = times_type - datetime.timedelta(days=1)
-    else:
-        # 获取前一天的时间点从0点到24点时间
-        now = datetime.datetime.now()- datetime.timedelta(days=1)
-
-    zero_today = now - datetime.timedelta(hours=now.hour, minutes=now.minute, seconds=now.second,microseconds=now.microsecond)
-    last_today = zero_today + datetime.timedelta(hours=23, minutes=59, seconds=59)
- 
-    start_time = int(time.mktime(time.strptime(str(zero_today), "%Y-%m-%d %H:%M:%S")))
-    end_time = int(time.mktime(time.strptime(str(last_today), "%Y-%m-%d %H:%M:%S")))
-    
-    
-    sta1 = QXZdata_New.objects.filter(device_id=device_id).filter(uptime__range=(start_time,end_time)).values()
-    data = []
-    e1 = []
-    e1_time = []
-    e2 = []
-    e2_time = []
-    e3 = []
-    e3_time = []
-    e4 = []
-    e4_time = []
-    e5 = []
-    e5_time = []
-    e6 = []
-    e6_time = []
-    e7 = []
-    e7_time = []
-    e8 = []
-    e8_time = []
-    e9 = []
-    e9_time = []
-    e10 = []
-    e10_time = []
-    e11 = []
-    e11_time = []
-    e12 = []
-    e12_time = []
-    e13 = []
-    e13_time = []
-    e14 = []
-    e14_time = []
-    e15 = []
-    e15_time = []
-    e16 = []
-    e16_time = []
-    e17 = []
-    e17_time = []
-    e18 = []
-    e18_time = []
-    e19 = []
-    e19_time = []
-    e20 = []
-    e20_time = []
-    e21 = []
-    e21_time = []
-    e22 = []
-    e22_time = []
-    e23 = []
-    e23_time = []
-    e24 = []
-    e24_time = []
-    e25 = []
-    e25_time = []
-    e26 = []
-    e26_time = []
-    e27 = []
-    e27_time = []
-    e28 = []
-    e28_time = []
-    e29 = []
-    e29_time = []
-    e30 = []
-    e30_time = []
-    for i in sta1[:200]:
-        if i['e1']:
-            e1.append(float(i['e1'].split('#')[0]))
-            e1_time.append(i['uptime'])
-        if i['e2']:
-            e2.append(float(i['e2'].split('#')[0]))
-            e2_time.append(i['uptime'])
-        if i['e3']:
-            e3.append(float(i['e3'].split('#')[0]))
-            e3_time.append(i['uptime'])
-        if i['e4']:
-            e4.append(float(i['e4'].split('#')[0]))
-            e4_time.append(i['uptime'])
-        if i['e5']:
-            e5.append(float(i['e5'].split('#')[0]))
-            e5_time.append(i['uptime'])
-        if i['e6']:
-            e6.append(float(i['e6'].split('#')[0]))
-            e6_time.append(i['uptime'])
-        if i['e7']:
-            e7.append(float(i['e7'].split('#')[0]))
-            e7_time.append(i['uptime'])
-        if i['e8']:
-            e8.append(float(i['e8'].split('#')[0]))
-            e8_time.append(i['uptime'])
-        if i['e9']:
-            e9.append(float(i['e9'].split('#')[0]))
-            e9_time.append(i['uptime'])
-        if i['e10']:
-            e10.append(float(i['e10'].split('#')[0]))
-            e10_time.append(i['uptime'])
-        if i['e11']:
-            e11.append(float(i['e11'].split('#')[0]))
-            e11_time.append(i['uptime'])
-        if i['e12']:
-            e12.append(float(i['e12'].split('#')[0]))
-            e12_time.append(i['uptime'])
-        if i['e13']:
-            e13.append(float(i['e13'].split('#')[0]))
-            e13_time.append(i['uptime'])
-        if i['e14']:
-            e14.append(float(i['e14'].split('#')[0]))
-            e14_time.append(i['uptime'])
-        if i['e15']:
-            e15.append(float(i['e15'].split('#')[0]))
-            e15_time.append(i['uptime'])
-        if i['e16']:
-            e16.append(float(i['e16'].split('#')[0]))
-            e16_time.append(i['uptime'])
-        if i['e17']:
-            e17.append(float(i['e17'].split('#')[0]))
-            e17_time.append(i['uptime'])
-        if i['e18']:
-            e18.append(float(i['e18'].split('#')[0]))
-            e18_time.append(i['uptime'])
-        if i['e19']:
-            e19.append(float(i['e19'].split('#')[0]))
-            e19_time.append(i['uptime'])
-        if i['e20']:
-            e20.append(float(i['e20'].split('#')[0]))
-            e20_time.append(i['uptime'])
-        if i['e21']:
-            e21.append(float(i['e21'].split('#')[0]))
-            e21_time.append(i['uptime'])
-        if i['e22']:
-            e22.append(float(i['e22'].split('#')[0]))
-            e22_time.append(i['uptime'])
-        if i['e23']:
-            e23.append(float(i['e23'].split('#')[0]))
-            e23_time.append(i['uptime'])
-        if i['e24']:
-            e24.append(float(i['e24'].split('#')[0]))
-            e24_time.append(i['uptime'])
-        if i['e25']:
-            e25.append(float(i['e25'].split('#')[0]))
-            e25_time.append(i['uptime'])
-        if i['e26']:
-            e26.append(float(i['e26'].split('#')[0]))
-            e26_time.append(i['uptime'])
-        if i['e27']:
-            e27.append(float(i['e27'].split('#')[0]))
-            e27_time.append(i['uptime'])
-        if i['e28']:
-            e28.append(float(i['e28'].split('#')[0]))
-            e28_time.append(i['uptime'])
-        if i['e29']:
-            e29.append(float(i['e29'].split('#')[0]))
-            e29_time.append(i['uptime'])
-        if i['e30']:
-            e30.append(float(i['e30'].split('#')[0]))
-            e30_time.append(i['uptime'])
-    
-    
     conf = {}
     x = MongoQXZ_Conf.objects.filter(device_id=device_id).first()
     if x:
@@ -692,98 +788,271 @@ def qxz_day_data(request):
                 "e19":x.e19,"e20":x.e20,"e21":x.e21,"e22":x.e22,
                 "e23":x.e23,"e24":x.e24,"e25":x.e25,"e26":x.e26,
                 "e27":x.e27,"e28":x.e28,"e29":x.e29,"e30":x.e30}
-    data = []
     try:
-        if e1 != []:
-            config = qxz_configs(conf,i['e1'],"e1")
-            data.append({"max":max(e1),"maxtime":e1_time[e1.index(max(e1))],"min":min(e1),"mintime":e1_time[e1.index(min(e1))],"enum":config,"ekey":i['e1'].split('#')[2]})
-        if e2 != []:
-            config = qxz_configs(conf,i['e2'],"e2")
-            data.append({"max":max(e2),"maxtime":e2_time[e2.index(max(e2))],"min":min(e2),"mintime":e2_time[e2.index(min(e2))],"enum":config,"ekey":i['e2'].split('#')[2]})
-        if e3 != []:
-            config = qxz_configs(conf,i['e3'],"e3")
-            data.append({"max":max(e3),"maxtime":e3_time[e3.index(max(e3))],"min":min(e3),"mintime":e3_time[e3.index(min(e3))],"enum":config,"ekey":i['e3'].split('#')[2]})
-        if e4 != []:
-            config = qxz_configs(conf,i['e4'],"e4")
-            data.append({"max":max(e4),"maxtime":e4_time[e4.index(max(e4))],"min":min(e4),"mintime":e4_time[e4.index(min(e4))],"enum":config,"ekey":i['e4'].split('#')[2]})
-        if e5 != []:
-            config = qxz_configs(conf,i['e5'],"e5")
-            data.append({"max":max(e5),"maxtime":e5_time[e5.index(max(e5))],"min":min(e5),"mintime":e5_time[e5.index(min(e5))],"enum":config,"ekey":i['e5'].split('#')[2]})
-        if e6 != []:
-            config = qxz_configs(conf,i['e6'],"e6")
-            data.append({"max":max(e6),"maxtime":e6_time[e6.index(max(e6))],"min":min(e6),"mintime":e6_time[e6.index(min(e6))],"enum":config,"ekey":i['e6'].split('#')[2]})
-        if e7 != []:
-            config = qxz_configs(conf,i['e7'],"e7")
-            data.append({"max":max(e7),"maxtime":e7_time[e7.index(max(e7))],"min":min(e7),"mintime":e7_time[e7.index(min(e7))],"enum":config,"ekey":i['e7'].split('#')[2]})
-        if e8 != []:
-            config = qxz_configs(conf,i['e8'],"e8")
-            data.append({"max":max(e8),"maxtime":e8_time[e8.index(max(e8))],"min":min(e8),"mintime":e8_time[e8.index(min(e8))],"enum":config,"ekey":i['e8'].split('#')[2]})
-        if e9 != []:
-            config = qxz_configs(conf,i['e9'],"e9")
-            data.append({"max":max(e9),"maxtime":e9_time[e9.index(max(e9))],"min":min(e9),"mintime":e9_time[e9.index(min(e9))],"enum":config,"ekey":i['e9'].split('#')[2]})
-        if e10 != []:
-            config = qxz_configs(conf,i['e10'],"e10")
-            data.append({"max":max(e10),"maxtime":e10_time[e10.index(max(e10))],"min":min(e10),"mintime":e10_time[e10.index(min(e10))],"enum":config,"ekey":i['e10'].split('#')[2]})
-        if e11 != []:
-            config = qxz_configs(conf,i['e11'],"e11")
-            data.append({"max":max(e11),"maxtime":e11_time[e11.index(max(e11))],"min":min(e11),"mintime":e11_time[e11.index(min(e11))],"enum":config,"ekey":i['e11'].split('#')[2]})
-        if e12 != []:
-            config = qxz_configs(conf,i['e12'],"e12")
-            data.append({"max":max(e12),"maxtime":e12_time[e12.index(max(e12))],"min":min(e12),"mintime":e12_time[e12.index(min(e12))],"enum":config,"ekey":i['e12'].split('#')[2]})
-        if e13 != []:
-            config = qxz_configs(conf,i['e13'],"e13")
-            data.append({"max":max(e13),"maxtime":e13_time[e13.index(max(e13))],"min":min(e13),"mintime":e13_time[e13.index(min(e13))],"enum":config,"ekey":i['e13'].split('#')[2]})
-        if e14 != []:
-            config = qxz_configs(conf,i['e14'],"e14")
-            data.append({"max":max(e14),"maxtime":e14_time[e14.index(max(e14))],"min":min(e14),"mintime":e14_time[e14.index(min(e14))],"enum":config,"ekey":i['e14'].split('#')[2]})
-        if e15 != []:
-            config = qxz_configs(conf,i['e15'],"e15")
-            data.append({"max":max(e15),"maxtime":e15_time[e15.index(max(e15))],"min":min(e15),"mintime":e15_time[e15.index(min(e15))],"enum":config,"ekey":i['e15'].split('#')[2]})
-        if e16 != []:
-            config = qxz_configs(conf,i['e16'],"e16")
-            data.append({"max":max(e16),"maxtime":e16_time[e16.index(max(e16))],"min":min(e16),"mintime":e16_time[e16.index(min(e16))],"enum":config,"ekey":i['e16'].split('#')[2]})
-        if e17 != []:
-            config = qxz_configs(conf,i['e17'],"e17")
-            data.append({"max":max(e17),"maxtime":e17_time[e17.index(max(e17))],"min":min(e17),"mintime":e17_time[e17.index(min(e17))],"enum":config,"ekey":i['e17'].split('#')[2]})
-        if e18 != []:
-            config = qxz_configs(conf,i['e18'],"e18")
-            data.append({"max":max(e18),"maxtime":e18_time[e18.index(max(e18))],"min":min(e18),"mintime":e18_time[e18.index(min(e18))],"enum":config,"ekey":i['e18'].split('#')[2]})
-        if e19 != []:
-            config = qxz_configs(conf,i['e19'],"e19")
-            data.append({"max":max(e19),"maxtime":e19_time[e19.index(max(e19))],"min":min(e19),"mintime":e19_time[e19.index(min(e19))],"enum":config,"ekey":i['e19'].split('#')[2]})
-        if e20 != []:
-            config = qxz_configs(conf,i['e20'],"e20")
-            data.append({"max":max(e20),"maxtime":e20_time[e20.index(max(e20))],"min":min(e20),"mintime":e20_time[e20.index(min(e20))],"enum":config,"ekey":i['e20'].split('#')[2]})
-        if e21 != []:
-            config = qxz_configs(conf,i['e21'],"e21")
-            data.append({"max":max(e21),"maxtime":e21_time[e21.index(max(e21))],"min":min(e21),"mintime":e21_time[e21.index(min(e21))],"enum":config,"ekey":i['e21'].split('#')[2]})
-        if e22 != []:
-            config = qxz_configs(conf,i['e22'],"e22")
-            data.append({"max":max(e22),"maxtime":e22_time[e22.index(max(e22))],"min":min(e22),"mintime":e22_time[e22.index(min(e22))],"enum":config,"ekey":i['e22'].split('#')[2]})
-        if e23 != []:
-            config = qxz_configs(conf,i['e23'],"e23")
-            data.append({"max":max(e23),"maxtime":e23_time[e23.index(max(e23))],"min":min(e23),"mintime":e23_time[e23.index(min(e23))],"enum":config,"ekey":i['e23'].split('#')[2]})
-        if e24 != []:
-            config = qxz_configs(conf,i['e24'],"e24")
-            data.append({"max":max(e24),"maxtime":e24_time[e24.index(max(e24))],"min":min(e24),"mintime":e24_time[e24.index(min(e24))],"enum":config,"ekey":i['e24'].split('#')[2]})
-        if e25 != []:
-            config = qxz_configs(conf,i['e25'],"e25")
-            data.append({"max":max(e25),"maxtime":e25_time[e25.index(max(e25))],"min":min(e25),"mintime":e25_time[e25.index(min(e25))],"enum":config,"ekey":i['e25'].split('#')[2]})
-        if e26 != []:
-            config = qxz_configs(conf,i['e26'],"e26")
-            data.append({"max":max(e26),"maxtime":e26_time[e26.index(max(e26))],"min":min(e26),"mintime":e26_time[e26.index(min(e26))],"enum":config,"ekey":i['e26'].split('#')[2]})
-        if e27 != []:
-            config = qxz_configs(conf,i['e27'],"e27")
-            data.append({"max":max(e27),"maxtime":e27_time[e27.index(max(e27))],"min":min(e27),"mintime":e27_time[e27.index(min(e27))],"enum":config,"ekey":i['e27'].split('#')[2]})
-        if e28 != []:
-            config = qxz_configs(conf,i['e28'],"e28")
-            data.append({"max":max(e28),"maxtime":e28_time[e28.index(max(e28))],"min":min(e28),"mintime":e28_time[e28.index(min(e28))],"enum":config,"ekey":i['e28'].split('#')[2]})
-        if e29 != []:
-            config = qxz_configs(conf,i['e29'],"e29")
-            data.append({"max":max(e29),"maxtime":e29_time[e29.index(max(e29))],"min":min(e29),"mintime":e29_time[e29.index(min(e29))],"enum":config,"ekey":i['e29'].split('#')[2]})
-        if e30 != []:
-            config = qxz_configs(conf,i['e30'],"e30")
-            data.append({"max":max(e30),"maxtime":e30_time[e30.index(max(e30))],"min":min(e30),"mintime":e30_time[e30.index(min(e30))],"enum":config,"ekey":i['e30'].split('#')[2]})
+        data = []
+        for k, v in conf.items():
+            if v:
+                if k == "e1" and e1[-1] != 0:
+                    data.append({
+                        "max": e1[1],
+                        "maxtime": e1[3],
+                        "min": e1[0],
+                        "mintime": e1[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e1"
+                    })
+                if k == "e2" and e2[-1] != 0:
+                    data.append({
+                        "max": e2[1],
+                        "maxtime": e2[3],
+                        "min": e2[0],
+                        "mintime": e2[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e2"
+                    })
+                if k == "e3" and e3[-1] != 0:
+                    data.append({
+                        "max": e3[1],
+                        "maxtime": e3[3],
+                        "min": e3[0],
+                        "mintime": e3[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e3"
+                    })
+                if k == "e4" and e4[-1] != 0:
+                    data.append({
+                        "max": e4[1],
+                        "maxtime": e4[3],
+                        "min": e4[0],
+                        "mintime": e4[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e4"
+                    })
+                if k == "e5" and e5[-1] != 0:
+                    data.append({
+                        "max": e5[1],
+                        "maxtime": e5[3],
+                        "min": e5[0],
+                        "mintime": e5[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e5"
+                    })
+                if k == "e6" and e6[-1] != 0:
+                    data.append({
+                        "max": e6[1],
+                        "maxtime": e6[3],
+                        "min": e6[0],
+                        "mintime": e6[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e6"
+                    })
+                if k == "e7" and e7[-1] != 0:
+                    data.append({
+                        "max": e7[1],
+                        "maxtime": e7[3],
+                        "min": e7[0],
+                        "mintime": e7[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e7"
+                    })
+                if k == "e8" and e8[-1] != 0:
+                    data.append({
+                        "max": e8[1],
+                        "maxtime": e8[3],
+                        "min": e8[0],
+                        "mintime": e8[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e8"
+                    })
+                if k == "e9" and e9[-1] != 0:
+                    data.append({
+                        "max": e9[1],
+                        "maxtime": e9[3],
+                        "min": e9[0],
+                        "mintime": e9[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e9"
+                    })
+                if k == "e10" and e10[-1] != 0:
+                    data.append({
+                        "max": e10[1],
+                        "maxtime": e10[3],
+                        "min": e10[0],
+                        "mintime": e10[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e10"
+                    })
+                if k == "e11" and e11[-1] != 0:
+                    data.append({
+                        "max": e11[1],
+                        "maxtime": e11[3],
+                        "min": e11[0],
+                        "mintime": e11[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e11"
+                    })
+                if k == "e12" and e12[-1] != 0:
+                    data.append({
+                        "max": e12[1],
+                        "maxtime": e12[3],
+                        "min": e12[0],
+                        "mintime": e12[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e12"
+                    })
+                if k == "e13" and e13[-1] != 0:
+                    data.append({
+                        "max": e13[1],
+                        "maxtime": e13[3],
+                        "min": e13[0],
+                        "mintime": e13[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e13"
+                    })
+                if k == "e14" and e14[-1] != 0:
+                    data.append({
+                        "max": e14[1],
+                        "maxtime": e14[3],
+                        "min": e14[0],
+                        "mintime": e14[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e14"
+                    })
+                if k == "e15" and e15[-1] != 0:
+                    data.append({
+                        "max": e15[1],
+                        "maxtime": e15[3],
+                        "min": e15[0],
+                        "mintime": e15[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e15"
+                    })
+                if k == "e16" and e16[-1] != 0:
+                    data.append({
+                        "max": e16[1],
+                        "maxtime": e16[3],
+                        "min": e16[0],
+                        "mintime": e16[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e16"
+                    })
+                if k == "e17" and e17[-1] != 0:
+                    data.append({
+                        "max": e17[1],
+                        "maxtime": e17[3],
+                        "min": e17[0],
+                        "mintime": e17[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e17"
+                    })
+                if k == "e18" and e18[-1] != 0:
+                    data.append({
+                        "max": e18[1],
+                        "maxtime": e18[3],
+                        "min": e18[0],
+                        "mintime": e18[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e18"
+                    })
+                if k == "e19" and e19[-1] != 0:
+                    data.append({
+                        "max": e19[1],
+                        "maxtime": e19[3],
+                        "min": e19[0],
+                        "mintime": e19[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e19"
+                    })
+                if k == "e20" and e20[-1] != 0:
+                    data.append({
+                        "max": e20[1],
+                        "maxtime": e20[3],
+                        "min": e20[0],
+                        "mintime": e20[2],
+                        "enum": [
+                            "",
+                            (v.split("#"))[0],
+                            (v.split("#"))[1]
+                        ],
+                        "ekey": "e20"
+                    })
+
     except Exception as e:
         logger.error(f"气象站24h数据:{e}")
         raise PortError(" ", "计算数据失败,稍后重试")