added transferlite and updates to rigpump
This commit is contained in:
BIN
Pub_Sub/.DS_Store
vendored
BIN
Pub_Sub/.DS_Store
vendored
Binary file not shown.
@@ -48,11 +48,26 @@ chemical_pump_01_run_status,ek_facility,default,periodic,,BIT,,,,0,FBK_Chemical_
|
||||
chemical_pump_auto,ek_facility,default,periodic,,BIT,,,,0,CMD_Chemical_Pump_Auto,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
compressor_ambient_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Ambient_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
compressor_controller_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Controller_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
compressor_lifetime_run_hours,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Run_Time,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
compressor_outlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Outlet_PSI,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
compressor_outlet_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Air_Compressor_Outlet_Element_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ct_200_current,ek_facility,default,periodic,,FLOAT,,,,,CT_200.Scaled_Out,2,,ro,,M-105 Motor Amperage,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
dpi_108a_pressure,ek_facility,default,periodic,,FLOAT,,,,,DPI_108A,2,,ro,,Differential PSI Across Sock Filter,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
dpi_108b_pressure,ek_facility,default,periodic,,FLOAT,,,,,DPI_108B,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_1_fault_description,ek_facility,default,periodic,,STRING,,,,,AL0_EF_VFD_1_Fault_Description,,32,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_1_n2_auto,ek_facility,default,periodic,,BIT,,,,0,N2_EF_VFD_1_Auto,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
ef_vfd_1_n2_auto_room_spt,ek_facility,default,periodic,,FLOAT,,,,,SPT_N2_EF_VFD_1_Auto_Room,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_1_n2_faulted_alm,ek_facility,default,periodic,,BIT,,,,0,AL0_N2_EF_VFD_1_Faulted,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
ef_vfd_1_n2_frequency,ek_facility,default,periodic,,DINT,,0,,,Val_N2_EF_VFD_1_Freq,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_1_n2_hand_spt,ek_facility,default,periodic,,FLOAT,,,,,SPT_N2_EF_VFD_1_Hand,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_1_running,ek_facility,default,periodic,,BIT,,,,0,FBK_EF_VFD_1_Running,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
ef_vfd_2_fault_description,ek_facility,default,periodic,,STRING,,,,,AL0_EF_VFD_2_Fault_Description,,32,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_2_n2_auto,ek_facility,default,periodic,,BIT,,,,0,N2_EF_VFD_2_Auto,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
ef_vfd_2_n2_auto_room_spt,ek_facility,default,periodic,,FLOAT,,,,,SPT_N2_EF_VFD_2_Auto_Room,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_2_n2_faulted_alm,ek_facility,default,periodic,,BIT,,,,0,AL0_N2_EF_VFD_2_Faulted,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
ef_vfd_2_n2_frequency,ek_facility,default,periodic,,DINT,,0,,,Val_N2_EF_VFD_2_Freq,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_2_n2_hand_spt,ek_facility,default,periodic,,FLOAT,,,,,SPT_N2_EF_VFD_2_Hand,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
ef_vfd_2_running,ek_facility,default,periodic,,BIT,,,,0,FBK_EF_VFD_2_Running,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
esd_exists,ek_facility,default,periodic,,BIT,,,,0,ESD_Exists,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
fcv_001_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_001_PRESCALE,2,,ro,,M107A Control Valve Setpoint,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
fcv_002_valve,ek_facility,default,periodic,,FLOAT,,,,,FCV_002_PRESCALE,2,,ro,,M107B Control Valve Setpoint,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
@@ -94,6 +109,8 @@ fit_111_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_111.Scaled_Out,2,,
|
||||
fit_112a_h2o2_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_112A.Scaled_Out,2,,ro,,H2O2 Flow Rate,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
fit_112b_nahso3_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,FIT_112B.Scaled_Out,2,,ro,,NaHSO3 Flow Rate,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
h2o2_chemical_rate,ek_facility,default,periodic,,INT,,0,,,Chemical_Pump_1_Rate,,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
inlet_ph_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Inlet_PH_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
inlet_turbidity_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Inlet_Turbidity_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
li_103D_level_alm,ek_facility,default,periodic,,BIT,,,,0,LI_103D_FBK,,,ro,,ACW Containment Level Tripped (Red When Tripped Please),none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
lit_101_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_101.Scaled_Out,2,,ro,,Chamber 5 Skim Level In Weir,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
lit_112a_h2o2_level,ek_facility,default,periodic,,FLOAT,,,,,LIT_112A.Scaled_Out,2,,ro,,H2O2 Chemical Level,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
@@ -121,11 +138,15 @@ m106b_vfd_faulted_alm,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:I.Faulted
|
||||
m106b_vfd_frequency,ek_facility,default,periodic,,INT,,0,,,M106B_VFD:I.OutputFreq,,,ro,,M-106B Current Output Frequency,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
m106b_vfd_start,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:O.Start,,,ro,,M-106B Start Command,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
m106b_vfd_stop,ek_facility,default,periodic,,BIT,,,,0,M106B_VFD:O.Stop,,,ro,,M-106B Stop Command,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
n2_inlet_dew_point,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Inlet_Dew_Point,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_inlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Inlet_PSI,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_outlet_flow_rate,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Outlet_Flow_Rate,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_outlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_ N2_Outlet_ PSI,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_outlet_pressure,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Outlet_PSI,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_outlet_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Outlet_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_purity,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_N2_Purity,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
n2_run_time_lifetime,ek_facility,default,periodic,,FLOAT,,,,,Val_N2_Run_Time,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
outlet_orp_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Outlet_ORP_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
outlet_turbidity_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Outlet_Turbidity_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
p100_auto,ek_facility,default,periodic,,BIT,,,,0,P100_Auto,,,ro,,M-104 Onyx Pump HOA Auto Status,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
p100_hand,ek_facility,default,periodic,,BIT,,,,0,P100_Hand,,,ro,,M-104 Onyx Pump HOA Hand Status,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
p200_auto,ek_facility,default,periodic,,BIT,,,,0,P200_Auto,,,ro,,M-105 Skim Pump HOA Hand Status,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
@@ -207,7 +228,3 @@ xy_100_run,ek_facility,default,periodic,,BIT,,,,0,XY_100,,,ro,,,none,,,,,,,,,,,,
|
||||
xy_200_run,ek_facility,default,periodic,,BIT,,,,0,XY_200,,,ro,,M-105 Run Command,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
zae_111a_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,ZAE_111A.AHH,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
zae_111b_hihi_alm,ek_facility,default,periodic,,BIT,,,,0,ZAE_111B.AHH,,,ro,,,none,,,,,,,,,,,,,0,,1,,,,,,,
|
||||
inlet_ph_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Inlet_PH_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
inlet_turbidity_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Inlet_Turbidity_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
outlet_orp_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Outlet_ORP_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
outlet_turbidity_temp,ek_facility,default,periodic,,FLOAT,,,,,Val_Outlet_Turbidity_Temp,2,,ro,,,none,,,,,,,,,,,,,,,1,,,,,,,
|
||||
|
16
Pub_Sub/flowmeterskid/thingsboard/flowmeterskid_measures.csv
Normal file
16
Pub_Sub/flowmeterskid/thingsboard/flowmeterskid_measures.csv
Normal file
@@ -0,0 +1,16 @@
|
||||
MeasuringPointName,ControllerName,GroupName,UploadType,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
|
||||
flowrate,flowmeter,default,periodic,,FLOAT,,,,,4X3874,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
flow_unit,flowmeter,default,onChange,0,INT,,0,,,4X2103,,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_1,flowmeter,default,periodic,,FLOAT,,,,,4X2610,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_1_overflow,flowmeter,default,periodic,,FLOAT,,,,,4X2612,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,
|
||||
totalizer_1_unit,flowmeter,default,onChange,0,INT,,0,,,4X4604,,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_2,flowmeter,default,periodic,,FLOAT,,,,,4X2810,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_2_overflow,flowmeter,default,periodic,,FLOAT,,,,,4X2812,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,
|
||||
totalizer_2_unit,flowmeter,default,onChange,0,INT,,0,,,4X4605,,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_3,flowmeter,default,periodic,,FLOAT,,,,,4X3010,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
totalizer_3_overflow,flowmeter,default,periodic,,FLOAT,,,,,4X3012,2,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,
|
||||
totalizer_3_unit,flowmeter,default,periodic,,INT,,0,,,4X4606,,,,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
reset_totalizers,flowmeter,,never,,INT,,0,,,4X2609,,,,rw,,,none,,,,,,,,,,,,,,0,,,,,,,,,0
|
||||
byte_order,flowmeter,default,onChange,0,INT,,0,,,4X4915,,,,rw,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
device_name,flowmeter,default,onChange,,STRING,,,,,4X7238,,14,UTF-8,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
serial_number,flowmeter,default,onChange,,STRING,,,,,4X7003,,12,UTF-8,ro,,,none,,,,,,,,,,,,,,0,0,,,,,,,,0
|
||||
|
1456
Pub_Sub/oradvvfdipp/thingsboard/advvfdipp_ma_tb.cfg
Normal file
1456
Pub_Sub/oradvvfdipp/thingsboard/advvfdipp_ma_tb.cfg
Normal file
File diff suppressed because one or more lines are too long
BIN
Pub_Sub/rigpump/.DS_Store
vendored
BIN
Pub_Sub/rigpump/.DS_Store
vendored
Binary file not shown.
@@ -47,8 +47,6 @@ def chunk_payload(payload, chunk_size=20):
|
||||
|
||||
def sendData(message):
|
||||
#logger.debug(message)
|
||||
|
||||
|
||||
payload = {"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values": {}}
|
||||
attributes_payload = {}
|
||||
for measure in message["measures"]:
|
||||
|
||||
89
Pub_Sub/transferlite/thingsboard/pub/sendData.py
Normal file
89
Pub_Sub/transferlite/thingsboard/pub/sendData.py
Normal file
@@ -0,0 +1,89 @@
|
||||
# Enter your python code.
|
||||
import json, time
|
||||
from datetime import datetime as dt
|
||||
from common.Logger import logger
|
||||
from quickfaas.remotebus import publish
|
||||
|
||||
report_period = 600
|
||||
|
||||
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 sendData(message):
|
||||
#logger.debug(message)
|
||||
payload = {"ts": (round(dt.timestamp(dt.now())/report_period)*report_period)*1000, "values": {}}
|
||||
attributes_payload = {}
|
||||
for measure in message["measures"]:
|
||||
try:
|
||||
logger.debug(measure)
|
||||
if measure["health"] == 1:
|
||||
if measure["name"] in ["auto_manual", "system1_hasleveltransmitter", "system2_hasleveltransmitter", "state_supervisor", "state_system1", "state_system2"]:
|
||||
logger.debug("Converting DINT/BOOL to STRING")
|
||||
payload["values"][measure["name"]] = convert_int(measure["name"], measure["value"])
|
||||
payload["values"][measure["name"] + "_int"] = measure["value"]
|
||||
else:
|
||||
payload["values"][measure["name"]] = measure["value"]
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
|
||||
for chunk in chunk_payload(payload=payload):
|
||||
publish(__topic__, json.dumps(chunk), __qos__, cloud_name="ThingsBoard")
|
||||
time.sleep(2)
|
||||
|
||||
attributes_payload["latestReportTime"] = (round(dt.timestamp(dt.now())/report_period)*report_period)*1000
|
||||
for chunk in chunk_payload(payload=attributes_payload):
|
||||
publish("v1/devices/me/attributes", json.dumps(chunk), __qos__, cloud_name="ThingsBoard")
|
||||
time.sleep(2)
|
||||
|
||||
def convert_int(plc_tag, value):
|
||||
|
||||
|
||||
TRUE_FALSE = {
|
||||
0: "false",
|
||||
1: "true"
|
||||
}
|
||||
|
||||
AUTO_MANUAL = {
|
||||
0: "Auto",
|
||||
1: "Manual"
|
||||
}
|
||||
|
||||
PHASE_STATES = {
|
||||
1: "Running",
|
||||
2: "Holding",
|
||||
4: "Restarting",
|
||||
8: "Stopping",
|
||||
16: "Aborting",
|
||||
32: "Resetting",
|
||||
64: "Idle",
|
||||
128: "Held",
|
||||
256: "Complete",
|
||||
512: "Stopped",
|
||||
1024: "Aborted"
|
||||
}
|
||||
|
||||
|
||||
plc_tags = {
|
||||
"auto_manual": AUTO_MANUAL.get(value, "Invalid Code"),
|
||||
"system1_hasleveltransmitter": TRUE_FALSE.get(value, "Invalid Code"),
|
||||
"system2_hasleveltransmitter": TRUE_FALSE.get(value, "Invalid Code"),
|
||||
"state_supervisor": PHASE_STATES.get(value, "Invalid Code"),
|
||||
"state_system1": PHASE_STATES.get(value, "Invalid Code"),
|
||||
"state_system2": PHASE_STATES.get(value, "Invalid Code")
|
||||
}
|
||||
|
||||
return plc_tags.get(plc_tag, "Invalid Tag")
|
||||
|
||||
|
||||
135
Pub_Sub/transferlite/thingsboard/sub/receiveCommand.py
Normal file
135
Pub_Sub/transferlite/thingsboard/sub/receiveCommand.py
Normal file
@@ -0,0 +1,135 @@
|
||||
import json, time, os
|
||||
from datetime import datetime as dt
|
||||
from quickfaas.measure import recall, write
|
||||
from quickfaas.remotebus import publish
|
||||
from common.Logger import logger
|
||||
|
||||
# Helper function to split the payload into chunks
|
||||
def chunk_payload(payload, chunk_size=20):
|
||||
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])
|
||||
}
|
||||
|
||||
def sync():
|
||||
#get new values and send
|
||||
payload = {"ts": round(dt.timestamp(dt.now()))*1000, "values": {}}
|
||||
topic = "v1/devices/me/telemetry"
|
||||
try:
|
||||
data = recall()#json.loads(recall().decode("utf-8"))
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
logger.debug(data)
|
||||
for controller in data:
|
||||
for measure in controller["measures"]:
|
||||
#publish measure
|
||||
if measure["name"] in ["auto_manual", "system1_hasleveltransmitter", "system2_hasleveltransmitter", "state_supervisor", "state_system1", "state_system2"]:
|
||||
payload["values"][measure["name"]] = convert_int(measure["name"], measure["value"])
|
||||
payload["values"][measure["name"]+ "_int"] = measure["value"]
|
||||
else:
|
||||
payload["values"][measure["name"]] = measure["value"]
|
||||
logger.debug("Sending on topic: {}".format(topic))
|
||||
logger.debug("Sending value: {}".format(payload))
|
||||
for chunk in chunk_payload(payload=payload):
|
||||
publish(topic, json.dumps(chunk), 1, cloud_name="ThingsBoard")
|
||||
time.sleep(2)
|
||||
|
||||
def writeplctag(value):
|
||||
#value in the form {"measurement": <measurement_name>, "value": <value to write>}
|
||||
try:
|
||||
#value = json.loads(value.replace("'",'"'))
|
||||
logger.debug(value)
|
||||
#payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
||||
message = [{"name": "transferlite", "measures":[{"name":value["measurement"], "value": value["value"]}]}]
|
||||
resp = write(message)
|
||||
logger.debug("RETURN FROM WRITE: {}".format(resp))
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.debug(e)
|
||||
return False
|
||||
|
||||
def reboot():
|
||||
#basic = Basic()
|
||||
logger.info("!" * 10 + "REBOOTING DEVICE FROM CLOUD" + "!"*10)
|
||||
r = os.popen("kill -s SIGHUP `cat /var/run/python/supervisord.pid`").read()
|
||||
logger.info(f"REBOOT : {r}")
|
||||
|
||||
def receiveCommand(topic, payload):
|
||||
try:
|
||||
logger.debug(topic)
|
||||
logger.debug(json.loads(payload))
|
||||
p = json.loads(payload)
|
||||
command = p["method"]
|
||||
commands = {
|
||||
"sync": sync,
|
||||
"writeplctag": writeplctag,
|
||||
"reboot": reboot
|
||||
}
|
||||
if command == "setPLCTag":
|
||||
try:
|
||||
result = commands["writeplctag"](p["params"])
|
||||
logger.debug(result)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
elif command == "reboot":
|
||||
try:
|
||||
ack(topic.split("/")[-1])
|
||||
commands["reboot"]()
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
#logger.debug(command)
|
||||
ack(topic.split("/")[-1])
|
||||
time.sleep(2)
|
||||
sync()
|
||||
except Exception as e:
|
||||
logger.debug(e)
|
||||
|
||||
def ack(msgid):
|
||||
#logger.debug(msgid)
|
||||
#logger.debug(mac)
|
||||
#logger.debug(name)
|
||||
#logger.debug(value)
|
||||
publish("v1/devices/me/rpc/response/" + str(msgid), json.dumps({"msg": {"time": time.time()}, "metadata": "", "msgType": ""}), 1)
|
||||
|
||||
def convert_int(plc_tag, value):
|
||||
|
||||
|
||||
TRUE_FALSE = {
|
||||
0: "false",
|
||||
1: "true"
|
||||
}
|
||||
|
||||
AUTO_MANUAL = {
|
||||
0: "Auto",
|
||||
1: "Manual"
|
||||
}
|
||||
|
||||
PHASE_STATES = {
|
||||
1: "Running",
|
||||
2: "Holding",
|
||||
4: "Restarting",
|
||||
8: "Stopping",
|
||||
16: "Aborting",
|
||||
32: "Resetting",
|
||||
64: "Idle",
|
||||
128: "Held",
|
||||
256: "Complete",
|
||||
512: "Stopped",
|
||||
1024: "Aborted"
|
||||
}
|
||||
|
||||
|
||||
plc_tags = {
|
||||
"auto_manual": AUTO_MANUAL.get(value, "Invalid Code"),
|
||||
"system1_hasleveltransmitter": TRUE_FALSE.get(value, "Invalid Code"),
|
||||
"system2_hasleveltransmitter": TRUE_FALSE.get(value, "Invalid Code"),
|
||||
"state_supervisor": PHASE_STATES.get(value, "Invalid Code"),
|
||||
"state_system1": PHASE_STATES.get(value, "Invalid Code"),
|
||||
"state_system2": PHASE_STATES.get(value, "Invalid Code")
|
||||
}
|
||||
|
||||
return plc_tags.get(plc_tag, "Invalid Tag")
|
||||
|
||||
|
||||
6
device.csv
Normal file
6
device.csv
Normal file
@@ -0,0 +1,6 @@
|
||||
name,type,mqttClientId,mqttUsername,mqttPassword
|
||||
Flow Meter 18,flowmeterskid,cp-flow-meter-18,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 19,flowmeterskid,cp-flow-meter-19,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 20,flowmeterskid,cp-flow-meter-20,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 21,flowmeterskid,cp-flow-meter-21,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 22,flowmeterskid,cp-flow-meter-22,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
|
6
devices.csv
Normal file
6
devices.csv
Normal file
@@ -0,0 +1,6 @@
|
||||
name,type,mqtt client id,mqtt user name,mqtt password
|
||||
Flow Meter 18,flowmeterskid,cp-flow-meter-18,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 19,flowmeterskid,cp-flow-meter-19,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 20,flowmeterskid,cp-flow-meter-20,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 21,flowmeterskid,cp-flow-meter-21,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
Flow Meter 22,flowmeterskid,cp-flow-meter-22,conocophillipsmqtt,conocophillipsmqtt@1903
|
||||
|
Reference in New Issue
Block a user