20260506 Backup
This commit is contained in:
@@ -7,11 +7,11 @@
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"lastModificationSignature": "7aaa342aed62e05b1ae23d5e1f4a38c7d2761efa9975387b2333b425fc7e8b5d",
|
||||
"lastModificationSignature": "9207f96c78254178ffd2e20ecb0148aeabd4d28bd9d9c6bfcfbe74ddea5c19f4",
|
||||
"hintScope": 7,
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-04T19:01:42Z"
|
||||
"timestamp": "2026-05-06T15:34:13Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,10 @@
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 7,
|
||||
"lastModificationSignature": "9eb6928e909875055a3f065a11fb7ed868921a79e9ab374e1cdb08972e8e3989",
|
||||
"lastModificationSignature": "4d05216451f0a5c78f437a57dca2b77a0dd44bac3bf68330f9ec9eddf1870d1c",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-04T19:22:01Z"
|
||||
"timestamp": "2026-05-06T18:28:13Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,10 @@
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 7,
|
||||
"lastModificationSignature": "812333a27ba424a63a7bb2138a2c572e69a2111eeab00617fbf1e46cc411e0ab",
|
||||
"lastModificationSignature": "9524e09faa9432b06a64f04f5c496a13667306e10bb25cfd6467bd6499991617",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-04T19:01:34Z"
|
||||
"timestamp": "2026-05-06T15:34:13Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,41 +7,27 @@ def get_tagpaths(udt_type):
|
||||
for location in equipment.common.gtwys:
|
||||
results = system.tag.browse(location, fltr)
|
||||
for result in results:
|
||||
paths_list.append(result['fullPath'])
|
||||
paths_list.append(str(result['fullPath']))
|
||||
return paths_list
|
||||
|
||||
def update_tagpaths(data_tagpath, udt_type):
|
||||
raw_paths = get_tagpaths(udt_type)
|
||||
paths = [str(p) for p in raw_paths]
|
||||
document = {'paths':paths}
|
||||
system.tag.writeBlocking(data_tagpath + '/Paths', document)
|
||||
|
||||
def update_data(data_tagpath, sub_paths_map):
|
||||
def update_data(destination_tag, paths_list, sub_paths_map):
|
||||
'''
|
||||
config_tag_path: Path to the memory tag that contains the JSON with all the paths
|
||||
sub_paths_map: Dictionary that maps all the sub_paths with the tag to be used in the table.
|
||||
'''
|
||||
logger = system.util.getLogger("DataTableUpdates")
|
||||
try:
|
||||
# 1. Read the list of tagpaths.
|
||||
read_config = system.tag.readBlocking(data_tagpath + '/Paths')
|
||||
raw_data = read_config[0].value
|
||||
if not raw_data or 'paths' not in raw_data:
|
||||
logger.warn("Empty configuration: %s" % data_tagpath)
|
||||
return
|
||||
# Order the keys to make sure the reading loop is consistent
|
||||
paths_list = raw_data.get('paths', [])
|
||||
col_names = sub_paths_map.keys()
|
||||
|
||||
# 2. Build the reading list
|
||||
# 1. Build the reading list
|
||||
read_paths = []
|
||||
for path in paths_list:
|
||||
for col in col_names:
|
||||
read_paths.append(path + sub_paths_map[col])
|
||||
# 3. Read all the values in one execution
|
||||
# 2. Read all the values in one execution
|
||||
reads = system.tag.readBlocking(read_paths)
|
||||
|
||||
# 4. Process the result
|
||||
# 3. Process the result
|
||||
data = []
|
||||
num_cols = len(col_names)
|
||||
for device_idx, path in enumerate(paths_list):
|
||||
@@ -55,9 +41,9 @@ def update_data(data_tagpath, sub_paths_map):
|
||||
data.append(item)
|
||||
|
||||
document = {'data':data}
|
||||
system.tag.writeBlocking(data_tagpath + '/Data', document)
|
||||
system.tag.writeBlocking([destination_tag], document)
|
||||
except Exception as e:
|
||||
logger.error("Fail to update data (%s): %s" % (data_tagpath, str(e)))
|
||||
logger.error("Fail to update data (%s): %s" % (destination_tag, str(e)))
|
||||
|
||||
def style_table(data_dic):
|
||||
output = []
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 7,
|
||||
"lastModificationSignature": "2082d9f4c43b85e21fc7c8f0a9a964f11dc246f364088a9deb0d76ed98dadb75",
|
||||
"lastModificationSignature": "beb30a0bc3fb681e5b99ba6a9cc694b180cdbaf8cec1dc0b27051bfa606177d4",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-05T21:24:17Z"
|
||||
"timestamp": "2026-05-06T14:36:03Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
def toggleCommandPaths (resetTagPath, enableTagPath):
|
||||
"""
|
||||
This function receives two paths, resetTagPath set to False, then the enabletagPath is set to True
|
||||
Params:
|
||||
resetTagPath: string
|
||||
enableTagPath: string
|
||||
Returns:
|
||||
none
|
||||
"""
|
||||
|
||||
def writeSeparate():
|
||||
def writeEnable(asyncReturn):
|
||||
system.tag.writeBlocking([enableTagPath],[1])
|
||||
system.tag.writeAsync([resetTagPath],[0], writeEnable)
|
||||
|
||||
|
||||
def writeAll():
|
||||
system.tag.writeBlocking([resetTagPath, enableTagPath], [0,1])
|
||||
|
||||
writeAll()
|
||||
# writeSeparate()
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/CRAH/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/CRAH"
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "1ec497a52d03da78106a8d54b326366024f8493359de30b553b79f53b020cbe1",
|
||||
"lastModificationSignature": "0097918d2f4bab1398b03454a60b09269ca07be73d3a1a5a423da966db80b97b",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-04T21:52:00Z"
|
||||
"timestamp": "2026-05-06T14:58:21Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
# Definition of tag location to store tagpaths and updated data.
|
||||
tagpath = '[default]System/DataTables/DOAS'
|
||||
udt_type = 'Objects/Air/DOAS'
|
||||
sub_paths = {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint'
|
||||
}
|
||||
|
||||
def update_data(config_tagpath, sub_paths_map):
|
||||
'''
|
||||
config_tag_path: Path to the memory tag that contains the JSON with all the paths
|
||||
sub_paths_map: Dictionary that maps all the sub_paths with the tag to be used in the table.
|
||||
'''
|
||||
# 1. Read the list of tagpaths.
|
||||
raw_data = system.tag.readBlocking(config_tagpath + '/Data')[0].value
|
||||
paths_list = raw_data.get('paths', [])
|
||||
if not paths_list:
|
||||
return []
|
||||
# Order the keys to make sure the reading loop is consistent
|
||||
col_names = sub_paths_map.keys()
|
||||
|
||||
# 2. Build the reading list
|
||||
read_paths = []
|
||||
for path in paths_list:
|
||||
for col in col_names:
|
||||
read_paths.append(path + sub_paths_map[col])
|
||||
# 3. Read all the values in one execution
|
||||
reads = system.tag.readBlocking(read_paths)
|
||||
|
||||
# 4. Process the result
|
||||
output = []
|
||||
num_cols = len(col_names)
|
||||
for device_idx, path in enumerate(paths_list):
|
||||
item = {"device": path.split('/')[-1]}
|
||||
for col_idx, col in enumerate(col_names):
|
||||
global_idx = (device_idx * num_cols) + col_idx
|
||||
tag_value = reads[global_idx].value
|
||||
|
||||
|
||||
item[col] = tag_value if tag_value is not None else "0"
|
||||
output.append(item)
|
||||
return output
|
||||
|
||||
def update_tagpaths():
|
||||
raw_paths = equipment.common.get_tagpaths(udt_type)
|
||||
paths = [str(p) for p in raw_paths]
|
||||
document = {'paths':paths}
|
||||
system.tag.writeBlocking(tagpath + '/Data', document)
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/DOAS/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/DOAS"
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 7,
|
||||
"lastModificationSignature": "4a0f454d3297d1bc7016bba11ad55ad961723511a09a6ccb501176f5fc0f93f1",
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "64bdde7cf9cfd870b5c5a6914a8ca3f1c4acf71159d9a090d5f1b2a8a8846488",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-05T15:04:19Z"
|
||||
"timestamp": "2026-05-06T14:17:53Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/EF/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/EF"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "0b325694dc20014d34549eae26e46d9f4cea742e35a85d68252483690307c402",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:58:32Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/FCU/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/FCU"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "8358064220a01e51a0e8906ebf27f16e992a2bf0da777b8a0eb5d23d33ccd834",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:58:48Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/HUM/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/HUM"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "43e7d78e7cc2a3686b35084e0a1e24c374a1399147b533d10b47e2cb5b3c1c24",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:59:05Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/PLC/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/PLC"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "0e9e612c8da3531636429681877effe7cc04d645484bf0ce74ab6dce57954bdd",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:59:15Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
'[default]simulator/RTU/RTU1',
|
||||
'[default]simulator/RTU/RTU2',
|
||||
'[default]simulator/RTU/RTU3',
|
||||
'[default]simulator/RTU/RTU4',
|
||||
'[default]simulator/RTU/RTU5'
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAF':'/Outside Air Flow',
|
||||
'RPP':'/Return Plenum Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/RTU/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/RTU"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "c58718d36c7eadd81ce21a00f8cf628a28d14d77ddb340739b61f133f0c953c5",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:23:30Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/STU/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/STU"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "c5e677e9640c6b8faaaceb89cab03b7ea161e76a455eb0fd161f60d470e814e5",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:59:28Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
def get_paths():
|
||||
return [
|
||||
"[default]simulator/DOAS/DOAS1",
|
||||
"[default]simulator/DOAS/DOAS2",
|
||||
"[default]simulator/DOAS/DOAS3",
|
||||
"[default]simulator/DOAS/DOAS4",
|
||||
"[default]simulator/DOAS/DOAS5
|
||||
]
|
||||
def get_config():
|
||||
return {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
def get_destination():
|
||||
return "[default]System/DataTables/VAV/Data"
|
||||
|
||||
def get_type():
|
||||
return "Objects/Air/VAV"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"scope": "A",
|
||||
"version": 1,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"code.py"
|
||||
],
|
||||
"attributes": {
|
||||
"hintScope": 2,
|
||||
"lastModificationSignature": "a7dc8e9b98a74e8e9e466f441c266211d17c621ae73fd7c9385949b7814957d2",
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-06T14:59:38Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +1,18 @@
|
||||
def handleTimerEvent():
|
||||
# DOAS update data
|
||||
tagpath = '[default]System/DataTables/DOAS'
|
||||
sub_paths = {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
equipment.common.update_data(tagpath, sub_paths)
|
||||
try:
|
||||
paths = equipment.rtu.get_paths()
|
||||
mapping = equipment.rtu.get_config()
|
||||
dest = equipment.rtu.get_destination()
|
||||
|
||||
equipment.common.update_data(dest, paths, mapping)
|
||||
except Exception as e:
|
||||
system.util.getLogger("Timer.RTU").error(str(e))
|
||||
|
||||
# RTU update data
|
||||
tagpath = '[default]System/DataTables/DOAS'
|
||||
sub_paths = {
|
||||
'OAD':'/Outdoor Air Dewpoint',
|
||||
'BP':'/Building Pressure',
|
||||
'SAT':'/Supply Air Temperature',
|
||||
'SAD':'/Supply Air Dewpoint',
|
||||
'Alm':'/AlarmSummary/Highest Active Priority'
|
||||
}
|
||||
equipment.common.update_data(tagpath, sub_paths)
|
||||
try:
|
||||
paths = equipment.doas.get_paths()
|
||||
mapping = equipment.doas.get_config()
|
||||
dest = equipment.doas.get_destination()
|
||||
|
||||
equipment.common.update_data(dest, paths, mapping)
|
||||
except Exception as e:
|
||||
system.util.getLogger("Timer.DOAS").error(str(e))
|
||||
@@ -9,11 +9,11 @@
|
||||
"attributes": {
|
||||
"sharedThread": true,
|
||||
"delay": 10000,
|
||||
"lastModificationSignature": "028eec92dcd85ffca7bd6b750275903fda44afd67a09c1f7bae0c92a7fe642ef",
|
||||
"lastModificationSignature": "0ca653422be58e764c3c6ccc4fa2fbcae871cc7601e09047ea94b4a6d8a415fb",
|
||||
"fixedDelay": true,
|
||||
"lastModification": {
|
||||
"actor": "Emmanuel",
|
||||
"timestamp": "2026-05-05T21:41:30Z"
|
||||
"timestamp": "2026-05-06T14:54:08Z"
|
||||
},
|
||||
"enabled": false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user