Central Heating controller using the real time clock, PHY module for internet, 1-wire interface for temperature sensors, a system log and a configuration file

Dependencies:   net 1-wire lpc1768 crypto clock web fram log

/media/uploads/andrewboyson/heating.sch

/media/uploads/andrewboyson/heating.brd

/media/uploads/andrewboyson/eagle.epf

Revision:
105:1899f7ed17ec
Parent:
104:46ce1aaf8be7
Child:
106:41ed3ea0bbba
--- a/web-this/boiler/web-boiler-script.js	Wed Feb 10 17:24:36 2021 +0000
+++ b/web-this/boiler/web-boiler-script.js	Tue Feb 23 20:35:07 2021 +0000
@@ -5,8 +5,12 @@
 let   tankTemperature  = '';
 let blrOutTemperature  = '';
 let blrRtnTemperature  = '';
+let blrAlnTemperature  = '';
+let blrDeltaT          = '';
+let boilerEnable       = false;
 let boilerCall         = false;
 let boilerPump         = false;
+let fullSpeedSecs      = '';
 let tankSetPoint       = '';
 let tankHysteresis     = '';
 let blrRunOnDeg        = '';
@@ -26,20 +30,26 @@
       tankTemperature = Ajax.hexToSignedInt16(lines[ 0]);
     blrOutTemperature = Ajax.hexToSignedInt16(lines[ 1]);
     blrRtnTemperature = Ajax.hexToSignedInt16(lines[ 2]);
-    boilerCall        = Ajax.hexToBit        (lines[ 3], 0);
-    boilerPump        = Ajax.hexToBit        (lines[ 3], 1);
-    tankSetPoint      = Ajax.hexToSignedInt16(lines[ 4]);
-    tankHysteresis    = Ajax.hexToSignedInt16(lines[ 5]);
-    blrRunOnDeg       = Ajax.hexToSignedInt16(lines[ 6]);
-    blrRunOnTime      = Ajax.hexToSignedInt16(lines[ 7]);
-    blrPumpSpeed      = Ajax.hexToSignedInt16(lines[ 8]);
-    blrPumpPwm        = Ajax.hexToSignedInt16(lines[ 9]);
-    pumpSpeedCalling  = Ajax.hexToSignedInt16(lines[10]);
-    pumpSpeedRunOn    = Ajax.hexToSignedInt16(lines[11]);
-    blrOutputTarget   = Ajax.hexToSignedInt16(lines[12]);
-    riseAt0           = Ajax.hexToSignedInt16(lines[13]);
-    riseAt50          = Ajax.hexToSignedInt16(lines[14]);
-    riseAt100         = Ajax.hexToSignedInt16(lines[15]);
+    blrAlnTemperature = Ajax.hexToSignedInt16(lines[ 3]);
+    blrDeltaT         = Ajax.hexToSignedInt16(lines[ 4]);
+    boilerCall        = Ajax.hexToBit        (lines[ 5], 0);
+    boilerPump        = Ajax.hexToBit        (lines[ 5], 1);
+    boilerEnable      = Ajax.hexToBit        (lines[ 5], 2);
+    fullSpeedSecs     = Ajax.hexToSignedInt16(lines[ 6]);
+    tankSetPoint      = Ajax.hexToSignedInt16(lines[ 7]);
+    tankHysteresis    = Ajax.hexToSignedInt16(lines[ 8]);
+    blrRunOnDeg       = Ajax.hexToSignedInt16(lines[ 9]);
+    blrRunOnTime      = Ajax.hexToSignedInt16(lines[10]);
+    blrPumpSpeed      = Ajax.hexToSignedInt16(lines[11]);
+    blrPumpPwm        = Ajax.hexToSignedInt16(lines[12]);
+    pumpSpeedCalling  = Ajax.hexToSignedInt16(lines[13]);
+    if (pumpSpeedCalling == -1) pumpSpeedCalling = 'A';
+    if (pumpSpeedCalling == -2) pumpSpeedCalling = 'T';
+    pumpSpeedRunOn    = Ajax.hexToSignedInt16(lines[14]);
+    blrOutputTarget   = Ajax.hexToSignedInt16(lines[15]);
+    riseAt0           = Ajax.hexToSignedInt16(lines[16]);
+    riseAt50          = Ajax.hexToSignedInt16(lines[17]);
+    riseAt100         = Ajax.hexToSignedInt16(lines[18]);
 }
 function display()
 {
@@ -47,13 +57,16 @@
     elem = Ajax.getElementOrNull('ajax-tank-html'      ); if (elem) elem.textContent = OneWire.DS18B20ToString(tankTemperature);
     elem = Ajax.getElementOrNull('ajax-blr-out-html'   ); if (elem) elem.textContent = OneWire.DS18B20ToString(blrOutTemperature);
     elem = Ajax.getElementOrNull('ajax-blr-rtn-html'   ); if (elem) elem.textContent = OneWire.DS18B20ToString(blrRtnTemperature);
-    elem = Ajax.getElementOrNull('ajax-blr-rise-html'  ); if (elem) elem.textContent = OneWire.DS18B20ToString(blrOutTemperature - blrRtnTemperature);
+    elem = Ajax.getElementOrNull('ajax-blr-aln-html'   ); if (elem) elem.textContent = OneWire.DS18B20ToString(blrAlnTemperature);
+    elem = Ajax.getElementOrNull('ajax-blr-rise-html'  ); if (elem) elem.textContent = OneWire.DS18B20ToString(blrDeltaT);
     
     elem = Ajax.getElementOrNull('ajax-blr-pump-speed-html'); if (elem) elem.textContent = blrPumpSpeed;
     elem = Ajax.getElementOrNull('ajax-blr-pump-pwm-html'  ); if (elem) elem.textContent = blrPumpPwm;
     
-    elem = Ajax.getElementOrNull('ajax-blr-call-toggle'   ); if (elem) elem.setAttribute('dir', boilerCall ? 'rtl' : 'ltr');
-    elem = Ajax.getElementOrNull('ajax-blr-pump-toggle'   ); if (elem) elem.setAttribute('dir', boilerPump ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-blr-call-toggle'   ); if (elem) elem.setAttribute('dir', boilerCall   ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-blr-pump-toggle'   ); if (elem) elem.setAttribute('dir', boilerPump   ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-blr-enable-toggle' ); if (elem) elem.setAttribute('dir', boilerEnable ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-full-speed-secs'   ); if (elem) elem.value = fullSpeedSecs;
     elem = Ajax.getElementOrNull('ajax-tank-set-point'    ); if (elem) elem.value = tankSetPoint;
     elem = Ajax.getElementOrNull('ajax-tank-hysteresis'   ); if (elem) elem.value = tankHysteresis;
     elem = Ajax.getElementOrNull('ajax-blr-run-on-deg'    ); if (elem) elem.value = OneWire.DS18B20ToString(blrRunOnDeg);
@@ -63,8 +76,8 @@
     elem = Ajax.getElementOrNull('ajax-pump-speed-run-on' ); if (elem) elem.value = pumpSpeedRunOn;
     elem = Ajax.getElementOrNull('ajax-blr-output-target' ); if (elem) elem.value = blrOutputTarget;
     
-    elem = Ajax.getElementOrNull('ajax-pump-rise-at-0'    ); if (elem) elem.value = OneWire.DS18B20ToString(riseAt0);
-    elem = Ajax.getElementOrNull('ajax-pump-rise-at-50'   ); if (elem) elem.value = OneWire.DS18B20ToString(riseAt50);
+    elem = Ajax.getElementOrNull('ajax-pump-rise-at-0'    ); if (elem) elem.value = riseAt0;
+    elem = Ajax.getElementOrNull('ajax-pump-rise-at-50'   ); if (elem) elem.value = riseAt50;
     elem = Ajax.getElementOrNull('ajax-pump-rise-at-100'  ); if (elem) elem.value = OneWire.DS18B20ToString(riseAt100);
 }