Kaynağa Gözat

first commit

root 2 yıl önce
işleme
a49573aa58
48 değiştirilmiş dosya ile 24669 ekleme ve 0 silme
  1. BIN
      __pycache__/config_info_model.cpython-311.pyc
  2. BIN
      __pycache__/config_info_model.cpython-38.pyc
  3. BIN
      __pycache__/mqtt_client.cpython-311.pyc
  4. BIN
      __pycache__/mqtt_client.cpython-38.pyc
  5. 65 0
      config/config.json
  6. 168 0
      config/jinfeng/air_north.json
  7. 3349 0
      config/jinfeng/array/Untitled-1.json
  8. 3349 0
      config/jinfeng/array/compressed_air_temp.json
  9. 3349 0
      config/jinfeng/array/pump_1125_temp.json
  10. 3349 0
      config/jinfeng/array/pump_18m_temp.json
  11. 3349 0
      config/jinfeng/array/pump_center_temp.json
  12. 12 0
      config/jinfeng/array/transport_arr.json
  13. 3349 0
      config/jinfeng/array/transport_temp.json
  14. 474 0
      config/jinfeng/compressed_air.json
  15. 540 0
      config/jinfeng/power_center.json
  16. 71 0
      config/jinfeng/pump_1125m.json
  17. 65 0
      config/jinfeng/pump_18m.json
  18. 346 0
      config/jinfeng/pump_center.json
  19. 49 0
      config/jinfeng/transport.json
  20. 245 0
      config/jinfeng/wind_center.json
  21. 389 0
      config/jinfeng/wind_north.json
  22. 65 0
      config_info_model.py
  23. 11 0
      data_handle.py
  24. 52 0
      jf_air_north.py
  25. 108 0
      jf_compressed_air.py
  26. 104 0
      jf_power_center.py
  27. 97 0
      jf_pump_1125m.py
  28. 97 0
      jf_pump_18m.py
  29. 98 0
      jf_pump_18m_a.py
  30. 104 0
      jf_pump_center.py
  31. 104 0
      jf_transport.py
  32. 109 0
      jf_wind_center.py
  33. 109 0
      jf_wind_north.py
  34. 11 0
      main.py
  35. 59 0
      mqtt_client.py
  36. BIN
      opctags.xlsx
  37. 52 0
      run/jinfeng/jf_air_north.py
  38. 108 0
      run/jinfeng/jf_compressed_air.py
  39. 104 0
      run/jinfeng/jf_power_center.py
  40. 97 0
      run/jinfeng/jf_pump_1125m.py
  41. 97 0
      run/jinfeng/jf_pump_18m.py
  42. 98 0
      run/jinfeng/jf_pump_18m_a.py
  43. 104 0
      run/jinfeng/jf_pump_center.py
  44. 104 0
      run/jinfeng/jf_transport.py
  45. 109 0
      run/jinfeng/jf_wind_center.py
  46. 113 0
      run/jinfeng/jf_wind_north.py
  47. 37 0
      test.py
  48. BIN
      ~$opctags.xlsx

BIN
__pycache__/config_info_model.cpython-311.pyc


BIN
__pycache__/config_info_model.cpython-38.pyc


BIN
__pycache__/mqtt_client.cpython-311.pyc


BIN
__pycache__/mqtt_client.cpython-38.pyc


+ 65 - 0
config/config.json

@@ -0,0 +1,65 @@
+{
+    "redis_conf": {
+      "ip": "127.0.0.1",
+      "username": "",
+      "password": ""
+    },
+    "sys_conf": {
+      "jinfeng": {
+        "pump_center": {
+          "mqtt_server_ip": "10.71.146.182",
+          "username": "admin",
+          "password": "longruan123",
+          "sys_key": "pump_center",
+          "sys_name": "中央水泵房",
+          "file_name": "pump_center.json",
+          "path": "./config/jinfeng"
+        },
+        "compressed_air": {
+          "mqtt_server_ip": "10.71.146.182",
+          "username": "admin",
+          "password": "longruan123",
+          "sys_key": "compressed_air",
+          "sys_name": "压风",
+          "file_name": "compressed_air.json",
+          "path": "./config/jinfeng"
+        },
+        "power_center": {
+          "mqtt_server_ip": "10.71.146.182",
+          "username": "admin",
+          "password": "longruan123",
+          "sys_key": "power_center",
+          "sys_name": "中央变电所",
+          "file_name": "power_center.json",
+          "path": "./config/jinfeng"
+        },
+        "wind_center": {
+          "mqtt_server_ip": "10.71.146.182",
+          "username": "admin",
+          "password": "longruan123",
+          "sys_key": "wind_center",
+          "sys_name": "中部通风机",
+          "file_name": "wind_center.json",
+          "path": "./config/jinfeng"
+        },
+        "wind_north": {
+          "mqtt_server_ip": "10.71.146.182",
+          "username": "admin",
+          "password": "longruan123",
+          "sys_key": "wind_north",
+          "sys_name": "中部通风机",
+          "file_name": "wind_north.json",
+          "path": "./config/jinfeng"
+        }
+      },
+      "wind_1": {
+        "sys_key": "wind_1",
+        "sys_name": "主通风系统",
+        "file_name": "wind_1.json"
+      },
+      "wind_2": {
+        "sys_key": "wind_2",
+        "sys_name": "东部主通风"
+      }
+    }
+}

+ 168 - 0
config/jinfeng/air_north.json

@@ -0,0 +1,168 @@
+{
+    "sys_id": "air_north",
+    "sys_name": "压风",
+    "sys_path": "1\\1\\10",
+    "sys_point": {
+      "common":[
+        {
+          "key":"JF.Device1.YF.YF_ZGYL",
+          "name":"总管压力",
+          "unit":"Mpa",
+          "val":""
+        }
+      ],
+      "commpressed_air":[
+        {
+          "key":"JF.Device1.YF.YF_F1_YXFK",
+          "name":"1号压风机",
+          "state":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F1_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F1_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F2_YXFK",
+          "name":"2号压风机",
+          "state":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F2_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F2_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        }
+      ]
+    }
+    
+  }

Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/Untitled-1.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/compressed_air_temp.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/pump_1125_temp.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/pump_18m_temp.json


Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/pump_center_temp.json


+ 12 - 0
config/jinfeng/array/transport_arr.json

@@ -0,0 +1,12 @@
+[
+    "JF.Device1.PD101.PD101_BP1_YXFK",
+    "JF.Device1.PD101.PD101_SD",
+    "JF.Device1.PD102.PD102_SD",
+    "JF.Device1.PD102.PD102_YXFK",
+    "JF.Device1.PDBY.PDBY_SD",
+    "JF.Device1.PDBY.PDBY_YXFK"
+
+    ,"JF.Device1.BDZY.BDZY_G5100_COS"
+    ,"JF.Device1.BDZY.BDZY_G5100_HZ"
+    ,"JF.Device1.BDZY.BDZY_G5100_Ia"
+]

Dosya farkı çok büyük olduğundan ihmal edildi
+ 3349 - 0
config/jinfeng/array/transport_temp.json


+ 474 - 0
config/jinfeng/compressed_air.json

@@ -0,0 +1,474 @@
+{
+    "sys_id": "compressed_air",
+    "sys_name": "压风",
+    "sys_path": "1\\1\\10",
+    "sys_point": {
+      "common":[
+        {
+          "key":"JF.Device1.YF.YF_ZGYL",
+          "name":"总管压力",
+          "unit":"Mpa",
+          "val":""
+        }
+      ],
+      "commpressed_air":[
+        {
+          "key":"JF.Device1.YF.YF_F1_YXFK",
+          "name":"1号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F1_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F1_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F1_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F2_YXFK",
+          "name":"2号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F2_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F2_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F2_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F3_YXFK",
+          "name":"3号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F3_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F3_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F3_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F4_YXFK",
+          "name":"4号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F4_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F4_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F4_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F5_YXFK",
+          "name":"5号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F5_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F5_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F5_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.YF.YF_F6_YXFK",
+          "name":"6号压风机",
+          "state":"",
+          "val":"",
+          "run_parameter":[
+            {
+              "key":"JF.Device1.YF.YF_F6_PQYL",
+              "name":"排气压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_PQWD",
+              "name":"排气温度",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_QGYL",
+              "name":"储气罐压力",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_QGWD",
+              "name":"储气罐温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_DDL",
+              "name":"电机电流",
+              "val":"",
+              "unit":"A"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_DQZW",
+              "name":"前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_DHZW",
+              "name":"后轴温度",
+              "val":"",
+              "unit":"℃"
+            }
+          ],
+          "warn_state":[
+            {
+              "key":"JF.Device1.YF.YF_F6_KLBJ",
+              "name":"空滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_YFBJ",
+              "name":"油分报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_YLBJ",
+              "name":"油滤报警",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.YF.YF_F6_YYBJ",
+              "name":"油压报警",
+              "val":"",
+              "unit":""
+            }
+          ]
+        }
+      ]
+    }
+    
+  }

+ 540 - 0
config/jinfeng/power_center.json

@@ -0,0 +1,540 @@
+{
+    "sys_id": "power_center",
+    "sys_name": "中央变电所",
+    "sys_path": "1\\1\\1",
+    "sys_point": {
+      "switch": [
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1_5_HZ",
+          "name":"1-5",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1_4_HZ",
+          "name":"1-4",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1_3_HZ",
+          "name":"1-3",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1_2_HZ",
+          "name":"1-2",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1_1_HZ",
+          "name":"1-1",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1JX_HZ",
+          "name":"1#",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K1JX_HZ",
+          "name":"2#",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K2_1_HZ",
+          "name":"2-1",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K2_2_HZ",
+          "name":"2-2",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K2_3_HZ",
+          "name":"2-3",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BDZY.BDZY_K2_4_HZ",
+          "name":"2-4",
+          "unit": "",
+          "val": ""
+        }
+      ],
+      "power_parameter": [
+        {
+          "key":"JF.Device1.BDZY.BDZY_K1_5_HZ",
+          "name":"1-5",
+          "val":"",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_5_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"1-4",
+          "data": [
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_4_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"1-3",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_3_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_3_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_3_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_3_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_3_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"1-2",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_2_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"1-1",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1_1_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"1#",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"2#",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2JX_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2JX_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2JX_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2JX_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2JX_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K1JX_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"2-1",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_1_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"2-2",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_2_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"2-3",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_3_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        },
+        {
+          "key":"",
+          "name":"2-4",
+          "data":[
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_Ua",
+              "name":"Ua(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_Uc",
+              "name":"Uc(V)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_Ia",
+              "name":"Ia(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_Ic",
+              "name":"Ic(A)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_P",
+              "name":"P(kW)",
+              "val":"",
+              "unit":""
+            },
+            {
+              "key":"JF.Device1.BDZY.BDZY_K2_4_Q",
+              "name":"Q(kvar)",
+              "val":"",
+              "unit":""
+            }
+          ]
+        }
+      ]
+    }
+  }

+ 71 - 0
config/jinfeng/pump_1125m.json

@@ -0,0 +1,71 @@
+{
+    "sys_id": "pump_1125m",
+    "sys_name": "1125水泵房",
+    "sys_path": "1\\1\\3",
+    "sys_point": {
+      "current": [
+        {
+          "key": "JF.Device1.BF1125.BF1125_G1_SSLL",
+          "name":"1号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_G2_SSLL",
+          "name":"2号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_G3_SSLL",
+          "name":"3号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_C1_SW",
+          "name":"1号水仓水位",
+          "unit": "m",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_C2_SW",
+          "name":"2号水仓水位",
+          "unit": "m",
+          "val": ""
+        }
+      ],
+      "pump": [
+        {
+          "key": "JF.Device1.BF1125.BF1125_B1_YXFK",
+          "name":"1号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_B2_YXFK",
+          "name":"2号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_B3_YXFK",
+          "name":"3号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_B4_YXFK",
+          "name":"4号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF1125.BF1125_B5_YXFK",
+          "name":"5号泵运行状态",
+          "unit": "",
+          "val": ""
+        }
+      ]
+    }
+  }

+ 65 - 0
config/jinfeng/pump_18m.json

@@ -0,0 +1,65 @@
+{
+    "sys_id": "pump_18m",
+    "sys_name": "18煤水泵房",
+    "sys_path": "1\\1\\11",
+    "sys_point": {
+      "current": [
+        {
+          "key": "JF.Device1.BF18.BF18_G1_SSLL",
+          "name":"1号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_G2_SSLL",
+          "name":"2号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_C1_SW",
+          "name":"1号水仓水位",
+          "unit": "m",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_C2_SW",
+          "name":"2号水仓水位",
+          "unit": "m",
+          "val": ""
+        }
+      ],
+      "pump": [
+        {
+          "key": "JF.Device1.BF18.BF18_B1_YXFK",
+          "name":"1号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_B2_YXFK",
+          "name":"2号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_B3_YXFK",
+          "name":"3号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_B4_YXFK",
+          "name":"4号泵运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BF18.BF18_B5_YXFK",
+          "name":"5号泵运行状态",
+          "unit": "",
+          "val": ""
+        }
+      ]
+    }
+  }

+ 346 - 0
config/jinfeng/pump_center.json

@@ -0,0 +1,346 @@
+{
+    "sys_id": "pump_center",
+    "sys_name": "中央水泵房",
+    "sys_path": "1\\1\\2",
+    "sys_point": {
+      "common": [
+        {
+          "key": "JF.Device1.BFZY.BFZY_G1_SSLL",
+          "name":"1号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BFZY.BFZY_G2_SSLL",
+          "name":"2号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BFZY.BFZY_G3_SSLL",
+          "name":"3号管路流量",
+          "unit": "m³/h",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BFZY.BFZY_C1_SW",
+          "name":"1号水仓水位",
+          "unit": "m",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.BFZY.BFZY_C2_SW",
+          "name":"2号水仓水位",
+          "unit": "m",
+          "val": ""
+        }
+      ],
+      "water_pump": [
+        {
+          "key":"JF.Device1.BFZY.BFZY_B1_YXFK",
+          "name":"1号水泵",
+          "val":"",
+          "parameter":[
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_DQZW",
+              "name":"电机前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_DHZW",
+              "name":"电机后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_DUXW",
+              "name":"电机U相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_DVXW",
+              "name":"电机V相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_DWXW",
+              "name":"电机W相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_QZW",
+              "name":"水泵前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_HZW",
+              "name":"水泵后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_ZY",
+              "name":"正压",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B1_FY",
+              "name":"负压",
+              "val":"",
+              "unit":"kPa"
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.BFZY.BFZY_B2_YXFK",
+          "name":"2号水泵",
+          "val":"",
+          "parameter":[
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_DQZW",
+              "name":"电机前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_DHZW",
+              "name":"电机后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_DUXW",
+              "name":"电机U相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_DVXW",
+              "name":"电机V相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_DWXW",
+              "name":"电机W相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_QZW",
+              "name":"水泵前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_HZW",
+              "name":"水泵后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_ZY",
+              "name":"正压",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B2_FY",
+              "name":"负压",
+              "val":"",
+              "unit":"kPa"
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.BFZY.BFZY_B3_YXFK",
+          "name":"3号水泵",
+          "val":"",
+          "parameter":[
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_DQZW",
+              "name":"电机前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_DHZW",
+              "name":"电机后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_DUXW",
+              "name":"电机U相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_DVXW",
+              "name":"电机V相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_DWXW",
+              "name":"电机W相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_QZW",
+              "name":"水泵前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_HZW",
+              "name":"水泵后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_ZY",
+              "name":"正压",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B3_FY",
+              "name":"负压",
+              "val":"",
+              "unit":"kPa"
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.BFZY.BFZY_B4_YXFK",
+          "name":"4号水泵",
+          "val":"",
+          "parameter":[
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_DQZW",
+              "name":"电机前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_DHZW",
+              "name":"电机后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_DUXW",
+              "name":"电机U相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_DVXW",
+              "name":"电机V相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_DWXW",
+              "name":"电机W相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_QZW",
+              "name":"水泵前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_HZW",
+              "name":"水泵后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_ZY",
+              "name":"正压",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B4_FY",
+              "name":"负压",
+              "val":"",
+              "unit":"kPa"
+            }
+          ]
+        },
+        {
+          "key":"JF.Device1.BFZY.BFZY_B5_YXFK",
+          "name":"5号水泵",
+          "val":"",
+          "parameter":[
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_DQZW",
+              "name":"电机前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_DHZW",
+              "name":"电机后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_DUXW",
+              "name":"电机U相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_DVXW",
+              "name":"电机V相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_DWXW",
+              "name":"电机W相温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_QZW",
+              "name":"水泵前轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_HZW",
+              "name":"水泵后轴温度",
+              "val":"",
+              "unit":"℃"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_ZY",
+              "name":"正压",
+              "val":"",
+              "unit":"Mpa"
+            },
+            {
+              "key":"JF.Device1.BFZY.BFZY_B5_FY",
+              "name":"负压",
+              "val":"",
+              "unit":"kPa"
+            }
+          ]
+        }
+      ]
+    }
+  }

+ 49 - 0
config/jinfeng/transport.json

@@ -0,0 +1,49 @@
+{
+    "sys_id": "transport",
+    "sys_name": "主运输系统",
+    "sys_path": "1\\1\\9",
+    "sys_point": {
+      "101": [
+        {
+          "key": "JF.Device1.PD101.PD101_BP1_YXFK",
+          "name":"运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.PD101.PD101_SD",
+          "name":"运行速度",
+          "unit": "m/s",
+          "val": ""
+        }
+      ],
+      "102": [
+        {
+          "key": "JF.Device1.PD102.PD102_YXFK",
+          "name":"运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.PD102.PD102_SD",
+          "name":"运行速度",
+          "unit": "m/s",
+          "val": ""
+        }
+      ],
+      "by": [
+        {
+          "key": "JF.Device1.PDBY.PDBY_YXFK",
+          "name":"运行状态",
+          "unit": "",
+          "val": ""
+        },
+        {
+          "key": "JF.Device1.PDBY.PDBY_SD",
+          "name":"运行速度",
+          "unit": "m/s",
+          "val": ""
+        }
+      ]
+    }
+  }

+ 245 - 0
config/jinfeng/wind_center.json

@@ -0,0 +1,245 @@
+{
+    "sys_id": "wind_center",
+    "sys_name": "中部通风机",
+    "sys_path": "1\\1\\6",
+    "sys_point": [
+      {
+        "key":"",
+        "name":"1号通风机",
+        "val":"",
+        "statie_list":[
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_M1FY",
+            "name":"截面1负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_M2FY",
+            "name":"截面2负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_JY",
+            "name":"静压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_QY",
+            "name":"全压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_FS",
+            "name":"风速",
+            "unit":"m/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F1_FL",
+            "name":"风量",
+            "unit":"m³/min",
+            "val":""
+          }
+        ],
+        "electric_parameter_1":[
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1YXFK",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1SDT",
+            "name":"当前上电时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1YXT",
+            "name":"当前运行时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1YXPL",
+            "name":"变频频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1GG",
+            "name":"故障信息",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1YXZT",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          }
+        ],
+        "electric_parameter_2":[
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B1YXFK",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B2SDT",
+            "name":"当前上电时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B2YXT",
+            "name":"当前运行时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B2YXPL",
+            "name":"变频频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B2GG",
+            "name":"故障信息",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F1_B2YXZT",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          }
+        ]
+      },
+      {
+        "key":"",
+        "name":"2号通风机",
+        "val":"",
+        "statie_list":[
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_M1FY",
+            "name":"截面1负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_M2FY",
+            "name":"截面2负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_JY",
+            "name":"静压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_QY",
+            "name":"全压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_FS",
+            "name":"风速",
+            "unit":"m/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB2.TFZB_F2_FL",
+            "name":"风量",
+            "unit":"m³/min",
+            "val":""
+          }
+        ],
+        "electric_parameter_1":[
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1YXFK",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1SDT",
+            "name":"当前上电时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1YXT",
+            "name":"当前运行时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1YXPL",
+            "name":"变频频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1GG",
+            "name":"故障信息",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1YXZT",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          }
+        ],
+        "electric_parameter_2":[
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B1YXFK",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B2SDT",
+            "name":"当前上电时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B2YXT",
+            "name":"当前运行时间",
+            "unit":"min",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B2YXPL",
+            "name":"变频频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B2GG",
+            "name":"故障信息",
+            "unit":"",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFZB1.TFZB_F2_B2YXZT",
+            "name":"运行状态",
+            "unit":"",
+            "val":""
+          }
+        ]
+      }
+    ]
+  }

+ 389 - 0
config/jinfeng/wind_north.json

@@ -0,0 +1,389 @@
+{
+    "sys_id": "wind_north",
+    "sys_name": "北部通风机",
+    "sys_path": "1\\1\\5",
+    "sys_point": [
+      {
+        "key":"",
+        "name":"1号通风机",
+        "val":"",
+        "statie_list":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FY",
+            "name":"负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_QY",
+            "name":"全压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FS",
+            "name":"风速",
+            "unit":"m/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FL",
+            "name":"风量",
+            "unit":"m³/min",
+            "val":""
+          }
+        ],
+        "electric_parameter_1":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1QZW",
+            "name":"前轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1HZW",
+            "name":"后轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ1",
+            "name":"定子温度1",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ2",
+            "name":"定子温度2",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ3",
+            "name":"定子温度3",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1XZZ",
+            "name":"水平振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1YZZ",
+            "name":"垂直振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCPL",
+            "name":"输出频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SRDY",
+            "name":"输入电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SRDL",
+            "name":"输入电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCDY",
+            "name":"输出电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCDL",
+            "name":"输出电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCGL",
+            "name":"输出功率",
+            "unit":"kW",
+            "val":""
+          }
+        ],
+        "electric_parameter_2":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2QZW",
+            "name":"前轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2HZW",
+            "name":"后轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ1",
+            "name":"定子温度1",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ2",
+            "name":"定子温度2",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ3",
+            "name":"定子温度3",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2XZZ",
+            "name":"水平振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2YZZ",
+            "name":"垂直振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCPL",
+            "name":"输出频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SRDY",
+            "name":"输入电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SRDL",
+            "name":"输入电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCDY",
+            "name":"输出电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCDL",
+            "name":"输出电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCGL",
+            "name":"输出功率",
+            "unit":"kW",
+            "val":""
+          }
+        ]
+      },
+      {
+        "key":"",
+        "name":"1号通风机",
+        "val":"",
+        "statie_list":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FY",
+            "name":"负压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_QY",
+            "name":"全压",
+            "unit":"Pa",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FS",
+            "name":"风速",
+            "unit":"m/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_FL",
+            "name":"风量",
+            "unit":"m³/min",
+            "val":""
+          }
+        ],
+        "electric_parameter_1":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1QZW",
+            "name":"前轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1HZW",
+            "name":"后轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ1",
+            "name":"定子温度1",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ2",
+            "name":"定子温度2",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1RZ3",
+            "name":"定子温度3",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1XZZ",
+            "name":"水平振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1YZZ",
+            "name":"垂直振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCPL",
+            "name":"输出频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SRDY",
+            "name":"输入电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SRDL",
+            "name":"输入电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCDY",
+            "name":"输出电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCDL",
+            "name":"输出电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D1SCGL",
+            "name":"输出功率",
+            "unit":"kW",
+            "val":""
+          }
+        ],
+        "electric_parameter_2":[
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2QZW",
+            "name":"前轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2HZW",
+            "name":"后轴温度",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ1",
+            "name":"定子温度1",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ2",
+            "name":"定子温度2",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2RZ3",
+            "name":"定子温度3",
+            "unit":"℃",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2XZZ",
+            "name":"水平振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2YZZ",
+            "name":"垂直振动",
+            "unit":"mm/s",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCPL",
+            "name":"输出频率",
+            "unit":"Hz",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SRDY",
+            "name":"输入电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SRDL",
+            "name":"输入电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCDY",
+            "name":"输出电压",
+            "unit":"kV",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCDL",
+            "name":"输出电流",
+            "unit":"A",
+            "val":""
+          },
+          {
+            "key":"JF.Device1.TFBB.TFBB_F1_D2SCGL",
+            "name":"输出功率",
+            "unit":"kW",
+            "val":""
+          }
+        ]
+      }
+    ]
+  }

+ 65 - 0
config_info_model.py

@@ -0,0 +1,65 @@
+from distutils.sysconfig import get_config_h_filename
+from fileinput import filename
+import json
+import os
+
+class configInfoModel():
+    ip = ''
+    port = 1883
+    username = ''
+    password = ''
+
+    projPath = os.path.dirname(os.path.realpath(__file__))
+    print(projPath)
+    def __init__(self, mine_name='jinfeng', sys_name='transport'):
+        conf = self.get_conf()
+        if conf != None:
+            self.ip = conf['sys_conf'][mine_name][sys_name]['mqtt_server_ip']
+            self.username = conf['sys_conf'][mine_name][sys_name]['username']
+            self.password = conf['sys_conf'][mine_name][sys_name]['password']
+    
+    # 服务配置
+    
+    def get_conf(self, file_name="config.json", file_path="./config"):
+        path = f"{file_path}/{file_name}"
+        try:
+            with open(path, "r", encoding="utf-8") as f:
+                content = json.load(f)
+                f.close()
+                return content
+    
+        except BaseException as e:
+            print(e)
+            print(f"异常,配置文件读取错误!path:{path}")
+
+    # def get_conf(self, file_name="config.json", file_path="./config"):
+        
+    #     path = f"{self.projPath}/config/jinfeng/{file_name}"
+    #     try:
+    #         with open(path, "r", encoding="utf-8") as f:
+    #             content = json.load(f)
+    #             f.close()
+    #             return content
+
+    #     except BaseException as e:
+    #         print(e)
+    #         print(f"异常,配置文件读取错误!path:{path}")
+    
+    def get_json(self, mine_name, sys_name):
+        file_name=f"{sys_name}.json"
+        file_path=f"./config/{mine_name}"
+        return self.get_conf(file_name, file_path)
+
+    def get_redis_conf(self, mine_name, sys_name):
+        file_name=f"{sys_name}.json"
+        file_path=f"./config/{mine_name}"
+        return self.get_conf(file_name, file_path)
+
+
+    # 临时静态数据
+    def get_temp(self, mine_name, sys_name):
+        file_name=f"{sys_name}_temp.json"
+        file_path=f"./config/{mine_name}/array"
+        return self.get_conf(file_name, file_path)
+# if __name__ == "__main__":
+#     md = config_info_model()

+ 11 - 0
data_handle.py

@@ -0,0 +1,11 @@
+import paho.mqtt.client as mqtt
+import json
+
+
+class data_handle(object):
+
+    # def __init__(self):
+    
+    def data_to_array(jsonStr):
+        data = json.loads(jsonStr)
+

+ 52 - 0
jf_air_north.py

@@ -0,0 +1,52 @@
+
+from sys import path
+path.append("D:\proj\python\zdh")
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import json
+
+
+if __name__ == "__main__":
+    sys_key = 'jinfeng'
+    sys_name = 'air_north'
+    cf = md.configInfoModel(sys_key, sys_name)
+    # 读取例子数据
+    tpdata = cf.get_temp(sys_key, sys_name)
+    values_list = tpdata['values']
+    # print(type(tpdata['values']))
+    # 转换成k->v
+    point_dict = {}
+    for i in range(len(values_list)):
+        d = values_list[i]
+        point_dict[d['code']] = d['v']
+    
+    # 读取最终json格式数据
+    jdata = cf.get_json(sys_key, sys_name)
+    jdata_s = jdata['sys_point']
+    
+    # 赋值
+    for key, val in jdata_s.items():
+        for i in range(len(val)):
+            ck = val[i]['key']
+            if ck in point_dict.keys():
+                val[i]['val'] = point_dict[ck]
+        jdata_s[key] = val
+    jdata['sys_point'] = jdata_s
+    
+    # 存入redis
+    config = cf.get_conf()
+    
+    try:
+        redis_conf = config['redis_conf']
+        redis_ip = redis_conf['ip']
+        pool = redis.ConnectionPool(host=redis_ip, password='')
+        redis_conn = redis.Redis(connection_pool=pool)
+        # 接口数据存入redis
+        redis_key = f"{sys_key}_{sys_name}"
+        json_str = json.dumps(jdata)
+        redis_conn.set(str(redis_key), json_str)
+    except BaseException as e:
+        print(e)
+        print("异常,redis连接错误!")
+    # return redis_conn

+ 108 - 0
jf_compressed_air.py

@@ -0,0 +1,108 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_compressed_air():
+
+    sys_key = 'jinfeng'
+    sys_name = 'compressed_air'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/10", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        for key, val in data.items():
+            for i in range(len(data[key])):
+                ck = data[key][i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                    data[key][i]['state'] = self.point_dict[ck]
+                if 'run_parameter' in data[key][i]:
+                    rp = data[key][i]['run_parameter']
+                    for j in range(len(rp)):
+                        kk = rp[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['run_parameter'][j]['val'] = self.point_dict[kk]
+                if 'warn_state' in data[key][i]:
+                    rp = data[key][i]['warn_state']
+                    for j in range(len(rp)):
+                        kk = rp[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['warn_state'][j]['val'] = self.point_dict[kk]
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_compressed_air()

+ 104 - 0
jf_power_center.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_power_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'power_center'
+    sys_path = '1/1/1'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'data' in val[i].keys():
+                    p = val[i]['data']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['data'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_power_center()

+ 97 - 0
jf_pump_1125m.py

@@ -0,0 +1,97 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_1125m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_1125m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/9", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_1125m()

+ 97 - 0
jf_pump_18m.py

@@ -0,0 +1,97 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_18m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_18m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/11", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_18m()

+ 98 - 0
jf_pump_18m_a.py

@@ -0,0 +1,98 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_18m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_18m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/11", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_18m()
+    obj.run()

+ 104 - 0
jf_pump_center.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_center'
+    sys_path = '1/1/2'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'parameter' in val[i].keys():
+                    p = val[i]['parameter']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['parameter'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_center()

+ 104 - 0
jf_transport.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_transport():
+
+    sys_key = 'jinfeng'
+    sys_name = 'transport'
+    sys_path = '1/1/9'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'parameter' in val[i].keys():
+                    p = val[i]['parameter']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['parameter'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_transport()

+ 109 - 0
jf_wind_center.py

@@ -0,0 +1,109 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_wind_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'wind_center'
+    sys_path = '1/1/6'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        for i in range(len(data)):
+            val = data[i]
+            sl = val['statie_list']
+            for j in range(len(sl)):
+                ck = sl[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['statie_list'][j]['val'] = self.point_dict[ck]
+            ep1 = val['electric_parameter_1']
+            for j in range(len(ep1)):
+                ck = ep1[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_1'][j]['val'] = self.point_dict[ck]
+            ep2 = val['electric_parameter_2']
+            for j in range(len(ep2)):
+                ck = ep2[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_2'][j]['val'] = self.point_dict[ck]
+        self.jdata['sys_point'] = data
+
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_wind_center()

+ 109 - 0
jf_wind_north.py

@@ -0,0 +1,109 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_wind_north():
+
+    sys_key = 'jinfeng'
+    sys_name = 'wind_north'
+    sys_path = '1/1/5'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        for i in range(len(data)):
+            val = data[i]
+            sl = val['statie_list']
+            for j in range(len(sl)):
+                ck = sl[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['statie_list'][j]['val'] = self.point_dict[ck]
+            ep1 = val['electric_parameter_1']
+            for j in range(len(ep1)):
+                ck = ep1[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_1'][j]['val'] = self.point_dict[ck]
+            ep2 = val['electric_parameter_2']
+            for j in range(len(ep2)):
+                ck = ep2[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_2'][j]['val'] = self.point_dict[ck]
+        self.jdata['sys_point'] = data
+
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_wind_north()

+ 11 - 0
main.py

@@ -0,0 +1,11 @@
+import mqtt_client as mc
+import config_info_model as md
+
+if __name__ == "__main__":
+    cf = md.configInfoModel('jinfeng', 'transport')
+    
+    ct = mc.mqttClient(cf)
+    ct.subscribe_update_topic()
+
+    # ew = mc.EstimationWeightUpdate()
+    # ew.subscribe_update_topic()

+ 59 - 0
mqtt_client.py

@@ -0,0 +1,59 @@
+import paho.mqtt.client as mqtt
+import json
+
+import config_info_model as md
+
+from config_info_model import configInfoModel
+
+class mqttClient(object):
+
+    confModel = None
+
+    def __init__(self, confModel):
+        self.confModel = confModel
+        self.init_mqtt()
+    
+    # The callback for when the client receives a CONNACK response from the server.
+    def on_connect(self, client, userdata, flags, rc):
+        print("Connected with result code "+str(rc))    #rc的值很重要,为0代表连接成功。
+    
+        # Subscribing in on_connect() means that if we lose the connection and
+        # reconnect then subscriptions will be renewed.
+        self.client.subscribe("$SYS/#")    #订阅$SYS/下的所有主题
+
+    def init_mqtt(self):
+        self.client = mqtt.Client(self.confModel.ip)
+        self.client.username_pw_set(self.confModel.username, password=self.confModel.password)
+        self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+    
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.confModel.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/9", 0)
+        self.client.loop_forever()
+    
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        data = json.loads(jsonStr)['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        print(data_dict)
+    
+    def data_to_array(jsonStr):
+        data = json.loads(jsonStr)
+        print(type(data))
+
+if __name__ == "__main__":
+    
+    cf = md.configInfoModel('jinfeng')
+    
+    ct = mqttClient(cf)
+    ct.subscribe_update_topic()
+
+    # ew = mqttClient()
+    # ew.subscribe_update_topic()

BIN
opctags.xlsx


+ 52 - 0
run/jinfeng/jf_air_north.py

@@ -0,0 +1,52 @@
+
+from sys import path
+path.append("D:\proj\python\zdh")
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import json
+
+
+if __name__ == "__main__":
+    sys_key = 'jinfeng'
+    sys_name = 'air_north'
+    cf = md.configInfoModel(sys_key, sys_name)
+    # 读取例子数据
+    tpdata = cf.get_temp(sys_key, sys_name)
+    values_list = tpdata['values']
+    # print(type(tpdata['values']))
+    # 转换成k->v
+    point_dict = {}
+    for i in range(len(values_list)):
+        d = values_list[i]
+        point_dict[d['code']] = d['v']
+    
+    # 读取最终json格式数据
+    jdata = cf.get_json(sys_key, sys_name)
+    jdata_s = jdata['sys_point']
+    
+    # 赋值
+    for key, val in jdata_s.items():
+        for i in range(len(val)):
+            ck = val[i]['key']
+            if ck in point_dict.keys():
+                val[i]['val'] = point_dict[ck]
+        jdata_s[key] = val
+    jdata['sys_point'] = jdata_s
+    
+    # 存入redis
+    config = cf.get_conf()
+    
+    try:
+        redis_conf = config['redis_conf']
+        redis_ip = redis_conf['ip']
+        pool = redis.ConnectionPool(host=redis_ip, password='')
+        redis_conn = redis.Redis(connection_pool=pool)
+        # 接口数据存入redis
+        redis_key = f"{sys_key}_{sys_name}"
+        json_str = json.dumps(jdata)
+        redis_conn.set(str(redis_key), json_str)
+    except BaseException as e:
+        print(e)
+        print("异常,redis连接错误!")
+    # return redis_conn

+ 108 - 0
run/jinfeng/jf_compressed_air.py

@@ -0,0 +1,108 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_compressed_air():
+
+    sys_key = 'jinfeng'
+    sys_name = 'compressed_air'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/10", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        for key, val in data.items():
+            for i in range(len(data[key])):
+                ck = data[key][i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                    data[key][i]['state'] = self.point_dict[ck]
+                if 'run_parameter' in data[key][i]:
+                    rp = data[key][i]['run_parameter']
+                    for j in range(len(rp)):
+                        kk = rp[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['run_parameter'][j]['val'] = self.point_dict[kk]
+                if 'warn_state' in data[key][i]:
+                    rp = data[key][i]['warn_state']
+                    for j in range(len(rp)):
+                        kk = rp[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['warn_state'][j]['val'] = self.point_dict[kk]
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_compressed_air()

+ 104 - 0
run/jinfeng/jf_power_center.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_power_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'power_center'
+    sys_path = '1/1/1'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'data' in val[i].keys():
+                    p = val[i]['data']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['data'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_power_center()

+ 97 - 0
run/jinfeng/jf_pump_1125m.py

@@ -0,0 +1,97 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_1125m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_1125m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/9", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_1125m()

+ 97 - 0
run/jinfeng/jf_pump_18m.py

@@ -0,0 +1,97 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_18m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_18m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/11", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_18m()

+ 98 - 0
run/jinfeng/jf_pump_18m_a.py

@@ -0,0 +1,98 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_18m():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_18m'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe("1/1/11", 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    val[i]['val'] = self.point_dict[ck]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_18m()
+    obj.run()

+ 104 - 0
run/jinfeng/jf_pump_center.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_pump_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'pump_center'
+    sys_path = '1/1/2'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'parameter' in val[i].keys():
+                    p = val[i]['parameter']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['parameter'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_pump_center()

+ 104 - 0
run/jinfeng/jf_transport.py

@@ -0,0 +1,104 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_transport():
+
+    sys_key = 'jinfeng'
+    sys_name = 'transport'
+    sys_path = '1/1/9'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        
+        for key, val in data.items():
+            for i in range(len(val)):
+                ck = val[i]['key']
+                if ck in self.point_dict.keys():
+                    data[key][i]['val'] = self.point_dict[ck]
+                if 'parameter' in val[i].keys():
+                    p = val[i]['parameter']
+                    for j in range(len(p)):
+                        kk = p[j]['key']
+                        if kk in self.point_dict.keys():
+                            data[key][i]['parameter'][j]['val'] = self.point_dict[kk]
+            data[key] = val
+        self.jdata['sys_point'] = data
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_transport()

+ 109 - 0
run/jinfeng/jf_wind_center.py

@@ -0,0 +1,109 @@
+import os
+from sys import path
+currentPath = os.getcwd().replace('\\','/')    # 获取当前路径
+path.append(currentPath)
+
+import paho.mqtt.client as mqtt
+import mqtt_client as mc
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_wind_center():
+
+    sys_key = 'jinfeng'
+    sys_name = 'wind_center'
+    sys_path = '1/1/6'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        # print(self.cf.ip)
+        self.client = mqtt.Client(self.cf.ip)
+        self.client.username_pw_set(self.cf.username, password=self.cf.password)
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        for i in range(len(data)):
+            val = data[i]
+            sl = val['statie_list']
+            for j in range(len(sl)):
+                ck = sl[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['statie_list'][j]['val'] = self.point_dict[ck]
+            ep1 = val['electric_parameter_1']
+            for j in range(len(ep1)):
+                ck = ep1[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_1'][j]['val'] = self.point_dict[ck]
+            ep2 = val['electric_parameter_2']
+            for j in range(len(ep2)):
+                ck = ep2[j]['key']
+                if ck in self.point_dict.keys():
+                    data[i]['electric_parameter_2'][j]['val'] = self.point_dict[ck]
+        self.jdata['sys_point'] = data
+
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_wind_center()

+ 113 - 0
run/jinfeng/jf_wind_north.py

@@ -0,0 +1,113 @@
+import os
+from sys import path
+
+projPath = os.path.dirname(os.path.realpath(__file__))
+projPath = os.path.dirname(os.path.dirname(projPath))
+path.append(projPath)
+
+
+import paho.mqtt.client as mqtt
+import config_info_model as md
+import redis
+import time, datetime
+import json
+
+class jf_wind_north():
+
+    sys_key = 'jinfeng'
+    sys_name = 'wind_north'
+    sys_path = '1/1/5'
+    point_dict = {}
+    jdata = None
+    cf = md.configInfoModel(sys_key, sys_name)
+    client = None
+
+    
+    def __init__(self):
+        self.init_mqtt()
+
+    def init_mqtt(self):
+        self.client = mqtt.Client('10.71.146.182')
+        self.client.username_pw_set('admin', password='longruan123')
+        # self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        self.subscribe_update_topic()
+
+    def subscribe_update_topic(self):
+        self.client.connect(self.cf.ip, 1883, 600)    #连接到broker
+        self.client.subscribe(self.sys_path, 0)
+        self.client.loop_forever()
+
+    # 回调数据
+    def on_message(self, client, userdata, msg):
+        data = msg.payload
+        jsonStr = data.decode('utf-8')
+        jsonObj = json.loads(jsonStr)
+        data = jsonObj['values']
+        data_dict = {}
+        for i in range(len(data)):
+            v = data[i]
+            data_dict[v['code']] = v['v']
+        self.point_dict = data_dict
+        self.run()
+
+        timeStamp = jsonObj['timestamp'] / 1000
+        times = datetime.datetime.fromtimestamp(timeStamp)
+        print(times)
+
+    # 获取点位
+    def get_base_data(self):
+        
+        # 读取最终json格式数据
+        self.jdata = self.cf.get_json(self.sys_key, self.sys_name)
+        print(self.jdata)
+        return
+        jdata_s = self.jdata['sys_point']
+        return jdata_s
+
+    # 数据处理
+    def data_handle(self, data):
+        print(data)
+        # for i in range(len(data)):
+        #     val = data[i]
+        #     sl = val['statie_list']
+        #     for j in range(len(sl)):
+        #         ck = sl[j]['key']
+        #         if ck in self.point_dict.keys():
+        #             data[i]['statie_list'][j]['val'] = self.point_dict[ck]
+        #     ep1 = val['electric_parameter_1']
+        #     for j in range(len(ep1)):
+        #         ck = ep1[j]['key']
+        #         if ck in self.point_dict.keys():
+        #             data[i]['electric_parameter_1'][j]['val'] = self.point_dict[ck]
+        #     ep2 = val['electric_parameter_2']
+        #     for j in range(len(ep2)):
+        #         ck = ep2[j]['key']
+        #         if ck in self.point_dict.keys():
+        #             data[i]['electric_parameter_2'][j]['val'] = self.point_dict[ck]
+        # self.jdata['sys_point'] = data
+
+
+    # 存入redis
+    def save_redis(self):
+        config = self.cf.get_conf()
+        try:
+            redis_conf = config['redis_conf']
+            redis_ip = redis_conf['ip']
+            pool = redis.ConnectionPool(host=redis_ip, password='')
+            redis_conn = redis.Redis(connection_pool=pool)
+            # 接口数据存入redis
+            redis_key = f"{self.sys_key}_{self.sys_name}"
+            json_str = json.dumps(self.jdata)
+            redis_conn.set(str(redis_key), json_str)
+        except BaseException as e:
+            print(e)
+            print("异常,redis连接错误!")
+
+    def run(self):
+        data = self.get_base_data()
+        self.data_handle(data)
+        self.save_redis()
+
+if __name__ == "__main__":
+    obj = jf_wind_north()

+ 37 - 0
test.py

@@ -0,0 +1,37 @@
+import paho.mqtt.client as mqtt
+import json
+ 
+ 
+class EstimationWeightUpdate(object):
+ 
+    def __init__(self):
+        self.init_mqtt()
+        
+        
+    # The callback for when the client receives a CONNACK response from the server.
+    def on_connect(self, client, userdata, flags, rc):
+        print("Connected with result code "+str(rc))    #rc的值很重要,为0代表连接成功。
+     
+        # Subscribing in on_connect() means that if we lose the connection and
+        # reconnect then subscriptions will be renewed.
+        self.client.subscribe("$SYS/#")    #订阅$SYS/下的所有主题
+     
+    # The callback for when a PUBLISH message is received from the server.
+    def on_message(self, client, userdata, msg):
+        print(msg.topic+" "+str(msg.payload))
+ 
+    def init_mqtt(self):
+        self.client = mqtt.Client("ADADWWRWFGWERWRWFGTERTER-SUB")
+        self.client.username_pw_set("admin", password="longruan123")
+        self.client.on_connect = self.on_connect    #连接broker时broker响应的回调
+        self.client.on_message = self.on_message    #接收到订阅消息时的回调
+        
+
+    def subscribe_update_topic(self):
+        self.client.connect("10.71.146.182", 1883, 60)    #连接到broker
+        self.client.subscribe("1/1/1", 0)
+        self.client.loop_forever() 
+        
+if __name__ == "__main__":
+    ew = EstimationWeightUpdate()
+    ew.subscribe_update_topic()

BIN
~$opctags.xlsx