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