|
@@ -3,6 +3,15 @@ from datetime import datetime, timedelta
|
|
from influxdb_client import InfluxDBClient
|
|
from influxdb_client import InfluxDBClient
|
|
|
|
|
|
from inputs.common import Input
|
|
from inputs.common import Input
|
|
|
|
+from structures.measurement import Measurement24v, Measurement480v
|
|
|
|
+from structures.plant import CompactLogixState, S7State
|
|
|
|
+
|
|
|
|
+dataclasses = [
|
|
|
|
+ Measurement24v,
|
|
|
|
+ Measurement480v,
|
|
|
|
+ CompactLogixState,
|
|
|
|
+ S7State
|
|
|
|
+]
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@@ -15,7 +24,6 @@ class Replay(Input):
|
|
|
|
|
|
self.query_api = self.client.query_api()
|
|
self.query_api = self.client.query_api()
|
|
self.current_time = datetime.strptime(start_time, "%d.%m.%Y %H:%M:%S")
|
|
self.current_time = datetime.strptime(start_time, "%d.%m.%Y %H:%M:%S")
|
|
-
|
|
|
|
|
|
|
|
def read_handler(self):
|
|
def read_handler(self):
|
|
start = self.current_time
|
|
start = self.current_time
|
|
@@ -31,12 +39,16 @@ class Replay(Input):
|
|
result = self.query_api.query(query=query)
|
|
result = self.query_api.query(query=query)
|
|
results = []
|
|
results = []
|
|
for table in result:
|
|
for table in result:
|
|
|
|
+ for dataclass in dataclasses:
|
|
|
|
+ if table in dataclass.__name__.lower():
|
|
|
|
+ break
|
|
|
|
+
|
|
for record in table.records:
|
|
for record in table.records:
|
|
- res = {
|
|
|
|
- 'series': table,
|
|
|
|
- 'timestamp': record.get_time(),
|
|
|
|
- }
|
|
|
|
- res.extend(record.values)
|
|
|
|
|
|
+ res = dataclass(
|
|
|
|
+ series = table,
|
|
|
|
+ timestamp = record.get_time(),
|
|
|
|
+ **record.values
|
|
|
|
+ )
|
|
results.append(res)
|
|
results.append(res)
|
|
return results
|
|
return results
|
|
|
|
|