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
|
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
|
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
|
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
|
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_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
|
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
|
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
|
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_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
|
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"]
|
j[x["key"]] = x["value"]
|
||||||
return j
|
return j
|
||||||
|
|
||||||
def formatPLCPayload(payload):
|
|
||||||
|
def formatPLCPayload(device, key, value):
|
||||||
params = convertDStoJSON(get_params())
|
params = convertDStoJSON(get_params())
|
||||||
nameMap = {
|
nameMap = {
|
||||||
f"{params['facilityName']} Transfer Pump #1": "tp_1_",
|
f"{params['overflow_pump']}": "overflow_pump"
|
||||||
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_"
|
|
||||||
}
|
}
|
||||||
measure = nameMap.get(payload["device"], "") + payload["data"]["params"]["measurement"]
|
measure = key
|
||||||
output = {"measurement": measure, "value": payload["data"]["params"]["value"]}
|
device = nameMap.get(device, "")
|
||||||
|
output = {"measurement": measure, "value": value, "device": device}
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
@@ -64,20 +59,15 @@ def chunk_payload_gateway(payload, chunk_size=20, is_attributes_payload=False):
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def controlName(name):
|
def controlName(name):
|
||||||
|
logger.debug(name)
|
||||||
params = convertDStoJSON(get_params())
|
params = convertDStoJSON(get_params())
|
||||||
|
logger.debug(params)
|
||||||
nameMap = {
|
nameMap = {
|
||||||
"tp_1": f"{params['facilityName']} Transfer Pump #1",
|
"overflow_pump": f"{params['overflow_pump']}"
|
||||||
"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"
|
|
||||||
}
|
}
|
||||||
parts = "_".join(name.split("_")[:2])
|
return nameMap.get(name, "Gateway")
|
||||||
return nameMap.get(parts, "Gateway")
|
|
||||||
|
|
||||||
# Filter payloads based on device_filter
|
# Filter payloads based on device_filter
|
||||||
def filter_payload(payload, device_filter):
|
def filter_payload(payload, device_filter):
|
||||||
@@ -170,15 +160,14 @@ def sync(device_filter=[]):
|
|||||||
logger.error(e)
|
logger.error(e)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def writeplctag(value):
|
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:
|
try:
|
||||||
#logger.info(value)
|
logger.debug(value)
|
||||||
#payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
# payload format: [{"name": "advvfdipp", "measures": [{"name": "manualfrequencysetpoint", "value": 49}]}]
|
||||||
message = [{"name": "rr_facility", "measures":[{"name":value["measurement"], "value": value["value"]}]}]
|
message = [{"name": value["device"], "measures": [
|
||||||
resp = write(message)
|
{"name": value["measurement"], "value": value["value"]}]}]
|
||||||
|
resp = write(message)
|
||||||
logger.debug("RETURN FROM WRITE: {}".format(resp))
|
logger.debug("RETURN FROM WRITE: {}".format(resp))
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -189,7 +178,7 @@ def writeplctag(value):
|
|||||||
def receiveCommand(topic, payload):
|
def receiveCommand(topic, payload):
|
||||||
try:
|
try:
|
||||||
logger.debug(topic)
|
logger.debug(topic)
|
||||||
logger.debug(json.loads(payload))
|
logger.info(json.loads(payload))
|
||||||
p = json.loads(payload)
|
p = json.loads(payload)
|
||||||
#logger.info(p)
|
#logger.info(p)
|
||||||
command = p["data"]["method"]
|
command = p["data"]["method"]
|
||||||
@@ -199,7 +188,7 @@ def receiveCommand(topic, payload):
|
|||||||
}
|
}
|
||||||
if command == "setPLCTag":
|
if command == "setPLCTag":
|
||||||
try:
|
try:
|
||||||
params = formatPLCPayload(p)
|
params = formatPLCPayload(p["device"], p["data"]["params"]["measurement"], p["data"]["params"]["value"])
|
||||||
#logger.info(params)
|
#logger.info(params)
|
||||||
result = commands["writeplctag"](params)
|
result = commands["writeplctag"](params)
|
||||||
logger.debug(result)
|
logger.debug(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user