diff --git a/PLC/Multi-Sensor/Controller/Controller/persist.ccwx b/PLC/Multi-Sensor/Controller/Controller/persist.ccwx
index b52a706..35cd36d 100644
Binary files a/PLC/Multi-Sensor/Controller/Controller/persist.ccwx and b/PLC/Multi-Sensor/Controller/Controller/persist.ccwx differ
diff --git a/PLC/Multi-Sensor/Multi-Sensor.ccwsln b/PLC/Multi-Sensor/Multi-Sensor.ccwsln
index a1f1e67..41f8b29 100644
Binary files a/PLC/Multi-Sensor/Multi-Sensor.ccwsln and b/PLC/Multi-Sensor/Multi-Sensor.ccwsln differ
diff --git a/PLC/Multi-Sensor/Multi-Sensor.v12.ccwsuo b/PLC/Multi-Sensor/Multi-Sensor.v12.ccwsuo
index 5c288bc..a521476 100644
Binary files a/PLC/Multi-Sensor/Multi-Sensor.v12.ccwsuo and b/PLC/Multi-Sensor/Multi-Sensor.v12.ccwsuo differ
diff --git a/POCloud/channels_multisensor.csv b/POCloud/channels_multisensor.csv
index bb9dad4..f502deb 100644
--- a/POCloud/channels_multisensor.csv
+++ b/POCloud/channels_multisensor.csv
@@ -73,4 +73,16 @@ id,name,deviceTypeId,fromMe,io,subTitle,helpExplanation,channelType,dataType,def
,an5decimals,465,FALSE,readwrite,Analog 5 Decimal Places,Decimal places to show for analog 5,user input,integer,2,,,,,,,,
,an6decimals,465,FALSE,readwrite,Analog 6 Decimal Places,Decimal places to show for analog 6,user input,integer,2,,,,,,,,
,an7decimals,465,FALSE,readwrite,Analog 7 Decimal Places,Decimal places to show for analog 7,user input,integer,2,,,,,,,,
-,sync,465,FALSE,readwrite,Sync,sync,device,string,,,,,,,,,
\ No newline at end of file
+,sync,465,FALSE,readwrite,Sync,sync,device,string,,,,,,,,,
+,pond0calibration,465,FALSE,readonly,Pond 0 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond1calibration,465,FALSE,readonly,Pond 1 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond2calibration,465,FALSE,readonly,Pond 2 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond3calibration,465,FALSE,readonly,Pond 3 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond4calibration,465,FALSE,readonly,Pond 4 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond5calibration,465,FALSE,readonly,Pond 5 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond6calibration,465,FALSE,readonly,Pond 6 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,pond7calibration,465,FALSE,readonly,Pond 7 Calibration,Calibration JSON object,device,string,{},,,,,,,,
+,addcalibrationpoint,465,FALSE,readwrite,Add Command,sends data to PLC,device,string,,,,,,,,,
+,deletecalibrationpoint,465,FALSE,readwrite,Delete Command,sends data to PLC,device,string,,,,,,,,,
+,writeplctag,465,FALSE,readwrite,Write PLC Tag,sends data to PLC,device,string,,,,,,,,,
+,pondvolumetotal,466,FALSE,readonly,Total Pond Volume,in BBL,device,float,,,,,,,,,
\ No newline at end of file
diff --git a/POCloud/html-templates/Calibration.html b/POCloud/html-templates/Calibration.html
deleted file mode 100644
index ab0bbc0..0000000
--- a/POCloud/html-templates/Calibration.html
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
-
-
Pond 1 Calibration
-
-
-
- | Level (Ft.) |
- Volume |
-
-
-
-
-
-
-
-
-
Pond 2 Calibration
-
-
-
- | Level (Ft.) |
- Volume |
-
-
-
-
-
-
-
-
-
-
-
Pond 3 Calibration
-
-
-
- | Level (Ft.) |
- Volume |
-
-
-
-
-
-
-
-
-
Pond 4 Calibration
-
-
-
- | Level (Ft.) |
- Volume |
-
-
-
-
-
-
-
-
-
-
-
-
Add a new Calibration Point
-
-
-
-
-
diff --git a/POCloud/html-templates/Inputs0-1.html b/POCloud/html-templates/Inputs0-1.html
new file mode 100644
index 0000000..e49888e
--- /dev/null
+++ b/POCloud/html-templates/Inputs0-1.html
@@ -0,0 +1,454 @@
+
+
+
+ data-nodename3="multisensor.pond0volume"
+ data-datalabel3="Pond 0 Volume"
+ <% } %>
+ <% if (channels["multisensor.an1ispond"].value === "true"){ %>
+ data-nodename4="multisensor.pond1volume"
+ data-datalabel4="Pond 1 Volume"
+ <% } %>
+
+ data-daysofhistory="2"
+ data-chartlabel="Last 48 Hours"
+ data-ylabel=""
+ data-xlabel="Date"
+ data-units="">
+
+
+
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an0ispond"].value === "true") { %>
+
+
Pond 0 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an1ispond"].value === "true") { %>
+
+
Pond 1 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+ <% if (channels["multisensor.an0ispond"].value === "true" || channels["multisensor.an1ispond"].value === "true") { %>
+
+
+
Add a new Calibration Point
+
+
+
+ <% } %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/POCloud/html-templates/Inputs2-3.html b/POCloud/html-templates/Inputs2-3.html
new file mode 100644
index 0000000..166b68f
--- /dev/null
+++ b/POCloud/html-templates/Inputs2-3.html
@@ -0,0 +1,454 @@
+
+
+
+ data-nodename3="multisensor.pond2volume"
+ data-datalabel3="Pond 2 Volume"
+ <% } %>
+ <% if (channels["multisensor.an3ispond"].value === "true"){ %>
+ data-nodename4="multisensor.pond3volume"
+ data-datalabel4="Pond 3 Volume"
+ <% } %>
+
+ data-daysofhistory="2"
+ data-chartlabel="Last 48 Hours"
+ data-ylabel=""
+ data-xlabel="Date"
+ data-units="">
+
+
+
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an2ispond"].value === "true") { %>
+
+
Pond 2 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an3ispond"].value === "true") { %>
+
+
Pond 3 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+ <% if (channels["multisensor.an2ispond"].value === "true" || channels["multisensor.an3ispond"].value === "true") { %>
+
+
+
Add a new Calibration Point
+
+
+
+ <% } %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/POCloud/html-templates/Inputs4-5.html b/POCloud/html-templates/Inputs4-5.html
new file mode 100644
index 0000000..4611540
--- /dev/null
+++ b/POCloud/html-templates/Inputs4-5.html
@@ -0,0 +1,454 @@
+
+
+
+ data-nodename3="multisensor.pond4volume"
+ data-datalabel3="Pond 4 Volume"
+ <% } %>
+ <% if (channels["multisensor.an5ispond"].value === "true"){ %>
+ data-nodename4="multisensor.pond5volume"
+ data-datalabel4="Pond 5 Volume"
+ <% } %>
+
+ data-daysofhistory="2"
+ data-chartlabel="Last 48 Hours"
+ data-ylabel=""
+ data-xlabel="Date"
+ data-units="">
+
+
+
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an4ispond"].value === "true") { %>
+
+
Pond 4 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an5ispond"].value === "true") { %>
+
+
Pond 5 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+ <% if (channels["multisensor.an4ispond"].value === "true" || channels["multisensor.an5ispond"].value === "true") { %>
+
+
+
Add a new Calibration Point
+
+
+
+ <% } %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/POCloud/html-templates/Inputs6-7.html b/POCloud/html-templates/Inputs6-7.html
new file mode 100644
index 0000000..ac8f1f3
--- /dev/null
+++ b/POCloud/html-templates/Inputs6-7.html
@@ -0,0 +1,454 @@
+
+
+
+ data-nodename3="multisensor.pond6volume"
+ data-datalabel3="Pond 6 Volume"
+ <% } %>
+ <% if (channels["multisensor.an7ispond"].value === "true"){ %>
+ data-nodename4="multisensor.pond7volume"
+ data-datalabel4="Pond 7 Volume"
+ <% } %>
+
+ data-daysofhistory="2"
+ data-chartlabel="Last 48 Hours"
+ data-ylabel=""
+ data-xlabel="Date"
+ data-units="">
+
+
+
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an6ispond"].value === "true") { %>
+
+
Pond 6 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an7ispond"].value === "true") { %>
+
+
Pond 7 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+ <% if (channels["multisensor.an6ispond"].value === "true" || channels["multisensor.an7ispond"].value === "true") { %>
+
+
+
Add a new Calibration Point
+
+
+
+ <% } %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/POCloud/html-templates/InputsTempl.html b/POCloud/html-templates/InputsTempl.html
new file mode 100644
index 0000000..4aa49d3
--- /dev/null
+++ b/POCloud/html-templates/InputsTempl.html
@@ -0,0 +1,454 @@
+
+
+
+ data-nodename3="multisensor.pond?0?volume"
+ data-datalabel3="Pond ?0? Volume"
+ <% } %>
+ <% if (channels["multisensor.an?1?ispond"].value === "true"){ %>
+ data-nodename4="multisensor.pond?1?volume"
+ data-datalabel4="Pond ?1? Volume"
+ <% } %>
+
+ data-daysofhistory="2"
+ data-chartlabel="Last 48 Hours"
+ data-ylabel=""
+ data-xlabel="Date"
+ data-units="">
+
+
+
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an?0?ispond"].value === "true") { %>
+
+
Pond ?0? Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an?1?ispond"].value === "true") { %>
+
+
Pond ?1? Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+<% if (channels["multisensor.an?0?ispond"].value === "true" || channels["multisensor.an?1?ispond"].value === "true") { %>
+
+
+
Add a new Calibration Point
+
+
+
+<% } %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/POCloud/html-templates/NodeDetailHeader.html b/POCloud/html-templates/NodeDetailHeader.html
index 756a869..ef5ed73 100644
--- a/POCloud/html-templates/NodeDetailHeader.html
+++ b/POCloud/html-templates/NodeDetailHeader.html
@@ -28,4 +28,11 @@
<%= node.vanityname %>
+
+ <% if (channels['multisensor.an0ispond'].value === 'true' || channels['multisensor.an1ispond'].value === 'true' || channels['multisensor.an2ispond'].value === 'true' || channels['multisensor.an3ispond'].value === 'true' || channels['multisensor.an4ispond'].value === 'true' || channels['multisensor.an5ispond'].value === 'true' || channels['multisensor.an6ispond'].value === 'true' || channels['multisensor.an7ispond'].value === 'true') { %>
+
+
Pond Volume Total
+ <%= Math.round(channels['multisensor.pondvolumetotal'].value) %> BBL
+
+ <% } %>
diff --git a/POCloud/html-templates/PondSetup.html b/POCloud/html-templates/PondSetup.html
new file mode 100644
index 0000000..3826c16
--- /dev/null
+++ b/POCloud/html-templates/PondSetup.html
@@ -0,0 +1,488 @@
+
+
+
+
+
+
+
+ <% if (channels["multisensor.an0ispond"].value === "true") { %>
+
+
Pond 0 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an1ispond"].value === "true") { %>
+
+
Pond 1 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an2ispond"].value === "true") { %>
+
+
Pond 2 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+ <% if (channels["multisensor.an3ispond"].value === "true") { %>
+
+
Pond 3 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+ <% if (channels["multisensor.an4ispond"].value === "true") { %>
+
+
Pond 4 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+ <% if (channels["multisensor.an5ispond"].value === "true") { %>
+
+
Pond 5 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+ <% if (channels["multisensor.an6ispond"].value === "true") { %>
+
+
Pond 6 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+ <% if (channels["multisensor.an7ispond"].value === "true") { %>
+
+
Pond 7 Calibration
+
+
+
+ | Level (Ft.) |
+ Volume |
+ |
+
+
+
+
+
+
+ <% } %>
+
+
+
+
+
+
+
Add a new Calibration Point
+
+
+
+
+
diff --git a/POCloud/html-templates/Trends.html b/POCloud/html-templates/Trends.html
index 43c6e02..2910e45 100644
--- a/POCloud/html-templates/Trends.html
+++ b/POCloud/html-templates/Trends.html
@@ -18,7 +18,7 @@
data-ylabel=""
data-xlabel="Date"
data-units=""
- data-channelnames="plcpond.pond1height,plcpond.pond2height,plcpond.pond3height,plcpond.pond4height,plcpond.pond1volume,plcpond.pond2volume,plcpond.pond3volume,plcpond.pond4volume,plcpond.pondvolumetotal">
+ data-channelnames="multisensor.an0val,multisensor.an1val,multisensor.an2val,multisensor.an3val,multisensor.an4val,multisensor.an5val,multisensor.an6val,multisensor.an7val,multisensor.pond0volume,multisensor.pond1volume,multisensor.pond2volume,multisensor.pond3volume,multisensor.pond4volume,multisensor.pond5volume,multisensor.pond6volume,multisensor.pond7volume,multisensor.pondvolumetotal">