added more tags and RPC Gateway
This commit is contained in:
@@ -3,7 +3,7 @@ auto,overflow_pump,default,periodic,BIT,,,0,Raw_Auto_Input ,,,ro,, HOA auto stat
|
||||
discharge_out,overflow_pump,default,periodic,FLOAT,,,,DisPSI_Out,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,1
|
||||
fit_rate,overflow_pump,default,periodic,FLOAT,,,,FIT_Rate,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,1
|
||||
hand,overflow_pump,default,periodic,BIT,,,0,Raw_Hand_Input ,,,ro,, HOA hand status,none,,,,,,,,,,,,,0,,,,,,,1
|
||||
level_override,overflow_pump,default,periodic,BIT,,,0,Level_Override ,,,rw,,"1= runs regardless of level, 0= runs based on start/stop levels",none,,,,,,,,,,,,,0,,,,,,,1
|
||||
level_override_spt,overflow_pump,default,periodic,BIT,,,0,Level_Override ,,,rw,,"1= runs regardless of level, 0= runs based on start/stop levels",none,,,,,,,,,,,,,0,,,,,,,1
|
||||
overload_status,overflow_pump,default,periodic,BIT,,,0,Raw_Overload_Status , ,,ro,,,none,,,,,,,,,,,,,0,,,,,,,1
|
||||
pond_1_hi_alm,overflow_pump,default,periodic,BIT,,,0,Pond_1_Hi_Alarm,,,ro,,,none,,,,,,,,,,,,,0,,,,,,,1
|
||||
pond_1_hi_clr_spt,overflow_pump,default,periodic,FLOAT,,,,Pond_1_Hi_Clr_Setpoint,2,,rw,,,none,,,,,,,,,,,,,,,,,,,,1
|
||||
@@ -23,4 +23,5 @@ pond_2_lo_spt,overflow_pump,default,periodic,FLOAT,,,,Pond_2_Lo_Setpoint,2,,rw,,
|
||||
pond_2_total_bbls,overflow_pump,default,periodic,FLOAT,,,,Pond_2_Total_Barrels,2,,ro,,,none,,,,,,,,,,,,,,,,,,,,1
|
||||
run_status,overflow_pump,default,periodic,BIT,,,0,Raw_Run_Status ,,,ro,, Pump running status,none,,,,,,,,,,,,,0,,,,,,,1
|
||||
start_level_spt,overflow_pump,default,periodic,FLOAT,,,,Start_Level_spt ,2,,rw,, start level input,none,,,,,,,,,,,,,,,,,,,,1
|
||||
start_stop_cmd,overflow_pump,default,periodic,BIT,,,0,CMD_Cloud_Control,,,rw,, Pump Start Stop,none,,,,,,,,,,,,,0,,,,,,,1
|
||||
stop_level_spt,overflow_pump,default,periodic,FLOAT,,,,Stop_Level_spt ,2,,rw,, stop level input,none,,,,,,,,,,,,,,,,,,,,1
|
||||
|
@@ -11,20 +11,15 @@ def convertDStoJSON(ds):
|
||||
j[x["key"]] = x["value"]
|
||||
return j
|
||||
|
||||
def formatPLCPayload(payload):
|
||||
|
||||
def formatPLCPayload(device, key, value):
|
||||
params = convertDStoJSON(get_params())
|
||||
nameMap = {
|
||||
f"{params['facilityName']} Transfer Pump #1": "tp_1_",
|
||||
f"{params['facilityName']} Transfer Pump #2": "tp_2_",
|
||||
f"{params['facilityName']} Water Well #1": "ww_1_",
|
||||
f"{params['facilityName']} Water Well #2": "ww_2_",
|
||||
f"{params['facilityName']} Water Well #3": "ww_3_",
|
||||
f"{params['facilityName']} Water Well #4": "ww_4_",
|
||||
f"{params['facilityName']} Water Well #5": "ww_5_",
|
||||
f"{params['facilityName']} Water Well #6": "ww_6_"
|
||||
f"{params['overflow_pump']}": "overflow_pump"
|
||||
}
|
||||
measure = nameMap.get(payload["device"], "") + payload["data"]["params"]["measurement"]
|
||||
output = {"measurement": measure, "value": payload["data"]["params"]["value"]}
|
||||
measure = key
|
||||
device = nameMap.get(device, "")
|
||||
output = {"measurement": measure, "value": value, "device": device}
|
||||
return output
|
||||
|
||||
|
||||
@@ -64,20 +59,15 @@ def chunk_payload_gateway(payload, chunk_size=20, is_attributes_payload=False):
|
||||
}]
|
||||
}
|
||||
|
||||
|
||||
def controlName(name):
|
||||
logger.debug(name)
|
||||
params = convertDStoJSON(get_params())
|
||||
logger.debug(params)
|
||||
nameMap = {
|
||||
"tp_1": f"{params['facilityName']} Transfer Pump #1",
|
||||
"tp_2": f"{params['facilityName']} Transfer Pump #2",
|
||||
"ww_1": f"{params['facilityName']} Water Well #1",
|
||||
"ww_2": f"{params['facilityName']} Water Well #2",
|
||||
"ww_3": f"{params['facilityName']} Water Well #3",
|
||||
"ww_4": f"{params['facilityName']} Water Well #4",
|
||||
"ww_5": f"{params['facilityName']} Water Well #5",
|
||||
"ww_6": f"{params['facilityName']} Water Well #6"
|
||||
"overflow_pump": f"{params['overflow_pump']}"
|
||||
}
|
||||
parts = "_".join(name.split("_")[:2])
|
||||
return nameMap.get(parts, "Gateway")
|
||||
return nameMap.get(name, "Gateway")
|
||||
|
||||
# Filter payloads based on device_filter
|
||||
def filter_payload(payload, device_filter):
|
||||
@@ -170,15 +160,14 @@ def sync(device_filter=[]):
|
||||
logger.error(e)
|
||||
|
||||
|
||||
|
||||
|
||||
def writeplctag(value):
|
||||
#value in the form {"measurement": <measurement_name>, "value": <value to write>}
|
||||
# value in the form {"measurement": <measurement_name>, "value": <value to write>}
|
||||
try:
|
||||
#logger.info(value)
|
||||
#payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
||||
message = [{"name": "rr_facility", "measures":[{"name":value["measurement"], "value": value["value"]}]}]
|
||||
resp = write(message)
|
||||
logger.debug(value)
|
||||
# payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
||||
message = [{"name": value["device"], "measures": [
|
||||
{"name": value["measurement"], "value": value["value"]}]}]
|
||||
resp = write(message)
|
||||
logger.debug("RETURN FROM WRITE: {}".format(resp))
|
||||
return True
|
||||
except Exception as e:
|
||||
@@ -189,7 +178,7 @@ def writeplctag(value):
|
||||
def receiveCommand(topic, payload):
|
||||
try:
|
||||
logger.debug(topic)
|
||||
logger.debug(json.loads(payload))
|
||||
logger.info(json.loads(payload))
|
||||
p = json.loads(payload)
|
||||
#logger.info(p)
|
||||
command = p["data"]["method"]
|
||||
@@ -199,7 +188,7 @@ def receiveCommand(topic, payload):
|
||||
}
|
||||
if command == "setPLCTag":
|
||||
try:
|
||||
params = formatPLCPayload(p)
|
||||
params = formatPLCPayload(p["device"], p["data"]["params"]["measurement"], p["data"]["params"]["value"])
|
||||
#logger.info(params)
|
||||
result = commands["writeplctag"](params)
|
||||
logger.debug(result)
|
||||
|
||||
Reference in New Issue
Block a user