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

Committer:
andrewboyson
Date:
Fri Apr 23 08:36:42 2021 +0000
Revision:
106:41ed3ea0bbba
Parent:
96:18a3813bb4b5
Not working, crashes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 47:229338b3adcb 1 //Radiator script
andrewboyson 47:229338b3adcb 2 'use strict';
andrewboyson 47:229338b3adcb 3
andrewboyson 96:18a3813bb4b5 4 let hallTemperature = '';
andrewboyson 96:18a3813bb4b5 5 let programTimerOutput = false;
andrewboyson 96:18a3813bb4b5 6 let radiatorMode = false;
andrewboyson 96:18a3813bb4b5 7 let radiatorOverride = false;
andrewboyson 96:18a3813bb4b5 8 let radiatorPump = false;
andrewboyson 96:18a3813bb4b5 9 let overrideCancelHour = '';
andrewboyson 96:18a3813bb4b5 10 let overrideCancelMinute = '';
andrewboyson 96:18a3813bb4b5 11 let nightSetPoint = '';
andrewboyson 96:18a3813bb4b5 12 let frostSetPoint = '';
andrewboyson 47:229338b3adcb 13
andrewboyson 47:229338b3adcb 14 function parse()
andrewboyson 47:229338b3adcb 15 {
andrewboyson 47:229338b3adcb 16 let lines = Ajax.response.split('\n');
andrewboyson 96:18a3813bb4b5 17 hallTemperature = Ajax.hexToSignedInt16(lines[0]);
andrewboyson 96:18a3813bb4b5 18 programTimerOutput = Ajax.hexToBit (lines[1], 0);
andrewboyson 96:18a3813bb4b5 19 radiatorMode = Ajax.hexToBit (lines[1], 1);
andrewboyson 96:18a3813bb4b5 20 radiatorOverride = Ajax.hexToBit (lines[1], 2);
andrewboyson 96:18a3813bb4b5 21 radiatorPump = Ajax.hexToBit (lines[1], 3);
andrewboyson 96:18a3813bb4b5 22 overrideCancelHour = Ajax.hexToSignedInt8 (lines[2]);
andrewboyson 96:18a3813bb4b5 23 overrideCancelMinute = Ajax.hexToSignedInt8 (lines[3]);
andrewboyson 96:18a3813bb4b5 24 nightSetPoint = Ajax.hexToSignedInt16(lines[4]);
andrewboyson 96:18a3813bb4b5 25 frostSetPoint = Ajax.hexToSignedInt16(lines[5]);
andrewboyson 47:229338b3adcb 26 }
andrewboyson 47:229338b3adcb 27 function display()
andrewboyson 47:229338b3adcb 28 {
andrewboyson 47:229338b3adcb 29 let elem;
andrewboyson 96:18a3813bb4b5 30 elem = Ajax.getElementOrNull('ajax-hall-html' ); if (elem) elem.textContent = OneWire.DS18B20ToString(hallTemperature);
andrewboyson 96:18a3813bb4b5 31 elem = Ajax.getElementOrNull('ajax-program-toggle' ); if (elem) elem.setAttribute('dir', programTimerOutput ? 'rtl' : 'ltr');
andrewboyson 96:18a3813bb4b5 32 elem = Ajax.getElementOrNull('ajax-mode-toggle' ); if (elem) elem.setAttribute('dir', radiatorMode ? 'rtl' : 'ltr');
andrewboyson 96:18a3813bb4b5 33 elem = Ajax.getElementOrNull('ajax-override-toggle' ); if (elem) elem.setAttribute('dir', radiatorOverride ? 'rtl' : 'ltr');
andrewboyson 96:18a3813bb4b5 34 elem = Ajax.getElementOrNull('ajax-radiator-toggle' ); if (elem) elem.setAttribute('dir', radiatorPump ? 'rtl' : 'ltr');
andrewboyson 96:18a3813bb4b5 35 elem = Ajax.getElementOrNull('ajax-overide-cancel-minute'); if (elem)
andrewboyson 96:18a3813bb4b5 36 {
andrewboyson 96:18a3813bb4b5 37 elem.value = String(overrideCancelHour*100 + overrideCancelMinute).padStart(4, '0');
andrewboyson 96:18a3813bb4b5 38 }
andrewboyson 96:18a3813bb4b5 39 elem = Ajax.getElementOrNull('ajax-night-set-point' ); if (elem) elem.value = nightSetPoint;
andrewboyson 96:18a3813bb4b5 40 elem = Ajax.getElementOrNull('ajax-frost-set-point' ); if (elem) elem.value = frostSetPoint;
andrewboyson 47:229338b3adcb 41 }
andrewboyson 47:229338b3adcb 42
andrewboyson 47:229338b3adcb 43 Ajax.server = '/radiator-ajax';
andrewboyson 47:229338b3adcb 44 Ajax.onResponse = function() { parse(); display(); };
andrewboyson 47:229338b3adcb 45 Ajax.init();