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

http-derived/boiler/http-boiler-script.js

Committer:
andrewboyson
Date:
2019-04-23
Revision:
47:229338b3adcb

File content as of revision 47:229338b3adcb:

//Boiler script
'use strict';

let dateTime          = '';
let   tankTemperature = '';
let blrOutTemperature = '';
let blrRtnTemperature = '';
let boilerCall        = false;
let boilerPump        = false;
let tankSetPoint      = '';
let tankHysteresis    = '';
let blrRunOnDeg       = '';
let blrRunOnTime      = '';

function parse()
{
    let lines = Ajax.response.split('\n');
      tankTemperature = OneWire.DS18B20ToString (lines[0]);
    blrOutTemperature = OneWire.DS18B20ToString (lines[1]);
    blrRtnTemperature = OneWire.DS18B20ToString (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]);
}
function display()
{
    let elem;
    elem = Ajax.getElementOrNull('ajax-tank-html'      ); if (elem) elem.textContent =   tankTemperature;
    elem = Ajax.getElementOrNull('ajax-blr-out-html'   ); if (elem) elem.textContent = blrOutTemperature;
    elem = Ajax.getElementOrNull('ajax-blr-rtn-html'   ); if (elem) elem.textContent = blrRtnTemperature;
    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-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 = blrRunOnDeg;
    elem = Ajax.getElementOrNull('ajax-blr-run-on-time'); if (elem) elem.value = blrRunOnTime;

}

Ajax.server     = '/boiler-ajax';
Ajax.onResponse = function() { parse(); display(); };
Ajax.init();