multiple updates to various drivers
This commit is contained in:
91763
Pub_Sub/advvfdipp/thingsboard/tag_dump_2025_August_18_bn_2103.json
Normal file
91763
Pub_Sub/advvfdipp/thingsboard/tag_dump_2025_August_18_bn_2103.json
Normal file
File diff suppressed because it is too large
Load Diff
19
Pub_Sub/ba_facility/thingsboard/alarmMessageExample.json
Normal file
19
Pub_Sub/ba_facility/thingsboard/alarmMessageExample.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"timestamp": 1758231657,
|
||||
"group_name": "default",
|
||||
"timestampMsec": 1758231657817,
|
||||
"values": {
|
||||
"test": {
|
||||
"ctrlName": "testInHand",
|
||||
"measureName": "Totalizer 1 Unit",
|
||||
"timestamp": 1758231657,
|
||||
"timestampMsec": 1758231657804,
|
||||
"current": "on",
|
||||
"status": 0,
|
||||
"value": 16,
|
||||
"alarm_value": 16,
|
||||
"alarm_content": "The value is now 16",
|
||||
"level": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Pub_Sub/ba_facility/thingsboard/peacemaker_alarms.csv
Normal file
24
Pub_Sub/ba_facility/thingsboard/peacemaker_alarms.csv
Normal file
@@ -0,0 +1,24 @@
|
||||
AlarmName,ControllerName,MeasuringPointName,AlarmLevel,Condition1,Operand1,CombineMethod,Condition2,Operand2,AlarmContent,AlarmTag
|
||||
air_compressor_lo_discharge_alm,Peacemaker_Facility,air_compressor_lo_discharge_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
lact_2_fault_alm,Peacemaker_Facility,lact_2_fault_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
lact_faulted_alm,Peacemaker_Facility,lact_faulted_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
ot_1_check_radar_alm,Peacemaker_Facility,ot_1_check_radar_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
ot_1_hi_alm,Peacemaker_Facility,ot_1_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
ot_2_check_radar_alm,Peacemaker_Facility,ot_2_check_radar_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
ot_2_hi_alm,Peacemaker_Facility,ot_2_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
power_supply_fault_alm,Peacemaker_Facility,power_supply_fault_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
st_1_check_radar_alm,Peacemaker_Facility,st_1_check_radar_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
st_1_hi_alm,Peacemaker_Facility,st_1_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
ups_fault_alm,Peacemaker_Facility,ups_fault_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
working_oil_tank_lo_alm,Peacemaker_Facility,working_oil_tank_lo_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
working_water_tank_lo_alm,Peacemaker_Facility,working_water_tank_lo_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_1_check_radar_alm,Peacemaker_Facility,wt_1_check_radar_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_1_hi_alm,Peacemaker_Facility,wt_1_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_1_possibly_hi_alm,Peacemaker_Facility,wt_1_possibly_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_2_check_radar_alm,Peacemaker_Facility,wt_2_check_radar_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_2_hi_alm,Peacemaker_Facility,wt_2_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wt_2_possibly_hi_alm,Peacemaker_Facility,wt_2_possibly_hi_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wtp_1_alm,Peacemaker_Facility,wtp_1_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wtp_1_ss_fault_alm,Peacemaker_Facility,wtp_1_ss_fault_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wtp_2_alm,Peacemaker_Facility,wtp_2_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
wtp_2_ss_fault_alm,Peacemaker_Facility,wtp_2_ss_fault_alm,5,eq,1,none,eq,,ALARMED,default
|
||||
|
@@ -79,14 +79,17 @@ lact_yesterday_total,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_Lact_M
|
||||
light_cmd,Peacemaker_Facility,default,periodic,,,BIT,,,,0,CMD_Lights,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
oil_tank_selector,Peacemaker_Facility,default,periodic,,,DINT,,0,,,Oil_Tank_Selector,,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
oil_working_tank_level_cmd,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,CMD_Oil_Working_Tank_Level,2,,,rw,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
ot_1_check_radar_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Check_OT1_Radar,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
ot_1_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_OT1_High_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
ot_1_pv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_OT1_PV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
ot_1_sv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_OT1_SV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
ot_2_check_radar_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Check_OT2_Radar,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
ot_2_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_OT2_High_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
ot_2_pv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_OT2_PV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
ot_2_sv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_OT2_SV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
power_supply_fault_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Power_Supply_Failure,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
power_supply_status,Peacemaker_Facility,default,periodic,,,BIT,,,,0,Raw_Power_Supply_Status,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
st_1_check_radar_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Check_ST1_Radar,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
st_1_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_ST1_High_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
st_1_pv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_ST1_PV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
st_1_sv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_ST1_SV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
@@ -136,11 +139,17 @@ well_3_producer_permissive_cmd,Peacemaker_Facility,default,periodic,,,BIT,,,,0,C
|
||||
well_4_producer_permissive_cmd,Peacemaker_Facility,default,periodic,,,BIT,,,,0,CMD_Well_4_ESP_Producer_Permissive,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
well_5_producer_permissive_cmd,Peacemaker_Facility,default,periodic,,,BIT,,,,0,CMD_Well_5_ESP_Producer_Permissive,,,,rw,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
working_oil_tank_level,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Working_Oil_Tank_Level,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
working_oil_tank_lo_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Low_Working_Oil_Tank_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
working_water_tank_level,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Working_Water_Tank_Level,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
working_water_tank_lo_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Low_Working_Water_Tank_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_1_check_radar_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Check_WT1_Radar,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_1_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_WT1_High_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_1_possibly_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Water_Tanks_Possibly_High_1,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_1_pv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_WT1_PV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
wt_1_sv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_WT1_SV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
wt_2_check_radar_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Check_WT2_Radar,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_2_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_WT2_High_Level,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_2_possibly_hi_alm,Peacemaker_Facility,default,periodic,,,BIT,,,,0,AL0_Water_Tanks_Possibly_High_2,,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,,,0,
|
||||
wt_2_pv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_WT2_PV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
wt_2_sv,Peacemaker_Facility,default,periodic,,,FLOAT,,,,,Val_WT2_SV,2,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
wtp_1_alm,Peacemaker_Facility,default,periodic,,,DINT,,0,,,WTP1_Alarm,,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,,,0,
|
||||
|
||||
|
23
Pub_Sub/ba_facility/thingsboard/pub/sendAlarmsPeacemaker.py
Normal file
23
Pub_Sub/ba_facility/thingsboard/pub/sendAlarmsPeacemaker.py
Normal file
@@ -0,0 +1,23 @@
|
||||
import json, time
|
||||
from datetime import datetime as dt
|
||||
from common.Logger import logger
|
||||
from quickfaas.remotebus import publish
|
||||
|
||||
|
||||
def sendAlarm(message, wizard_api, cloudName):
|
||||
logger.info(message)
|
||||
grouped_data = {}
|
||||
now = (round(dt.timestamp(dt.now())/600)*600)*1000
|
||||
for key, value in message["values"].items():
|
||||
ctrlName = " ".join(value['ctrlName'].split("_"))
|
||||
if ctrlName not in grouped_data:
|
||||
grouped_data[ctrlName] = {}
|
||||
grouped_data[ctrlName][value["measureName"]] = value["value"]
|
||||
payload = {}
|
||||
|
||||
for key, value in grouped_data.items():
|
||||
if value:
|
||||
payload[key] = [{"ts": now ,"values": value}]
|
||||
logger.info(json.dumps(payload, indent=4))
|
||||
publish(__topic__, json.dumps(payload), __qos__, cloud_name=cloudName)
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
{
|
||||
"qos": 1,
|
||||
"funcName": "sendSnapshot",
|
||||
"script": "import json, time, requests, base64\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom quickfaas.global_dict import get as get_params\nfrom datetime import datetime as dt\nfrom requests.adapters import HTTPAdapter, Retry\nfrom requests.auth import HTTPBasicAuth\nfrom requests.exceptions import ConnectionError\n\n\n\ndef convertDStoJSON(ds):\n j = dict()\n for x in ds:\n j[x[\"key\"]] = x[\"value\"]\n return j\n\ndef getImage():\n params = convertDStoJSON(get_params())\n camera_ip = params[\"camera_ip\"].replace(\"_\", \".\")\n port = params[\"port\"]\n with open('./snapshot.jpg', 'wb') as handle:\n with requests.Session() as s:\n retries = Retry(total = 10, backoff_factor=0.1, status_forcelist=[404,408, 500, 502, 503, 504])\n s.mount('http://', HTTPAdapter(max_retries=retries))\n resp = s.get(\"http://\" + camera_ip + \":\" + port + \"/cgi-bin/jpg/image.cgi?stream=stream3\", auth=HTTPBasicAuth(\"ASS\", \"amerus@1903\"), stream=True)\n for block in resp.iter_content(1024):\n if not block:\n break\n handle.write(block)\n \n with open('./snapshot.jpg', 'rb') as image_file:\n encoded_string = base64.b64encode(image_file.read())\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"snapshot\": encoded_string.decode(\"UTF-8\"), \"camera_error\": \"OK\"}}), __qos__)\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.error(ce)\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"camera_error\": f\"Could not connect to camera (ConnectionError), check camera connection and power\\n\\n{ce}\"}}), __qos__)\n except Exception as e:\n logger.error(\"Could not get image\")\n logger.error(e)\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"camera_error\": f\"Could not connect to camera, check camera connection, power, IP Address\\n\\n{e}\"}}), __qos__)\n ",
|
||||
"script": "import json, time, requests, base64\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom quickfaas.global_dict import get as get_params\nfrom datetime import datetime as dt\nfrom requests.adapters import HTTPAdapter, Retry\nfrom requests.auth import HTTPDigestAuth\nfrom requests.exceptions import ConnectionError\n\n\n\ndef convertDStoJSON(ds):\n j = dict()\n for x in ds:\n j[x[\"key\"]] = x[\"value\"]\n return j\n\ndef getImage():\n params = convertDStoJSON(get_params())\n camera_ip = params[\"camera_ip\"].replace(\"_\", \".\")\n port = params[\"port\"]\n with open('./snapshot.jpg', 'wb') as handle:\n with requests.Session() as s:\n retries = Retry(total = 10, backoff_factor=0.1, status_forcelist=[404,408, 500, 502, 503, 504])\n s.mount('http://', HTTPAdapter(max_retries=retries))\n resp = s.get(\"http://\" + camera_ip + \":\" + port + \"/cgi-bin/jpg/image.cgi?stream=stream3\", auth=HTTPDigestAuth(\"ASS\", \"amerus@1903\"), stream=True)\n for block in resp.iter_content(1024):\n if not block:\n break\n handle.write(block)\n \n with open('./snapshot.jpg', 'rb') as image_file:\n encoded_string = base64.b64encode(image_file.read())\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"snapshot\": encoded_string.decode(\"UTF-8\"), \"camera_error\": \"OK\"}}), __qos__)\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.error(ce)\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"camera_error\": f\"Could not connect to camera (ConnectionError), check camera connection and power\\n\\n{ce}\"}}), __qos__)\n except Exception as e:\n logger.error(\"Could not get image\")\n logger.error(e)\n publish(__topic__, json.dumps({\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\":{\"camera_error\": f\"Could not connect to camera, check camera connection, power, IP Address\\n\\n{e}\"}}), __qos__)\n ",
|
||||
"name": "snapshot",
|
||||
"trigger": "measure_event",
|
||||
"topic": "v1/devices/me/telemetry",
|
||||
@@ -298,7 +298,7 @@
|
||||
},
|
||||
{
|
||||
"key": "port",
|
||||
"value": "3563",
|
||||
"value": "80",
|
||||
"_id": "0003689cb025b0da"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,49 +1,114 @@
|
||||
import json, time, requests, base64
|
||||
from common.Logger import logger
|
||||
from quickfaas.remotebus import publish
|
||||
from quickfaas.global_dict import get as get_params
|
||||
import base64
|
||||
import json
|
||||
import logging
|
||||
import time
|
||||
from datetime import datetime as dt
|
||||
import requests
|
||||
from requests.adapters import HTTPAdapter, Retry
|
||||
from requests.auth import HTTPDigestAuth, HTTPBasicAuth
|
||||
from requests.auth import HTTPDigestAuth
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
|
||||
from common.Logger import logger # your custom logger
|
||||
from quickfaas.global_dict import get as get_params
|
||||
from quickfaas.remotebus import publish
|
||||
|
||||
def convertDStoJSON(ds):
|
||||
j = dict()
|
||||
for x in ds:
|
||||
j[x["key"]] = x["value"]
|
||||
return j
|
||||
"""Convert the list of key/value dicts returned by get_params()
|
||||
into a single dictionary."""
|
||||
return {x["key"]: x["value"] for x in ds}
|
||||
|
||||
|
||||
def _payload_too_big(payload, max_bytes=65535):
|
||||
"""Return True if the UTF‑8 encoded payload is larger than max_bytes."""
|
||||
return len(payload.encode("utf-8")) > max_bytes
|
||||
|
||||
def getImage():
|
||||
# Grab configuration
|
||||
params = convertDStoJSON(get_params())
|
||||
camera_ip = params["camera_ip"].replace("_", ".")
|
||||
port = params["port"]
|
||||
with open('./snapshot.jpg', 'wb') as handle:
|
||||
with requests.Session() as s:
|
||||
retries = Retry(total = 10, backoff_factor=0.1, status_forcelist=[404,408, 500, 502, 503, 504])
|
||||
s.mount('http://', HTTPAdapter(max_retries=retries))
|
||||
resp = s.get("http://" + camera_ip + ":" + port + "/cgi-bin/jpg/image.cgi?stream=stream3", auth=HTTPBasicAuth("ASS", "amerus@1903"), stream=True)
|
||||
|
||||
# Build the URL and auth
|
||||
url = f"http://{camera_ip}:{port}/cgi-bin/jpg/image.cgi?stream=stream3"
|
||||
auth = HTTPDigestAuth("ASS", "amerus@1903")
|
||||
|
||||
# Retry policy (10 attempts, back‑off 0.1s)
|
||||
retry_strategy = Retry(
|
||||
total=10,
|
||||
backoff_factor=0.1,
|
||||
status_forcelist=[404, 408, 500, 502, 503, 504],
|
||||
)
|
||||
adapter = HTTPAdapter(max_retries=retry_strategy)
|
||||
|
||||
with requests.Session() as session:
|
||||
session.mount("http://", adapter)
|
||||
|
||||
# Grab the JPEG as a streaming response
|
||||
resp = session.get(url, auth=auth, stream=True)
|
||||
resp.raise_for_status()
|
||||
|
||||
# Write the stream to disk (optional – keeps your code close to the original)
|
||||
with open("./snapshot.jpg", "wb") as fh:
|
||||
for block in resp.iter_content(1024):
|
||||
if not block:
|
||||
break
|
||||
handle.write(block)
|
||||
fh.write(block)
|
||||
|
||||
with open('./snapshot.jpg', 'rb') as image_file:
|
||||
encoded_string = base64.b64encode(image_file.read())
|
||||
publish(__topic__, json.dumps({"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values":{"snapshot": encoded_string.decode("UTF-8"), "camera_error": "OK"}}), __qos__)
|
||||
# Read the file we just wrote and base64‑encode it
|
||||
with open("./snapshot.jpg", "rb") as fh:
|
||||
encoded_string = base64.b64encode(fh.read()).decode("utf-8")
|
||||
|
||||
# Build the payload
|
||||
timestamp_ms = int(round(dt.timestamp(dt.now()) / 600) * 600 * 1000)
|
||||
snapshot_dt = dt.fromtimestamp(timestamp_ms/1000).strftime("%Y %m %d %H:%M")
|
||||
|
||||
payload = json.dumps(
|
||||
{
|
||||
"ts": timestamp_ms,
|
||||
"values": {
|
||||
"snapshot": encoded_string,
|
||||
"snapshotDT": snapshot_dt,
|
||||
"camera_error": "OK",
|
||||
},
|
||||
},
|
||||
separators=(",", ":"), # tighter JSON – saves a few bytes
|
||||
)
|
||||
|
||||
# Guard against oversized payloads
|
||||
if _payload_too_big(payload):
|
||||
logger.warning(
|
||||
"Payload size (%d bytes) exceeds %d bytes – message not sent.",
|
||||
len(payload.encode("utf-8")),
|
||||
65535,
|
||||
)
|
||||
return # do not publish
|
||||
|
||||
publish(__topic__, payload, __qos__)
|
||||
logger.info("Published snapshot of size %d bytes", len(payload.encode("utf-8")))
|
||||
|
||||
|
||||
def sendSnapshot(message,wizard_api):
|
||||
def sendSnapshot(message, wizard_api):
|
||||
logger.debug(message)
|
||||
try:
|
||||
getImage()
|
||||
except ConnectionError as ce:
|
||||
logger.error("Could not connect to Camera")
|
||||
logger.error(ce)
|
||||
publish(__topic__, json.dumps({"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values":{"camera_error": f"Could not connect to camera (ConnectionError), check camera connection and power\n\n{ce}"}}), __qos__)
|
||||
logger.error("Could not connect to camera")
|
||||
logger.exception(ce)
|
||||
error_msg = f"Could not connect to camera (ConnectionError), check camera connection and power\n\n{ce}"
|
||||
_publish_error(error_msg)
|
||||
except Exception as e:
|
||||
logger.error("Could not get image")
|
||||
logger.error(e)
|
||||
publish(__topic__, json.dumps({"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values":{"camera_error": f"Could not connect to camera, check camera connection, power, IP Address\n\n{e}"}}), __qos__)
|
||||
logger.exception(e)
|
||||
error_msg = f"Could not connect to camera, check camera connection, power, IP Address\n\n{e}"
|
||||
_publish_error(error_msg)
|
||||
|
||||
|
||||
def _publish_error(error_msg):
|
||||
"""Utility that logs the error and publishes it to the broker."""
|
||||
payload = json.dumps(
|
||||
{
|
||||
"ts": int(round(dt.timestamp(dt.now()) / 600) * 600 * 1000),
|
||||
"values": {"camera_error": error_msg},
|
||||
},
|
||||
separators=(",", ":"),
|
||||
)
|
||||
publish(__topic__, payload, __qos__)
|
||||
382
Pub_Sub/flowmeterskid/thingsboard/flowmeterskid_meter5.cfg
Normal file
382
Pub_Sub/flowmeterskid/thingsboard/flowmeterskid_meter5.cfg
Normal file
File diff suppressed because one or more lines are too long
10
Pub_Sub/piflow/thingsboard/drive_measures.csv
Normal file
10
Pub_Sub/piflow/thingsboard/drive_measures.csv
Normal file
@@ -0,0 +1,10 @@
|
||||
MeasuringPointName,ControllerName,GroupName,UploadType,DeadZonePercent,DataType,ArrayIndex,EnableBit,BitIndex,reverseBit,Address,Decimal,Len,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
|
||||
frequency,drive,default,periodic,,INT,,0,,,4X0785,,,ro,,,zoom,,,,,0.01,0.0,,,,,,2,,0,0,,,,,,,
|
||||
current,drive,default,periodic,,INT,,0,,,4X0784,,,ro,,,zoom,,,,,0.1,0.0,,,,,,2,,0,0,,,,,,,
|
||||
pid_ref,drive,default,periodic,,INT,,0,,,4X0792,,,ro,,,zoom,,,,,0.1,0.0,,,,,,2,,0,0,,,,,,,
|
||||
pid_feedback,drive,default,periodic,,INT,,0,,,4X0793,,,ro,,,zoom,,,,,0.1,0.0,,,,,,2,,0,0,,,,,,,
|
||||
motor_rated_current,drive,default,periodic,,INT,,0,,,4X4897,,,ro,,,zoom,,,,,0.1,0.0,,,,,,2,,0,0,,,,,,,
|
||||
sleep_delay,drive,default,periodic,,INT,,0,,,4X4925,,,ro,,,zoom,,,,,0.1,0.0,,,,,,2,,0,0,,,,,,,
|
||||
run_status,drive,default,periodic,,INT,,0,,,4X0773,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
fault_a,drive,default,periodic,,INT,,0,,,4X0816,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
fault_b,drive,default,periodic,,INT,,0,,,4X0817,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
|
13
Pub_Sub/piflow/thingsboard/flowmeter_measures.csv
Normal file
13
Pub_Sub/piflow/thingsboard/flowmeter_measures.csv
Normal file
@@ -0,0 +1,13 @@
|
||||
MeasuringPointName,ControllerName,GroupName,UploadType,DeadZonePercent,DataType,ArrayIndex,EnableBit,BitIndex,reverseBit,Address,Decimal,Len,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
|
||||
volume_flow,flowmeter,default,periodic,,FLOAT,,,,,4X3874,2,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_1,flowmeter,default,periodic,,FLOAT,,,,,4X2610,2,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_2,flowmeter,default,periodic,,FLOAT,,,,,4X2810,2,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_3,flowmeter,default,periodic,,FLOAT,,,,,4X3010,2,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
flow_unit,flowmeter,default,periodic,,INT,,0,,,4X2103,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_1_units,flowmeter,default,periodic,,INT,,0,,,4X4604,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_2_units,flowmeter,default,periodic,,INT,,0,,,4X4605,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
totalizer_3_units,flowmeter,default,periodic,,INT,,0,,,4X4606,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
reset_totalizers,flowmeter,,never,,INT,,0,,,4X2609,,,rw,,,none,,,,,,,,,,,,,,0,,,,,,,,
|
||||
byte_order,flowmeter,default,onChange,0,INT,,0,,,4X4915,,,rw,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
device_name,flowmeter,default,onChange,,STRING,,,,,4X7238,,14,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
serial_number,flowmeter,default,onChange,,STRING,,,,,4X7003,,12,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,
|
||||
|
615
Pub_Sub/piflow/thingsboard/piflow.cfg
Normal file
615
Pub_Sub/piflow/thingsboard/piflow.cfg
Normal file
File diff suppressed because one or more lines are too long
@@ -98,8 +98,14 @@ def sendData(message):
|
||||
payload["values"]["month_" + measure["name"]], monthReset = totalizeMonth(measure["value"], measure["name"])
|
||||
payload["values"]["week_" + measure["name"]], weekReset = totalizeWeek(measure["value"], measure["name"])
|
||||
payload["values"]["today_" + measure["name"]], dayReset = totalizeDay(measure["value"], measure["name"])
|
||||
elif measure["name"] in ["totalizer_1_units", "totalizer_2_units", "totalizer_3_units", "flow_unit", "run_status", "fault_a", "fault_b"]:
|
||||
elif measure["name"] in ["totalizer_1_units", "totalizer_2_units", "totalizer_3_units", "flow_unit"]:
|
||||
payload["values"][measure["name"]] = convert_int(measure["name"], measure["value"])
|
||||
elif measure["name"] in ["run_status"]:
|
||||
payload["values"][measure["name"]] = status_codes(measure["value"])
|
||||
elif measure["name"] in [ "fault_a"]:
|
||||
payload["values"][measure["name"]] = fault_code_a(measure["value"])
|
||||
elif measure["name"] in ["fault_b"]:
|
||||
payload["values"][measure["name"]] = fault_code_b(measure["value"])
|
||||
else:
|
||||
payload["values"][measure["name"]] = measure["value"]
|
||||
except Exception as e:
|
||||
@@ -293,34 +299,154 @@ def totalizeYear(lifetime, totalizer, max_retries=3, retry_delay=2):
|
||||
logger.error("All attempts to save totalizers failed.")
|
||||
return (None, False)
|
||||
|
||||
def decode_status(value):
|
||||
drive_status_codes = {
|
||||
15: "Reversed",
|
||||
14: "REM. Freq",
|
||||
13: "REM. R/S",
|
||||
12: "Reverse operation command",
|
||||
11: "Forward operation command",
|
||||
10: "Brake release signal",
|
||||
9: "-(Not used)",
|
||||
8: "Drive stopped.",
|
||||
7: "DC Braking",
|
||||
6: "Speed reached",
|
||||
5: "Decelerating",
|
||||
4: "Accelerating",
|
||||
3: "Fault trip",
|
||||
2: "Operating in reverse direction",
|
||||
1: "Operating in forward direction",
|
||||
0: "Stopped",
|
||||
|
||||
def int_to_bits(n,x):
|
||||
return pad_to_x([int(digit) for digit in bin(n)[2:]],x) # [2:] to chop off the "0b" part
|
||||
|
||||
def pad_to_x(n,x):
|
||||
while len(n) < x:
|
||||
n = [0] + n
|
||||
return n
|
||||
|
||||
def status_codes(n):
|
||||
|
||||
status_array = int_to_bits(n,16)
|
||||
status_low = {
|
||||
0: "Stopped;",
|
||||
1: "Operating in Forward;",
|
||||
2: "Operating in Reverse;",
|
||||
3: "DC operating;"
|
||||
}
|
||||
status_mid = {
|
||||
0: "",
|
||||
1: "Speed searching;",
|
||||
2: "Accelerating;",
|
||||
3: "At constant speed;",
|
||||
4: "Decelerating;",
|
||||
5: "Decelerating to stop;",
|
||||
6: "H/W OCS;",
|
||||
7: "S/W OCS;",
|
||||
8: "Dwell operating;"
|
||||
}
|
||||
status_high = {
|
||||
0: "Normal state",
|
||||
4: "Warning occurred",
|
||||
8: "Fault occurred"
|
||||
}
|
||||
values = {
|
||||
0: 8,
|
||||
1: 4,
|
||||
2: 2,
|
||||
3: 1
|
||||
}
|
||||
# List to collect the active bits' descriptions
|
||||
active_bits = []
|
||||
|
||||
# Iterate through each bit
|
||||
for bit, description in drive_status_codes.items():
|
||||
if value & (1 << bit): # Check if the bit is set
|
||||
active_bits.append(description)
|
||||
stats_low = status_array[12:]
|
||||
stats_mid = status_array[8:12]
|
||||
stats_high = status_array[:4]
|
||||
low = 0
|
||||
mid = 0
|
||||
high = 0
|
||||
for x in range(4):
|
||||
if stats_low[x] == 1:
|
||||
low = low + values[x]
|
||||
if stats_mid[x] == 1:
|
||||
mid = mid + values[x]
|
||||
if stats_high[x] == 1:
|
||||
high = high + values[x]
|
||||
|
||||
return status_low[low] + " " + status_mid[mid] + ' ' + status_high[high]
|
||||
|
||||
def fault_code_a(n):
|
||||
|
||||
fault_code_array = int_to_bits(n,16)
|
||||
|
||||
""" fault = {
|
||||
0: "OCT",
|
||||
1: "OVT",
|
||||
2: "EXT-A",
|
||||
3: "EST",
|
||||
4: "COL",
|
||||
5: "GFT",
|
||||
6: "OHT",
|
||||
7: "ETH",
|
||||
8: "OLT",
|
||||
9: "Reserved",
|
||||
10: "EXT-B",
|
||||
11: "EEP",
|
||||
12: "FAN",
|
||||
13: "POT",
|
||||
14: "IOLT",
|
||||
15: "LVT"
|
||||
} """
|
||||
fault = {
|
||||
0: "Overload Trip",
|
||||
1: "Underload Trip",
|
||||
2: "Inverter Overload Trip",
|
||||
3: "E-Thermal Trip",
|
||||
4: "Ground Fault Trip",
|
||||
5: "Output Image Trip",
|
||||
6: "Inmput Imaging Trip",
|
||||
7: "Reserved",
|
||||
8: "Reserved",
|
||||
9: "NTC Trip",
|
||||
10: "Overcurrent Trip",
|
||||
11: "Overvoltage Trip",
|
||||
12: "External Trip",
|
||||
13: "Arm Short",
|
||||
14: "Over Heat Trip",
|
||||
15: "Fuse Open Trip"
|
||||
}
|
||||
|
||||
faults = []
|
||||
counter = 15
|
||||
for x in range(16):
|
||||
if fault_code_array[x] == 1:
|
||||
faults = [fault[counter]] + faults
|
||||
counter = counter - 1
|
||||
return ' '.join(faults)
|
||||
|
||||
def fault_code_b(n):
|
||||
|
||||
fault_code_array = int_to_bits(n,8)
|
||||
|
||||
""" fault = {
|
||||
0: "COM",
|
||||
1: "Reserved",
|
||||
2: "NTC",
|
||||
3: "REEP",
|
||||
4: "OC2",
|
||||
5: "NBR",
|
||||
6: "SAFA",
|
||||
7: "SAFB"
|
||||
} """
|
||||
fault = {
|
||||
0: "Reserved",
|
||||
1: "Reserved",
|
||||
2: "Reserved",
|
||||
3: "FAN Trip",
|
||||
4: "Reserved",
|
||||
5: "Reserved",
|
||||
6: "Pre PID Fail",
|
||||
7: "Bad contact at basic I/O board",
|
||||
8: "External Brake Trip",
|
||||
9: "No Motor Trip",
|
||||
10: "Bad Option Card",
|
||||
11: "Reserved",
|
||||
12: "Reserved",
|
||||
13: "Reserved",
|
||||
14: "Pre Over Heat Trip",
|
||||
15: "Reserved"
|
||||
}
|
||||
|
||||
faults = []
|
||||
counter = 7
|
||||
for x in range(8):
|
||||
if fault_code_array[x] == 1:
|
||||
faults = [fault[counter]] + faults
|
||||
counter = counter - 1
|
||||
return ' '.join(faults)
|
||||
|
||||
|
||||
return ", ".join(active_bits)
|
||||
|
||||
def convert_int(measure, value):
|
||||
|
||||
@@ -458,42 +584,6 @@ def convert_int(measure, value):
|
||||
96: "Mft cubed/d"
|
||||
}
|
||||
|
||||
drive_fault_a_codes = {
|
||||
0: "Overload Trip",
|
||||
1: "Underload Trip",
|
||||
2: "Inverter Overload Trip",
|
||||
3: "E-Thermal Trip",
|
||||
4: "Ground Fault Trip",
|
||||
5: "Output Image Trip",
|
||||
6: "Inmput Imaging Trip",
|
||||
7: "Reserved",
|
||||
8: "Reserved",
|
||||
9: "NTC Trip",
|
||||
10: "Overcurrent Trip",
|
||||
11: "Overvoltage Trip",
|
||||
12: "External Trip",
|
||||
13: "Arm Short",
|
||||
14: "Over Heat Trip",
|
||||
15: "Fuse Open Trip"
|
||||
}
|
||||
drive_fault_b_codes = {
|
||||
0: "Reserved",
|
||||
1: "Reserved",
|
||||
2: "Reserved",
|
||||
3: "FAN Trip",
|
||||
4: "Reserved",
|
||||
5: "Reserved",
|
||||
6: "Pre PID Fail",
|
||||
7: "Bad contact at basic I/O board",
|
||||
8: "External Brake Trip",
|
||||
9: "No Motor Trip",
|
||||
10: "Bad Option Card",
|
||||
11: "Reserved",
|
||||
12: "Reserved",
|
||||
13: "Reserved",
|
||||
14: "Pre Over Heat Trip",
|
||||
15: "Reserved"
|
||||
}
|
||||
|
||||
|
||||
piflow = {
|
||||
@@ -501,9 +591,6 @@ def convert_int(measure, value):
|
||||
"totalizer_2_units": totalizer_codes.get(value, "Invalid Code"),
|
||||
"totalizer_3_units": totalizer_codes.get(value, "Invalid Code"),
|
||||
"flow_unit": flow_codes.get(value, "Invalid Code"),
|
||||
"fault_a": drive_fault_a_codes.get(value, "Invalid Code"),
|
||||
"fault_b": drive_fault_b_codes.get(value, "Invalid Code"),
|
||||
"run_status": decode_status(value)
|
||||
}
|
||||
|
||||
return piflow.get(measure, "Invalid Tag")
|
||||
|
||||
@@ -0,0 +1,914 @@
|
||||
{
|
||||
"_IO_EM_DO_00": {
|
||||
"tag_name": "_IO_EM_DO_00",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 1,
|
||||
"symbol_address": 1044,
|
||||
"symbol_object_address": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"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": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "UINT",
|
||||
"data_type_name": "UINT",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HHAlrm": {
|
||||
"tag_name": "WaterTx_HHAlrm",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 27,
|
||||
"symbol_address": 1116,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HHTrip": {
|
||||
"tag_name": "WaterTx_HHTrip",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 28,
|
||||
"symbol_address": 1117,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HHRst": {
|
||||
"tag_name": "WaterTx_HHRst",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 29,
|
||||
"symbol_address": 1118,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HHTrip": {
|
||||
"tag_name": "OilTx_HHTrip",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 30,
|
||||
"symbol_address": 1119,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HHRst": {
|
||||
"tag_name": "OilTx_HHRst",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 31,
|
||||
"symbol_address": 1120,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HHAlrm": {
|
||||
"tag_name": "OilTx_HHAlrm",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 32,
|
||||
"symbol_address": 1121,
|
||||
"symbol_object_address": 1077540072,
|
||||
"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": 33,
|
||||
"symbol_address": 1122,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HTrip": {
|
||||
"tag_name": "WaterTx_HTrip",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 34,
|
||||
"symbol_address": 1123,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HAlrm": {
|
||||
"tag_name": "WaterTx_HAlrm",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 35,
|
||||
"symbol_address": 1124,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HTrip": {
|
||||
"tag_name": "OilTx_HTrip",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 36,
|
||||
"symbol_address": 1125,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HAlrm": {
|
||||
"tag_name": "OilTx_HAlrm",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 37,
|
||||
"symbol_address": 1126,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "BOOL",
|
||||
"data_type_name": "BOOL",
|
||||
"bit_position": 0,
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTxLevel": {
|
||||
"tag_name": "WaterTxLevel",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 38,
|
||||
"symbol_address": 1132,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTxLevel": {
|
||||
"tag_name": "OilTxLevel",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 39,
|
||||
"symbol_address": 1136,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HHSP": {
|
||||
"tag_name": "WaterTx_HHSP",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 40,
|
||||
"symbol_address": 1140,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HHRstSp": {
|
||||
"tag_name": "WaterTx_HHRstSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 41,
|
||||
"symbol_address": 1144,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HHSP": {
|
||||
"tag_name": "OilTx_HHSP",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 42,
|
||||
"symbol_address": 1148,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HHRstSp": {
|
||||
"tag_name": "OilTx_HHRstSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 43,
|
||||
"symbol_address": 1152,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HSp": {
|
||||
"tag_name": "WaterTx_HSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 44,
|
||||
"symbol_address": 1156,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterTx_HRstSp": {
|
||||
"tag_name": "WaterTx_HRstSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 45,
|
||||
"symbol_address": 1160,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HSp": {
|
||||
"tag_name": "OilTx_HSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 46,
|
||||
"symbol_address": 1164,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilTx_HRstSp": {
|
||||
"tag_name": "OilTx_HRstSp",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 47,
|
||||
"symbol_address": 1168,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"OilScaler": {
|
||||
"tag_name": "OilScaler",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 48,
|
||||
"symbol_address": 1172,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
},
|
||||
"WaterScaler": {
|
||||
"tag_name": "WaterScaler",
|
||||
"dim": 0,
|
||||
"alias": true,
|
||||
"instance_id": 49,
|
||||
"symbol_address": 1176,
|
||||
"symbol_object_address": 1077540072,
|
||||
"software_control": 0,
|
||||
"external_access": "Unknown",
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"data_type": "REAL",
|
||||
"data_type_name": "REAL",
|
||||
"tag_type": "atomic"
|
||||
}
|
||||
}
|
||||
24
Pub_Sub/tankalarms/thingsboard/tankalarms_measures.csv
Normal file
24
Pub_Sub/tankalarms/thingsboard/tankalarms_measures.csv
Normal file
@@ -0,0 +1,24 @@
|
||||
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,byteOrder
|
||||
alarmreset,tankalarms,default,periodic,,,BIT,,,,0,Reset,,,,rw,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
oil_batt_lolo_alm,tankalarms,default,periodic,,,BIT,,,,0,OilTxBatVolts_LLAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
oil_batt_volts,tankalarms,default,periodic,,,FLOAT,,,,,OilTxBatVolts,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_comm_fail_alm,tankalarms,default,periodic,,,BIT,,,,0,OilTx_RF_CommFail,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
oil_hi_alm,tankalarms,default,periodic,,,BIT,,,,0,OilTx_HAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
oil_hi_reset_spt,tankalarms,default,periodic,,,FLOAT,,,,,OilTx_HRstSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_hi_spt,tankalarms,default,periodic,,,FLOAT,,,,,OilTx_HSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_hihi_alm,tankalarms,default,periodic,,,BIT,,,,0,OilTx_HHAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
oil_hihi_reset_spt,tankalarms,default,periodic,,,FLOAT,,,,,OilTx_HHRstSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_hihi_spt,tankalarms,default,periodic,,,FLOAT,,,,,OilTx_HHSP,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_level,tankalarms,default,periodic,,,FLOAT,,,,,OilTxLevel,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
oil_rssi,tankalarms,default,periodic,,,FLOAT,,,,,OilTxRSSI,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_batt_lolo_alm,tankalarms,default,periodic,,,BIT,,,,0,WaterTxBatVolts_LLAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
water_batt_volts,tankalarms,default,periodic,,,FLOAT,,,,,WaterTxBatVolts,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_comm_fail_alm,tankalarms,default,periodic,,,BIT,,,,0,WaterTx_RF_CommFail,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
water_hi_alm,tankalarms,default,periodic,,,BIT,,,,0,WaterTx_HAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
water_hi_reset_spt,tankalarms,default,periodic,,,FLOAT,,,,,WaterTx_HRstSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_hi_spt,tankalarms,default,periodic,,,FLOAT,,,,,WaterTx_HSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_hihi_alm,tankalarms,default,periodic,,,BIT,,,,0,WaterTx_HHAlrm,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
water_hihi_reset_spt,tankalarms,default,periodic,,,FLOAT,,,,,WaterTx_HHRstSp,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_hihi_spt,tankalarms,default,periodic,,,FLOAT,,,,,WaterTx_HHSP,2,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_level,tankalarms,default,periodic,,,FLOAT,,,,,WaterTxLevel,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
water_rssi,tankalarms,default,periodic,,,FLOAT,,,,,WaterTxRSSI,2,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
|
9
Pub_Sub/valvecontroller/thingsboard/measures.csv
Normal file
9
Pub_Sub/valvecontroller/thingsboard/measures.csv
Normal file
@@ -0,0 +1,9 @@
|
||||
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,byteOrder
|
||||
open_spt,valvecontroller,default,periodic,,,FLOAT,,,,,Open_Setpoint,1,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
close_spt,valvecontroller,default,periodic,,,FLOAT,,,,,Close_Setpoint,1,,,rw,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
open_cmd,valvecontroller,default,periodic,,,BIT,,,,0,Open_Valve_Cmd,,,,rw,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
close_cmd,valvecontroller,default,periodic,,,BIT,,,,0,Close_Valve_Cmd,,,,rw,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
tank_level,valvecontroller,default,periodic,,,FLOAT,,,,,Scaled_Tank_Lev,1,,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,,,0,0,,
|
||||
valve_open_status,valvecontroller,default,periodic,,,BIT,,,,0,Valve_Open_Status,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
valve_close_status,valvecontroller,default,periodic,,,BIT,,,,0,Valve_Closed_Status,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
valve_failure,valvecontroller,default,periodic,,,BIT,,,,0,Valve_Fail,,,,ro,,,none,,,,,,,,,,,,,0,,0,,,,,,,,0,0,,
|
||||
|
Reference in New Issue
Block a user