Add more code from WMH
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from influxdb_client import InfluxDBClient, BucketsApi, WriteApi, OrganizationsApi, Point, QueryApi
|
||||
from typing import List, Dict
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from influxdb_client.client.write_api import SYNCHRONOUS
|
||||
from influxdb_client.client.write_api import SYNCHRONOUS, ASYNCHRONOUS
|
||||
from dateutil import parser
|
||||
import get_realValue
|
||||
import get_data
|
||||
@@ -363,7 +363,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
else:
|
||||
print("{} -- Failed to connect to InfluxDB.".format(
|
||||
datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
||||
write_api = client.write_api(write_options=SYNCHRONOUS)
|
||||
write_api = client.write_api(write_options=ASYNCHRONOUS)
|
||||
try_count = 0
|
||||
reservoir_liquid_level_realtime_data_list = []
|
||||
tank_liquid_level_realtime_data_list = []
|
||||
@@ -433,6 +433,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if tank_liquid_level_realtime_data_list:
|
||||
for data in tank_liquid_level_realtime_data_list:
|
||||
@@ -464,6 +465,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if fixed_pump_realtime_data_list:
|
||||
for data in fixed_pump_realtime_data_list:
|
||||
@@ -495,6 +497,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if variable_pump_realtime_data_list:
|
||||
for data in variable_pump_realtime_data_list:
|
||||
@@ -526,6 +529,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if source_outflow_realtime_data_list:
|
||||
for data in source_outflow_realtime_data_list:
|
||||
@@ -557,6 +561,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if pipe_flow_realtime_data_list:
|
||||
for data in pipe_flow_realtime_data_list:
|
||||
@@ -588,6 +593,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if pressure_realtime_data_list:
|
||||
for data in pressure_realtime_data_list:
|
||||
@@ -619,6 +625,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if demand_realtime_data_list:
|
||||
for data in demand_realtime_data_list:
|
||||
@@ -650,6 +657,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
if quality_realtime_data_list:
|
||||
for data in quality_realtime_data_list:
|
||||
@@ -681,6 +689,7 @@ def store_realtime_SCADA_data_to_influxdb(get_real_value_time: str, bucket: str
|
||||
.time(get_real_value_time_utc)
|
||||
)
|
||||
write_api.write(bucket=bucket, org=org_name, record=point)
|
||||
write_api.flush()
|
||||
|
||||
|
||||
def convert_time_format(original_time: str) -> str:
|
||||
@@ -726,6 +735,8 @@ def store_non_realtime_SCADA_data_to_influxdb(get_history_data_end_time: str, bu
|
||||
transmission_frequency_dt = datetime.strptime(globals.transmission_frequency, '%H:%M:%S') - datetime(1900, 1, 1)
|
||||
get_history_data_start_time = end_date_dt - transmission_frequency_dt
|
||||
begin_date = get_history_data_start_time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
# print(begin_date)
|
||||
# print(end_date)
|
||||
|
||||
reservoir_liquid_level_non_realtime_data_list = []
|
||||
tank_liquid_level_non_realtime_data_list = []
|
||||
@@ -786,6 +797,7 @@ def store_non_realtime_SCADA_data_to_influxdb(get_history_data_end_time: str, bu
|
||||
ids=','.join(globals.pressure_non_realtime_ids),
|
||||
begin_date=begin_date, end_date=end_date,
|
||||
downsample='1m')
|
||||
# print(pressure_non_realtime_data_list)
|
||||
|
||||
if globals.demand_non_realtime_ids:
|
||||
demand_non_realtime_data_list = get_data.get_history_data(
|
||||
@@ -1049,6 +1061,7 @@ def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str
|
||||
|
||||
# 写入数据到 InfluxDB,多个 field 在同一个 point 中
|
||||
write_api.write(bucket=bucket, org=org_name, record=node_point)
|
||||
write_api.flush()
|
||||
print(f"成功将 {len(node_result_list)} 条node数据写入 InfluxDB。")
|
||||
for result in link_result_list:
|
||||
link_id = result.get('link')
|
||||
@@ -1068,6 +1081,7 @@ def store_realtime_simulation_result_to_influxdb(node_result_list: List[Dict[str
|
||||
.field("friction", data.get('friction', 0.0)) \
|
||||
.time(time_beijing)
|
||||
write_api.write(bucket=bucket, org=org_name, record=link_point)
|
||||
write_api.flush()
|
||||
print(f"成功将 {len(link_result_list)} 条link数据写入 InfluxDB。")
|
||||
|
||||
except Exception as e:
|
||||
@@ -1305,12 +1319,12 @@ if __name__ == "__main__":
|
||||
# client.close()
|
||||
|
||||
# step2: 先查询pg数据库中scada_info的信息,然后存储SCADA数据到SCADA_data这个bucket里
|
||||
# query_pg_scada_info_realtime('bb')
|
||||
# query_pg_scada_info_non_realtime('bb')
|
||||
query_pg_scada_info_realtime('bb')
|
||||
query_pg_scada_info_non_realtime('bb')
|
||||
|
||||
# 手动执行
|
||||
# store_realtime_SCADA_data_to_influxdb(get_real_value_time='2025-02-07T16:52:00+08:00')
|
||||
# store_non_realtime_SCADA_data_to_influxdb(get_history_data_end_time='2025-02-01T12:00:00+08:00')
|
||||
store_non_realtime_SCADA_data_to_influxdb(get_history_data_end_time='2025-02-08T12:00:00+08:00')
|
||||
|
||||
# step3: 查询测试示例
|
||||
# with InfluxDBClient(url=url, token=token, org=org_name) as client:
|
||||
@@ -1338,5 +1352,5 @@ if __name__ == "__main__":
|
||||
# print(curve_result)
|
||||
|
||||
# 示例4:query_SCADA_data_by_device_ID_and_time
|
||||
# SCADA_result_dict = query_SCADA_data_by_device_ID_and_time(globals.reservoir_liquid_level_realtime_ids, query_time='2024-12-13T11:30:00+08:00')
|
||||
# SCADA_result_dict = query_SCADA_data_by_device_ID_and_time(globals.variable_pump_realtime_ids, query_time='2025-02-08T10:30:00+08:00')
|
||||
# print(SCADA_result_dict)
|
||||
|
||||
Reference in New Issue
Block a user