-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.js
More file actions
119 lines (111 loc) · 2.82 KB
/
config.js
File metadata and controls
119 lines (111 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*import NumatoDevice from './src/backend/devices/numato';
export const interfaces = [
new NumatoDevice({
device: '/dev/ttyACM0',
outputs: {
pumpMax: { number: 3, initialState: 0 },
pumpHigh: { number: 2, initialState: 0 },
pumpMed: { number: 1, initialState: 0 },
pumpLow: { number: 0, initialState: 0 },
sweep: { number: 4, initialState: 0 },
heater: { number: 5, initialState: 0 },
inputValve: { number: 6, initialState: 0 },
outputValve: { number: 7, initialState: 0 },
}
})
];*/
import I2CRelay from './src/app/api/devices/i2c-relay';
export const interfaces = [
new I2CRelay({
device: 1,
address: 0x27,
register: 0x01,
sendBoardSetup: Buffer.from([0x03,0x00]), //Set to output mode
outputs: {
pumpMax: { number: 3, initialState: 0 },
pumpHigh: { number: 2, initialState: 0 },
pumpMed: { number: 1, initialState: 0 },
pumpLow: { number: 0, initialState: 0 },
sweep: { number: 6, initialState: 0 },
heater: { number: 4, initialState: 0 },
inputValve: { number: 7, initialState: 0 },
outputValve: { number: 5, initialState: 0 },
}
})
];
export const defaultMode = 'Off';
export const modes = {
'Off' : {
},
'Spa' : {
outputs: {
pumpMax: 1,
heater: 1,
inputValve: 1,
outputValve: 1,
}
},
'Prime' : {
outputs: {
pumpMax: 1,
}
},
'Pool Sweep' : {
outputs: {
pumpMax: 1,
sweep: 1,
}
},
'Low Speed Pool into Pool/Spa' : {
outputs: {
pumpLow: 1,
}
},
'Low Speed Pool into Spa' : {
outputs: {
pumpLow: 1,
outputValve: 1,
}
},
'Low Speed Hot Tub Clean' : {
outputs: {
pumpLow: 1,
inputValve: 1,
outputValve: 1,
}
},
};
/* Winter Schedule
export const schedule = [
{ hour: 4, minute: 0, mode: 'Prime' },
{ hour: 4, minute: 1, mode: 'Pool Sweep' },
{ hour: 4, minute: 30, mode: 'Low Speed Pool into Spa' },
{ hour: 10, minute: 0, mode: 'Low Speed Hot Tub Clean' },
{ hour: 11, minute: 0, mode: 'Off' },
];
*/
/* Summer Schedule */
export const schedule = [
{ hour: 4, minute: 0, mode: 'Prime' }, // Chlorinates
{ hour: 4, minute: 1, mode: 'Pool Sweep' }, // Chlorinates
{ hour: 4, minute: 45, mode: 'Low Speed Pool into Pool/Spa' }, // Chlorinates
{ hour: 12, minute: 0, mode: 'Low Speed Pool into Spa' }, // Ends Chlorination
{ hour: 16, minute: 0, mode: 'Off' },
];
// Monthly adjustment factors for seasonal scheduling
// These values multiply the scheduled times to adjust run durations based on the month
// For example: 0.5 means run for half the scheduled time, 2.0 means run for twice as long
export const monthAdjustments = [
0.5, //Jan - Winter: shorter run times
0.6, //Feb
0.8, //Mar - Spring transition
1.5, //Apr
1.5, //May
2, //Jun - Summer: longer run times
2.5, //Jul - Peak summer
2.5, //Aug - Peak summer
2, //Sep
1, //Oct - Fall transition
0.6, //Nov
0.5, //Dec - Winter: shorter run times
];