From c6a27c174dbd06ed3dc928c6ea73f903a007f125 Mon Sep 17 00:00:00 2001 From: Nico Melone Date: Wed, 6 Sep 2023 17:13:21 -0500 Subject: [PATCH] minor updates --- .DS_Store | Bin 10244 -> 10244 bytes Pub_Sub/.DS_Store | Bin 22532 -> 22532 bytes Pub_Sub/advvfdipp/.DS_Store | Bin 10244 -> 10244 bytes Pub_Sub/config_manager.ipynb | 14 +- Pub_Sub/gateway/a_pond.cfg | 7776 +++++++++++++++++ Pub_Sub/gateway/tree.cfg | 4006 +++++++++ .../hrflowskid/thingsboard/v1/hrflowskid.cfg | 336 - .../hrflowskid/thingsboard/v1/hrflowskid.csv | 5 - .../v1/hrvalvecontroller_tb_v1.cfg | 405 + .../thingsboard/v1/pub/sendData.py | 217 + .../plcfreshwater/mistaway/v1/pub/sendData.py | 2 +- Pub_Sub/plcpond/thingsboard/v2/bn_pond.cfg | 592 ++ getPLCData.ipynb | 794 +- 13 files changed, 13274 insertions(+), 873 deletions(-) create mode 100644 Pub_Sub/gateway/a_pond.cfg create mode 100644 Pub_Sub/gateway/tree.cfg delete mode 100644 Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.cfg delete mode 100644 Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.csv create mode 100644 Pub_Sub/hrvalvecontroller/thingsboard/v1/hrvalvecontroller_tb_v1.cfg create mode 100644 Pub_Sub/hrvalvecontroller/thingsboard/v1/pub/sendData.py create mode 100644 Pub_Sub/plcpond/thingsboard/v2/bn_pond.cfg diff --git a/.DS_Store b/.DS_Store index 96fcfa7e6b68fe20afa4ecffdc91bb586794e0a3..e867c4179899c3e85e055970a0ffcf6174f39f20 100644 GIT binary patch delta 879 zcmb`_Ur5tY6u|NGz1nm+Q@5G6w6-J)iC7I%3qnHBP;|DmOlUU$z{s|>P5WbEe+-TO z_v<10_tHa=1ld9=A4{XC2qL10FewQNvX>sBhknBu20c~h<=lJjg>&zR)8p=OpRB<# z;2z4r5i@1>VQg!OH2Z?VcC^u~#oC#y(P@>>W_v7Z9-e+F-Fi^-Sj?nqZI;FiqtTl= zr>o0VQnbXrtayd?%u=dVXXoUJ9x39M4)KXsJn=l$M`HW4zv5cz3$^JPLS3rd}dlT^u<*DnG%gw-#C9U=VXuz5kA?#r;V8#B!6{w#ylxwpy~;KExy~TBxx-!Vai0+$@KCpY l&Kuq_HVO61uj+R{KE-zC=crhU{d=+&w$A$>^PL=@@1JIE#*P30 delta 930 zcmc)ITS(Jk7{~GF`z9W68(zO+&M~7zBApajB?jAWSE%&CQypl(8h~ghBPM zZjBNZsStuW%3-_v(y$IXp<>Nwq}ovY_nP|Wkse^OL?HkG*VGwDKc#@Eeiw^ z;?vB0ff;*bt$3}=_W)8p{@Jp5U8>)p>Pl$8DrDl{^) z*0;18+FD(mK5wII*r^3`j^%e4lLuVR!TR1lm(S~Ob{_TXX|`GP3-t-jXZ91ceOa4QWE_Gy$+AhA)+RA({y8QWmR>Jq4uv>lXGMLHS23xkR_dUSyqT85hDd`!9p1} z_EM=s?xT)oS~#F<>Xsh5IfM&0ee~;~Lkx3*F-~%dGdilKvxZTxa*gZUV3IpbahGWx tGQ(qLb>`>1(Rn}cF+%j4t}aRz4VFV+^D@+h-l0&OX*H(M_}@Ri`v*_P)|dbQ diff --git a/Pub_Sub/.DS_Store b/Pub_Sub/.DS_Store index 487ba9cbad7fb3508d34a89e5ef6145575dfd756..5b362839c0848cad447b85244e5258645cea5380 100644 GIT binary patch delta 578 zcmZqKz}T{Zae_bNri}rsStdK$sZajQD!h54Pc0K`K0_Wu%H*}|vXd2z40sqA7#M*V z2spSm3v!6DY*yoW%FHM`S=YZ%nw_DDA(J7Up@5;3A(x?`EVw8yCqFM8sF-nboS?*J z6#;9O$vfDEfF>nKNLE)HTbk=A7+RRs>L^qj8k!sED43a8Ox`bKJlREBezUEp3)g0D z1t}(?v}}H;w2PaOak8GC-sV$!4vdU;lM@Z(HftHUvvQ`T6elO;=jSj^ZZwsfTxj}o zvYs_zM@X;(y^_dK!jQ^P4x}rAhU9=v*=%Uu&A7SMvYeS!kRgMiX!1sBIcNak_ZE`! z3{gHVa4^D6kjc$=aY@R_PXdMQ-ud0T8Ul_w0@-i{lV?iv2w;)W<^~&tq>$M}aPvPK zd&Y@{rHne0?d;?xH`|?`e91w7@_S|O$uYL&lh?4igZXw29E=Q;&pQ}xu5?IeBr2d6 Z&v)Y5tY#|?G`(;$d%!1_&63XC%m6f3qf!6> delta 630 zcmZqKz}T{Zae_bNhK&KMStf6B(x3c6nR~J&OX=hlj-Hd1ScNC|2=Gi^sO_L7U0tnf zXl!b#qhM%mRI8&A-)+S*)-kzsR~c{igT z7efX^5kne74nsaeIYTi+HbW*uN=k8ZPEvk;4#?Li3MNl56}4x`oPaJ4)0ms@;*yk; zp9Bgm)x=u{yKRm-qN|@iQozfW*0YqxdGjnZLX6IY3l;v!mz}emL_m699zp2!{Xw delta 25 bcmZn(XbIS$DmvL;RA#fI=o5Y@<1iBdbV3M& diff --git a/Pub_Sub/config_manager.ipynb b/Pub_Sub/config_manager.ipynb index f88e089..d3d676c 100644 --- a/Pub_Sub/config_manager.ipynb +++ b/Pub_Sub/config_manager.ipynb @@ -17,7 +17,7 @@ "outputs": [], "source": [ "root = \"/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub\"\n", - "devicetype = \"plcfreshwater_advvfdipp\"\n", + "devicetype = \"hrvalvecontroller\"\n", "platform = \"thingsboard\" #\"mistaway\"\n", "platform_short = \"tb\" if platform == \"thingsboard\" else \"ma\" \n", "startversion = 1\n", @@ -26,18 +26,18 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "checking path exists: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/v1/plcfreshwater_advvfdipp_tb_v1.cfg\n", - "/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/v1\n", - "Write Code Path: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/v1/pub/sendData.py\n", - "/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/v1/pub\n", - "Path didn't exist creating path: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/plcfreshwater_advvfdipp/thingsboard/v1/pub\n" + "checking path exists: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/hrvalvecontroller/thingsboard/v1/hrvalvecontroller_tb_v1.cfg\n", + "/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/hrvalvecontroller/thingsboard/v1\n", + "Write Code Path: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub/sendData.py\n", + "/Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub\n", + "Path didn't exist creating path: /Users/nico/Documents/GitHub/HP_InHand_IG502/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub\n" ] } ], diff --git a/Pub_Sub/gateway/a_pond.cfg b/Pub_Sub/gateway/a_pond.cfg new file mode 100644 index 0000000..deabf06 --- /dev/null +++ b/Pub_Sub/gateway/a_pond.cfg @@ -0,0 +1,7776 @@ +{ + "controllers": [ + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Prod_Well_27", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.27:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_28", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.28:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_29", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.29:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_30", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.30:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_31", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.31:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_32", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.32:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_33", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.33:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_34", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.34:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_35", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.35:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_36", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.36:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_B_36", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.236:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_37", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.37:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_38", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.38:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_39", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.39:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_40", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.40:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_41", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.41:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_42", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.42:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_43", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.43:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_44", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.44:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_45", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.45:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Ratliff_Well_A_46", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.46:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Pond_A", + "samplePeriod": 10, + "desc": "", + "expired": 1000, + "args": { + "slot": 0, + "connectTimeOut": 10000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.12:44818" + } + ], + "measures": [ + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Prod_Well_27", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_28", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_29", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_30", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_31", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_32", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_33", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_34", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_35", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_B_36", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_37", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_38", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_39", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_40", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_41", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "ctrlName": "Ratliff_Well_42", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "readWrite": "ro", + "uploadType": "periodic", + "group": "default", + "decimal": 2, + "name": "lifetime_flow_meter_bbl", + "desc": "", + "unit": "", + "transformType": 0, + "gain": "1.0", + "offset": "0.0", + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_42", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "ctrlName": "Ratliff_Well_A_43", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "readWrite": "ro", + "uploadType": "periodic", + "group": "default", + "decimal": 2, + "name": "lifetime_flow_meter_bbl", + "desc": "", + "unit": "", + "transformType": 0, + "gain": "1.0", + "offset": "0.0", + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_43", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_44", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_45", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Ratliff_Well_A_46", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_daily_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Daily_Flow_Rate_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_run_status", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pump_1_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pump_1_flowrate", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_SCL_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_yesterdays_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Yesterdays_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_prevmonth_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_PrevMonth_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_month_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Current_Month_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_lifetime_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Lifetime_Flow", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_1_suction", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Suction_PSI_TP1_Scaled", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_daily_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Daily_Flow_Rate_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_run_status", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pump_2_Run_Status", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pump_2_flowrate", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_SCL_Flow_Meter", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_yesterdays_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Yesterdays_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_prevmonth_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_PrevMonth_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_month_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Current_Month_Total", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_lifetime_total", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Lifetime_Flow", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_2_suction", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Suction_PSI_TP2_Scaled", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pump_charge_psi_tp1", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Charge_PSI_TP1_Scaled", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_height", + "ctrlName": "Pond_A", + "group": "dual_flowmeter", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_level_TP1_Scaled", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "ctrlName": "Pond_A", + "dataType": "FLOAT", + "addr": "SPT_TP1_Low_Flow_Rate", + "readWrite": "ro", + "uploadType": "periodic", + "group": "dual_flowmeter", + "decimal": 2, + "name": "pump_1_low_flow_spt", + "desc": "", + "unit": "", + "transformType": 0, + "gain": "1.0", + "offset": "0.0", + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "storageLwTSDB": 0 + } + ], + "alarmLables": [ + "default" + ], + "alarms": [], + "groups": [ + { + "name": "default", + "uploadInterval": 600, + "reference": 20, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0 + }, + { + "name": "dual_flowmeter", + "uploadInterval": 600, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0 + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "INFO", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + }, + { + "name": "rs485", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + } + ], + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "cacheSize": 10000, + "debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog", + "debugLogSize": 2000 + }, + "clouds": [ + { + "cacheSize": 10000, + "enable": 1, + "name": "default", + "type": "Standard MQTT", + "args": { + "host": "hp.henrypump.cloud", + "port": 1883, + "clientId": "pond-a-gateway", + "auth": 1, + "tls": 0, + "cleanSession": 1, + "mqttVersion": "v3.1.1", + "keepalive": 1200, + "key": "", + "cert": "", + "rootCA": "", + "verifyServer": 0, + "verifyClient": 0, + "username": "CUl7c4ARjNjGLWNJEMLV", + "passwd": "", + "willQos": 0, + "willRetain": 0, + "willTopic": "", + "willPayload": "", + "authType": 1, + "tlsAuth": "caSelfSigned" + }, + "uploadRules": [] + } + ], + "quickfaas": { + "genericFuncs": [], + "uploadFuncs": [ + { + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/gateway/telemetry", + "qos": 2, + "groups": [ + "default", + "dual_flowmeter" + ], + "funcName": "sendData", + "script": "# Enter your python code.\nimport json\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\n\n\ndef sendData(message):\n #logger.info(message)\n # Extract measures and group by ctrlName\n grouped_data = {}\n grouped_attributes = {}\n now = (round(dt.timestamp(dt.now())/600)*600)*1000\n for measure in message['measures']:\n ctrlName = \" \".join(measure['ctrlName'].split(\"_\"))\n name = measure['name']\n value = measure['value']\n health = measure['health']\n\n if ctrlName not in grouped_data:\n grouped_data[ctrlName] = {}\n\n if ctrlName not in grouped_attributes:\n grouped_attributes[ctrlName] = {}\n if health:\n grouped_data[ctrlName][name] = value\n grouped_attributes[ctrlName][\"latestReportTime\"] = now\n #print(grouped_data)\n # Transform the grouped data to desired structure\n payload = {}\n\n for key, value in grouped_data.items():\n if value:\n payload[key] = [{\"ts\": now ,\"values\": value}]\n attributes_payload = {}\n for key, value in grouped_attributes.items():\n if value:\n attributes_payload[key] = value\n\n\n\n logger.info(payload)\n logger.info(attributes_payload)\n publish(__topic__, json.dumps(payload), __qos__,cloud_name=\"default\")\n publish(\"v1/gateway/attributes\", json.dumps(attributes_payload), __qos__,cloud_name=\"default\")", + "cloudName": "default", + "msgType": 0 + } + ], + "downloadFuncs": [] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022242024362" + }, + { + "key": "MAC", + "value": "00:18:05:24:cc:cf" + } + ], + "modbusSlave": { + "enable": 0, + "protocol": "Modbus-TCP", + "port": 502, + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "maxConnection": 5, + "mapping_table": [] + }, + "modbusRTUSlave": { + "enable": 0, + "protocol": "Modbus-RTU", + "coms": "rs485", + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "mapping_table": [] + }, + "iec104Server": { + "enable": 0, + "cotSize": 2, + "port": 2404, + "serverList": [ + { + "asduAddr": 1 + } + ], + "kValue": 12, + "wValue": 8, + "t0": 30, + "t1": 15, + "t2": 10, + "t3": 20, + "maximumLink": 5, + "timeSet": 1, + "byteOrder": "abcd", + "mapping_table": [] + }, + "iec101Server": { + "enable": 0, + "coms": "rs485", + "mode": "UnBalance", + "linkLen": 2, + "linkAddr": 1, + "asduLen": 2, + "ioaLen": 3, + "cotLen": 2, + "serverList": [ + { + "asduAddr": 1 + } + ], + "linkTimeOut": 2000, + "timeSet": 1, + "idleTimeOut": 10000, + "byteOrder": "abcd", + "mapping_table": { + "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, + "mapping_table": [] + }, + "sl651Slave": { + "enable": 0, + "centerAaddr": 1, + "remoteAddr": "", + "addrCode": "", + "password": "", + "platform_list": [], + "mapping_table": [] + }, + "hj212Client": { + "enable": 0, + "platform_list": [], + "block_list": [], + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": { + "version": "", + "timestamp": "" + }, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "templates": {}, + "version": "2.7.1" +} \ No newline at end of file diff --git a/Pub_Sub/gateway/tree.cfg b/Pub_Sub/gateway/tree.cfg new file mode 100644 index 0000000..80177d7 --- /dev/null +++ b/Pub_Sub/gateway/tree.cfg @@ -0,0 +1,4006 @@ +{ + "controllers": [ + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Tree_13", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.13:44818" + }, + { + "enable": 1, + "name": "Tree_14", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.14:44818" + }, + { + "enable": 1, + "name": "Tree_15", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.15:44818" + }, + { + "enable": 1, + "name": "Tree_16", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.16:44818" + }, + { + "enable": 1, + "name": "Tree_17", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.17:44818" + }, + { + "enable": 1, + "name": "Tree_18", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.18:44818" + }, + { + "enable": 1, + "name": "Tree_19", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.19:44818" + }, + { + "enable": 1, + "name": "Tree_20", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.20:44818" + }, + { + "enable": 1, + "name": "Tree_21", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.21:44818" + }, + { + "enable": 1, + "name": "Tree_22", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.22:44818" + }, + { + "enable": 1, + "name": "Tree_25", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.25:44818" + }, + { + "enable": 1, + "name": "Tree_26", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.26:44818" + }, + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "Tree_Pond", + "samplePeriod": 10, + "desc": "", + "expired": 12000, + "args": { + "slot": 0, + "connectTimeOut": 12000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.12:44818" + }, + { + "enable": 1, + "name": "Tree_23", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "connectTimeOut": 30000, + "slot": 0 + }, + "enableDebug": 0, + "protocol": "AllenBradley MicroCip", + "enablePerOnchange": 0, + "endpoint": "192.168.1.23:44818" + } + ], + "measures": [ + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 1, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 1, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_14", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_15", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_16", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_17", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_18", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_19", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_20", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_21", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_22", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_25", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_26", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_daily_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Daily_Flow_Rate_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_run_status", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pump_1_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_flowrate", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_SCL_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_yesterdays_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Yesterdays_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_prevmonth_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_PrevMonth_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_month_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Current_Month_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_lifetime_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_1_Lifetime_Flow", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_1_suction", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Suction_PSI_TP1_Scaled", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_daily_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Daily_Flow_Rate_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_run_status", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pump_2_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_flowrate", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_SCL_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_yesterdays_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Yesterdays_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_prevmonth_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_PrevMonth_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_month_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Current_Month_Total", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_lifetime_total", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pump_2_Lifetime_Flow", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_2_suction", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Suction_PSI_TP2_Scaled", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pump_charge_psi_tp1", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Charge_PSI_TP1_Scaled", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pond_1_height", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_level_TP1_Scaled", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pond_1_volume", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "pond1Volume", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "charge_pump_run_status", + "ctrlName": "Tree_Pond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CHARGE_PUMP_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 1, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Well_Pump_1_Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 1, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Well_Pump_1_HOA_Hand_FB", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Well_Pump_1_HOA_Auto_FB", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Well_Pump_1_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Well_Pump_1_Start_Pshbtn_FB", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "FBK_Well_Pump_1_Fault_AL0", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_Pond", + "group": "tree22", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_bbl", + "ctrlName": "Tree_23", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_BBLS_RD", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + } + ], + "alarmLables": [ + "default" + ], + "alarms": [], + "groups": [ + { + "name": "default", + "uploadInterval": 600, + "LwTSDBSize": 150000, + "strategy": 1, + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0 + }, + { + "name": "tree22", + "uploadInterval": 600, + "LwTSDBSize": 150000, + "strategy": 1, + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0 + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "INFO", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + }, + { + "name": "rs485", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + } + ], + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "cacheSize": 10000, + "debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog", + "debugLogSize": 2000 + }, + "clouds": [ + { + "cacheSize": 10000, + "enable": 1, + "name": "default", + "type": "Standard MQTT", + "args": { + "host": "hp.henrypump.cloud", + "port": 1883, + "clientId": "Tree-gateway", + "auth": 1, + "tls": 0, + "cleanSession": 1, + "mqttVersion": "v3.1.1", + "keepalive": 1200, + "key": "", + "cert": "", + "rootCA": "", + "verifyServer": 0, + "verifyClient": 0, + "username": "uhxduvultqugdker4hrl", + "passwd": "", + "willQos": 0, + "willRetain": 0, + "willTopic": "", + "willPayload": "", + "tlsAuth": "caSelfSigned" + }, + "uploadRules": [] + } + ], + "quickfaas": { + "genericFuncs": [], + "uploadFuncs": [ + { + "qos": 2, + "funcName": "sendData", + "script": "# Enter your python code.\nimport json\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\n\n\ndef sendData(message):\n #logger.info(message)\n # Extract measures and group by ctrlName\n grouped_data = {}\n grouped_attributes = {}\n now = (round(dt.timestamp(dt.now())/600)*600)*1000\n for measure in message['measures']:\n ctrlName = \" \".join(measure['ctrlName'].split(\"_\"))\n name = measure['name']\n value = measure['value']\n health = measure['health']\n\n if ctrlName not in grouped_data:\n grouped_data[ctrlName] = {}\n\n if ctrlName not in grouped_attributes:\n grouped_attributes[ctrlName] = {}\n if health:\n grouped_data[ctrlName][name] = value\n grouped_attributes[ctrlName][\"latestReportTime\"] = now\n #print(grouped_data)\n # Transform the grouped data to desired structure\n payload = {}\n\n for key, value in grouped_data.items():\n if value:\n payload[key] = [{\"ts\": now ,\"values\": value}]\n attributes_payload = {}\n for key, value in grouped_attributes.items():\n if value:\n attributes_payload[key] = value\n\n\n\n logger.info(payload)\n logger.info(attributes_payload)\n publish(__topic__, json.dumps(payload), __qos__, cloud_name=\"default\")\n publish(\"v1/gateway/attributes\", json.dumps(attributes_payload), __qos__, cloud_name=\"default\")", + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/gateway/telemetry", + "cloudName": "default", + "groups": [ + "default" + ], + "msgType": 0 + }, + { + "qos": 2, + "funcName": "sendData", + "script": "# Enter your python code.\nimport json\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\n\n\ndef sendData(message):\n #logger.info(message)\n # Extract measures and group by ctrlName\n grouped_data = {}\n grouped_attributes = {}\n now = (round(dt.timestamp(dt.now())/600)*600)*1000\n for measure in message['measures']:\n ctrlName = \"Tree 22\"\n name = measure['name']\n value = measure['value']\n health = measure['health']\n\n if ctrlName not in grouped_data:\n grouped_data[ctrlName] = {}\n\n if ctrlName not in grouped_attributes:\n grouped_attributes[ctrlName] = {}\n if health:\n grouped_data[ctrlName][name] = value\n grouped_attributes[ctrlName][\"latestReportTime\"] = now\n #print(grouped_data)\n # Transform the grouped data to desired structure\n payload = {}\n\n for key, value in grouped_data.items():\n if value:\n payload[key] = [{\"ts\": now ,\"values\": value}]\n attributes_payload = {}\n for key, value in grouped_attributes.items():\n if value:\n attributes_payload[key] = value\n\n\n\n logger.info(payload)\n logger.info(attributes_payload)\n publish(__topic__, json.dumps(payload), __qos__, cloud_name=\"default\")\n publish(\"v1/gateway/attributes\", json.dumps(attributes_payload), __qos__, cloud_name=\"default\")", + "name": "sendDataTree", + "trigger": "measure_event", + "topic": "v1/gateway/telemetry", + "cloudName": "default", + "groups": [ + "tree22" + ], + "msgType": 0 + } + ], + "downloadFuncs": [] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022242024366" + }, + { + "key": "MAC", + "value": "00:18:05:24:cc:bd" + } + ], + "modbusSlave": { + "enable": 0, + "protocol": "Modbus-TCP", + "port": 502, + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "maxConnection": 5, + "mapping_table": [] + }, + "modbusRTUSlave": { + "enable": 0, + "protocol": "Modbus-RTU", + "coms": "rs485", + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "mapping_table": [] + }, + "iec104Server": { + "enable": 0, + "cotSize": 2, + "port": 2404, + "serverList": [ + { + "asduAddr": 1 + } + ], + "kValue": 12, + "wValue": 8, + "t0": 30, + "t1": 15, + "t2": 10, + "t3": 20, + "maximumLink": 5, + "timeSet": 1, + "byteOrder": "abcd", + "mapping_table": [] + }, + "iec101Server": { + "enable": 0, + "coms": "rs485", + "mode": "UnBalance", + "linkLen": 2, + "linkAddr": 1, + "asduLen": 2, + "ioaLen": 3, + "cotLen": 2, + "serverList": [ + { + "asduAddr": 1 + } + ], + "linkTimeOut": 2000, + "timeSet": 1, + "idleTimeOut": 10000, + "byteOrder": "abcd", + "mapping_table": { + "YX": [], + "YC": [], + "YK": [] + } + }, + "iec104Client": { + "enable": 0, + "connectType": 2, + "serverAddr": "ipower.inhandcloud.cn", + "serverPort": 2406, + "communicationCode": "", + "protocol": 1, + "asduAddr": 1, + "tls": 1, + "verification": 1, + "mapping_table": { + "YX": [], + "YC": [], + "YK": [] + } + }, + "opcuaServer": { + "enable": 0, + "port": 4840, + "maximumLink": 5, + "securityMode": 0, + "identifierType": "String", + "pubsub": 0, + "certificate": "None", + "privateKey": "None", + "mapping_table": [] + }, + "sl651Slave": { + "enable": 0, + "centerAaddr": 1, + "remoteAddr": "", + "addrCode": "", + "password": "", + "platform_list": [], + "mapping_table": [] + }, + "hj212Client": { + "enable": 0, + "platform_list": [], + "block_list": [], + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": {}, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "templates": { + "plcfreshwater": { + "controller": { + "conTempName": "plcfreshwater", + "enable": 1, + "protocol": "AllenBradley MicroCip", + "samplePeriod": 30, + "desc": "", + "expired": 30000, + "args": { + "slot": 0, + "connectTimeOut": 30000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.13:44818", + "status": 1 + }, + "measures": [ + { + "name": "scaled_flow_meter", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Meter", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "scaled_pressure_transducer", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Pressure_Transducer", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_hand_input", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Hand_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_auto_input", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Auto_Input", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_run_status", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Run_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_local_start", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Local_Start", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "lifetime_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Lifetime_Flow_Meter_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "yesterday_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Yesterday_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "today_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Day_Total_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "last_month_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Last_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "month_flow_meter_gal", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Totalizer_FM_Current_Month_Gal", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "spt_flow_meter_unit", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "SPT_Flow_Meter_Unit", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "raw_overload_status", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Raw_Overload_Status", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "CMD_Cloud_Control", + "ctrlName": "Tree_13", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "CMD_Cloud_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "rw", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + } + ], + "desc": "" + } + }, + "version": "2.7.1" +} \ No newline at end of file diff --git a/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.cfg b/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.cfg deleted file mode 100644 index 6b622df..0000000 --- a/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.cfg +++ /dev/null @@ -1,336 +0,0 @@ -{ - "controllers": [ - { - "enable": 1, - "protocol": "AllenBradley MicroCip", - "name": "hrflowskid", - "samplePeriod": 10, - "desc": "Sensors: Pressure Transducer, Flow Meter, Valve", - "expired": 1000, - "args": { - "slot": 0, - "connectTimeOut": 10000 - }, - "enableDebug": 0, - "enablePerOnchange": 0, - "endpoint": "192.168.1.12:44818" - } - ], - "measures": [ - { - "name": "pressure_1", - "ctrlName": "hrflowskid", - "group": "default", - "uploadType": "periodic", - "dataType": "FLOAT", - "addr": "Scaled_PSI", - "decimal": 2, - "readWrite": "ro", - "unit": "", - "desc": "", - "storageLwTSDB": 0, - "transformType": 0 - }, - { - "name": "flowrate_1", - "ctrlName": "hrflowskid", - "group": "default", - "uploadType": "periodic", - "dataType": "FLOAT", - "addr": "Scaled_Flow_Rate", - "decimal": 2, - "readWrite": "ro", - "unit": "", - "desc": "", - "storageLwTSDB": 0, - "transformType": 0 - }, - { - "name": "total_1_lifetime", - "ctrlName": "hrflowskid", - "group": "default", - "uploadType": "periodic", - "dataType": "FLOAT", - "addr": "Scaled_Lifetime_Flow_Rate", - "decimal": 2, - "readWrite": "ro", - "unit": "", - "desc": "", - "storageLwTSDB": 0, - "transformType": 0 - }, - { - "name": "valve_1_state", - "ctrlName": "hrflowskid", - "group": "default", - "uploadType": "periodic", - "dataType": "FLOAT", - "addr": "Scaled_Valve_FB", - "decimal": 2, - "readWrite": "ro", - "unit": "", - "desc": "", - "storageLwTSDB": 0, - "transformType": 0 - } - ], - "alarmLables": [ - "default" - ], - "alarms": [], - "groups": [ - { - "name": "default", - "uploadInterval": 10, - "LwTSDBSize": 150000, - "strategy": 1, - "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", - "enablePerOnchange": 0 - } - ], - "misc": { - "maxAlarmRecordSz": 2000, - "logLvl": "INFO", - "coms": [ - { - "name": "rs232", - "baud": 9600, - "bits": 8, - "stopbits": 1, - "parityChk": "n" - }, - { - "name": "rs485", - "baud": 9600, - "bits": 8, - "stopbits": 1, - "parityChk": "n" - } - ], - "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", - "cacheSize": 10000, - "debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog", - "debugLogSize": 2000 - }, - "clouds": [ - { - "cacheSize": 10000, - "enable": 1, - "name": "default", - "type": "Standard MQTT", - "args": { - "host": "hp.henrypump.cloud", - "port": 1883, - "clientId": "unknown", - "auth": 1, - "tls": 0, - "cleanSession": 0, - "mqttVersion": "v3.1.1", - "keepalive": 60, - "key": "", - "cert": "", - "rootCA": "", - "verifyServer": 0, - "verifyClient": 0, - "username": "unknown", - "passwd": "", - "willQos": 0, - "willRetain": 0, - "willTopic": "", - "willPayload": "", - "tlsAuth": "caSelfSigned" - }, - "uploadRules": [] - } - ], - "quickfaas": { - "genericFuncs": [], - "uploadFuncs": [ - { - "qos": 1, - "funcName": "sendData", - "script": "import json, os\nfrom common.Logger import logger\nfrom quickfaas.global_dict import get as get_params\nfrom quickfaas.global_dict import _set_global_args\n\ndef reboot(reason=\"Rebooting for config file update\"):\n #basic = Basic()\n logger.info(\"!\" * 10 + \"REBOOTING DEVICE\" + \"!\"*10)\n logger.info(reason)\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 try:\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 except Exception as e:\n logger.error(f\"Something went wrong in checkFileExist while making folder: {e}\")\n \n try:\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 except Exception as e:\n logger.error(f\"Something went wrong in checkFileExist wihle making file: {e}\")\n\ndef convertDStoJSON(ds):\n j = dict()\n try:\n for x in ds:\n j[x[\"key\"]] = x[\"value\"]\n except Exception as e:\n logger.error(f\"Something went wrong in convertDStoJSON: {e}\")\n return j\n\ndef convertJSONtoDS(j):\n d = []\n try:\n for key in j.keys():\n d.append({\"key\": key, \"value\": j[key]})\n except Exception as e:\n logger.error(f\"Something went wrong in convertJSONtoDS: {e}\")\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 try:\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 try:\n checkFileExist(\"creds.json\")\n except Exception as e:\n logger.error(f\"Error in checkFileExist: {e}\")\n with open(credspath, \"r\") as c:\n try:\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 except Exception as e:\n logger.error(f\"Error trying to load credentials from file: {e}\")\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 except Exception as e:\n logger.error(f\"Somethign went wrong in checkCredentialConfig: {e}\")\n\ndef checkParameterConfig(cfg):\n try:\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 params = json.load(f)\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 except Exception as e:\n logger.error(f\"Something went wrong in checkParameterConfig: {e}\")\n os.system(f'rm {paramspath}')\n return cfg\n\ndef sendData(message):\n #logger.debug(message)\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(e)\n payload = {\"ts\": (round(dt.timestamp(dt.now())/600)*600)*1000, \"values\": {}}\n\n for measure in message[\"measures\"]:\n try:\n logger.debug(measure)\n if abs(payload[\"ts\"]/1000 - measure[\"timestamp\"]) > 3600:\n reboot(reason=\"Poll timestamp and actual timestamp out of sync. Actual: {} Poll: {}\".format(payload[\"ts\"]/1000,measure[\"timestamp\"]))\n payload[\"values\"][measure[\"name\"]] = measure[\"value\"] \n except Exception as e:\n logger.error(e)\n publish(__topic__, json.dumps(payload), __qos__)\n publish(\"v1/devices/me/attributes\", json.dumps({\"latestReportTime\": (round(dt.timestamp(dt.now())/600)*600)*1000}), __qos__)\n\n", - "name": "sendData", - "trigger": "measure_event", - "topic": "v1/devices/me/telemetry", - "msgType": 0, - "cloudName": "default", - "groups": [ - "default" - ] - } - ], - "downloadFuncs": [] - }, - "labels": [ - { - "key": "SN", - "value": "GF5022137006251" - }, - { - "key": "MAC", - "value": "00:18:05:1a:e5:36" - } - ], - "modbusSlave": { - "enable": 0, - "protocol": "Modbus-TCP", - "port": 502, - "slaveAddr": 1, - "int16Ord": "ab", - "int32Ord": "abcd", - "float32Ord": "abcd", - "maxConnection": 5, - "mapping_table": [] - }, - "modbusRTUSlave": { - "enable": 0, - "protocol": "Modbus-RTU", - "coms": "rs485", - "slaveAddr": 1, - "int16Ord": "ab", - "int32Ord": "abcd", - "float32Ord": "abcd", - "mapping_table": [] - }, - "iec104Server": { - "enable": 0, - "cotSize": 2, - "port": 2404, - "serverList": [ - { - "asduAddr": 1 - } - ], - "kValue": 12, - "wValue": 8, - "t0": 30, - "t1": 15, - "t2": 10, - "t3": 20, - "maximumLink": 5, - "timeSet": 1, - "byteOrder": "abcd", - "mapping_table": [] - }, - "iec101Server": { - "enable": 0, - "coms": "rs485", - "mode": "UnBalance", - "linkLen": 2, - "linkAddr": 1, - "asduLen": 2, - "ioaLen": 3, - "cotLen": 2, - "serverList": [ - { - "asduAddr": 1 - } - ], - "linkTimeOut": 2000, - "timeSet": 1, - "idleTimeOut": 10000, - "byteOrder": "abcd", - "mapping_table": { - "YX": [], - "YC": [], - "YK": [] - } - }, - "iec104Client": { - "enable": 0, - "connectType": 2, - "serverAddr": "ipower.inhandcloud.cn", - "serverPort": 2406, - "communicationCode": "", - "protocol": 1, - "asduAddr": 1, - "tls": 1, - "verification": 1, - "mapping_table": { - "YX": [], - "YC": [], - "YK": [] - } - }, - "opcuaServer": { - "enable": 0, - "port": 4840, - "maximumLink": 5, - "securityMode": 0, - "identifierType": "String", - "pubsub": 0, - "certificate": "None", - "privateKey": "None", - "mapping_table": [] - }, - "sl651Slave": { - "enable": 0, - "centerAaddr": 1, - "remoteAddr": "", - "addrCode": "", - "password": "", - "platform_list": [], - "mapping_table": [] - }, - "hj212Client": { - "enable": 0, - "platform_list": [], - "block_list": [], - "mapping_table": [] - }, - "southMetadata": {}, - "bindMetadata": {}, - "bindConfig": { - "enable": 0, - "bind": { - "modelId": "", - "modelName": "", - "srcId": "", - "srcName": "", - "devId": "", - "devName": "" - }, - "varGroups": [], - "variables": [], - "alerts": [] - }, - "templates": { - "testTemp": { - "controller": { - "conTempName": "testTemp", - "enable": 1, - "protocol": "AllenBradley MicroCip", - "samplePeriod": 10, - "desc": "", - "expired": 1000, - "args": { - "slot": 0, - "connectTimeOut": 10000 - }, - "enableDebug": 0, - "enablePerOnchange": 0, - "endpoint": "192.168.1.10:44818", - "status": 0 - }, - "measures": [ - { - "name": "test", - "ctrlName": "micro", - "group": "default", - "uploadType": "periodic", - "dataType": "FLOAT", - "addr": "pond1Height", - "readWrite": "ro", - "unit": "", - "desc": "", - "transformType": 0, - "storageLwTSDB": 0, - "decimal": 2 - } - ], - "desc": "" - } - }, - "version": "2.7.1" -} \ No newline at end of file diff --git a/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.csv b/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.csv deleted file mode 100644 index 78c828d..0000000 --- a/Pub_Sub/hrflowskid/thingsboard/v1/hrflowskid.csv +++ /dev/null @@ -1,5 +0,0 @@ -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 -pressure_1,hrflowskid,default,periodic,,FLOAT,,,,,Scaled_PSI,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,, -flowrate_1,hrflowskid,default,periodic,,FLOAT,,,,,Scaled_Flow_Rate,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,, -total_1_lifetime,hrflowskid,default,periodic,,FLOAT,,,,,Scaled_Lifetime_Flow_Rate,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,, -valve_1_state,hrflowskid,default,periodic,,FLOAT,,,,,Scaled_Valve_FB,2,,ro,,,none,,,,,,,,,,,,,,,0,,,,,,, \ No newline at end of file diff --git a/Pub_Sub/hrvalvecontroller/thingsboard/v1/hrvalvecontroller_tb_v1.cfg b/Pub_Sub/hrvalvecontroller/thingsboard/v1/hrvalvecontroller_tb_v1.cfg new file mode 100644 index 0000000..b8684fc --- /dev/null +++ b/Pub_Sub/hrvalvecontroller/thingsboard/v1/hrvalvecontroller_tb_v1.cfg @@ -0,0 +1,405 @@ +{ + "controllers": [ + { + "protocol": "AllenBradley MicroCip", + "name": "hrvalvecontroller", + "samplePeriod": 10, + "expired": 10000, + "enablePerOnchange": 0, + "args": { + "slot": 0, + "connectTimeOut": 2000 + }, + "endpoint": "192.168.1.12:44818" + } + ], + "measures": [ + { + "name": "flowrate", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Flow_Rate", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pid_mode", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "PID_Auto_Man_Mode", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pid_control", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "PID_Control", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pid_error_alm", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "PID_Error", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pid_manual_spt", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "PID_Manual_Spt", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pressure_hi_spt", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "PSI_High_Limit", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pressure_alm", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "PSI_Limit_Active", + "bitMap": 0, + "reverseBit": 0, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pressure_lo_spt", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "PSI_Low_Limit", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "totalizer_lifetime", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Lifetime_Flow_Rate", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pressure", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_PSI", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "valve", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Scaled_Valve_FB", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "valve_spt", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Valve_CMND_Spt", + "decimal": 2, + "readWrite": "ro", + "unit": "", + "desc": "", + "storageLwTSDB": 0, + "transformType": 0 + }, + { + "name": "pid_spt", + "ctrlName": "hrvalvecontroller", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "PSI_Spt", + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "storageLwTSDB": 0, + "decimal": 2, + "bitMap": 0 + } + ], + "alarmLables": [ + "default" + ], + "alarms": [], + "groups": [ + { + "name": "default", + "uploadInterval": 600, + "LwTSDBSize": 150000, + "strategy": 1 + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "INFO", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + }, + { + "name": "rs485", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + } + ], + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "cacheSize": 10000 + }, + "clouds": [ + { + "cacheSize": 10000, + "enable": 1, + "name": "default", + "type": "Standard MQTT", + "args": { + "host": "hp.henrypump.cloud", + "port": 1883, + "clientId": "hr-trp-inlet", + "auth": 1, + "tls": 0, + "cleanSession": 0, + "mqttVersion": "v3.1.1", + "keepalive": 60, + "key": "", + "cert": "", + "rootCA": "", + "verifyServer": 0, + "verifyClient": 0, + "username": "7pke3mpajshf3umd0ezu", + "passwd": "", + "willQos": 0, + "willRetain": 0, + "willTopic": "", + "willPayload": "", + "tlsAuth": "caSelfSigned" + }, + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "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 quickfaas.global_dict import get as get_params\nfrom quickfaas.global_dict import _set_global_args\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.info(\"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.info(\"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.info(\"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.info(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.info(\"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.info(\"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.info(\"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.info(\"Opened param storage file\")\n params = json.load(f)\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.info(\"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.info(\"initializing param file with params in memory\")\n json.dump(convertDStoJSON(get_params()), p)\n cfg[\"labels\"] = get_params()\n \n return cfg\n \n\ndef sendData(message, wizard_api):\n payload = {}\n payload[\"ts\"] = (round(dt.timestamp(dt.now())/600)*600)*1000\n payload[\"values\"] = {}\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(e)\n logger.info(message)\n for measure in message[\"values\"][\"hrvalvecontroller\"].keys():\n try:\n logger.debug(measure)\n payload[\"values\"][measure] = message[\"values\"][\"hrvalvecontroller\"][measure][\"raw_data\"]\n except Exception as e:\n logger.error(e)\n publish(__topic__, json.dumps(payload), __qos__, cloud_name=\"default\")", + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "cloudName": "default", + "groups": [ + "default" + ], + "msgType": 0 + } + ], + "downloadFuncs": [] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022311031756" + }, + { + "key": "MAC", + "value": "00:18:05:28:4b:09" + } + ], + "modbusSlave": { + "enable": 0, + "protocol": "Modbus-TCP", + "port": 502, + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "maxConnection": 5, + "mapping_table": [] + }, + "modbusRTUSlave": { + "enable": 0, + "protocol": "Modbus-RTU", + "coms": "rs485", + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "mapping_table": [] + }, + "iec104Server": { + "enable": 0, + "cotSize": 2, + "port": 2404, + "serverList": [ + { + "asduAddr": 1 + } + ], + "kValue": 12, + "wValue": 8, + "t0": 30, + "t1": 15, + "t2": 10, + "t3": 20, + "maximumLink": 5, + "timeSet": 1, + "byteOrder": "abcd", + "mapping_table": [] + }, + "iec101Server": { + "enable": 0, + "coms": "rs485", + "mode": "UnBalance", + "linkLen": 2, + "linkAddr": 1, + "asduLen": 2, + "ioaLen": 3, + "cotLen": 2, + "serverList": [ + { + "asduAddr": 1 + } + ], + "linkTimeOut": 2000, + "timeSet": 1, + "idleTimeOut": 10000, + "byteOrder": "abcd", + "mapping_table": [] + }, + "iec104Client": { + "enable": 0, + "connectType": 2, + "serverAddr": "ipower.inhandcloud.cn", + "serverPort": 2406, + "communicationCode": "", + "protocol": 1, + "asduAddr": 1, + "tls": 1, + "verification": 1, + "mapping_table": { + "YX": [], + "YC": [], + "YK": [] + } + }, + "opcuaServer": { + "enable": 0, + "port": 4840, + "maximumLink": 5, + "securityMode": 0, + "identifierType": "String", + "pubsub": 0, + "certificate": "None", + "privateKey": "None", + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": {}, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "version": "2.6.1" +} \ No newline at end of file diff --git a/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub/sendData.py b/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub/sendData.py new file mode 100644 index 0000000..7db8f4a --- /dev/null +++ b/Pub_Sub/hrvalvecontroller/thingsboard/v1/pub/sendData.py @@ -0,0 +1,217 @@ +import json, os +from datetime import datetime as dt +from datetime import timedelta as td +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 + +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 sendData(message, wizard_api): + payload = {"ts": (round(dt.timestamp(dt.now())/600)*600)*1000, "values": {}} + resetPayload = {"ts": "", "values": {}} + try: + checkCredentialConfig() + except Exception as e: + logger.error(e) + logger.info(message) + for measure in message["values"]["hrvalvecontroller"].keys(): + try: + logger.debug(measure) + if measure in ["totalizer_lifetime"]: + payload["values"]["today_total"], dayReset = totalizeDay(message["values"]["hrvalvecontroller"][measure]["raw_data"]) + payload["values"]["month_total"], monthReset = totalizeMonth(message["values"]["hrvalvecontroller"][measure]["raw_data"]) + + payload["values"][measure] = message["values"]["hrvalvecontroller"][measure]["raw_data"] + except Exception as e: + logger.error(e) + publish(__topic__, json.dumps(payload), __qos__, cloud_name="default") + publish("v1/devices/me/attributes", json.dumps({"latestReportTime": (round(dt.timestamp(dt.now())/600)*600)*1000}), __qos__, cloud_name="default") + + if dayReset: + resetPayload["values"]["yesterday_volume"] = payload["values"]["today_volume"] + resetPayload["values"]["today_volume"] = 0 + if monthReset: + resetPayload["values"]["last_month_volume"] = payload["values"]["month_volume"] + resetPayload["values"]["month_volume"] = 0 + + if resetPayload["values"]: + resetPayload["ts"] = 1000 + (round(dt.timestamp(dt.now())/600)*600)*1000 + publish(__topic__, json.dumps(resetPayload), __qos__, cloud_name="default") + +def get_totalizers(): + try: + with open("/var/user/files/totalizers.json", "r") as t: + totalizers = json.load(t) + if not totalizers: + logger.debug("-----INITIALIZING TOTALIZERS-----") + totalizers = { + "dayDate": "2022-01-01", + "week": 0, + "monthDate": "2022-01-01", + "year": 0, + "lifetime": 0, + "dayHolding": 0, + "weekHolding": 0, + "monthHolding": 0, + "yearHolding": 0 + } + except: + totalizers = { + "dayDate": "2022-01-01", + "week": 0, + "monthDate": "2022-01-01", + "year": 0, + "lifetime": 0, + "dayHolding": 0, + "weekHolding": 0, + "monthHolding": 0, + "yearHolding": 0 + } + return totalizers + +def saveTotalizers(totalizers): + try: + with open("/var/user/files/totalizers.json", "w") as t: + json.dump(totalizers,t) + except Exception as e: + logger.error(e) + + +def totalizeDay(lifetime): + totalizers = get_totalizers() + now = dt.fromtimestamp(round(dt.timestamp(dt.now())/600)*600) + now = now - td(seconds=60*60*8) #time shifted back 8 hours + reset = False + value = lifetime - totalizers["dayHolding"] + if not now.date() == dt.strptime(totalizers["dayDate"], "%Y-%m-%d").date(): + totalizers["dayHolding"] = lifetime + totalizers["dayDate"] = str(now.date()) + saveTotalizers(totalizers) + reset = True + return (value,reset) + +def totalizeMonth(lifetime): + totalizers = get_totalizers() + now = dt.fromtimestamp(round(dt.timestamp(dt.now())/600)*600) + now = now - td(seconds=60*60*8) #time shifted back 8 hours + now = dt.strptime(f"{now.year}-{now.month}", "%Y-%m") + reset = False + value = lifetime - totalizers["monthHolding"] + if not now.date() == dt.strptime(totalizers["monthDate"], "%Y-%m-%d").date(): + totalizers["monthHolding"] = lifetime + totalizers["monthDate"] = str(now.date()) + saveTotalizers(totalizers) + reset = True + return (value,reset) \ No newline at end of file diff --git a/Pub_Sub/plcfreshwater/mistaway/v1/pub/sendData.py b/Pub_Sub/plcfreshwater/mistaway/v1/pub/sendData.py index 11ab6bc..fcf72f5 100644 --- a/Pub_Sub/plcfreshwater/mistaway/v1/pub/sendData.py +++ b/Pub_Sub/plcfreshwater/mistaway/v1/pub/sendData.py @@ -147,6 +147,7 @@ def sendData(message): publish(__topic__ + ":01:99/" + "plc_ping", json.dumps({"value": "OK"}), __qos__) else: publish(__topic__ + ":01:99/" + "plc_ping", json.dumps({"value": "Comms Error to PLC"}), __qos__) + for measure in message["measures"]: try: logger.debug(measure) @@ -185,4 +186,3 @@ def convert_int(plc_tag, value): return plc_tags.get(plc_tag, "Invalid Tag") - \ No newline at end of file diff --git a/Pub_Sub/plcpond/thingsboard/v2/bn_pond.cfg b/Pub_Sub/plcpond/thingsboard/v2/bn_pond.cfg new file mode 100644 index 0000000..8062258 --- /dev/null +++ b/Pub_Sub/plcpond/thingsboard/v2/bn_pond.cfg @@ -0,0 +1,592 @@ +{ + "controllers": [ + { + "enable": 1, + "protocol": "AllenBradley MicroCip", + "name": "plcpond", + "samplePeriod": 10, + "desc": "", + "expired": 1000, + "args": { + "slot": 0, + "connectTimeOut": 10000 + }, + "enableDebug": 0, + "enablePerOnchange": 0, + "endpoint": "192.168.1.12:44818" + } + ], + "measures": [ + { + "name": "pond_1_level", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Lev", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_total_bbls", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Total_Barrels", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_hi_alm", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pond_1_Hi_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pond_1_hi_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Hi_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_hi_clr_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Hi_Clr_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_lo_alm", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pond_1_Lo_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pond_1_lo_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Lo_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_1_lo_clr_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_1_Lo_Clr_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_level", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Lev", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_total_bbls", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Total_Barrels", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_hi_alm", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pond_2_Hi_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pond_2_hi_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Hi_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_hi_clr_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Hi_Clr_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "1.0", + "offset": "0.0", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_lo_alm", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "BIT", + "addr": "Pond_2_Lo_Alarm", + "decimal": 2, + "len": 1, + "readWrite": "ro", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "bitMap": 0, + "reverseBit": 0, + "storageLwTSDB": 0 + }, + { + "name": "pond_2_lo_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Lo_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + }, + { + "name": "pond_2_lo_clr_spt", + "ctrlName": "plcpond", + "group": "default", + "uploadType": "periodic", + "dataType": "FLOAT", + "addr": "Pond_2_Lo_Clr_Setpoint", + "decimal": 2, + "len": 1, + "readWrite": "rw", + "unit": "", + "desc": "", + "transformType": 0, + "maxValue": "", + "minValue": "", + "maxScaleValue": "", + "minScaleValue": "", + "gain": "", + "offset": "", + "storageLwTSDB": 0 + } + ], + "alarmLables": [ + "default" + ], + "alarms": [], + "groups": [ + { + "name": "default", + "uploadInterval": 600, + "reference": 16, + "LwTSDBSize": 1000, + "strategy": 1, + "historyDataPath": "/var/user/data/dbhome/device_supervisor/LwTSDB", + "enablePerOnchange": 0 + } + ], + "misc": { + "maxAlarmRecordSz": 2000, + "logLvl": "INFO", + "coms": [ + { + "name": "rs232", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + }, + { + "name": "rs485", + "baud": 9600, + "bits": 8, + "stopbits": 1, + "parityChk": "n" + } + ], + "cachePath": "/var/user/data/dbhome/device_supervisor/offlinedata", + "cacheSize": 10000, + "debugLogPath": "/var/user/data/dbhome/device_supervisor/debugLog", + "debugLogSize": 2000 + }, + "clouds": [ + { + "cacheSize": 100, + "enable": 1, + "name": "default", + "type": "Standard MQTT", + "args": { + "host": "hp.henrypump.cloud", + "port": 1883, + "clientId": "unknown", + "auth": 1, + "tls": 0, + "cleanSession": 0, + "mqttVersion": "v3.1.1", + "keepalive": 60, + "key": "", + "cert": "", + "rootCA": "", + "verifyServer": 0, + "verifyClient": 0, + "username": "unknown", + "passwd": "unknown", + "authType": 1, + "willQos": 0, + "willRetain": 0, + "willTopic": "", + "willPayload": "", + "tlsAuth": "caSelfSigned" + }, + "uploadRules": [] + } + ], + "quickfaas": { + "genericFuncs": [], + "uploadFuncs": [ + { + "name": "sendData", + "trigger": "measure_event", + "topic": "v1/devices/me/telemetry", + "qos": 1, + "groups": [ + "default" + ], + "funcName": "sendData", + "script": "# Enter your python code.\nimport json, os\nfrom datetime import datetime as dt\nfrom common.Logger import logger\nfrom quickfaas.remotebus import publish\nfrom quickfaas.global_dict import get as get_params\nfrom quickfaas.global_dict import _set_global_args\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.info(\"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.info(\"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.info(\"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.info(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.info(\"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.info(\"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.info(\"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.info(\"Opened param storage file\")\n params = json.load(f)\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.info(\"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.info(\"initializing param file with params in memory\")\n json.dump(convertDStoJSON(get_params()), p)\n cfg[\"labels\"] = get_params()\n \n return cfg\n\n\n\n\ndef sendData(message):\n payload = {}\n payload[\"ts\"] = (round(dt.timestamp(dt.now())/600)*600)*1000\n payload[\"values\"] = {}\n try:\n checkCredentialConfig()\n except Exception as e:\n logger.error(e)\n for measure in message[\"measures\"]:\n try:\n logger.debug(measure)\n payload[\"values\"][measure[\"name\"]] = measure[\"value\"]\n except Exception as e:\n logger.error(e)\n publish(__topic__, json.dumps(payload), __qos__)", + "msgType": 0, + "cloudName": "default" + } + ], + "downloadFuncs": [] + }, + "labels": [ + { + "key": "SN", + "value": "GF5022311031664" + }, + { + "key": "MAC", + "value": "00:18:05:28:4a:40" + } + ], + "modbusSlave": { + "enable": 0, + "protocol": "Modbus-TCP", + "port": 502, + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "maxConnection": 5, + "mapping_table": [] + }, + "modbusRTUSlave": { + "enable": 0, + "protocol": "Modbus-RTU", + "coms": "rs485", + "slaveAddr": 1, + "int16Ord": "ab", + "int32Ord": "abcd", + "float32Ord": "abcd", + "mapping_table": [] + }, + "iec104Server": { + "enable": 0, + "cotSize": 2, + "port": 2404, + "serverList": [ + { + "asduAddr": 1 + } + ], + "kValue": 12, + "wValue": 8, + "t0": 30, + "t1": 15, + "t2": 10, + "t3": 20, + "maximumLink": 5, + "timeSet": 1, + "byteOrder": "abcd", + "mapping_table": [] + }, + "iec101Server": { + "enable": 0, + "coms": "rs485", + "mode": "UnBalance", + "linkLen": 2, + "linkAddr": 1, + "asduLen": 2, + "ioaLen": 3, + "cotLen": 2, + "serverList": [ + { + "asduAddr": 1 + } + ], + "linkTimeOut": 2000, + "timeSet": 1, + "idleTimeOut": 10000, + "byteOrder": "abcd", + "mapping_table": { + "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", + "mapping_table": [], + "certificate": "None", + "privateKey": "None", + "pubsub": 0 + }, + "sl651Slave": { + "enable": 0, + "centerAaddr": 1, + "remoteAddr": "", + "addrCode": "", + "password": "", + "platform_list": [], + "mapping_table": [] + }, + "hj212Client": { + "enable": 0, + "platform_list": [], + "block_list": [], + "mapping_table": [] + }, + "southMetadata": {}, + "bindMetadata": { + "version": "", + "timestamp": "" + }, + "bindConfig": { + "enable": 0, + "bind": { + "modelId": "", + "modelName": "", + "srcId": "", + "srcName": "", + "devId": "", + "devName": "" + }, + "varGroups": [], + "variables": [], + "alerts": [] + }, + "templates": {}, + "version": "2.7.1" +} \ No newline at end of file diff --git a/getPLCData.ipynb b/getPLCData.ipynb index 04d3d6a..870ac89 100644 --- a/getPLCData.ipynb +++ b/getPLCData.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -26,7 +26,7 @@ " \"alias\": true,\n", " \"instance_id\": 1,\n", " \"symbol_address\": 1044,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -45,7 +45,7 @@ " \"alias\": true,\n", " \"instance_id\": 2,\n", " \"symbol_address\": 1045,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -64,7 +64,7 @@ " \"alias\": true,\n", " \"instance_id\": 3,\n", " \"symbol_address\": 1046,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -83,7 +83,7 @@ " \"alias\": true,\n", " \"instance_id\": 4,\n", " \"symbol_address\": 1047,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -102,7 +102,7 @@ " \"alias\": true,\n", " \"instance_id\": 5,\n", " \"symbol_address\": 1048,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -121,7 +121,7 @@ " \"alias\": true,\n", " \"instance_id\": 6,\n", " \"symbol_address\": 1049,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -140,7 +140,7 @@ " \"alias\": true,\n", " \"instance_id\": 7,\n", " \"symbol_address\": 1050,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -159,7 +159,7 @@ " \"alias\": true,\n", " \"instance_id\": 8,\n", " \"symbol_address\": 1051,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -178,7 +178,7 @@ " \"alias\": true,\n", " \"instance_id\": 9,\n", " \"symbol_address\": 1052,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -197,7 +197,7 @@ " \"alias\": true,\n", " \"instance_id\": 10,\n", " \"symbol_address\": 1053,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -216,7 +216,7 @@ " \"alias\": true,\n", " \"instance_id\": 11,\n", " \"symbol_address\": 1054,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -235,7 +235,7 @@ " \"alias\": true,\n", " \"instance_id\": 12,\n", " \"symbol_address\": 1055,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -254,7 +254,7 @@ " \"alias\": true,\n", " \"instance_id\": 13,\n", " \"symbol_address\": 1056,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -273,7 +273,7 @@ " \"alias\": true,\n", " \"instance_id\": 14,\n", " \"symbol_address\": 1057,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -292,7 +292,7 @@ " \"alias\": true,\n", " \"instance_id\": 15,\n", " \"symbol_address\": 1058,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -311,7 +311,7 @@ " \"alias\": true,\n", " \"instance_id\": 16,\n", " \"symbol_address\": 1059,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -330,7 +330,7 @@ " \"alias\": true,\n", " \"instance_id\": 17,\n", " \"symbol_address\": 1060,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -349,7 +349,7 @@ " \"alias\": true,\n", " \"instance_id\": 18,\n", " \"symbol_address\": 1061,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -368,7 +368,7 @@ " \"alias\": true,\n", " \"instance_id\": 19,\n", " \"symbol_address\": 1062,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -387,7 +387,7 @@ " \"alias\": true,\n", " \"instance_id\": 20,\n", " \"symbol_address\": 1064,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -405,7 +405,7 @@ " \"alias\": true,\n", " \"instance_id\": 21,\n", " \"symbol_address\": 1066,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -423,7 +423,7 @@ " \"alias\": true,\n", " \"instance_id\": 22,\n", " \"symbol_address\": 1068,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -441,7 +441,7 @@ " \"alias\": true,\n", " \"instance_id\": 23,\n", " \"symbol_address\": 1070,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -459,7 +459,7 @@ " \"alias\": true,\n", " \"instance_id\": 24,\n", " \"symbol_address\": 1072,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -477,7 +477,7 @@ " \"alias\": true,\n", " \"instance_id\": 25,\n", " \"symbol_address\": 1074,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -495,7 +495,7 @@ " \"alias\": true,\n", " \"instance_id\": 26,\n", " \"symbol_address\": 1076,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -507,13 +507,13 @@ " \"data_type_name\": \"UINT\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Pump_Run\": {\n", - " \"tag_name\": \"Pump_Run\",\n", + " \"_IO_P1_AI_02\": {\n", + " \"tag_name\": \"_IO_P1_AI_02\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 27,\n", - " \"symbol_address\": 1116,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1078,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -521,18 +521,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"BOOL\",\n", - " \"data_type_name\": \"BOOL\",\n", - " \"bit_position\": 0,\n", + " \"data_type\": \"UINT\",\n", + " \"data_type_name\": \"UINT\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Hand_Input\": {\n", - " \"tag_name\": \"Raw_Hand_Input\",\n", + " \"_IO_P1_AI_03\": {\n", + " \"tag_name\": \"_IO_P1_AI_03\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 28,\n", - " \"symbol_address\": 1117,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1080,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -540,18 +539,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"BOOL\",\n", - " \"data_type_name\": \"BOOL\",\n", - " \"bit_position\": 0,\n", + " \"data_type\": \"UINT\",\n", + " \"data_type_name\": \"UINT\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Auto_Input\": {\n", - " \"tag_name\": \"Raw_Auto_Input\",\n", + " \"Pond_1_Hi_Set\": {\n", + " \"tag_name\": \"Pond_1_Hi_Set\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 29,\n", - " \"symbol_address\": 1118,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1124,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -564,13 +562,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Run_Status\": {\n", - " \"tag_name\": \"Raw_Run_Status\",\n", + " \"Pond_1_Hi_Reset\": {\n", + " \"tag_name\": \"Pond_1_Hi_Reset\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 30,\n", - " \"symbol_address\": 1119,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1125,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -583,13 +581,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Run_Indication\": {\n", - " \"tag_name\": \"Raw_Run_Indication\",\n", + " \"Pond_1_Hi_Alarm\": {\n", + " \"tag_name\": \"Pond_1_Hi_Alarm\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 31,\n", - " \"symbol_address\": 1120,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1126,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -602,13 +600,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Local_Start\": {\n", - " \"tag_name\": \"Raw_Local_Start\",\n", + " \"Pond_2_Hi_Set\": {\n", + " \"tag_name\": \"Pond_2_Hi_Set\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 32,\n", - " \"symbol_address\": 1121,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1127,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -621,13 +619,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"CMD_Cloud_Control\": {\n", - " \"tag_name\": \"CMD_Cloud_Control\",\n", + " \"Pond_2_Hi_Reset\": {\n", + " \"tag_name\": \"Pond_2_Hi_Reset\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 33,\n", - " \"symbol_address\": 1122,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1128,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -640,13 +638,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Daily_GOP\": {\n", - " \"tag_name\": \"Daily_GOP\",\n", + " \"Pond_2_Hi_Alarm\": {\n", + " \"tag_name\": \"Pond_2_Hi_Alarm\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 34,\n", - " \"symbol_address\": 1123,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1129,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -659,13 +657,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Monthly_GOP\": {\n", - " \"tag_name\": \"Monthly_GOP\",\n", + " \"Pond_1_Lo_Set\": {\n", + " \"tag_name\": \"Pond_1_Lo_Set\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 35,\n", - " \"symbol_address\": 1124,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1130,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -678,13 +676,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"SPT_Flow_Meter_Unit\": {\n", - " \"tag_name\": \"SPT_Flow_Meter_Unit\",\n", + " \"Pond_1_Lo_Reset\": {\n", + " \"tag_name\": \"Pond_1_Lo_Reset\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 36,\n", - " \"symbol_address\": 1125,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1131,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -697,13 +695,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Overload_Status\": {\n", - " \"tag_name\": \"Raw_Overload_Status\",\n", + " \"Pond_1_Lo_Alarm\": {\n", + " \"tag_name\": \"Pond_1_Lo_Alarm\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 37,\n", - " \"symbol_address\": 1126,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1132,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -716,13 +714,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Test_GOP\": {\n", - " \"tag_name\": \"Test_GOP\",\n", + " \"Pond_2_Lo_Set\": {\n", + " \"tag_name\": \"Pond_2_Lo_Set\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 38,\n", - " \"symbol_address\": 1127,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1133,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -735,13 +733,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Pump_Signal_Run\": {\n", - " \"tag_name\": \"Pump_Signal_Run\",\n", + " \"Pond_2_Lo_Reset\": {\n", + " \"tag_name\": \"Pond_2_Lo_Reset\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 39,\n", - " \"symbol_address\": 1128,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1134,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -754,13 +752,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Test_Daily_GOP\": {\n", - " \"tag_name\": \"Test_Daily_GOP\",\n", + " \"Pond_2_Lo_Alarm\": {\n", + " \"tag_name\": \"Pond_2_Lo_Alarm\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 40,\n", - " \"symbol_address\": 1129,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1135,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -773,13 +771,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"FlowRateSel\": {\n", - " \"tag_name\": \"FlowRateSel\",\n", + " \"Pond_1_Hi_Alarm_Enable\": {\n", + " \"tag_name\": \"Pond_1_Hi_Alarm_Enable\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 41,\n", - " \"symbol_address\": 1130,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1136,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -792,13 +790,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"FlowRateSwitch\": {\n", - " \"tag_name\": \"FlowRateSwitch\",\n", + " \"Pond_1_Hi_Alarm_Enabled\": {\n", + " \"tag_name\": \"Pond_1_Hi_Alarm_Enabled\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 42,\n", - " \"symbol_address\": 1131,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1137,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -811,13 +809,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"MasterTotalizerReset\": {\n", - " \"tag_name\": \"MasterTotalizerReset\",\n", + " \"Save\": {\n", + " \"tag_name\": \"Save\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 43,\n", - " \"symbol_address\": 1132,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1138,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -830,13 +828,13 @@ " \"bit_position\": 0,\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Flow_Meter\": {\n", - " \"tag_name\": \"Raw_Flow_Meter\",\n", + " \"Pond_1_Lev\": {\n", + " \"tag_name\": \"Pond_1_Lev\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 44,\n", - " \"symbol_address\": 1134,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1144,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -844,17 +842,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"UINT\",\n", - " \"data_type_name\": \"UINT\",\n", + " \"data_type\": \"REAL\",\n", + " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Raw_Pressure_Transducer\": {\n", - " \"tag_name\": \"Raw_Pressure_Transducer\",\n", + " \"Pond_1_ScaledMin\": {\n", + " \"tag_name\": \"Pond_1_ScaledMin\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 45,\n", - " \"symbol_address\": 1136,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1148,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -862,17 +860,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"UINT\",\n", - " \"data_type_name\": \"UINT\",\n", + " \"data_type\": \"REAL\",\n", + " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"MB_BatteyStatus\": {\n", - " \"tag_name\": \"MB_BatteyStatus\",\n", + " \"Pond_1_ScaledMax\": {\n", + " \"tag_name\": \"Pond_1_ScaledMax\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 46,\n", - " \"symbol_address\": 1138,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1152,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -880,17 +878,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"UINT\",\n", - " \"data_type_name\": \"UINT\",\n", + " \"data_type\": \"REAL\",\n", + " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Contract_Hour\": {\n", - " \"tag_name\": \"Contract_Hour\",\n", + " \"Pond_2_Lev\": {\n", + " \"tag_name\": \"Pond_2_Lev\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 47,\n", - " \"symbol_address\": 1140,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1156,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -898,17 +896,17 @@ " 0,\n", " 0\n", " ],\n", - " \"data_type\": \"UINT\",\n", - " \"data_type_name\": \"UINT\",\n", + " \"data_type\": \"REAL\",\n", + " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Zero\": {\n", - " \"tag_name\": \"Zero\",\n", + " \"Pond_2_ScaledMin\": {\n", + " \"tag_name\": \"Pond_2_ScaledMin\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 48,\n", - " \"symbol_address\": 1148,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1160,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -920,13 +918,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Scaled_Flow_Meter\": {\n", - " \"tag_name\": \"Scaled_Flow_Meter\",\n", + " \"Pond_2_ScaledMax\": {\n", + " \"tag_name\": \"Pond_2_ScaledMax\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 49,\n", - " \"symbol_address\": 1152,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1164,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -938,13 +936,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Scaled_Pressure_Transducer\": {\n", - " \"tag_name\": \"Scaled_Pressure_Transducer\",\n", + " \"Pond_1_Hi_Setpoint\": {\n", + " \"tag_name\": \"Pond_1_Hi_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 50,\n", - " \"symbol_address\": 1156,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1168,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -956,13 +954,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Lifetime_Flow_Meter_Gal\": {\n", - " \"tag_name\": \"Lifetime_Flow_Meter_Gal\",\n", + " \"Pond_1_Hi_Clr_Setpoint\": {\n", + " \"tag_name\": \"Pond_1_Hi_Clr_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 51,\n", - " \"symbol_address\": 1160,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1172,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -974,13 +972,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Yesterday_Total_Gal\": {\n", - " \"tag_name\": \"Totalizer_FM_Yesterday_Total_Gal\",\n", + " \"Pond_2_Hi_Setpoint\": {\n", + " \"tag_name\": \"Pond_2_Hi_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 52,\n", - " \"symbol_address\": 1164,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1176,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -992,13 +990,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Current_Day_Total_Gal\": {\n", - " \"tag_name\": \"Totalizer_FM_Current_Day_Total_Gal\",\n", + " \"Pond_2_Hi_Clr_Setpoint\": {\n", + " \"tag_name\": \"Pond_2_Hi_Clr_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 53,\n", - " \"symbol_address\": 1168,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1180,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1010,13 +1008,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Last_Month_Gal\": {\n", - " \"tag_name\": \"Totalizer_FM_Last_Month_Gal\",\n", + " \"Pond_1_CU_Ft\": {\n", + " \"tag_name\": \"Pond_1_CU_Ft\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 54,\n", - " \"symbol_address\": 1172,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1184,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1028,13 +1026,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Current_Month_Gal\": {\n", - " \"tag_name\": \"Totalizer_FM_Current_Month_Gal\",\n", + " \"Pond_1_Dim_A\": {\n", + " \"tag_name\": \"Pond_1_Dim_A\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 55,\n", - " \"symbol_address\": 1176,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1188,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1046,13 +1044,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Yesterday_Total_BBLs\": {\n", - " \"tag_name\": \"Totalizer_FM_Yesterday_Total_BBLs\",\n", + " \"Pond_1_Dim_B\": {\n", + " \"tag_name\": \"Pond_1_Dim_B\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 56,\n", - " \"symbol_address\": 1180,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1192,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1064,13 +1062,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Current_Day_Total_BBLs\": {\n", - " \"tag_name\": \"Totalizer_FM_Current_Day_Total_BBLs\",\n", + " \"Pond_1_Dim_C\": {\n", + " \"tag_name\": \"Pond_1_Dim_C\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 57,\n", - " \"symbol_address\": 1184,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1196,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1082,13 +1080,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Last_Month_BBLs\": {\n", - " \"tag_name\": \"Totalizer_FM_Last_Month_BBLs\",\n", + " \"Pond_1_Dim_D\": {\n", + " \"tag_name\": \"Pond_1_Dim_D\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 58,\n", - " \"symbol_address\": 1188,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1200,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1100,13 +1098,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Today_Total\": {\n", - " \"tag_name\": \"Today_Total\",\n", + " \"Pond_1_Cubic_Feet_To_Barrels\": {\n", + " \"tag_name\": \"Pond_1_Cubic_Feet_To_Barrels\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 59,\n", - " \"symbol_address\": 1192,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1204,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1118,13 +1116,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Totalizer_FM_Current_Month_BBLs\": {\n", - " \"tag_name\": \"Totalizer_FM_Current_Month_BBLs\",\n", + " \"Pond_1_Total_Barrels\": {\n", + " \"tag_name\": \"Pond_1_Total_Barrels\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 60,\n", - " \"symbol_address\": 1196,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1208,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1136,13 +1134,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Day_Total\": {\n", - " \"tag_name\": \"Prev_Day_Total\",\n", + " \"Pond_1_Lo_Setpoint\": {\n", + " \"tag_name\": \"Pond_1_Lo_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 61,\n", - " \"symbol_address\": 1200,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1212,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1154,13 +1152,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Month_Total\": {\n", - " \"tag_name\": \"Month_Total\",\n", + " \"Pond_1_Lo_Clr_Setpoint\": {\n", + " \"tag_name\": \"Pond_1_Lo_Clr_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 62,\n", - " \"symbol_address\": 1204,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1216,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1172,13 +1170,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Lifetime_Flow_Meter_BBLS\": {\n", - " \"tag_name\": \"Lifetime_Flow_Meter_BBLS\",\n", + " \"Pond_1_Lev_Temp\": {\n", + " \"tag_name\": \"Pond_1_Lev_Temp\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 63,\n", - " \"symbol_address\": 1208,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1220,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1190,13 +1188,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Month_Total\": {\n", - " \"tag_name\": \"Prev_Month_Total\",\n", + " \"Pond_2_Lo_Setpoint\": {\n", + " \"tag_name\": \"Pond_2_Lo_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 64,\n", - " \"symbol_address\": 1212,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1224,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1208,13 +1206,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Today_Total_Gallons\": {\n", - " \"tag_name\": \"Today_Total_Gallons\",\n", + " \"Pond_2_Lo_Clr_Setpoint\": {\n", + " \"tag_name\": \"Pond_2_Lo_Clr_Setpoint\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 65,\n", - " \"symbol_address\": 1216,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1228,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1226,13 +1224,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Low_Flow_Cutoff\": {\n", - " \"tag_name\": \"Low_Flow_Cutoff\",\n", + " \"Pond_1_Tot_Bbls_Temp\": {\n", + " \"tag_name\": \"Pond_1_Tot_Bbls_Temp\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 66,\n", - " \"symbol_address\": 1220,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1232,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1244,13 +1242,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Seconds_Per_Minute\": {\n", - " \"tag_name\": \"Seconds_Per_Minute\",\n", + " \"Pond_2_Lev_Temp\": {\n", + " \"tag_name\": \"Pond_2_Lev_Temp\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 67,\n", - " \"symbol_address\": 1224,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1236,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1262,13 +1260,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Today_Total_BBLs\": {\n", - " \"tag_name\": \"Today_Total_BBLs\",\n", + " \"Pond_2_Dim_C\": {\n", + " \"tag_name\": \"Pond_2_Dim_C\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 68,\n", - " \"symbol_address\": 1228,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1240,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1280,13 +1278,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Day_Total_Gals\": {\n", - " \"tag_name\": \"Prev_Day_Total_Gals\",\n", + " \"Pond_2_Dim_D\": {\n", + " \"tag_name\": \"Pond_2_Dim_D\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 69,\n", - " \"symbol_address\": 1232,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1244,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1298,13 +1296,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Day_Total_BBLs\": {\n", - " \"tag_name\": \"Prev_Day_Total_BBLs\",\n", + " \"Pond_2_CU_Ft\": {\n", + " \"tag_name\": \"Pond_2_CU_Ft\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 70,\n", - " \"symbol_address\": 1236,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1248,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1316,13 +1314,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Month_Total_Gallons\": {\n", - " \"tag_name\": \"Month_Total_Gallons\",\n", + " \"Pond_2_Tot_Bbls_Temp\": {\n", + " \"tag_name\": \"Pond_2_Tot_Bbls_Temp\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 71,\n", - " \"symbol_address\": 1240,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1252,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1334,13 +1332,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Month_Total_Gallons\": {\n", - " \"tag_name\": \"Prev_Month_Total_Gallons\",\n", + " \"Pond_2_Cubic_Feet_To_Barrels\": {\n", + " \"tag_name\": \"Pond_2_Cubic_Feet_To_Barrels\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 72,\n", - " \"symbol_address\": 1244,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1256,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1352,13 +1350,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Month_Total_Barrels\": {\n", - " \"tag_name\": \"Month_Total_Barrels\",\n", + " \"Pond_2_Dim_A\": {\n", + " \"tag_name\": \"Pond_2_Dim_A\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 73,\n", - " \"symbol_address\": 1248,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1260,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1370,13 +1368,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Prev_Month_Total_Barrels\": {\n", - " \"tag_name\": \"Prev_Month_Total_Barrels\",\n", + " \"Pond_2_Dim_B\": {\n", + " \"tag_name\": \"Pond_2_Dim_B\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 74,\n", - " \"symbol_address\": 1252,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1264,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1388,13 +1386,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Sec_Per_Min\": {\n", - " \"tag_name\": \"Sec_Per_Min\",\n", + " \"Pond_2_Total_Barrels\": {\n", + " \"tag_name\": \"Pond_2_Total_Barrels\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 75,\n", - " \"symbol_address\": 1256,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1268,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1406,13 +1404,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"MB_FlowRate\": {\n", - " \"tag_name\": \"MB_FlowRate\",\n", + " \"Pond_1_EU_Min\": {\n", + " \"tag_name\": \"Pond_1_EU_Min\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 76,\n", - " \"symbol_address\": 1260,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1272,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1424,13 +1422,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"Val_Flow_Rate\": {\n", - " \"tag_name\": \"Val_Flow_Rate\",\n", + " \"Pond_1_EU_Max\": {\n", + " \"tag_name\": \"Pond_1_EU_Max\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 77,\n", - " \"symbol_address\": 1264,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1276,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1442,13 +1440,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"MB_PrevDayTotal\": {\n", - " \"tag_name\": \"MB_PrevDayTotal\",\n", + " \"Pond_2_EU_Min\": {\n", + " \"tag_name\": \"Pond_2_EU_Min\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 78,\n", - " \"symbol_address\": 1268,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_address\": 1280,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1460,67 +1458,13 @@ " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", " },\n", - " \"MB_CurrentDayTotal\": {\n", - " \"tag_name\": \"MB_CurrentDayTotal\",\n", + " \"Pond_2_EU_Max\": {\n", + " \"tag_name\": \"Pond_2_EU_Max\",\n", " \"dim\": 0,\n", " \"alias\": true,\n", " \"instance_id\": 79,\n", - " \"symbol_address\": 1272,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"MB_Total\": {\n", - " \"tag_name\": \"MB_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 80,\n", - " \"symbol_address\": 1276,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"MB_AccumlatedTotal\": {\n", - " \"tag_name\": \"MB_AccumlatedTotal\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 81,\n", - " \"symbol_address\": 1280,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"TempMB_FlowRate\": {\n", - " \"tag_name\": \"TempMB_FlowRate\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 82,\n", " \"symbol_address\": 1284,\n", - " \"symbol_object_address\": 1077558616,\n", + " \"symbol_object_address\": 1077545472,\n", " \"software_control\": 0,\n", " \"external_access\": \"Unknown\",\n", " \"dimensions\": [\n", @@ -1531,229 +1475,13 @@ " \"data_type\": \"REAL\",\n", " \"data_type_name\": \"REAL\",\n", " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Flow_Rate_Holding\": {\n", - " \"tag_name\": \"Flow_Rate_Holding\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 83,\n", - " \"symbol_address\": 1288,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Lifetime_Total\": {\n", - " \"tag_name\": \"Val_Lifetime_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 84,\n", - " \"symbol_address\": 1292,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Water_Yest_Total\": {\n", - " \"tag_name\": \"Val_Water_Yest_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 85,\n", - " \"symbol_address\": 1296,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Water_Today_Total\": {\n", - " \"tag_name\": \"Val_Water_Today_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 86,\n", - " \"symbol_address\": 1300,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Water_LastMonth_Total\": {\n", - " \"tag_name\": \"Val_Water_LastMonth_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 87,\n", - " \"symbol_address\": 1304,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Water_Current_Month_Total\": {\n", - " \"tag_name\": \"Val_Water_Current_Month_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 88,\n", - " \"symbol_address\": 1308,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Oil_Yest_Total\": {\n", - " \"tag_name\": \"Val_Oil_Yest_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 89,\n", - " \"symbol_address\": 1312,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Oil_Today_Total\": {\n", - " \"tag_name\": \"Val_Oil_Today_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 90,\n", - " \"symbol_address\": 1316,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Oil_LastMonth_Total\": {\n", - " \"tag_name\": \"Val_Oil_LastMonth_Total\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 91,\n", - " \"symbol_address\": 1320,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Val_Oil_CurrentMonth\": {\n", - " \"tag_name\": \"Val_Oil_CurrentMonth\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 92,\n", - " \"symbol_address\": 1324,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Temp_Lifetime_Holding\": {\n", - " \"tag_name\": \"Temp_Lifetime_Holding\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 93,\n", - " \"symbol_address\": 1328,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"REAL\",\n", - " \"data_type_name\": \"REAL\",\n", - " \"tag_type\": \"atomic\"\n", - " },\n", - " \"Sample_Period\": {\n", - " \"tag_name\": \"Sample_Period\",\n", - " \"dim\": 0,\n", - " \"alias\": true,\n", - " \"instance_id\": 94,\n", - " \"symbol_address\": 1416,\n", - " \"symbol_object_address\": 1077558616,\n", - " \"software_control\": 0,\n", - " \"external_access\": \"Unknown\",\n", - " \"dimensions\": [\n", - " 0,\n", - " 0,\n", - " 0\n", - " ],\n", - " \"data_type\": \"UDINT\",\n", - " \"data_type_name\": \"UDINT\",\n", - " \"tag_type\": \"atomic\"\n", " }\n", "}\n" ] } ], "source": [ - "with LogixDriver('166.184.42.28') as plc:\n", + "with LogixDriver('166.193.23.30') as plc:\n", " #info = plc.get_plc_info()\n", " plctags = plc.get_tag_list()\n", " #print(info)\n", @@ -1856,6 +1584,24 @@ " " ] }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pond1CalibrationHeight[1], None, None, Tag doesn't exist - pond1CalibrationHeight\n" + ] + } + ], + "source": [ + "with LogixDriver('166.193.23.30') as plc:\n", + " print(plc.read('pond1CalibrationHeight[1]'))" + ] + }, { "cell_type": "code", "execution_count": null,