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
web-this/program/web-program-script.js@106:41ed3ea0bbba, 2021-04-23 (annotated)
- Committer:
- andrewboyson
- Date:
- Fri Apr 23 08:36:42 2021 +0000
- Revision:
- 106:41ed3ea0bbba
- Parent:
- 53:c1bf7d9db507
Not working, crashes.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewboyson | 47:229338b3adcb | 1 | //Program script |
andrewboyson | 47:229338b3adcb | 2 | 'use strict'; |
andrewboyson | 47:229338b3adcb | 3 | |
andrewboyson | 48:6eac12df3ad5 | 4 | let programOut = false; |
andrewboyson | 48:6eac12df3ad5 | 5 | let program1 = ''; |
andrewboyson | 48:6eac12df3ad5 | 6 | let program2 = ''; |
andrewboyson | 48:6eac12df3ad5 | 7 | let program3 = ''; |
andrewboyson | 47:229338b3adcb | 8 | let monProgram = 0; |
andrewboyson | 47:229338b3adcb | 9 | let tueProgram = 0; |
andrewboyson | 47:229338b3adcb | 10 | let wedProgram = 0; |
andrewboyson | 47:229338b3adcb | 11 | let thuProgram = 0; |
andrewboyson | 47:229338b3adcb | 12 | let friProgram = 0; |
andrewboyson | 47:229338b3adcb | 13 | let satProgram = 0; |
andrewboyson | 47:229338b3adcb | 14 | let sunProgram = 0; |
andrewboyson | 47:229338b3adcb | 15 | let newDayHour = 0; |
andrewboyson | 47:229338b3adcb | 16 | |
andrewboyson | 48:6eac12df3ad5 | 17 | function parseDayPrograms(line) |
andrewboyson | 48:6eac12df3ad5 | 18 | { |
andrewboyson | 48:6eac12df3ad5 | 19 | let fields = line.split(','); |
andrewboyson | 48:6eac12df3ad5 | 20 | monProgram = parseInt(fields[0]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 21 | tueProgram = parseInt(fields[1]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 22 | wedProgram = parseInt(fields[2]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 23 | thuProgram = parseInt(fields[3]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 24 | friProgram = parseInt(fields[4]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 25 | satProgram = parseInt(fields[5]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 26 | sunProgram = parseInt(fields[6]) + 1; |
andrewboyson | 48:6eac12df3ad5 | 27 | } |
andrewboyson | 47:229338b3adcb | 28 | function parse() |
andrewboyson | 47:229338b3adcb | 29 | { |
andrewboyson | 47:229338b3adcb | 30 | let lines = Ajax.response.split('\n'); |
andrewboyson | 48:6eac12df3ad5 | 31 | programOut = Ajax.hexToBit(lines[0], 0); |
andrewboyson | 48:6eac12df3ad5 | 32 | newDayHour = Ajax.hexToSignedInt8(lines[1]); |
andrewboyson | 48:6eac12df3ad5 | 33 | parseDayPrograms (lines[2]); |
andrewboyson | 48:6eac12df3ad5 | 34 | program1 = lines[3]; |
andrewboyson | 48:6eac12df3ad5 | 35 | program2 = lines[4]; |
andrewboyson | 48:6eac12df3ad5 | 36 | program3 = lines[5]; |
andrewboyson | 47:229338b3adcb | 37 | } |
andrewboyson | 47:229338b3adcb | 38 | function display() |
andrewboyson | 47:229338b3adcb | 39 | { |
andrewboyson | 47:229338b3adcb | 40 | let elem; |
andrewboyson | 48:6eac12df3ad5 | 41 | elem = Ajax.getElementOrNull('ajax-program-toggle' ); if (elem) elem.setAttribute('dir', programOut ? 'rtl' : 'ltr'); |
andrewboyson | 47:229338b3adcb | 42 | elem = Ajax.getElementOrNull('ajax-program-1' ); if (elem) elem.value = program1; |
andrewboyson | 47:229338b3adcb | 43 | elem = Ajax.getElementOrNull('ajax-program-2' ); if (elem) elem.value = program2; |
andrewboyson | 47:229338b3adcb | 44 | elem = Ajax.getElementOrNull('ajax-program-3' ); if (elem) elem.value = program3; |
andrewboyson | 47:229338b3adcb | 45 | elem = Ajax.getElementOrNull('ajax-mon-program' ); if (elem) elem.value = monProgram; |
andrewboyson | 47:229338b3adcb | 46 | elem = Ajax.getElementOrNull('ajax-tue-program' ); if (elem) elem.value = tueProgram; |
andrewboyson | 47:229338b3adcb | 47 | elem = Ajax.getElementOrNull('ajax-wed-program' ); if (elem) elem.value = wedProgram; |
andrewboyson | 47:229338b3adcb | 48 | elem = Ajax.getElementOrNull('ajax-thu-program' ); if (elem) elem.value = thuProgram; |
andrewboyson | 47:229338b3adcb | 49 | elem = Ajax.getElementOrNull('ajax-fri-program' ); if (elem) elem.value = friProgram; |
andrewboyson | 47:229338b3adcb | 50 | elem = Ajax.getElementOrNull('ajax-sat-program' ); if (elem) elem.value = satProgram; |
andrewboyson | 47:229338b3adcb | 51 | elem = Ajax.getElementOrNull('ajax-sun-program' ); if (elem) elem.value = sunProgram; |
andrewboyson | 47:229338b3adcb | 52 | elem = Ajax.getElementOrNull('ajax-new-day-hour' ); if (elem) elem.value = newDayHour; |
andrewboyson | 47:229338b3adcb | 53 | } |
andrewboyson | 47:229338b3adcb | 54 | |
andrewboyson | 47:229338b3adcb | 55 | Ajax.server = '/program-ajax'; |
andrewboyson | 47:229338b3adcb | 56 | Ajax.onResponse = function() { parse(); display(); }; |
andrewboyson | 47:229338b3adcb | 57 | Ajax.init(); |