diff --git a/Pub_Sub/ba_facility/thingsboard/peacemaker_tags.csv b/Pub_Sub/ba_facility/thingsboard/peacemaker_tags.csv index ebfac31..f4d0857 100644 --- a/Pub_Sub/ba_facility/thingsboard/peacemaker_tags.csv +++ b/Pub_Sub/ba_facility/thingsboard/peacemaker_tags.csv @@ -54,6 +54,12 @@ gas_vru_temp,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Gas_VRU_Temp,2 gas_vru_today_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Gas_VRU_Today,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, gas_vru_yesterday_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Gas_VRU_Yesterday,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, gwr_reset_cmd,Peacemaker_Facility,default,periodic,,,BIT,,,,0,CMD_GWR_Reset,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0, +heater_water_flow_rate,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_FR,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, +heater_water_last_month_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_LM,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, +heater_water_month_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_Month,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, +heater_water_t1,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_T1,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, +heater_water_todays_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_Todays,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, +heater_water_yesterday_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Heater_Water_Yest,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, lact_2_bsw,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Lact_2_Meter_BSW,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, lact_2_density,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Lact_2_Meter_Density,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0, lact_2_fault_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Lact_Unit_2_Faulted,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0, diff --git a/Pub_Sub/cameratrailer_mb/thingsboard/cameratrailer_tb_v8.cfg b/Pub_Sub/cameratrailer_mb/thingsboard/cameratrailer_tb_v8.cfg new file mode 100644 index 0000000..3472a54 --- /dev/null +++ b/Pub_Sub/cameratrailer_mb/thingsboard/cameratrailer_tb_v8.cfg @@ -0,0 +1,529 @@ +{ + "controllers": [ + { + "protocol": "Virtual Controller", + "name": "cameratrailer", + "args": { + "statusTimeout": 300 + }, + "endpoint": "", + "samplePeriod": 0, + "expired": 0, + "enablePerOnchange": 0, + "desc": "", + "enable": 1, + "enableDebug": 0, + "enablepollCycle": 0, + "samplePeriod2": 60, + "_id": "000067e59a303795" + }, + { + "protocol": "Virtual Controller", + "name": "snapshot", + "args": { + "statusTimeout": 300 + }, + "endpoint": "", + "samplePeriod": 0, + "expired": 0, + "enablePerOnchange": 0, + "desc": "", + "enable": 1, + "enableDebug": 0, + "enablepollCycle": 0, + "samplePeriod2": 60, + "_id": "000167e59a30c9e6" + }, + { + "protocol": "Virtual Controller", + "name": "ddns", + "args": { + "statusTimeout": 300 + }, + "enablePerOnchange": 0, + "endpoint": "", + "samplePeriod": 0, + "expired": 0, + "desc": "", + "enable": 1, + "enableDebug": 0, + "enablepollCycle": 0, + "samplePeriod2": 60, + "_id": "000267e59a304d13" + } + ], + "measures": [ + { + "name": "c", + "ctrlName": "cameratrailer", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "", + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "bitMap": 0, + "pollCycle": 0, + "enableRequestCount": 0, + "reverseBit": 0, + "storageLwTSDB": 0, + "_id": "000067e59a30b430" + }, + { + "name": "s", + "ctrlName": "snapshot", + "group": "snapshot", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "", + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "bitMap": 0, + "pollCycle": 0, + "enableRequestCount": 0, + "reverseBit": 0, + "storageLwTSDB": 0, + "_id": "000167e59a305ec5" + }, + { + "name": "d", + "ctrlName": "ddns", + "group": "ddns", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "", + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "bitMap": 0, + "pollCycle": 0, + "enableRequestCount": 0, + "reverseBit": 0, + "storageLwTSDB": 0, + "_id": "000267e59a303772" + } + ], + "alarmLables": [ + "default" + ], + "alarms": [], + "groups": [ + { + "name": "default", + "uploadInterval": 600, + "enablePerOnchange": 0, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataMode": "gateway", + "_id": "group59b64649c93", + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB" + }, + { + "name": "snapshot", + "uploadInterval": 3600, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataMode": "gateway", + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0, + "_id": "000167e59a306611" + }, + { + "name": "ddns", + "uploadInterval": 3600, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataMode": "gateway", + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0, + "_id": "000267e59a30f733" + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "INFO", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + }, + { + "name": "rs485", + "baud": 19200, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + } + ], + "cacheMode": "gateway", + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "cacheSize": 10000, + "cacheUploadPeriod": 200, + "cacheUploadStrategy": 0, + "cacheStrategy": 0, + "pubTimeout": 1000, + "pubRepeatNum": 3, + "debugLogMode": "gateway", + "debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog", + "debugLogSize": 2000, + "logNum": 2, + "logSize": 1 + }, + "clouds": [ + { + "cacheSize": 10000, + "enable": 1, + "name": "default", + "type": "Standard MQTT", + "args": { + "host": "hp.henrypump.cloud", + "port": 1883, + "clientId": "camera-trailer-x", + "auth": 1, + "tls": 0, + "cleanSession": 0, + "mqttVersion": "v3.1.1", + "keepalive": 60, + "key": "", + "cert": "", + "rootCA": "", + "verifyServer": 0, + "verifyClient": 0, + "username": "assmqtt", + "passwd": "assmqtt@1903", + "authType": 1, + "willQos": 0, + "willRetain": 0, + "willTopic": "", + "willPayload": "", + "tlsAuth": "caSelfSigned" + }, + "_id": "cloud59b6464bd03", + "uploadRules": [] + } + ], + "quickfaas": { + "genericFuncs": [], + "uploadFuncs": [ + { + "qos": 1, + "funcName": "sendData", + "script": "import json, os\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom mobiuspi_lib.gps import GPS \nfrom quickfaas.global_dict import get as get_params\nfrom quickfaas.global_dict import _set_global_args\n\n\ndef reboot():\n #basic = Basic()\n logger.info(\"!\" * 10 + \"REBOOTING DEVICE\" + \"!\"*10)\n r = os.popen(\"kill -s SIGHUP `cat /var/run/python/supervisord.pid`\").read()\n logger.info(f\"REBOOT : {r}\")\n\ndef checkFileExist(filename):\n path = \"/var/user/files\"\n if not os.path.exists(path):\n logger.debug(\"no folder making files folder in var/user\")\n os.makedirs(path)\n with open(path + \"/\" + filename, \"a\") as f:\n json.dump({}, f)\n if not os.path.exists(path + \"/\" + filename):\n logger.debug(\"no creds file making creds file\")\n with open(path + \"/\" + filename, \"a\") as f:\n json.dump({}, f)\n\ndef convertDStoJSON(ds):\n j = dict()\n for x in ds:\n j[x[\"key\"]] = x[\"value\"]\n return j\n\ndef convertJSONtoDS(j):\n d = []\n for key in j.keys():\n d.append({\"key\": key, \"value\": j[key]})\n return d\n\ndef checkCredentialConfig():\n logger.debug(\"CHECKING CONFIG\")\n cfgpath = \"/var/user/cfg/device_supervisor/device_supervisor.cfg\"\n credspath = \"/var/user/files/creds.json\"\n cfg = dict()\n with open(cfgpath, \"r\") as f:\n cfg = json.load(f)\n clouds = cfg.get(\"clouds\")\n logger.debug(clouds)\n #if not configured then try to configure from stored values\n if clouds[0][\"args\"][\"clientId\"] == \"unknown\" or clouds[0][\"args\"][\"username\"] == \"unknown\" or not clouds[0][\"args\"][\"passwd\"] or clouds[0][\"args\"][\"passwd\"] == \"unknown\":\n checkFileExist(\"creds.json\")\n with open(credspath, \"r\") as c:\n creds = json.load(c)\n if creds:\n logger.debug(\"updating config with stored data\")\n clouds[0][\"args\"][\"clientId\"] = creds[\"clientId\"]\n clouds[0][\"args\"][\"username\"] = creds[\"userName\"]\n clouds[0][\"args\"][\"passwd\"] = creds[\"password\"]\n cfg[\"clouds\"] = clouds\n cfg = checkParameterConfig(cfg)\n with open(cfgpath, \"w\", encoding='utf-8') as n:\n json.dump(cfg, n, indent=1, ensure_ascii=False)\n reboot()\n else:\n #assuming clouds is filled out, if data is different then assume someone typed in something new and store it, if creds is empty fill with clouds' data\n checkFileExist(\"creds.json\")\n with open(credspath, \"r\") as c:\n logger.debug(\"updating stored file with new data\")\n cfg = checkParameterConfig(cfg)\n with open(cfgpath, \"w\", encoding='utf-8') as n:\n json.dump(cfg, n, indent=1, ensure_ascii=False)\n creds = json.load(c)\n if creds:\n if creds[\"clientId\"] != clouds[0][\"args\"][\"clientId\"]:\n creds[\"clientId\"] = clouds[0][\"args\"][\"clientId\"]\n if creds[\"userName\"] != clouds[0][\"args\"][\"username\"]:\n creds[\"userName\"] = clouds[0][\"args\"][\"username\"]\n if creds[\"password\"] != clouds[0][\"args\"][\"passwd\"]:\n creds[\"password\"] = clouds[0][\"args\"][\"passwd\"]\n else:\n creds[\"clientId\"] = clouds[0][\"args\"][\"clientId\"]\n creds[\"userName\"] = clouds[0][\"args\"][\"username\"]\n creds[\"password\"] = clouds[0][\"args\"][\"passwd\"]\n with open(credspath, \"w\") as cw:\n json.dump(creds,cw)\n\ndef checkParameterConfig(cfg):\n logger.debug(\"Checking Parameters!!!!\")\n paramspath = \"/var/user/files/params.json\"\n cfgparams = convertDStoJSON(cfg.get(\"labels\"))\n #check stored values \n checkFileExist(\"params.json\")\n with open(paramspath, \"r\") as f:\n logger.debug(\"Opened param storage file\")\n try:\n params = json.load(f)\n except Exception as e:\n logger.error(f\"Params files error: {e}\")\n params = {}\n if params:\n if cfgparams != params:\n #go through each param\n #if not \"unknown\" and cfg and params aren't the same take from cfg likely updated manually\n #if key in cfg but not in params copy to params\n logger.debug(\"equalizing params between cfg and stored\")\n for key in cfgparams.keys():\n try:\n if cfgparams[key] != params[key] and cfgparams[key] != \"unknown\":\n params[key] = cfgparams[key]\n except:\n params[key] = cfgparams[key]\n cfg[\"labels\"] = convertJSONtoDS(params)\n _set_global_args(convertJSONtoDS(params))\n with open(paramspath, \"w\") as p:\n json.dump(params, p)\n else:\n with open(paramspath, \"w\") as p:\n logger.debug(\"initializing param file with params in memory\")\n json.dump(convertDStoJSON(get_params()), p)\n cfg[\"labels\"] = get_params()\n \n return cfg\n\ndef getGPS():\n # Create a gps instance\n gps = GPS()\n\n # Retrieve GPS information\n position_status = gps.get_position_status()\n logger.debug(\"position_status: \")\n logger.debug(position_status)\n latitude = position_status[\"latitude\"].split(\" \")\n longitude = position_status[\"longitude\"].split(\" \")\n lat_dec = int(latitude[0][:-1]) + (float(latitude[1][:-1])/60)\n lon_dec = int(longitude[0][:-1]) + (float(longitude[1][:-1])/60)\n if latitude[2] == \"S\":\n lat_dec = lat_dec * -1\n if longitude[2] == \"W\":\n lon_dec = lon_dec * -1\n #lat_dec = round(lat_dec, 7)\n #lon_dec = round(lon_dec, 7)\n logger.debug(\"HERE IS THE GPS COORDS\")\n logger.debug(f\"LATITUDE: {lat_dec}, LONGITUDE: {lon_dec}\")\n speedKnots = position_status[\"speed\"].split(\" \")\n speedMPH = float(speedKnots[0]) * 1.151\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"latitude\":f\"{lat_dec:.8f}\", \"longitude\":f\"{lon_dec:.8f}\", \"speed\": f\"{speedMPH:.2f}\"}}), __qos__)\n\ndef sendData(message,wizard_api):\n logger.debug(message)\n #publish(__topic__, json.dumps(message), __qos__)\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(f\"Error in checkCredentialConfig: {e}\")\n try:\n getGPS()\n except Exception as e:\n logger.error(f\"Could not get gps data!: {e}\")\n\n ", + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "cloudName": "default", + "msgType": 0, + "groups": [ + "default" + ], + "hideOfflineData": 0 + }, + { + "qos": 1, + "funcName": "sendSnapshot", + "script": "import base64\nimport json\nimport logging\nimport time\nfrom datetime import datetime as dt\nimport requests\nfrom requests.adapters import HTTPAdapter, Retry\nfrom requests.auth import HTTPDigestAuth\nfrom requests.exceptions import ConnectionError\nfrom common.Logger import logger # your custom logger\nfrom quickfaas.global_dict import get as get_params\nfrom quickfaas.remotebus import publish\n\ndef convertDStoJSON(ds):\n \"\"\"Convert the list of key/value dicts returned by get_params()\n into a single dictionary.\"\"\"\n return {x[\"key\"]: x[\"value\"] for x in ds}\n\n\ndef _payload_too_big(payload, max_bytes=65535):\n \"\"\"Return True if the UTF‑8 encoded payload is larger than max_bytes.\"\"\"\n return len(payload.encode(\"utf-8\")) > max_bytes\n\ndef getImage():\n # Grab configuration\n params = convertDStoJSON(get_params())\n camera_ip = params[\"camera_ip\"].replace(\"_\", \".\")\n port = params[\"port\"]\n\n # Build the URL and auth\n url = f\"http://{camera_ip}:{port}/cgi-bin/jpg/image.cgi?stream=stream3\"\n auth = HTTPDigestAuth(\"ASS\", \"amerus@1903\")\n\n # Retry policy (10 attempts, back‑off 0.1s)\n retry_strategy = Retry(\n total=10,\n backoff_factor=0.1,\n status_forcelist=[404, 408, 500, 502, 503, 504],\n )\n adapter = HTTPAdapter(max_retries=retry_strategy)\n\n with requests.Session() as session:\n session.mount(\"http://\", adapter)\n\n # Grab the JPEG as a streaming response\n resp = session.get(url, auth=auth, stream=True)\n resp.raise_for_status()\n\n # Write the stream to disk (optional – keeps your code close to the original)\n with open(\"./snapshot.jpg\", \"wb\") as fh:\n for block in resp.iter_content(1024):\n if not block:\n break\n fh.write(block)\n\n # Read the file we just wrote and base64‑encode it\n with open(\"./snapshot.jpg\", \"rb\") as fh:\n encoded_string = base64.b64encode(fh.read()).decode(\"utf-8\")\n\n # Build the payload\n timestamp_ms = int(round(dt.timestamp(dt.now()) / 600) * 600 * 1000)\n snapshot_dt = dt.fromtimestamp(timestamp_ms/1000).strftime(\"%Y %m %d %H:%M\")\n\n payload = json.dumps(\n {\n \"ts\": timestamp_ms,\n \"values\": {\n \"snapshot\": encoded_string,\n \"snapshotDT\": snapshot_dt,\n \"camera_error\": \"OK\",\n },\n },\n separators=(\",\", \":\"), # tighter JSON – saves a few bytes\n )\n\n # Guard against oversized payloads\n if _payload_too_big(payload):\n logger.warning(\n \"Payload size (%d bytes) exceeds %d bytes – message not sent.\",\n len(payload.encode(\"utf-8\")),\n 65535,\n )\n return # do not publish\n\n publish(__topic__, payload, __qos__)\n logger.info(\"Published snapshot of size %d bytes\", len(payload.encode(\"utf-8\")))\n\n\ndef sendSnapshot(message, wizard_api):\n logger.debug(message)\n try:\n getImage()\n except ConnectionError as ce:\n logger.error(\"Could not connect to camera\")\n logger.exception(ce)\n error_msg = f\"Could not connect to camera (ConnectionError), check camera connection and power\\n\\n{ce}\"\n _publish_error(error_msg)\n except Exception as e:\n logger.error(\"Could not get image\")\n logger.exception(e)\n error_msg = f\"Could not connect to camera, check camera connection, power, IP Address\\n\\n{e}\"\n _publish_error(error_msg)\n\n\ndef _publish_error(error_msg):\n \"\"\"Utility that logs the error and publishes it to the broker.\"\"\"\n payload = json.dumps(\n {\n \"ts\": int(round(dt.timestamp(dt.now()) / 600) * 600 * 1000),\n \"values\": {\"camera_error\": error_msg},\n },\n separators=(\",\", \":\"),\n )\n publish(__topic__, payload, __qos__)", + "name": "snapshot", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "cloudName": "default", + "groups": [ + "snapshot" + ], + "hideOfflineData": 0, + "msgType": 0 + }, + { + "qos": 1, + "funcName": "ddns", + "script": "import json, requests\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom mobiuspi_lib.cellular import Cellular\n\n\ndef ddns(message):\n logger.debug(message)\n try:\n # Create a cellular instance\n cellular = Cellular()\n\n # Retrieve modem information\n modem = cellular.get_network()\n #print(\"get network: %s\" % modem)\n url= \"https://nvghm399n8.execute-api.us-east-1.amazonaws.com/default/HPIoTDDNS?hostname=\" + __topic__ + \".henrypump.cloud\" + \"&ip=\" + modem[0][\"ip_addr\"]\n requests.post(url)\n except Exception as e:\n logger.error(f\"Error in cellular: {e}\")", + "name": "DDNS", + "trigger": "measure_event", + "topic": "${ddns}", + "msgType": 0, + "cloudName": "default", + "groups": [ + "ddns" + ], + "hideOfflineData": 0 + } + ], + "downloadFuncs": [] + }, + "mindspheres": [ + { + "name": "mindsphere", + "enable": 0, + "_id": "mindsphereeafcdf", + "args": { + "hostEnvironment": "eu1", + "hostDomain": "mindsphere.io", + "appName": "", + "appVersion": "", + "clientId": "", + "clientSecret": "", + "authType": "tenant", + "hostTenant": "", + "userTenant": "", + "timeout": 10, + "statusTimeout": 300, + "enableOfflinePut": 0 + }, + "mindsphereputs": [] + } + ], + "labels": [ + { + "key": "SN", + "value": "GF5022443062518", + "_id": "000068a644bff6d4" + }, + { + "key": "MAC", + "value": "ec:6e:79:0a:06:31", + "_id": "000168a644bfab15" + }, + { + "key": "camera_ip", + "value": "192_168_1_141", + "_id": "000268a644bf3bdd" + }, + { + "key": "port", + "value": "80", + "_id": "000368a644bfb35c" + }, + { + "key": "ddns", + "value": "cameratrailer513", + "_id": "000468a644bf02d7" + } + ], + "serverList": [], + "modbusSlave": { + "enable": 0, + "protocol": "Modbus-TCP", + "port": 502, + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "maxConnection": 5, + "mapping_table": [], + "useRawvalue": 1, + "mappingTable": [ + { + "name": "1", + "slaveAddr": 1, + "_id": "modbusTCPSlave01", + "measures": [] + } + ] + }, + "modbusRTUSlave": { + "enable": 0, + "protocol": "Modbus-RTU", + "coms": "rs485", + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "mapping_table": [], + "useRawvalue": 1, + "mappingTable": [ + { + "name": "1", + "slaveAddr": 1, + "_id": "modbusRTUSlave01", + "measures": [] + } + ] + }, + "iec104Server": { + "enable": 0, + "cotSize": 2, + "port": 2404, + "serverList": [ + { + "asduAddr": 1 + } + ], + "kValue": 12, + "wValue": 8, + "t0": 15, + "t1": 15, + "t2": 10, + "t3": 20, + "maximumLink": 5, + "timeSet": 1, + "byteOrder": "abcd", + "useRawvalue": 1, + "connectMode": "tcpServer", + "enableSpontaneous": 1, + "uploadPeriod": 0, + "asduLen": 2, + "mapping_table": [] + }, + "iec101Server": { + "enable": 0, + "coms": "rs485", + "mode": "UnBalance", + "protocolMode": 0, + "linkLen": 2, + "linkAddr": 1, + "asduLen": 2, + "ioaLen": 3, + "cotLen": 2, + "serverList": [ + { + "asduAddr": 1 + } + ], + "linkTimeOut": 2000, + "timeSet": 1, + "idleTimeOut": 10000, + "byteOrder": "abcd", + "useRawvalue": 1, + "enableSpontaneous": 1, + "uploadPeriod": 0, + "mappingTable": { + "YX": [], + "YC": [], + "YK": [] + } + }, + "iec104Client": { + "enable": 0, + "connectType": 2, + "serverAddr": "ipower.inhandcloud.cn", + "serverPort": 2404, + "communicationCode": "", + "protocol": 1, + "asduAddr": 1, + "tls": 0, + "mapping_table": { + "YX": [], + "YC": [], + "YK": [] + } + }, + "opcuaServer": { + "enable": 0, + "port": 4840, + "maximumLink": 5, + "securityMode": 0, + "identifierType": "String", + "certificate": "None", + "privateKey": "None", + "pubsub": 0, + "useRawvalue": 1, + "mapping_table": [] + }, + "iec61850Server": { + "enable": 0, + "protocol": "iec61850Server", + "port": 102, + "iedName": "INHAND", + "LDName": "Gateway", + "ctrlMode": 1, + "authentication": 0, + "password": "123456", + "useRawvalue": 1, + "dataSet": [], + "mapping_table": [] + }, + "sl651Slave": { + "enable": 0, + "centerAaddr": 1, + "remoteAddr": "", + "addrCode": "", + "password": "", + "platform_list": [], + "useRawvalue": 1, + "addressIdentifier": "00F1", + "timeLeader": "00F0", + "reverseCRC": 0, + "mapping_table": [] + }, + "hj212Client": { + "enable": 0, + "useRawvalue": 1, + "platform_list": [], + "block_list": [], + "mapping_table": [] + }, + "bacnetServer": { + "enable": 0, + "protocol": "BACnet/IP", + "deviceId": 0, + "port": 47808, + "bbmdEnable": 0, + "useRawvalue": 1, + "mapping_table": [] + }, + "bacnetMSTPServer": { + "enable": 0, + "protocol": "BACnet/MSTP", + "deviceId": 0, + "coms": "rs485", + "maxInfoFrame": 6, + "mstpMac": 1, + "maxMaster": 10, + "useRawvalue": 1, + "mapping_table": [] + }, + "Dnp3Server": { + "enable": 0, + "protocol": "Dnp3-TCP", + "slaveAddr": 1, + "masterAddr": 2, + "port": 20000, + "useRawvalue": 1, + "enableUnsol": 0, + "maxFrasize": 4096, + "layerTimeout": 1000, + "linkRetry": 5, + "enableLink": 0, + "mapping_table": [] + }, + "snmpAgent": { + "enable": 0, + "port": 161, + "useRawvalue": 1, + "version": 3, + "userName": "", + "enableAuth": 0, + "readWrite": "ro", + "enable_trap": 0, + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": { + "version": "", + "timestamp": "" + }, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "templates": {}, + "version": "3.2.1" +} \ No newline at end of file diff --git a/Pub_Sub/fk_leak_detection/thingsboard/leak_detection.csv b/Pub_Sub/fk_leak_detection/thingsboard/leak_detection.csv new file mode 100644 index 0000000..f386c72 --- /dev/null +++ b/Pub_Sub/fk_leak_detection/thingsboard/leak_detection.csv @@ -0,0 +1,99 @@ +MeasuringPointName,ControllerName,GroupName,UploadType,DeadZoneType,DeadZonePercent,DataType,ArrayIndex,EnableBit,BitIndex,reverseBit,Address,Decimal,Len,CodeType,ReadWrite,Unit,Description,Transform Type,MaxValue,MinValue,MaxScale,MinScale,Gain,Offset,startBit,endBit,Pt,Ct,Mapping_table,TransDecimal,bitMap,msecSample,storageLwTSDB,DataEndianReverse,ReadOffset,ReadLength,WriteOffset,WriteLength,DataParseMethod,BitId,pollCycle,EnableRequestCount,RequestCount,, +leak_1_0ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_0FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_10ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_10FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_11ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_11FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_12ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_12FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_13ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_13FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_14ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_14FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_15ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_15FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_16ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_16FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_1ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_1FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_2ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_2FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_3ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_3FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_4ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_4FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_5ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_5FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_6ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_6FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_7ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_7FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_8ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_8FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_9ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_9FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_cu_ft,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_CU_Ft,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_cubic_feet_to_barrels,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Cubic_Feet_To_Barrels,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Hi_Alarm,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_alm_enable,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Hi_Alarm_Enable,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_alm_enabled,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Hi_Alarm_Enabled,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_clr_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Hi_Clr_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_reset,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Hi_Reset,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_set,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Hi_Set,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_hi_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Hi_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_level,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Lev,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_level_psi,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Lev_Psi,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_lo_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Lo_Alarm,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_lo_clr_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Lo_Clr_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_lo_reset,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Lo_Reset,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_lo_set,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_1_Lo_Set,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_lo_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Lo_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_pump_off_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Pump_Off_Spt,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_pump_on_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Pump_On_Spt,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_raw_max,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Raw_Max,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_raw_min,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Raw_Min,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_rise_multiplier,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Rise_Multiplier,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_scaled_max,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_ScaledMax,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_scaled_min,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_ScaledMin,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_stage_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Stage_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_1_total_barrels,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_1_Total_Barrels,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_0ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_0FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_10ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_10FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_11ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_11FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_12ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_12FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_13ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_13FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_14ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_14FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_15ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_15FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_16ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_16FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_1ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_1FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_2ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_2FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_3ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_3FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_4ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_4FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_5ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_5FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_6ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_6FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_7ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_7FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_8ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_8FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_9ft_volume_total,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_9FT_Volume_Total,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_cu_ft,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_CU_Ft,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_cubic_feet_to_barrels,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Cubic_Feet_To_Barrels,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_hi_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Hi_Alarm,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_hi_clr_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Hi_Clr_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_hi_reset,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Hi_Reset,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_hi_set,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Hi_Set,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_hi_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Hi_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_level,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Lev,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_level_psi,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Lev_Psi,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_lo_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Lo_Alarm,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_lo_clr_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Lo_Clr_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_lo_reset,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Lo_Reset,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_lo_set,leak_detection,fastReport,periodic,,,BIT,,0,0,0,Leak_2_Lo_Set,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_lo_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Lo_Setpoint,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_pump_off_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Pump_Off_Spt,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_pump_on_spt,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Pump_On_Spt,2,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_raw_max,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Raw_Max,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_raw_min,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Raw_Min,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_rise_multiplier,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Rise_Multiplier,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_scaled_max,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_ScaledMax,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_scaled_min,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_ScaledMin,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +leak_2_total_barrels,leak_detection,fastReport,periodic,,,FLOAT,,,,,Leak_2_Total_Barrels,2,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_auto,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_AUTO_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_hand,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_HAND_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_overload_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_OVERLOAD_ALARM,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_overload,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_OVERLOAD_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_run_cmd,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_RUN_CMD,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_run_fail_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_RUN_FAIL_ALARM,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_run,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_RUN_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p001_start,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P001_START_BTN_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_auto,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_AUTO_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_hand,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_HAND_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_overload_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_OVERLOAD_ALARM,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_overload,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_OVERLOAD_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_run_cmd,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_RUN_CMD,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_run_fail_alm,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_RUN_FAIL_ALARM,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_run,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_RUN_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +p002_start,leak_detection,fastReport,periodic,,,BIT,,0,0,0,P002_START_BTN_FBK,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, +reset,leak_detection,fastReport,periodic,,,BIT,,0,0,0,RESET,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,,,, \ No newline at end of file diff --git a/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData-bak.py b/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData-bak.py new file mode 100644 index 0000000..745d404 --- /dev/null +++ b/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData-bak.py @@ -0,0 +1,276 @@ +import json +import os +import time +from datetime import datetime as dt +from common.Logger import logger +from quickfaas.remotebus import publish +from quickfaas.global_dict import get as get_params +from quickfaas.global_dict import _set_global_args +from mobiuspi_lib.gps import GPS + + +def reboot(): + # basic = Basic() + logger.info("!" * 10 + "REBOOTING DEVICE" + "!"*10) + r = os.popen("kill -s SIGHUP `cat /var/run/python/supervisord.pid`").read() + logger.info(f"REBOOT : {r}") + + +def checkFileExist(filename): + path = "/var/user/files" + if not os.path.exists(path): + logger.info("no folder making files folder in var/user") + os.makedirs(path) + with open(path + "/" + filename, "a") as f: + json.dump({}, f) + if not os.path.exists(path + "/" + filename): + logger.info("no creds file making creds file") + with open(path + "/" + filename, "a") as f: + json.dump({}, f) + + +def convertDStoJSON(ds): + j = dict() + for x in ds: + j[x["key"]] = x["value"] + return j + + +def convertJSONtoDS(j): + d = [] + for key in j.keys(): + d.append({"key": key, "value": j[key]}) + return d + + +def checkCredentialConfig(): + logger.info("CHECKING CONFIG") + cfgpath = "/var/user/cfg/device_supervisor/device_supervisor.cfg" + credspath = "/var/user/files/creds.json" + cfg = dict() + with open(cfgpath, "r") as f: + cfg = json.load(f) + clouds = cfg.get("clouds") + logger.info(clouds) + # if not configured then try to configure from stored values + if clouds[0]["args"]["clientId"] == "unknown" or clouds[0]["args"]["username"] == "unknown" or not clouds[0]["args"]["passwd"] or clouds[0]["args"]["passwd"] == "unknown": + checkFileExist("creds.json") + with open(credspath, "r") as c: + creds = json.load(c) + if creds: + logger.info("updating config with stored data") + clouds[0]["args"]["clientId"] = creds["clientId"] + clouds[0]["args"]["username"] = creds["userName"] + clouds[0]["args"]["passwd"] = creds["password"] + cfg["clouds"] = clouds + cfg = checkParameterConfig(cfg) + with open(cfgpath, "w", encoding='utf-8') as n: + json.dump(cfg, n, indent=1, ensure_ascii=False) + reboot() + else: + # assuming clouds is filled out, if data is different then assume someone typed in something new and store it, if creds is empty fill with clouds' data + checkFileExist("creds.json") + with open(credspath, "r") as c: + logger.info("updating stored file with new data") + cfg = checkParameterConfig(cfg) + with open(cfgpath, "w", encoding='utf-8') as n: + json.dump(cfg, n, indent=1, ensure_ascii=False) + creds = json.load(c) + if creds: + if creds["clientId"] != clouds[0]["args"]["clientId"]: + creds["clientId"] = clouds[0]["args"]["clientId"] + if creds["userName"] != clouds[0]["args"]["username"]: + creds["userName"] = clouds[0]["args"]["username"] + if creds["password"] != clouds[0]["args"]["passwd"]: + creds["password"] = clouds[0]["args"]["passwd"] + else: + creds["clientId"] = clouds[0]["args"]["clientId"] + creds["userName"] = clouds[0]["args"]["username"] + creds["password"] = clouds[0]["args"]["passwd"] + with open(credspath, "w") as cw: + json.dump(creds, cw) + + +def checkParameterConfig(cfg): + logger.info("Checking Parameters!!!!") + paramspath = "/var/user/files/params.json" + cfgparams = convertDStoJSON(cfg.get("labels")) + # check stored values + checkFileExist("params.json") + with open(paramspath, "r") as f: + logger.info("Opened param storage file") + params = json.load(f) + if params: + if cfgparams != params: + # go through each param + # if not "unknown" and cfg and params aren't the same take from cfg likely updated manually + # if key in cfg but not in params copy to params + logger.info("equalizing params between cfg and stored") + for key in cfgparams.keys(): + try: + if cfgparams[key] != params[key] and cfgparams[key] != "unknown": + params[key] = cfgparams[key] + except: + params[key] = cfgparams[key] + cfg["labels"] = convertJSONtoDS(params) + _set_global_args(convertJSONtoDS(params)) + with open(paramspath, "w") as p: + json.dump(params, p) + else: + with open(paramspath, "w") as p: + logger.info("initializing param file with params in memory") + json.dump(convertDStoJSON(get_params()), p) + cfg["labels"] = get_params() + + return cfg + + +def getGPS(): + # Create a gps instance + gps = GPS() + + # Retrieve GPS information + position_status = gps.get_position_status() + logger.debug("position_status: ") + logger.debug(position_status) + latitude = position_status["latitude"].split(" ") + longitude = position_status["longitude"].split(" ") + lat_dec = int(latitude[0][:-1]) + (float(latitude[1][:-1])/60) + lon_dec = int(longitude[0][:-1]) + (float(longitude[1][:-1])/60) + if latitude[2] == "S": + lat_dec = lat_dec * -1 + if longitude[2] == "W": + lon_dec = lon_dec * -1 + # lat_dec = round(lat_dec, 7) + # lon_dec = round(lon_dec, 7) + logger.info("HERE IS THE GPS COORDS") + logger.info(f"LATITUDE: {lat_dec}, LONGITUDE: {lon_dec}") + speedKnots = position_status["speed"].split(" ") + speedMPH = float(speedKnots[0]) * 1.151 + return (f"{lat_dec:.8f}", f"{lon_dec:.8f}", f"{speedMPH:.2f}") + + +def chunk_payload(payload, chunk_size=20): + if "values" in payload: + # Original format: {"ts": ..., "values": {...}} + chunked_values = list(payload["values"].items()) + for i in range(0, len(chunked_values), chunk_size): + yield { + "ts": payload["ts"], + "values": dict(chunked_values[i:i+chunk_size]) + } + else: + # New format: {"key1": "value1", "key2": "value2"} + chunked_keys = list(payload.keys()) + for i in range(0, len(chunked_keys), chunk_size): + yield {k: payload[k] for k in chunked_keys[i:i+chunk_size]} + + +def chunk_payload_devices(payload, chunk_size=20, is_attributes_payload=False): + if is_attributes_payload: + # For attributes payload, chunk the controllers + controllers = list(payload.items()) + for i in range(0, len(controllers), chunk_size): + yield dict(controllers[i:i + chunk_size]) + else: + # For data payload, chunk the values within each controller + for controller, data in payload.items(): + for entry in data: + ts = entry['ts'] + values = entry['values'] + chunked_values = list(values.items()) + for i in range(0, len(chunked_values), chunk_size): + yield { + controller: [{ + "ts": ts, + "values": dict(chunked_values[i:i + chunk_size]) + }] + } + + +def controlName(name): + logger.debug(name) + params = convertDStoJSON(get_params()) + logger.debug(params) + nameMap = { + "overflow_pump": f"{params['overflow_pump']}", + "leak_detection": f"{params['leak_detection']}" + } + return nameMap.get(name, "Gateway") + + +def sendData(message): + # logger.info(message) + grouped_data = {} + grouped_attributes = {} + now = (round(dt.timestamp(dt.now())/600)*600)*1000 + payload = {"ts": now, "values": {}} + attributes_payload = {} + logger.debug(message) + for measure in message["measures"]: + try: + logger.debug(measure) + ctrlName = controlName(measure["ctrlName"]) + logger.debug(ctrlName) + if ctrlName == "Gateway": + # send to gateway with v1/devices/me/telemetry + if measure["health"] == 1: + if "_spt" in measure["name"]: + attributes_payload[measure["name"]] = measure["value"] + else: + payload["values"][measure["name"]] = measure["value"] + else: + name = measure['name'] + value = measure['value'] + health = measure['health'] + # Add controller for telemetry if it doesn't exist + if ctrlName not in grouped_data: + grouped_data[ctrlName] = {} + # Add controller for attributes if it doesn't exist + if ctrlName not in grouped_attributes: + grouped_attributes[ctrlName] = {} + grouped_attributes[ctrlName]["latestReportTime"] = now + # Add data to temp payload if datapoint health is good + if health: + if "_spt" in name: + grouped_attributes[ctrlName][name] = value + else: + grouped_data[ctrlName][name] = value + except Exception as e: + logger.error(e) + + # Transform the grouped data to desired structure + payload_devices = {} + #logger.info(grouped_data) + for key, value in grouped_data.items(): + if value: + payload_devices[key] = [{"ts": now, "values": value}] + + attributes_payload_devices = {} + for key, value in grouped_attributes.items(): + if value: + attributes_payload_devices[key] = value + #logger.info(payload_devices) + #logger.info(attributes_payload_devices) + #logger.info(payload) + #logger.info(attributes) + # Send data belonging to Gateway + for chunk in chunk_payload(payload=payload): + publish(__topic__, json.dumps(chunk), __qos__) + time.sleep(2) + + attributes_payload["latestReportTime"] = ( + round(dt.timestamp(dt.now())/600)*600)*1000 + for chunk in chunk_payload(payload=attributes_payload): + publish("v1/devices/me/attributes", json.dumps(chunk), __qos__) + time.sleep(2) + + # Send gateway devices data + for chunk in chunk_payload_devices(payload=payload_devices): + publish("v1/gateway/telemetry", json.dumps(chunk), __qos__) + time.sleep(2) + + for chunk in chunk_payload_devices(payload=attributes_payload_devices, is_attributes_payload=True): + publish("v1/gateway/attributes", + json.dumps(attributes_payload_devices), __qos__) + time.sleep(2) diff --git a/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData.py b/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData.py new file mode 100644 index 0000000..f685668 --- /dev/null +++ b/Pub_Sub/fk_leak_detection/thingsboard/pub/sendData.py @@ -0,0 +1,476 @@ +import json, os, time, shutil, math +from datetime import datetime as dt +from common.Logger import logger +from quickfaas.remotebus import publish +from quickfaas.global_dict import get as get_params +from quickfaas.global_dict import _set_global_args +from mobiuspi_lib.gps import GPS + +class RuntimeStats: + def __init__(self): + self.runs = {} + self.currentRun = 0 + self.today = "" + self.todayString = "" + + def manageTime(self): + if self.todayString != dt.strftime(dt.today(), "%Y-%m-%d"): + if self.runs[self.todayString]["run_" + str(self.currentRun)]["start"] and not self.runs[self.todayString]["run_" + str(self.currentRun)]["end"]: + self.runs[self.todayString]["run_" + str(self.currentRun)]["end"] = time.mktime(dt.strptime(self.todayString + " 23:59:59", "%Y-%m-%d %H:%M:%S").timetuple()) + self.addDay() + self.today = dt.today() + self.todayString = dt.strftime(self.today, "%Y-%m-%d") + days = list(self.runs.keys()) + days.sort() + while (dt.strptime(days[-1],"%Y-%m-%d") - dt.strptime(days[0], "%Y-%m-%d")).days > 40: + self.removeDay(day=days[0]) + days = list(self.runs.keys()) + days.sort() + + def addHertzDataPoint(self, frequency): + if frequency > 0: + self.manageTime() + try: + self.runs[self.todayString]["run_" + str(self.currentRun)]["frequencies"].append(frequency) + except: + self.runs[self.todayString]["run_" + str(self.currentRun)]["frequencies"] = [frequency] + + def startRun(self): + if self.checkRunning(): + self.endRun() + self.runs[self.todayString]["run_" + str(self.currentRun)]["start"] = time.time() + + def endRun(self): + self.runs[self.todayString]["run_" + str(self.currentRun)]["end"] = time.time() + self.currentRun += 1 + self.runs[self.todayString]["run_" + str(self.currentRun)] = {"start":0, "end": 0, "frequencies":[]} + + def checkRunning(self): + if self.runs[self.todayString]["run_" + str(self.currentRun)]["start"] and not self.runs[self.todayString]["run_" + str(self.currentRun)]["end"]: + return True + return False + + def addDay(self): + self.today = dt.today() + self.todayString = dt.strftime(self.today, "%Y-%m-%d") + self.currentRun = 1 + self.runs[self.todayString] = {} + self.runs[self.todayString]["run_" + str(self.currentRun)] = {"start":0, "end": 0, "frequencies":[]} + + def countRunsDay(self, day=None): + if not day: + day = self.todayString + return len(self.runs[day].keys()) + + def countRunsMultiDay(self, numDays=30): + total_runs = 0 + for day in list(self.runs.keys()): + total_runs += self.countRunsDay(day=day) + return total_runs + + def calculateAverageHertzDay(self, day=None, returnArray=False): + dayFrequencies = [] + if not day: + day = self.todayString + for run in list(self.runs[day].keys()): + try: + dayFrequencies += self.runs[day][run]["frequencies"] + except Exception as e: + logger.debug("{} missing frequency data for {}".format(day,run)) + if returnArray: + return dayFrequencies + return round(math.fsum(dayFrequencies)/len(dayFrequencies),2) + + def calculateAverageHertzMultiDay(self, numDays=30): + self.manageTime() + frequencies = [] + for day in list(self.runs.keys()): + if not day == self.todayString and (dt.strptime(self.todayString, "%Y-%m-%d") - dt.strptime(day, "%Y-%m-%d")).days <= numDays: + try: + frequencies += self.calculateAverageHertzDay(day=day, returnArray=True) + except Exception as e: + logger.debug("{} missing frequency data".format(day)) + if len(frequencies): + return round(math.fsum(frequencies)/len(frequencies), 2) + return 0 + + def calculateRunTimeDay(self, day=None, convertToHours=True): + self.manageTime() + total_time = 0 + if not day: + day = self.todayString + for run in list(self.runs.get(day,{}).keys()): + if self.runs[day][run]["end"] == 0 and self.runs[day][run]["start"] != 0: + total_time = time.time() - self.runs[day][run]["start"] + total_time + else: + total_time = self.runs[day][run]["end"] - self.runs[day][run]["start"] + total_time + if convertToHours: + return self.convertSecondstoHours(total_time) + return total_time + + def calculateRunTimeMultiDay(self, numDays=30, convertToHours=True): + total_time = 0 + for day in list(self.runs.keys()): + if (dt.strptime(self.todayString, "%Y-%m-%d") - dt.strptime(day, "%Y-%m-%d")).days <= numDays: + total_time += self.calculateRunTimeDay(day=day, convertToHours=False) + if convertToHours: + return self.convertSecondstoHours(total_time) + return total_time + + def calculateRunPercentDay(self, day=None, precise=False): + if not day: + day = self.todayString + if precise: + return (self.calculateRunTimeDay(day=day)/24) * 100 + return round((self.calculateRunTimeDay(day=day)/24) * 100, 2) + + + def calculateRunPercentMultiDay(self, numDays=30, precise=False): + self.manageTime() + if precise: + return (self.calculateRunTimeMultiDay()/(24*numDays)) * 100 + return round((self.calculateRunTimeMultiDay()/(24*numDays)) * 100,2) + + def removeDay(self, day=None): + if not day: + raise Exception("Day can not be None") + logger.debug("removing day {}".format(day)) + del self.runs[day] + self.saveDataToFile() + + def convertSecondstoHours(self, seconds): + return round(seconds / (60*60),2) + + def resetData(self): + logger.debug("clearing database") + try: + for day in list(self.runs.keys()): + self.removeDay(day=day) + except Exception as e: + logger.error(e) + return False + self.runs = {} + self.currentRun = 0 + self.today = "" + self.todayString = "" + self.manageTime() + return True + + def loadDataFromFile(self, filePath="/var/user/files/runtimestats.json"): + try: + with open(filePath, "r") as f: + temp = json.load(f) + self.runs = temp["data"] + self.currentRun = temp["current_run"] + self.today = dt.strptime(temp["current_day"], "%Y-%m-%d") + self.todayString = temp["current_day"] + self.manageTime() + except: + logger.debug("Could not find file at {}".format(filePath)) + logger.debug("creating file") + self.addDay() + try: + with open(filePath, "w") as f: + d = { + "current_run": self.currentRun, + "current_day": self.todayString, + "data": self.runs + } + json.dump(d, f, indent=4) + except Exception as e: + logger.error(e) + + def saveDataToFile(self, filePath="/var/user/files/runtimestats.json"): + try: + logger.debug("Saving Runs") + with open(filePath, "w") as f: + d = { + "current_run": self.currentRun, + "current_day": self.todayString, + "data": self.runs + } + json.dump(d, f, indent=4) + except Exception as e: + logger.error(e) + +rts = RuntimeStats() +rts.loadDataFromFile() +rts.saveDataToFile() + +def reboot(): + # basic = Basic() + logger.info("!" * 10 + "REBOOTING DEVICE" + "!"*10) + r = os.popen("kill -s SIGHUP `cat /var/run/python/supervisord.pid`").read() + logger.info(f"REBOOT : {r}") + + +def checkFileExist(filename): + path = "/var/user/files" + if not os.path.exists(path): + logger.info("no folder making files folder in var/user") + os.makedirs(path) + with open(path + "/" + filename, "a") as f: + json.dump({}, f) + if not os.path.exists(path + "/" + filename): + logger.info("no creds file making creds file") + with open(path + "/" + filename, "a") as f: + json.dump({}, f) + + +def convertDStoJSON(ds): + j = dict() + for x in ds: + j[x["key"]] = x["value"] + return j + + +def convertJSONtoDS(j): + d = [] + for key in j.keys(): + d.append({"key": key, "value": j[key]}) + return d + + +def checkCredentialConfig(): + logger.info("CHECKING CONFIG") + cfgpath = "/var/user/cfg/device_supervisor/device_supervisor.cfg" + credspath = "/var/user/files/creds.json" + cfg = dict() + with open(cfgpath, "r") as f: + cfg = json.load(f) + clouds = cfg.get("clouds") + logger.info(clouds) + # if not configured then try to configure from stored values + if clouds[0]["args"]["clientId"] == "unknown" or clouds[0]["args"]["username"] == "unknown" or not clouds[0]["args"]["passwd"] or clouds[0]["args"]["passwd"] == "unknown": + checkFileExist("creds.json") + with open(credspath, "r") as c: + creds = json.load(c) + if creds: + logger.info("updating config with stored data") + clouds[0]["args"]["clientId"] = creds["clientId"] + clouds[0]["args"]["username"] = creds["userName"] + clouds[0]["args"]["passwd"] = creds["password"] + cfg["clouds"] = clouds + cfg = checkParameterConfig(cfg) + with open(cfgpath, "w", encoding='utf-8') as n: + json.dump(cfg, n, indent=1, ensure_ascii=False) + reboot() + else: + # assuming clouds is filled out, if data is different then assume someone typed in something new and store it, if creds is empty fill with clouds' data + checkFileExist("creds.json") + with open(credspath, "r") as c: + logger.info("updating stored file with new data") + cfg = checkParameterConfig(cfg) + with open(cfgpath, "w", encoding='utf-8') as n: + json.dump(cfg, n, indent=1, ensure_ascii=False) + creds = json.load(c) + if creds: + if creds["clientId"] != clouds[0]["args"]["clientId"]: + creds["clientId"] = clouds[0]["args"]["clientId"] + if creds["userName"] != clouds[0]["args"]["username"]: + creds["userName"] = clouds[0]["args"]["username"] + if creds["password"] != clouds[0]["args"]["passwd"]: + creds["password"] = clouds[0]["args"]["passwd"] + else: + creds["clientId"] = clouds[0]["args"]["clientId"] + creds["userName"] = clouds[0]["args"]["username"] + creds["password"] = clouds[0]["args"]["passwd"] + with open(credspath, "w") as cw: + json.dump(creds, cw) + + +def checkParameterConfig(cfg): + logger.info("Checking Parameters!!!!") + paramspath = "/var/user/files/params.json" + cfgparams = convertDStoJSON(cfg.get("labels")) + # check stored values + checkFileExist("params.json") + with open(paramspath, "r") as f: + logger.info("Opened param storage file") + params = json.load(f) + if params: + if cfgparams != params: + # go through each param + # if not "unknown" and cfg and params aren't the same take from cfg likely updated manually + # if key in cfg but not in params copy to params + logger.info("equalizing params between cfg and stored") + for key in cfgparams.keys(): + try: + if cfgparams[key] != params[key] and cfgparams[key] != "unknown": + params[key] = cfgparams[key] + except: + params[key] = cfgparams[key] + cfg["labels"] = convertJSONtoDS(params) + _set_global_args(convertJSONtoDS(params)) + with open(paramspath, "w") as p: + json.dump(params, p) + else: + with open(paramspath, "w") as p: + logger.info("initializing param file with params in memory") + json.dump(convertDStoJSON(get_params()), p) + cfg["labels"] = get_params() + + return cfg + + +def getGPS(): + # Create a gps instance + gps = GPS() + + # Retrieve GPS information + position_status = gps.get_position_status() + logger.debug("position_status: ") + logger.debug(position_status) + latitude = position_status["latitude"].split(" ") + longitude = position_status["longitude"].split(" ") + lat_dec = int(latitude[0][:-1]) + (float(latitude[1][:-1])/60) + lon_dec = int(longitude[0][:-1]) + (float(longitude[1][:-1])/60) + if latitude[2] == "S": + lat_dec = lat_dec * -1 + if longitude[2] == "W": + lon_dec = lon_dec * -1 + # lat_dec = round(lat_dec, 7) + # lon_dec = round(lon_dec, 7) + logger.info("HERE IS THE GPS COORDS") + logger.info(f"LATITUDE: {lat_dec}, LONGITUDE: {lon_dec}") + speedKnots = position_status["speed"].split(" ") + speedMPH = float(speedKnots[0]) * 1.151 + return (f"{lat_dec:.8f}", f"{lon_dec:.8f}", f"{speedMPH:.2f}") + + +def chunk_payload(payload, chunk_size=20): + if "values" in payload: + # Original format: {"ts": ..., "values": {...}} + chunked_values = list(payload["values"].items()) + for i in range(0, len(chunked_values), chunk_size): + yield { + "ts": payload["ts"], + "values": dict(chunked_values[i:i+chunk_size]) + } + else: + # New format: {"key1": "value1", "key2": "value2"} + chunked_keys = list(payload.keys()) + for i in range(0, len(chunked_keys), chunk_size): + yield {k: payload[k] for k in chunked_keys[i:i+chunk_size]} + + +def chunk_payload_devices(payload, chunk_size=20, is_attributes_payload=False): + if is_attributes_payload: + # For attributes payload, chunk the controllers + controllers = list(payload.items()) + for i in range(0, len(controllers), chunk_size): + yield dict(controllers[i:i + chunk_size]) + else: + # For data payload, chunk the values within each controller + for controller, data in payload.items(): + for entry in data: + ts = entry['ts'] + values = entry['values'] + chunked_values = list(values.items()) + for i in range(0, len(chunked_values), chunk_size): + yield { + controller: [{ + "ts": ts, + "values": dict(chunked_values[i:i + chunk_size]) + }] + } + + +def controlName(name): + logger.debug(name) + params = convertDStoJSON(get_params()) + logger.debug(params) + nameMap = { + "overflow_pump": f"{params['overflow_pump']}", + "leak_detection": f"{params['leak_detection']}" + } + return nameMap.get(name, "Gateway") + + +def sendData(message): + # logger.info(message) + rts.loadDataFromFile() + grouped_data = {} + grouped_attributes = {} + now = (round(dt.timestamp(dt.now())/600)*600)*1000 + payload = {"ts": now, "values": {}} + attributes_payload = {} + logger.debug(message) + for measure in message["measures"]: + try: + logger.debug(measure) + ctrlName = controlName(measure["ctrlName"]) + logger.debug(ctrlName) + if ctrlName == "Gateway": + # send to gateway with v1/devices/me/telemetry + if measure["health"] == 1: + if "_spt" in measure["name"]: + attributes_payload[measure["name"]] = measure["value"] + else: + payload["values"][measure["name"]] = measure["value"] + else: + name = measure['name'] + value = measure['value'] + health = measure['health'] + # Add controller for telemetry if it doesn't exist + if ctrlName not in grouped_data: + grouped_data[ctrlName] = {} + # Add controller for attributes if it doesn't exist + if ctrlName not in grouped_attributes: + grouped_attributes[ctrlName] = {} + grouped_attributes[ctrlName]["latestReportTime"] = now + # Add data to temp payload if datapoint health is good + if health: + if "_spt" in name: + grouped_attributes[ctrlName][name] = value + if name in ["p001_run"]: + rts.manageTime() + if value == 1 and not rts.runs[rts.todayString]["run_" + str(rts.currentRun)]["start"]: + rts.startRun() + rts.saveDataToFile() + elif value == 0 and rts.runs[rts.todayString]["run_" + str(rts.currentRun)]["start"] and not rts.runs[rts.todayString]["run_" + str(rts.currentRun)]["end"]: + rts.endRun() + rts.saveDataToFile() + grouped_data[ctrlName][name + "_today_running_hours"] = rts.calculateRunTimeDay() + grouped_data[ctrlName][name + "_month_running_hours"] = rts.calculateRunTimeMultiDay(numDays=dt.today().day) + else: + grouped_data[ctrlName][name] = value + + except Exception as e: + logger.error(e) + + # Transform the grouped data to desired structure + payload_devices = {} + #logger.info(grouped_data) + for key, value in grouped_data.items(): + if value: + payload_devices[key] = [{"ts": now, "values": value}] + + attributes_payload_devices = {} + for key, value in grouped_attributes.items(): + if value: + attributes_payload_devices[key] = value + #logger.info(payload_devices) + #logger.info(attributes_payload_devices) + #logger.info(payload) + #logger.info(attributes) + # Send data belonging to Gateway + for chunk in chunk_payload(payload=payload): + publish(__topic__, json.dumps(chunk), __qos__) + time.sleep(2) + + attributes_payload["latestReportTime"] = ( + round(dt.timestamp(dt.now())/600)*600)*1000 + for chunk in chunk_payload(payload=attributes_payload): + publish("v1/devices/me/attributes", json.dumps(chunk), __qos__) + time.sleep(2) + + # Send gateway devices data + for chunk in chunk_payload_devices(payload=payload_devices): + publish("v1/gateway/telemetry", json.dumps(chunk), __qos__) + time.sleep(2) + + for chunk in chunk_payload_devices(payload=attributes_payload_devices, is_attributes_payload=True): + publish("v1/gateway/attributes", + json.dumps(attributes_payload_devices), __qos__) + time.sleep(2) diff --git a/Pub_Sub/fk_leak_detection/thingsboard/tag_dump_2025_October_10.json b/Pub_Sub/fk_leak_detection/thingsboard/tag_dump_2025_October_10.json new file mode 100644 index 0000000..323292b --- /dev/null +++ b/Pub_Sub/fk_leak_detection/thingsboard/tag_dump_2025_October_10.json @@ -0,0 +1,2392 @@ +{ + "_IO_EM_DO_00": { + "tag_name": "_IO_EM_DO_00", + "dim": 0, + "alias": true, + "instance_id": 1, + "symbol_address": 1044, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_01": { + "tag_name": "_IO_EM_DO_01", + "dim": 0, + "alias": true, + "instance_id": 2, + "symbol_address": 1045, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_02": { + "tag_name": "_IO_EM_DO_02", + "dim": 0, + "alias": true, + "instance_id": 3, + "symbol_address": 1046, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_03": { + "tag_name": "_IO_EM_DO_03", + "dim": 0, + "alias": true, + "instance_id": 4, + "symbol_address": 1047, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_04": { + "tag_name": "_IO_EM_DO_04", + "dim": 0, + "alias": true, + "instance_id": 5, + "symbol_address": 1048, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_05": { + "tag_name": "_IO_EM_DO_05", + "dim": 0, + "alias": true, + "instance_id": 6, + "symbol_address": 1049, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_06": { + "tag_name": "_IO_EM_DO_06", + "dim": 0, + "alias": true, + "instance_id": 7, + "symbol_address": 1050, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_00": { + "tag_name": "_IO_EM_DI_00", + "dim": 0, + "alias": true, + "instance_id": 8, + "symbol_address": 1051, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_01": { + "tag_name": "_IO_EM_DI_01", + "dim": 0, + "alias": true, + "instance_id": 9, + "symbol_address": 1052, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_02": { + "tag_name": "_IO_EM_DI_02", + "dim": 0, + "alias": true, + "instance_id": 10, + "symbol_address": 1053, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_03": { + "tag_name": "_IO_EM_DI_03", + "dim": 0, + "alias": true, + "instance_id": 11, + "symbol_address": 1054, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_04": { + "tag_name": "_IO_EM_DI_04", + "dim": 0, + "alias": true, + "instance_id": 12, + "symbol_address": 1055, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_05": { + "tag_name": "_IO_EM_DI_05", + "dim": 0, + "alias": true, + "instance_id": 13, + "symbol_address": 1056, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_06": { + "tag_name": "_IO_EM_DI_06", + "dim": 0, + "alias": true, + "instance_id": 14, + "symbol_address": 1057, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_07": { + "tag_name": "_IO_EM_DI_07", + "dim": 0, + "alias": true, + "instance_id": 15, + "symbol_address": 1058, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_08": { + "tag_name": "_IO_EM_DI_08", + "dim": 0, + "alias": true, + "instance_id": 16, + "symbol_address": 1059, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_09": { + "tag_name": "_IO_EM_DI_09", + "dim": 0, + "alias": true, + "instance_id": 17, + "symbol_address": 1060, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_10": { + "tag_name": "_IO_EM_DI_10", + "dim": 0, + "alias": true, + "instance_id": 18, + "symbol_address": 1061, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_11": { + "tag_name": "_IO_EM_DI_11", + "dim": 0, + "alias": true, + "instance_id": 19, + "symbol_address": 1062, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_AI_00": { + "tag_name": "_IO_EM_AI_00", + "dim": 0, + "alias": true, + "instance_id": 20, + "symbol_address": 1064, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_01": { + "tag_name": "_IO_EM_AI_01", + "dim": 0, + "alias": true, + "instance_id": 21, + "symbol_address": 1066, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_02": { + "tag_name": "_IO_EM_AI_02", + "dim": 0, + "alias": true, + "instance_id": 22, + "symbol_address": 1068, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_03": { + "tag_name": "_IO_EM_AI_03", + "dim": 0, + "alias": true, + "instance_id": 23, + "symbol_address": 1070, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AO_00": { + "tag_name": "_IO_EM_AO_00", + "dim": 0, + "alias": true, + "instance_id": 24, + "symbol_address": 1072, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_00": { + "tag_name": "_IO_P1_AI_00", + "dim": 0, + "alias": true, + "instance_id": 25, + "symbol_address": 1074, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_01": { + "tag_name": "_IO_P1_AI_01", + "dim": 0, + "alias": true, + "instance_id": 26, + "symbol_address": 1076, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_02": { + "tag_name": "_IO_P1_AI_02", + "dim": 0, + "alias": true, + "instance_id": 27, + "symbol_address": 1078, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_03": { + "tag_name": "_IO_P1_AI_03", + "dim": 0, + "alias": true, + "instance_id": 28, + "symbol_address": 1080, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "Leak_1_Hi_Set": { + "tag_name": "Leak_1_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 29, + "symbol_address": 1124, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Hi_Reset": { + "tag_name": "Leak_1_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 30, + "symbol_address": 1125, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Hi_Alarm": { + "tag_name": "Leak_1_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 31, + "symbol_address": 1126, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Hi_Set": { + "tag_name": "Leak_2_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 32, + "symbol_address": 1127, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Hi_Reset": { + "tag_name": "Leak_2_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 33, + "symbol_address": 1128, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Hi_Alarm": { + "tag_name": "Leak_2_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 34, + "symbol_address": 1129, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Lo_Set": { + "tag_name": "Leak_1_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 35, + "symbol_address": 1130, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Lo_Reset": { + "tag_name": "Leak_1_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 36, + "symbol_address": 1131, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Lo_Alarm": { + "tag_name": "Leak_1_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 37, + "symbol_address": 1132, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Lo_Set": { + "tag_name": "Leak_2_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 38, + "symbol_address": 1133, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Lo_Reset": { + "tag_name": "Leak_2_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 39, + "symbol_address": 1134, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_2_Lo_Alarm": { + "tag_name": "Leak_2_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 40, + "symbol_address": 1135, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Hi_Alarm_Enable": { + "tag_name": "Leak_1_Hi_Alarm_Enable", + "dim": 0, + "alias": true, + "instance_id": 41, + "symbol_address": 1136, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Hi_Alarm_Enabled": { + "tag_name": "Leak_1_Hi_Alarm_Enabled", + "dim": 0, + "alias": true, + "instance_id": 42, + "symbol_address": 1137, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_RUN_FAIL_ALARM": { + "tag_name": "P002_RUN_FAIL_ALARM", + "dim": 0, + "alias": true, + "instance_id": 43, + "symbol_address": 1138, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_OVERLOAD_ALARM": { + "tag_name": "P002_OVERLOAD_ALARM", + "dim": 0, + "alias": true, + "instance_id": 44, + "symbol_address": 1139, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_RUN_FAIL_ALARM": { + "tag_name": "P001_RUN_FAIL_ALARM", + "dim": 0, + "alias": true, + "instance_id": 45, + "symbol_address": 1140, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_OVERLOAD_ALARM": { + "tag_name": "P001_OVERLOAD_ALARM", + "dim": 0, + "alias": true, + "instance_id": 46, + "symbol_address": 1141, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_AUTO_FBK": { + "tag_name": "P001_AUTO_FBK", + "dim": 0, + "alias": true, + "instance_id": 47, + "symbol_address": 1142, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_HAND_FBK": { + "tag_name": "P001_HAND_FBK", + "dim": 0, + "alias": true, + "instance_id": 48, + "symbol_address": 1143, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_START_BTN_FBK": { + "tag_name": "P001_START_BTN_FBK", + "dim": 0, + "alias": true, + "instance_id": 49, + "symbol_address": 1144, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_OVERLOAD_FBK": { + "tag_name": "P001_OVERLOAD_FBK", + "dim": 0, + "alias": true, + "instance_id": 50, + "symbol_address": 1145, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_RUN_FBK": { + "tag_name": "P001_RUN_FBK", + "dim": 0, + "alias": true, + "instance_id": 51, + "symbol_address": 1146, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_AUTO_FBK": { + "tag_name": "P002_AUTO_FBK", + "dim": 0, + "alias": true, + "instance_id": 52, + "symbol_address": 1147, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_HAND_FBK": { + "tag_name": "P002_HAND_FBK", + "dim": 0, + "alias": true, + "instance_id": 53, + "symbol_address": 1148, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_START_BTN_FBK": { + "tag_name": "P002_START_BTN_FBK", + "dim": 0, + "alias": true, + "instance_id": 54, + "symbol_address": 1149, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_OVERLOAD_FBK": { + "tag_name": "P002_OVERLOAD_FBK", + "dim": 0, + "alias": true, + "instance_id": 55, + "symbol_address": 1150, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_RUN_FBK": { + "tag_name": "P002_RUN_FBK", + "dim": 0, + "alias": true, + "instance_id": 56, + "symbol_address": 1151, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P001_RUN_CMD": { + "tag_name": "P001_RUN_CMD", + "dim": 0, + "alias": true, + "instance_id": 57, + "symbol_address": 1152, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "P002_RUN_CMD": { + "tag_name": "P002_RUN_CMD", + "dim": 0, + "alias": true, + "instance_id": 58, + "symbol_address": 1153, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "RESET": { + "tag_name": "RESET", + "dim": 0, + "alias": true, + "instance_id": 59, + "symbol_address": 1154, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Leak_1_Lev": { + "tag_name": "Leak_1_Lev", + "dim": 0, + "alias": true, + "instance_id": 60, + "symbol_address": 1160, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_ScaledMin": { + "tag_name": "Leak_1_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 61, + "symbol_address": 1164, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_ScaledMax": { + "tag_name": "Leak_1_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 62, + "symbol_address": 1168, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Lev": { + "tag_name": "Leak_2_Lev", + "dim": 0, + "alias": true, + "instance_id": 63, + "symbol_address": 1172, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_ScaledMin": { + "tag_name": "Leak_2_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 64, + "symbol_address": 1176, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_ScaledMax": { + "tag_name": "Leak_2_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 65, + "symbol_address": 1180, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Hi_Setpoint": { + "tag_name": "Leak_1_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 66, + "symbol_address": 1184, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Hi_Clr_Setpoint": { + "tag_name": "Leak_1_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 67, + "symbol_address": 1188, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Hi_Setpoint": { + "tag_name": "Leak_2_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 68, + "symbol_address": 1192, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Hi_Clr_Setpoint": { + "tag_name": "Leak_2_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 69, + "symbol_address": 1196, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_CU_Ft": { + "tag_name": "Leak_1_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 70, + "symbol_address": 1200, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Cubic_Feet_To_Barrels": { + "tag_name": "Leak_1_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 71, + "symbol_address": 1204, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Total_Barrels": { + "tag_name": "Leak_1_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 72, + "symbol_address": 1208, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Lo_Setpoint": { + "tag_name": "Leak_1_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 73, + "symbol_address": 1212, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Lev_Temp": { + "tag_name": "Leak_1_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 74, + "symbol_address": 1216, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Lo_Clr_Setpoint": { + "tag_name": "Leak_1_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 75, + "symbol_address": 1220, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Lo_Setpoint": { + "tag_name": "Leak_2_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 76, + "symbol_address": 1224, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Lo_Clr_Setpoint": { + "tag_name": "Leak_2_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 77, + "symbol_address": 1228, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Tot_Bbls_Temp": { + "tag_name": "Leak_1_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 78, + "symbol_address": 1232, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Lev_Temp": { + "tag_name": "Leak_2_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 79, + "symbol_address": 1236, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_CU_Ft": { + "tag_name": "Leak_2_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 80, + "symbol_address": 1240, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Tot_Bbls_Temp": { + "tag_name": "Leak_2_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 81, + "symbol_address": 1244, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Cubic_Feet_To_Barrels": { + "tag_name": "Leak_2_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 82, + "symbol_address": 1248, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Total_Barrels": { + "tag_name": "Leak_2_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 83, + "symbol_address": 1252, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_0FT_Volume_Total": { + "tag_name": "Leak_1_0FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 84, + "symbol_address": 1256, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_1FT_Volume_Total": { + "tag_name": "Leak_1_1FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 85, + "symbol_address": 1260, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_2FT_Volume_Total": { + "tag_name": "Leak_1_2FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 86, + "symbol_address": 1264, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_3FT_Volume_Total": { + "tag_name": "Leak_1_3FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 87, + "symbol_address": 1268, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_4FT_Volume_Total": { + "tag_name": "Leak_1_4FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 88, + "symbol_address": 1272, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_5FT_Volume_Total": { + "tag_name": "Leak_1_5FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 89, + "symbol_address": 1276, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_6FT_Volume_Total": { + "tag_name": "Leak_1_6FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 90, + "symbol_address": 1280, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_7FT_Volume_Total": { + "tag_name": "Leak_1_7FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 91, + "symbol_address": 1284, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_8FT_Volume_Total": { + "tag_name": "Leak_1_8FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 92, + "symbol_address": 1288, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_9FT_Volume_Total": { + "tag_name": "Leak_1_9FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 93, + "symbol_address": 1292, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_10FT_Volume_Total": { + "tag_name": "Leak_1_10FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 94, + "symbol_address": 1296, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_11FT_Volume_Total": { + "tag_name": "Leak_1_11FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 95, + "symbol_address": 1300, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_12FT_Volume_Total": { + "tag_name": "Leak_1_12FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 96, + "symbol_address": 1304, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_13FT_Volume_Total": { + "tag_name": "Leak_1_13FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 97, + "symbol_address": 1308, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_14FT_Volume_Total": { + "tag_name": "Leak_1_14FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 98, + "symbol_address": 1312, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_16FT_Volume_Total": { + "tag_name": "Leak_1_16FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 99, + "symbol_address": 1316, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_15FT_Volume_Total": { + "tag_name": "Leak_1_15FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 100, + "symbol_address": 1320, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Stage_Total": { + "tag_name": "Leak_1_Stage_Total", + "dim": 0, + "alias": true, + "instance_id": 101, + "symbol_address": 1324, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Rise_Multiplier": { + "tag_name": "Leak_1_Rise_Multiplier", + "dim": 0, + "alias": true, + "instance_id": 102, + "symbol_address": 1328, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Rise_Multiplier": { + "tag_name": "Leak_2_Rise_Multiplier", + "dim": 0, + "alias": true, + "instance_id": 103, + "symbol_address": 1332, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_0FT_Volume_Total": { + "tag_name": "Leak_2_0FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 104, + "symbol_address": 1336, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_1FT_Volume_Total": { + "tag_name": "Leak_2_1FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 105, + "symbol_address": 1340, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_2FT_Volume_Total": { + "tag_name": "Leak_2_2FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 106, + "symbol_address": 1344, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_3FT_Volume_Total": { + "tag_name": "Leak_2_3FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 107, + "symbol_address": 1348, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_4FT_Volume_Total": { + "tag_name": "Leak_2_4FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 108, + "symbol_address": 1352, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_5FT_Volume_Total": { + "tag_name": "Leak_2_5FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 109, + "symbol_address": 1356, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_6FT_Volume_Total": { + "tag_name": "Leak_2_6FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 110, + "symbol_address": 1360, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_7FT_Volume_Total": { + "tag_name": "Leak_2_7FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 111, + "symbol_address": 1364, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_8FT_Volume_Total": { + "tag_name": "Leak_2_8FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 112, + "symbol_address": 1368, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_9FT_Volume_Total": { + "tag_name": "Leak_2_9FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 113, + "symbol_address": 1372, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_10FT_Volume_Total": { + "tag_name": "Leak_2_10FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 114, + "symbol_address": 1376, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_11FT_Volume_Total": { + "tag_name": "Leak_2_11FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 115, + "symbol_address": 1380, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_12FT_Volume_Total": { + "tag_name": "Leak_2_12FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 116, + "symbol_address": 1384, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_13FT_Volume_Total": { + "tag_name": "Leak_2_13FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 117, + "symbol_address": 1388, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_14FT_Volume_Total": { + "tag_name": "Leak_2_14FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 118, + "symbol_address": 1392, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_15FT_Volume_Total": { + "tag_name": "Leak_2_15FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 119, + "symbol_address": 1396, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_16FT_Volume_Total": { + "tag_name": "Leak_2_16FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 120, + "symbol_address": 1400, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Raw_Min": { + "tag_name": "Leak_1_Raw_Min", + "dim": 0, + "alias": true, + "instance_id": 121, + "symbol_address": 1404, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Raw_Max": { + "tag_name": "Leak_1_Raw_Max", + "dim": 0, + "alias": true, + "instance_id": 122, + "symbol_address": 1408, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Raw_Min": { + "tag_name": "Leak_2_Raw_Min", + "dim": 0, + "alias": true, + "instance_id": 123, + "symbol_address": 1412, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Raw_Max": { + "tag_name": "Leak_2_Raw_Max", + "dim": 0, + "alias": true, + "instance_id": 124, + "symbol_address": 1416, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Lev_Psi": { + "tag_name": "Leak_1_Lev_Psi", + "dim": 0, + "alias": true, + "instance_id": 125, + "symbol_address": 1420, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Lev_Psi": { + "tag_name": "Leak_2_Lev_Psi", + "dim": 0, + "alias": true, + "instance_id": 126, + "symbol_address": 1424, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Pump_On_Spt": { + "tag_name": "Leak_1_Pump_On_Spt", + "dim": 0, + "alias": true, + "instance_id": 127, + "symbol_address": 1428, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_1_Pump_Off_Spt": { + "tag_name": "Leak_1_Pump_Off_Spt", + "dim": 0, + "alias": true, + "instance_id": 128, + "symbol_address": 1432, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Pump_On_Spt": { + "tag_name": "Leak_2_Pump_On_Spt", + "dim": 0, + "alias": true, + "instance_id": 129, + "symbol_address": 1436, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Leak_2_Pump_Off_Spt": { + "tag_name": "Leak_2_Pump_Off_Spt", + "dim": 0, + "alias": true, + "instance_id": 130, + "symbol_address": 1440, + "symbol_object_address": 1077556268, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + } +} \ No newline at end of file diff --git a/Pub_Sub/fk_overflow_pump/thingsboard/tag_dump_2025_October_10.json b/Pub_Sub/fk_overflow_pump/thingsboard/tag_dump_2025_October_10.json new file mode 100644 index 0000000..dc972d8 --- /dev/null +++ b/Pub_Sub/fk_overflow_pump/thingsboard/tag_dump_2025_October_10.json @@ -0,0 +1,2348 @@ +{ + "_IO_EM_DO_00": { + "tag_name": "_IO_EM_DO_00", + "dim": 0, + "alias": true, + "instance_id": 1, + "symbol_address": 1044, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_01": { + "tag_name": "_IO_EM_DO_01", + "dim": 0, + "alias": true, + "instance_id": 2, + "symbol_address": 1045, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_02": { + "tag_name": "_IO_EM_DO_02", + "dim": 0, + "alias": true, + "instance_id": 3, + "symbol_address": 1046, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_03": { + "tag_name": "_IO_EM_DO_03", + "dim": 0, + "alias": true, + "instance_id": 4, + "symbol_address": 1047, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_04": { + "tag_name": "_IO_EM_DO_04", + "dim": 0, + "alias": true, + "instance_id": 5, + "symbol_address": 1048, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_05": { + "tag_name": "_IO_EM_DO_05", + "dim": 0, + "alias": true, + "instance_id": 6, + "symbol_address": 1049, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_06": { + "tag_name": "_IO_EM_DO_06", + "dim": 0, + "alias": true, + "instance_id": 7, + "symbol_address": 1050, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_00": { + "tag_name": "_IO_EM_DI_00", + "dim": 0, + "alias": true, + "instance_id": 8, + "symbol_address": 1051, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_01": { + "tag_name": "_IO_EM_DI_01", + "dim": 0, + "alias": true, + "instance_id": 9, + "symbol_address": 1052, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_02": { + "tag_name": "_IO_EM_DI_02", + "dim": 0, + "alias": true, + "instance_id": 10, + "symbol_address": 1053, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_03": { + "tag_name": "_IO_EM_DI_03", + "dim": 0, + "alias": true, + "instance_id": 11, + "symbol_address": 1054, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_04": { + "tag_name": "_IO_EM_DI_04", + "dim": 0, + "alias": true, + "instance_id": 12, + "symbol_address": 1055, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_05": { + "tag_name": "_IO_EM_DI_05", + "dim": 0, + "alias": true, + "instance_id": 13, + "symbol_address": 1056, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_06": { + "tag_name": "_IO_EM_DI_06", + "dim": 0, + "alias": true, + "instance_id": 14, + "symbol_address": 1057, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_07": { + "tag_name": "_IO_EM_DI_07", + "dim": 0, + "alias": true, + "instance_id": 15, + "symbol_address": 1058, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_08": { + "tag_name": "_IO_EM_DI_08", + "dim": 0, + "alias": true, + "instance_id": 16, + "symbol_address": 1059, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_09": { + "tag_name": "_IO_EM_DI_09", + "dim": 0, + "alias": true, + "instance_id": 17, + "symbol_address": 1060, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_10": { + "tag_name": "_IO_EM_DI_10", + "dim": 0, + "alias": true, + "instance_id": 18, + "symbol_address": 1061, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_11": { + "tag_name": "_IO_EM_DI_11", + "dim": 0, + "alias": true, + "instance_id": 19, + "symbol_address": 1062, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_AI_00": { + "tag_name": "_IO_EM_AI_00", + "dim": 0, + "alias": true, + "instance_id": 20, + "symbol_address": 1064, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_01": { + "tag_name": "_IO_EM_AI_01", + "dim": 0, + "alias": true, + "instance_id": 21, + "symbol_address": 1066, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_02": { + "tag_name": "_IO_EM_AI_02", + "dim": 0, + "alias": true, + "instance_id": 22, + "symbol_address": 1068, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_03": { + "tag_name": "_IO_EM_AI_03", + "dim": 0, + "alias": true, + "instance_id": 23, + "symbol_address": 1070, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AO_00": { + "tag_name": "_IO_EM_AO_00", + "dim": 0, + "alias": true, + "instance_id": 24, + "symbol_address": 1072, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_00": { + "tag_name": "_IO_P1_AI_00", + "dim": 0, + "alias": true, + "instance_id": 25, + "symbol_address": 1074, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_01": { + "tag_name": "_IO_P1_AI_01", + "dim": 0, + "alias": true, + "instance_id": 26, + "symbol_address": 1076, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_02": { + "tag_name": "_IO_P1_AI_02", + "dim": 0, + "alias": true, + "instance_id": 27, + "symbol_address": 1078, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_03": { + "tag_name": "_IO_P1_AI_03", + "dim": 0, + "alias": true, + "instance_id": 28, + "symbol_address": 1080, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "Pond_1_Hi_Set": { + "tag_name": "Pond_1_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 29, + "symbol_address": 1124, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Reset": { + "tag_name": "Pond_1_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 30, + "symbol_address": 1125, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm": { + "tag_name": "Pond_1_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 31, + "symbol_address": 1126, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Set": { + "tag_name": "Pond_2_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 32, + "symbol_address": 1127, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Reset": { + "tag_name": "Pond_2_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 33, + "symbol_address": 1128, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Alarm": { + "tag_name": "Pond_2_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 34, + "symbol_address": 1129, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Set": { + "tag_name": "Pond_1_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 35, + "symbol_address": 1130, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Reset": { + "tag_name": "Pond_1_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 36, + "symbol_address": 1131, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Alarm": { + "tag_name": "Pond_1_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 37, + "symbol_address": 1132, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Set": { + "tag_name": "Pond_2_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 38, + "symbol_address": 1133, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Reset": { + "tag_name": "Pond_2_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 39, + "symbol_address": 1134, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Alarm": { + "tag_name": "Pond_2_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 40, + "symbol_address": 1135, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm_Enable": { + "tag_name": "Pond_1_Hi_Alarm_Enable", + "dim": 0, + "alias": true, + "instance_id": 41, + "symbol_address": 1136, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm_Enabled": { + "tag_name": "Pond_1_Hi_Alarm_Enabled", + "dim": 0, + "alias": true, + "instance_id": 42, + "symbol_address": 1137, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Save": { + "tag_name": "Save", + "dim": 0, + "alias": true, + "instance_id": 43, + "symbol_address": 1138, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pump_Status": { + "tag_name": "Pump_Status", + "dim": 0, + "alias": true, + "instance_id": 44, + "symbol_address": 1139, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Hand": { + "tag_name": "Hand", + "dim": 0, + "alias": true, + "instance_id": 45, + "symbol_address": 1140, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Auto": { + "tag_name": "Auto", + "dim": 0, + "alias": true, + "instance_id": 46, + "symbol_address": 1141, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pump_Permissive": { + "tag_name": "Pump_Permissive", + "dim": 0, + "alias": true, + "instance_id": 47, + "symbol_address": 1142, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Hi_Set": { + "tag_name": "DisPSI_Out_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 48, + "symbol_address": 1143, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Hi_Reset": { + "tag_name": "DisPSI_Out_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 49, + "symbol_address": 1144, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Hi_Alarm": { + "tag_name": "DisPSI_Out_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 50, + "symbol_address": 1145, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Lo_Set": { + "tag_name": "DisPSI_Out_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 51, + "symbol_address": 1146, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Lo_Reset": { + "tag_name": "DisPSI_Out_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 52, + "symbol_address": 1147, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "DisPSI_Out_Lo_Alarm": { + "tag_name": "DisPSI_Out_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 53, + "symbol_address": 1148, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Hi_Set": { + "tag_name": "FIT_Rate_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 54, + "symbol_address": 1149, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Hi_Reset": { + "tag_name": "FIT_Rate_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 55, + "symbol_address": 1150, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Hi_Alarm": { + "tag_name": "FIT_Rate_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 56, + "symbol_address": 1151, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Lo_Set": { + "tag_name": "FIT_Rate_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 57, + "symbol_address": 1152, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Lo_Reset": { + "tag_name": "FIT_Rate_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 58, + "symbol_address": 1153, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "FIT_Rate_Lo_Alarm": { + "tag_name": "FIT_Rate_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 59, + "symbol_address": 1154, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "OFF": { + "tag_name": "OFF", + "dim": 0, + "alias": true, + "instance_id": 60, + "symbol_address": 1155, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Run_Level_Perm": { + "tag_name": "Run_Level_Perm", + "dim": 0, + "alias": true, + "instance_id": 61, + "symbol_address": 1156, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Raw_Auto_Input": { + "tag_name": "Raw_Auto_Input", + "dim": 0, + "alias": true, + "instance_id": 62, + "symbol_address": 1157, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Raw_Overload_Status": { + "tag_name": "Raw_Overload_Status", + "dim": 0, + "alias": true, + "instance_id": 63, + "symbol_address": 1158, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "CMD_Cloud_Control": { + "tag_name": "CMD_Cloud_Control", + "dim": 0, + "alias": true, + "instance_id": 64, + "symbol_address": 1159, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Level_Override": { + "tag_name": "Level_Override", + "dim": 0, + "alias": true, + "instance_id": 65, + "symbol_address": 1160, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pump_Run": { + "tag_name": "Pump_Run", + "dim": 0, + "alias": true, + "instance_id": 66, + "symbol_address": 1161, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Raw_Hand_Input": { + "tag_name": "Raw_Hand_Input", + "dim": 0, + "alias": true, + "instance_id": 67, + "symbol_address": 1162, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Raw_Local_Start": { + "tag_name": "Raw_Local_Start", + "dim": 0, + "alias": true, + "instance_id": 68, + "symbol_address": 1163, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Raw_Run_Status": { + "tag_name": "Raw_Run_Status", + "dim": 0, + "alias": true, + "instance_id": 69, + "symbol_address": 1164, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Alarm_Enable": { + "tag_name": "Alarm_Enable", + "dim": 0, + "alias": true, + "instance_id": 70, + "symbol_address": 1166, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "INT", + "data_type_name": "INT", + "tag_type": "atomic" + }, + "Pond_1_Lev": { + "tag_name": "Pond_1_Lev", + "dim": 0, + "alias": true, + "instance_id": 71, + "symbol_address": 1172, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_ScaledMin": { + "tag_name": "Pond_1_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 72, + "symbol_address": 1176, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_ScaledMax": { + "tag_name": "Pond_1_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 73, + "symbol_address": 1180, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lev": { + "tag_name": "Pond_2_Lev", + "dim": 0, + "alias": true, + "instance_id": 74, + "symbol_address": 1184, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_ScaledMax": { + "tag_name": "Pond_2_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 75, + "symbol_address": 1188, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Hi_Setpoint": { + "tag_name": "Pond_1_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 76, + "symbol_address": 1192, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Hi_Clr_Setpoint": { + "tag_name": "Pond_1_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 77, + "symbol_address": 1196, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Hi_Setpoint": { + "tag_name": "Pond_2_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 78, + "symbol_address": 1200, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Hi_Clr_Setpoint": { + "tag_name": "Pond_2_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 79, + "symbol_address": 1204, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_CU_Ft": { + "tag_name": "Pond_1_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 80, + "symbol_address": 1208, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Dim_A": { + "tag_name": "Pond_1_Dim_A", + "dim": 0, + "alias": true, + "instance_id": 81, + "symbol_address": 1212, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Dim_B": { + "tag_name": "Pond_1_Dim_B", + "dim": 0, + "alias": true, + "instance_id": 82, + "symbol_address": 1216, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Dim_C": { + "tag_name": "Pond_1_Dim_C", + "dim": 0, + "alias": true, + "instance_id": 83, + "symbol_address": 1220, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Dim_D": { + "tag_name": "Pond_1_Dim_D", + "dim": 0, + "alias": true, + "instance_id": 84, + "symbol_address": 1224, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Cubic_Feet_To_Barrels": { + "tag_name": "Pond_1_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 85, + "symbol_address": 1228, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Total_Barrels": { + "tag_name": "Pond_1_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 86, + "symbol_address": 1232, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lo_Setpoint": { + "tag_name": "Pond_1_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 87, + "symbol_address": 1236, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lev_Temp": { + "tag_name": "Pond_1_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 88, + "symbol_address": 1240, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lo_Clr_Setpoint": { + "tag_name": "Pond_1_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 89, + "symbol_address": 1244, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lo_Setpoint": { + "tag_name": "Pond_2_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 90, + "symbol_address": 1248, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lo_Clr_Setpoint": { + "tag_name": "Pond_2_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 91, + "symbol_address": 1252, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Tot_Bbls_Temp": { + "tag_name": "Pond_1_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 92, + "symbol_address": 1256, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lev_Temp": { + "tag_name": "Pond_2_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 93, + "symbol_address": 1260, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Dim_C": { + "tag_name": "Pond_2_Dim_C", + "dim": 0, + "alias": true, + "instance_id": 94, + "symbol_address": 1264, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Dim_D": { + "tag_name": "Pond_2_Dim_D", + "dim": 0, + "alias": true, + "instance_id": 95, + "symbol_address": 1268, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_CU_Ft": { + "tag_name": "Pond_2_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 96, + "symbol_address": 1272, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Tot_Bbls_Temp": { + "tag_name": "Pond_2_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 97, + "symbol_address": 1276, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Cubic_Feet_To_Barrels": { + "tag_name": "Pond_2_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 98, + "symbol_address": 1280, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Dim_A": { + "tag_name": "Pond_2_Dim_A", + "dim": 0, + "alias": true, + "instance_id": 99, + "symbol_address": 1284, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Dim_B": { + "tag_name": "Pond_2_Dim_B", + "dim": 0, + "alias": true, + "instance_id": 100, + "symbol_address": 1288, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Total_Barrels": { + "tag_name": "Pond_2_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 101, + "symbol_address": 1292, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_EU_Min": { + "tag_name": "Pond_1_EU_Min", + "dim": 0, + "alias": true, + "instance_id": 102, + "symbol_address": 1296, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_EU_Max": { + "tag_name": "Pond_1_EU_Max", + "dim": 0, + "alias": true, + "instance_id": 103, + "symbol_address": 1300, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_EU_Min": { + "tag_name": "Pond_2_EU_Min", + "dim": 0, + "alias": true, + "instance_id": 104, + "symbol_address": 1304, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_EU_Max": { + "tag_name": "Pond_2_EU_Max", + "dim": 0, + "alias": true, + "instance_id": 105, + "symbol_address": 1308, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out": { + "tag_name": "DisPSI_Out", + "dim": 0, + "alias": true, + "instance_id": 106, + "symbol_address": 1312, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_Temp": { + "tag_name": "DisPSI_Out_Temp", + "dim": 0, + "alias": true, + "instance_id": 107, + "symbol_address": 1316, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_ScaledMin": { + "tag_name": "DisPSI_Out_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 108, + "symbol_address": 1320, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_ScaledMax": { + "tag_name": "DisPSI_Out_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 109, + "symbol_address": 1324, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Anaog_03_Raw": { + "tag_name": "Anaog_03_Raw", + "dim": 0, + "alias": true, + "instance_id": 110, + "symbol_address": 1328, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_Temp": { + "tag_name": "FIT_Rate_Temp", + "dim": 0, + "alias": true, + "instance_id": 111, + "symbol_address": 1332, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_ScaledMin": { + "tag_name": "FIT_Rate_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 112, + "symbol_address": 1336, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_ScaledMax": { + "tag_name": "FIT_Rate_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 113, + "symbol_address": 1340, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate": { + "tag_name": "FIT_Rate", + "dim": 0, + "alias": true, + "instance_id": 114, + "symbol_address": 1344, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_Hi_Setpoint": { + "tag_name": "DisPSI_Out_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 115, + "symbol_address": 1348, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_Hi_Clr_Setpoint": { + "tag_name": "DisPSI_Out_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 116, + "symbol_address": 1352, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_Lo_Setpoint": { + "tag_name": "DisPSI_Out_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 117, + "symbol_address": 1356, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "DisPSI_Out_Lo_Clr_Setpoint": { + "tag_name": "DisPSI_Out_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 118, + "symbol_address": 1360, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_Hi_Setpoint": { + "tag_name": "FIT_Rate_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 119, + "symbol_address": 1364, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_Hi_Clr_Setpoint": { + "tag_name": "FIT_Rate_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 120, + "symbol_address": 1368, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_Lo_Setpoint": { + "tag_name": "FIT_Rate_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 121, + "symbol_address": 1372, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "FIT_Rate_Lo_Clr_Setpoint": { + "tag_name": "FIT_Rate_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 122, + "symbol_address": 1376, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_ScaledMin": { + "tag_name": "Pond_2_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 123, + "symbol_address": 1380, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Start_Level_spt": { + "tag_name": "Start_Level_spt", + "dim": 0, + "alias": true, + "instance_id": 124, + "symbol_address": 1384, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Stop_Level_spt": { + "tag_name": "Stop_Level_spt", + "dim": 0, + "alias": true, + "instance_id": 125, + "symbol_address": 1388, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Input_Min": { + "tag_name": "Pond_1_Input_Min", + "dim": 0, + "alias": true, + "instance_id": 126, + "symbol_address": 1392, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Input_Max": { + "tag_name": "Pond_1_Input_Max", + "dim": 0, + "alias": true, + "instance_id": 127, + "symbol_address": 1396, + "symbol_object_address": 1077550680, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + } +} \ No newline at end of file diff --git a/Pub_Sub/fk_plcpond/thingsboard/tag_dump_2025_October_10.json b/Pub_Sub/fk_plcpond/thingsboard/tag_dump_2025_October_10.json new file mode 100644 index 0000000..c1efd86 --- /dev/null +++ b/Pub_Sub/fk_plcpond/thingsboard/tag_dump_2025_October_10.json @@ -0,0 +1,2016 @@ +{ + "_IO_EM_DO_00": { + "tag_name": "_IO_EM_DO_00", + "dim": 0, + "alias": true, + "instance_id": 1, + "symbol_address": 1044, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_01": { + "tag_name": "_IO_EM_DO_01", + "dim": 0, + "alias": true, + "instance_id": 2, + "symbol_address": 1045, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_02": { + "tag_name": "_IO_EM_DO_02", + "dim": 0, + "alias": true, + "instance_id": 3, + "symbol_address": 1046, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_03": { + "tag_name": "_IO_EM_DO_03", + "dim": 0, + "alias": true, + "instance_id": 4, + "symbol_address": 1047, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_04": { + "tag_name": "_IO_EM_DO_04", + "dim": 0, + "alias": true, + "instance_id": 5, + "symbol_address": 1048, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_05": { + "tag_name": "_IO_EM_DO_05", + "dim": 0, + "alias": true, + "instance_id": 6, + "symbol_address": 1049, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DO_06": { + "tag_name": "_IO_EM_DO_06", + "dim": 0, + "alias": true, + "instance_id": 7, + "symbol_address": 1050, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_00": { + "tag_name": "_IO_EM_DI_00", + "dim": 0, + "alias": true, + "instance_id": 8, + "symbol_address": 1051, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_01": { + "tag_name": "_IO_EM_DI_01", + "dim": 0, + "alias": true, + "instance_id": 9, + "symbol_address": 1052, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_02": { + "tag_name": "_IO_EM_DI_02", + "dim": 0, + "alias": true, + "instance_id": 10, + "symbol_address": 1053, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_03": { + "tag_name": "_IO_EM_DI_03", + "dim": 0, + "alias": true, + "instance_id": 11, + "symbol_address": 1054, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_04": { + "tag_name": "_IO_EM_DI_04", + "dim": 0, + "alias": true, + "instance_id": 12, + "symbol_address": 1055, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_05": { + "tag_name": "_IO_EM_DI_05", + "dim": 0, + "alias": true, + "instance_id": 13, + "symbol_address": 1056, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_06": { + "tag_name": "_IO_EM_DI_06", + "dim": 0, + "alias": true, + "instance_id": 14, + "symbol_address": 1057, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_07": { + "tag_name": "_IO_EM_DI_07", + "dim": 0, + "alias": true, + "instance_id": 15, + "symbol_address": 1058, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_08": { + "tag_name": "_IO_EM_DI_08", + "dim": 0, + "alias": true, + "instance_id": 16, + "symbol_address": 1059, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_09": { + "tag_name": "_IO_EM_DI_09", + "dim": 0, + "alias": true, + "instance_id": 17, + "symbol_address": 1060, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_10": { + "tag_name": "_IO_EM_DI_10", + "dim": 0, + "alias": true, + "instance_id": 18, + "symbol_address": 1061, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_DI_11": { + "tag_name": "_IO_EM_DI_11", + "dim": 0, + "alias": true, + "instance_id": 19, + "symbol_address": 1062, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "_IO_EM_AI_00": { + "tag_name": "_IO_EM_AI_00", + "dim": 0, + "alias": true, + "instance_id": 20, + "symbol_address": 1064, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_01": { + "tag_name": "_IO_EM_AI_01", + "dim": 0, + "alias": true, + "instance_id": 21, + "symbol_address": 1066, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_02": { + "tag_name": "_IO_EM_AI_02", + "dim": 0, + "alias": true, + "instance_id": 22, + "symbol_address": 1068, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AI_03": { + "tag_name": "_IO_EM_AI_03", + "dim": 0, + "alias": true, + "instance_id": 23, + "symbol_address": 1070, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_EM_AO_00": { + "tag_name": "_IO_EM_AO_00", + "dim": 0, + "alias": true, + "instance_id": 24, + "symbol_address": 1072, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_00": { + "tag_name": "_IO_P1_AI_00", + "dim": 0, + "alias": true, + "instance_id": 25, + "symbol_address": 1074, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_01": { + "tag_name": "_IO_P1_AI_01", + "dim": 0, + "alias": true, + "instance_id": 26, + "symbol_address": 1076, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_02": { + "tag_name": "_IO_P1_AI_02", + "dim": 0, + "alias": true, + "instance_id": 27, + "symbol_address": 1078, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "_IO_P1_AI_03": { + "tag_name": "_IO_P1_AI_03", + "dim": 0, + "alias": true, + "instance_id": 28, + "symbol_address": 1080, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "UINT", + "data_type_name": "UINT", + "tag_type": "atomic" + }, + "Pond_1_Hi_Set": { + "tag_name": "Pond_1_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 29, + "symbol_address": 1124, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Reset": { + "tag_name": "Pond_1_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 30, + "symbol_address": 1125, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm": { + "tag_name": "Pond_1_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 31, + "symbol_address": 1126, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Set": { + "tag_name": "Pond_2_Hi_Set", + "dim": 0, + "alias": true, + "instance_id": 32, + "symbol_address": 1127, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Reset": { + "tag_name": "Pond_2_Hi_Reset", + "dim": 0, + "alias": true, + "instance_id": 33, + "symbol_address": 1128, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Hi_Alarm": { + "tag_name": "Pond_2_Hi_Alarm", + "dim": 0, + "alias": true, + "instance_id": 34, + "symbol_address": 1129, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Set": { + "tag_name": "Pond_1_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 35, + "symbol_address": 1130, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Reset": { + "tag_name": "Pond_1_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 36, + "symbol_address": 1131, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lo_Alarm": { + "tag_name": "Pond_1_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 37, + "symbol_address": 1132, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Set": { + "tag_name": "Pond_2_Lo_Set", + "dim": 0, + "alias": true, + "instance_id": 38, + "symbol_address": 1133, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Reset": { + "tag_name": "Pond_2_Lo_Reset", + "dim": 0, + "alias": true, + "instance_id": 39, + "symbol_address": 1134, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_2_Lo_Alarm": { + "tag_name": "Pond_2_Lo_Alarm", + "dim": 0, + "alias": true, + "instance_id": 40, + "symbol_address": 1135, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm_Enable": { + "tag_name": "Pond_1_Hi_Alarm_Enable", + "dim": 0, + "alias": true, + "instance_id": 41, + "symbol_address": 1136, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Hi_Alarm_Enabled": { + "tag_name": "Pond_1_Hi_Alarm_Enabled", + "dim": 0, + "alias": true, + "instance_id": 42, + "symbol_address": 1137, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Save": { + "tag_name": "Save", + "dim": 0, + "alias": true, + "instance_id": 43, + "symbol_address": 1138, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "BOOL", + "data_type_name": "BOOL", + "bit_position": 0, + "tag_type": "atomic" + }, + "Pond_1_Lev": { + "tag_name": "Pond_1_Lev", + "dim": 0, + "alias": true, + "instance_id": 44, + "symbol_address": 1144, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_ScaledMin": { + "tag_name": "Pond_1_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 45, + "symbol_address": 1148, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_ScaledMax": { + "tag_name": "Pond_1_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 46, + "symbol_address": 1152, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lev": { + "tag_name": "Pond_2_Lev", + "dim": 0, + "alias": true, + "instance_id": 47, + "symbol_address": 1156, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_ScaledMin": { + "tag_name": "Pond_2_ScaledMin", + "dim": 0, + "alias": true, + "instance_id": 48, + "symbol_address": 1160, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_ScaledMax": { + "tag_name": "Pond_2_ScaledMax", + "dim": 0, + "alias": true, + "instance_id": 49, + "symbol_address": 1164, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Hi_Setpoint": { + "tag_name": "Pond_1_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 50, + "symbol_address": 1168, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Hi_Clr_Setpoint": { + "tag_name": "Pond_1_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 51, + "symbol_address": 1172, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Hi_Setpoint": { + "tag_name": "Pond_2_Hi_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 52, + "symbol_address": 1176, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Hi_Clr_Setpoint": { + "tag_name": "Pond_2_Hi_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 53, + "symbol_address": 1180, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_CU_Ft": { + "tag_name": "Pond_1_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 54, + "symbol_address": 1184, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Cubic_Feet_To_Barrels": { + "tag_name": "Pond_1_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 55, + "symbol_address": 1188, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Total_Barrels": { + "tag_name": "Pond_1_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 56, + "symbol_address": 1192, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lo_Setpoint": { + "tag_name": "Pond_1_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 57, + "symbol_address": 1196, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lev_Temp": { + "tag_name": "Pond_1_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 58, + "symbol_address": 1200, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lo_Clr_Setpoint": { + "tag_name": "Pond_1_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 59, + "symbol_address": 1204, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lo_Setpoint": { + "tag_name": "Pond_2_Lo_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 60, + "symbol_address": 1208, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lo_Clr_Setpoint": { + "tag_name": "Pond_2_Lo_Clr_Setpoint", + "dim": 0, + "alias": true, + "instance_id": 61, + "symbol_address": 1212, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Tot_Bbls_Temp": { + "tag_name": "Pond_1_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 62, + "symbol_address": 1216, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lev_Temp": { + "tag_name": "Pond_2_Lev_Temp", + "dim": 0, + "alias": true, + "instance_id": 63, + "symbol_address": 1220, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_CU_Ft": { + "tag_name": "Pond_2_CU_Ft", + "dim": 0, + "alias": true, + "instance_id": 64, + "symbol_address": 1224, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Tot_Bbls_Temp": { + "tag_name": "Pond_2_Tot_Bbls_Temp", + "dim": 0, + "alias": true, + "instance_id": 65, + "symbol_address": 1228, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Cubic_Feet_To_Barrels": { + "tag_name": "Pond_2_Cubic_Feet_To_Barrels", + "dim": 0, + "alias": true, + "instance_id": 66, + "symbol_address": 1232, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Total_Barrels": { + "tag_name": "Pond_2_Total_Barrels", + "dim": 0, + "alias": true, + "instance_id": 67, + "symbol_address": 1236, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_0FT_Volume_Total": { + "tag_name": "Pond_1_0FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 68, + "symbol_address": 1240, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_1FT_Volume_Total": { + "tag_name": "Pond_1_1FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 69, + "symbol_address": 1244, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_2FT_Volume_Total": { + "tag_name": "Pond_1_2FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 70, + "symbol_address": 1248, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_3FT_Volume_Total": { + "tag_name": "Pond_1_3FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 71, + "symbol_address": 1252, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_4FT_Volume_Total": { + "tag_name": "Pond_1_4FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 72, + "symbol_address": 1256, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_5FT_Volume_Total": { + "tag_name": "Pond_1_5FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 73, + "symbol_address": 1260, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_6FT_Volume_Total": { + "tag_name": "Pond_1_6FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 74, + "symbol_address": 1264, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_7FT_Volume_Total": { + "tag_name": "Pond_1_7FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 75, + "symbol_address": 1268, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_8FT_Volume_Total": { + "tag_name": "Pond_1_8FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 76, + "symbol_address": 1272, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_9FT_Volume_Total": { + "tag_name": "Pond_1_9FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 77, + "symbol_address": 1276, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_10FT_Volume_Total": { + "tag_name": "Pond_1_10FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 78, + "symbol_address": 1280, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_11FT_Volume_Total": { + "tag_name": "Pond_1_11FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 79, + "symbol_address": 1284, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_12FT_Volume_Total": { + "tag_name": "Pond_1_12FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 80, + "symbol_address": 1288, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_13FT_Volume_Total": { + "tag_name": "Pond_1_13FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 81, + "symbol_address": 1292, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_14FT_Volume_Total": { + "tag_name": "Pond_1_14FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 82, + "symbol_address": 1296, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_16FT_Volume_Total": { + "tag_name": "Pond_1_16FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 83, + "symbol_address": 1300, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_15FT_Volume_Total": { + "tag_name": "Pond_1_15FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 84, + "symbol_address": 1304, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Stage_Total": { + "tag_name": "Pond_1_Stage_Total", + "dim": 0, + "alias": true, + "instance_id": 85, + "symbol_address": 1308, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Rise_Multiplier": { + "tag_name": "Pond_1_Rise_Multiplier", + "dim": 0, + "alias": true, + "instance_id": 86, + "symbol_address": 1312, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Rise_Multiplier": { + "tag_name": "Pond_2_Rise_Multiplier", + "dim": 0, + "alias": true, + "instance_id": 87, + "symbol_address": 1316, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_0FT_Volume_Total": { + "tag_name": "Pond_2_0FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 88, + "symbol_address": 1320, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_1FT_Volume_Total": { + "tag_name": "Pond_2_1FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 89, + "symbol_address": 1324, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_2FT_Volume_Total": { + "tag_name": "Pond_2_2FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 90, + "symbol_address": 1328, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_3FT_Volume_Total": { + "tag_name": "Pond_2_3FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 91, + "symbol_address": 1332, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_4FT_Volume_Total": { + "tag_name": "Pond_2_4FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 92, + "symbol_address": 1336, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_5FT_Volume_Total": { + "tag_name": "Pond_2_5FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 93, + "symbol_address": 1340, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_6FT_Volume_Total": { + "tag_name": "Pond_2_6FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 94, + "symbol_address": 1344, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_7FT_Volume_Total": { + "tag_name": "Pond_2_7FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 95, + "symbol_address": 1348, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_8FT_Volume_Total": { + "tag_name": "Pond_2_8FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 96, + "symbol_address": 1352, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_9FT_Volume_Total": { + "tag_name": "Pond_2_9FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 97, + "symbol_address": 1356, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_10FT_Volume_Total": { + "tag_name": "Pond_2_10FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 98, + "symbol_address": 1360, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_11FT_Volume_Total": { + "tag_name": "Pond_2_11FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 99, + "symbol_address": 1364, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_12FT_Volume_Total": { + "tag_name": "Pond_2_12FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 100, + "symbol_address": 1368, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_13FT_Volume_Total": { + "tag_name": "Pond_2_13FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 101, + "symbol_address": 1372, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_14FT_Volume_Total": { + "tag_name": "Pond_2_14FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 102, + "symbol_address": 1376, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_15FT_Volume_Total": { + "tag_name": "Pond_2_15FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 103, + "symbol_address": 1380, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_16FT_Volume_Total": { + "tag_name": "Pond_2_16FT_Volume_Total", + "dim": 0, + "alias": true, + "instance_id": 104, + "symbol_address": 1384, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Raw_Min": { + "tag_name": "Pond_2_Raw_Min", + "dim": 0, + "alias": true, + "instance_id": 105, + "symbol_address": 1388, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Raw_Max": { + "tag_name": "Pond_2_Raw_Max", + "dim": 0, + "alias": true, + "instance_id": 106, + "symbol_address": 1392, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_2_Lev_Psi": { + "tag_name": "Pond_2_Lev_Psi", + "dim": 0, + "alias": true, + "instance_id": 107, + "symbol_address": 1396, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Raw_Min": { + "tag_name": "Pond_1_Raw_Min", + "dim": 0, + "alias": true, + "instance_id": 108, + "symbol_address": 1400, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Raw_Max": { + "tag_name": "Pond_1_Raw_Max", + "dim": 0, + "alias": true, + "instance_id": 109, + "symbol_address": 1404, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + }, + "Pond_1_Lev_Psi": { + "tag_name": "Pond_1_Lev_Psi", + "dim": 0, + "alias": true, + "instance_id": 110, + "symbol_address": 1408, + "symbol_object_address": 1077549948, + "software_control": 0, + "external_access": "Unknown", + "dimensions": [ + 0, + 0, + 0 + ], + "data_type": "REAL", + "data_type_name": "REAL", + "tag_type": "atomic" + } +} \ No newline at end of file