Controls the central heating system and the lights.

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

Revision:
0:22b158d3c76f
Child:
5:3579001bea1b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web-this/radiator/web-radiator-script.js	Mon May 10 10:23:48 2021 +0000
@@ -0,0 +1,45 @@
+//Radiator script
+'use strict';
+
+let   hallTemperature    = '';
+let programTimerOutput   = false;
+let radiatorMode         = false;
+let radiatorOverride     = false;
+let radiatorPump         = false;
+let overrideCancelHour = '';
+let overrideCancelMinute = '';
+let nightSetPoint        = '';
+let frostSetPoint        = '';
+
+function parse()
+{
+    let lines = Ajax.response.split('\n');
+    hallTemperature      = Ajax.hexToSignedInt16(lines[0]);
+    programTimerOutput   = Ajax.hexToBit        (lines[1],  0);
+    radiatorMode         = Ajax.hexToBit        (lines[1],  1);
+    radiatorOverride     = Ajax.hexToBit        (lines[1],  2);
+    radiatorPump         = Ajax.hexToBit        (lines[1],  3);
+    overrideCancelHour   = Ajax.hexToSignedInt8 (lines[2]);
+    overrideCancelMinute = Ajax.hexToSignedInt8 (lines[3]);
+    nightSetPoint        = Ajax.hexToSignedInt16(lines[4]);
+    frostSetPoint        = Ajax.hexToSignedInt16(lines[5]);
+}
+function display()
+{
+    let elem;
+    elem = Ajax.getElementOrNull('ajax-hall-html'            ); if (elem) elem.textContent =  OneWire.DS18B20ToString(hallTemperature);
+    elem = Ajax.getElementOrNull('ajax-program-toggle'       ); if (elem) elem.setAttribute('dir', programTimerOutput ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-mode-toggle'          ); if (elem) elem.setAttribute('dir', radiatorMode       ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-override-toggle'      ); if (elem) elem.setAttribute('dir', radiatorOverride   ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-radiator-toggle'      ); if (elem) elem.setAttribute('dir', radiatorPump       ? 'rtl' : 'ltr');
+    elem = Ajax.getElementOrNull('ajax-overide-cancel-minute'); if (elem)
+    {
+        elem.value = String(overrideCancelHour*100 + overrideCancelMinute).padStart(4, '0');
+    }
+    elem = Ajax.getElementOrNull('ajax-night-set-point'      ); if (elem) elem.value = nightSetPoint;
+    elem = Ajax.getElementOrNull('ajax-frost-set-point'      ); if (elem) elem.value = frostSetPoint;
+}
+
+Ajax.server     = '/radiator-ajax';
+Ajax.onResponse = function() { parse(); display(); };
+Ajax.init();