nodejs-poolcontroller 7.6.1 → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.eslintrc.json +44 -44
  2. package/.github/ISSUE_TEMPLATE/1-bug-report.yml +84 -0
  3. package/.github/ISSUE_TEMPLATE/2-docs.md +12 -0
  4. package/.github/ISSUE_TEMPLATE/3-proposal.md +28 -0
  5. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  6. package/CONTRIBUTING.md +74 -74
  7. package/Changelog +220 -215
  8. package/Dockerfile +17 -17
  9. package/Gruntfile.js +40 -40
  10. package/LICENSE +661 -661
  11. package/README.md +191 -191
  12. package/app.ts +1 -1
  13. package/config/Config.ts +14 -0
  14. package/config/VersionCheck.ts +2 -2
  15. package/controller/Constants.ts +2 -1
  16. package/controller/Equipment.ts +2484 -2459
  17. package/controller/Errors.ts +180 -180
  18. package/controller/Lockouts.ts +502 -436
  19. package/controller/State.ts +106 -30
  20. package/controller/boards/AquaLinkBoard.ts +1000 -0
  21. package/controller/boards/BoardFactory.ts +49 -45
  22. package/controller/boards/EasyTouchBoard.ts +2859 -2653
  23. package/controller/boards/IntelliCenterBoard.ts +4198 -4230
  24. package/controller/boards/IntelliComBoard.ts +63 -63
  25. package/controller/boards/IntelliTouchBoard.ts +273 -241
  26. package/controller/boards/NixieBoard.ts +1728 -1675
  27. package/controller/boards/SystemBoard.ts +4925 -4697
  28. package/controller/comms/Comms.ts +442 -479
  29. package/controller/comms/messages/Messages.ts +171 -25
  30. package/controller/comms/messages/config/ChlorinatorMessage.ts +5 -2
  31. package/controller/comms/messages/config/CircuitGroupMessage.ts +0 -0
  32. package/controller/comms/messages/config/CircuitMessage.ts +1 -0
  33. package/controller/comms/messages/config/ConfigMessage.ts +0 -0
  34. package/controller/comms/messages/config/CoverMessage.ts +0 -0
  35. package/controller/comms/messages/config/CustomNameMessage.ts +30 -30
  36. package/controller/comms/messages/config/EquipmentMessage.ts +0 -0
  37. package/controller/comms/messages/config/ExternalMessage.ts +0 -0
  38. package/controller/comms/messages/config/FeatureMessage.ts +0 -0
  39. package/controller/comms/messages/config/GeneralMessage.ts +0 -0
  40. package/controller/comms/messages/config/HeaterMessage.ts +142 -10
  41. package/controller/comms/messages/config/IntellichemMessage.ts +0 -0
  42. package/controller/comms/messages/config/OptionsMessage.ts +4 -21
  43. package/controller/comms/messages/config/PumpMessage.ts +53 -35
  44. package/controller/comms/messages/config/RemoteMessage.ts +0 -0
  45. package/controller/comms/messages/config/ScheduleMessage.ts +350 -347
  46. package/controller/comms/messages/config/SecurityMessage.ts +0 -0
  47. package/controller/comms/messages/config/ValveMessage.ts +1 -1
  48. package/controller/comms/messages/status/ChlorinatorStateMessage.ts +38 -86
  49. package/controller/comms/messages/status/EquipmentStateMessage.ts +58 -22
  50. package/controller/comms/messages/status/HeaterStateMessage.ts +116 -86
  51. package/controller/comms/messages/status/IntelliChemStateMessage.ts +445 -445
  52. package/controller/comms/messages/status/IntelliValveStateMessage.ts +35 -35
  53. package/controller/comms/messages/status/PumpStateMessage.ts +23 -1
  54. package/controller/comms/messages/status/VersionMessage.ts +0 -0
  55. package/controller/nixie/Nixie.ts +162 -162
  56. package/controller/nixie/NixieEquipment.ts +103 -103
  57. package/controller/nixie/bodies/Body.ts +120 -120
  58. package/controller/nixie/bodies/Filter.ts +135 -135
  59. package/controller/nixie/chemistry/ChemController.ts +2511 -2498
  60. package/controller/nixie/chemistry/Chlorinator.ts +363 -314
  61. package/controller/nixie/circuits/Circuit.ts +261 -248
  62. package/controller/nixie/heaters/Heater.ts +650 -648
  63. package/controller/nixie/pumps/Pump.ts +906 -661
  64. package/controller/nixie/schedules/Schedule.ts +313 -257
  65. package/controller/nixie/valves/Valve.ts +170 -170
  66. package/defaultConfig.json +306 -286
  67. package/logger/DataLogger.ts +448 -448
  68. package/logger/Logger.ts +0 -0
  69. package/package.json +56 -56
  70. package/tsconfig.json +25 -25
  71. package/web/Server.ts +92 -47
  72. package/web/bindings/aqualinkD.json +505 -0
  73. package/web/bindings/influxDB.json +1051 -1021
  74. package/web/bindings/mqtt.json +702 -654
  75. package/web/bindings/mqttAlt.json +731 -684
  76. package/web/bindings/rulesManager.json +54 -54
  77. package/web/bindings/smartThings-Hubitat.json +31 -31
  78. package/web/bindings/valveRelays.json +20 -20
  79. package/web/bindings/vera.json +25 -25
  80. package/web/interfaces/baseInterface.ts +137 -136
  81. package/web/interfaces/httpInterface.ts +145 -124
  82. package/web/interfaces/influxInterface.ts +276 -245
  83. package/web/interfaces/mqttInterface.ts +535 -475
  84. package/web/services/config/Config.ts +39 -18
  85. package/web/services/config/ConfigSocket.ts +0 -0
  86. package/web/services/state/State.ts +10 -0
  87. package/web/services/state/StateSocket.ts +4 -4
  88. package/web/services/utilities/Utilities.ts +44 -42
  89. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -52
  90. package/config copy.json +0 -300
  91. package/issue_template.md +0 -52
@@ -1,286 +1,306 @@
1
- {
2
- "controller": {
3
- "comms": {
4
- "enabled": true,
5
- "rs485Port": "/dev/ttyUSB0",
6
- "mockPort": false,
7
- "netConnect": false,
8
- "netHost": "raspberrypi",
9
- "netPort": 9801,
10
- "inactivityRetry": 10,
11
- "portSettings": {
12
- "baudRate": 9600,
13
- "dataBits": 8,
14
- "parity": "none",
15
- "stopBits": 1,
16
- "flowControl": false,
17
- "autoOpen": false,
18
- "lock": false
19
- }
20
- },
21
- "backups": {
22
- "automatic": false,
23
- "interval": {
24
- "days": 30,
25
- "hours": 0
26
- },
27
- "keepCount": 5,
28
- "njsPC": true,
29
- "servers": []
30
- }
31
-
32
- },
33
- "web": {
34
- "servers": {
35
- "http2": {
36
- "enabled": false
37
- },
38
- "http": {
39
- "enabled": true,
40
- "ip": "0.0.0.0",
41
- "port": 4200,
42
- "httpsRedirect": false,
43
- "authentication": "none",
44
- "authFile": "/users.htpasswd"
45
- },
46
- "https": {
47
- "enabled": false,
48
- "ip": "0.0.0.0",
49
- "port": 4201,
50
- "authentication": "none",
51
- "authFile": "/users.htpasswd",
52
- "sslKeyFile": "",
53
- "sslCertFile": ""
54
- },
55
- "mdns": {
56
- "enabled": false
57
- },
58
- "ssdp": {
59
- "enabled": true
60
- }
61
- },
62
- "services": {},
63
- "interfaces": {
64
- "smartThings": {
65
- "name": "SmartThings",
66
- "type": "rest",
67
- "enabled": false,
68
- "fileName": "smartThings-Hubitat.json",
69
- "globals": {},
70
- "options": {
71
- "host": "0.0.0.0",
72
- "port": 39500
73
- }
74
- },
75
- "hubitat": {
76
- "name": "Hubitat",
77
- "type": "rest",
78
- "enabled": false,
79
- "fileName": "smartThings-Hubitat.json",
80
- "globals": {},
81
- "options": {
82
- "host": "0.0.0.0",
83
- "port": 39501
84
- }
85
- },
86
- "vera": {
87
- "name": "Vera",
88
- "type": "rest",
89
- "enabled": false,
90
- "fileName": "vera.json",
91
- "vars": {
92
- "deviceId": 0
93
- },
94
- "options": {
95
- "host": "",
96
- "port": 3480
97
- }
98
- },
99
- "valveRelay": {
100
- "type": "rest",
101
- "name": "Valve Relays",
102
- "enabled": false,
103
- "fileName": "valveRelays.json",
104
- "vars": {
105
- "valveIds": []
106
- },
107
- "options": {
108
- "host": "0.0.0.0",
109
- "port": 8081
110
- }
111
- },
112
- "influxDB": {
113
- "name": "InfluxDB",
114
- "type": "influx",
115
- "enabled": false,
116
- "fileName": "influxDB.json",
117
- "options": {
118
- "version": 1,
119
- "protocol": "http",
120
- "host": "192.168.0.1",
121
- "port": 9999,
122
- "username": "",
123
- "password": "",
124
- "database": "pool",
125
- "retentionPolicy": "autogen"
126
- }
127
- },
128
- "influxDBv2": {
129
- "name": "InfluxDBv2",
130
- "type": "influx",
131
- "enabled": false,
132
- "fileName": "influxDB.json",
133
- "options": {
134
- "version": 2,
135
- "protocol": "http",
136
- "host": "192.168.0.1",
137
- "port": 9999,
138
- "token": "...LuyM84JJx93Qvc7tfaXPbI_mFFjRBjaA==",
139
- "org": "example-org",
140
- "bucket": "57ec4eed2d90a50b"
141
- }
142
- },
143
- "mqtt": {
144
- "name": "MQTT",
145
- "type": "mqtt",
146
- "enabled": false,
147
- "fileName": "mqtt.json",
148
- "globals": {},
149
- "options": {
150
- "protocol": "mqtt://",
151
- "host": "192.168.0.1",
152
- "port": 1883,
153
- "username": "",
154
- "password": "",
155
- "selfSignedCertificate": false,
156
- "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();",
157
- "retain": true,
158
- "qos": 0,
159
- "changesOnly": true
160
- }
161
- },
162
- "mqttAlt": {
163
- "name": "MQTTAlt",
164
- "type": "mqtt",
165
- "enabled": false,
166
- "fileName": "mqttAlt.json",
167
- "globals": {},
168
- "options": {
169
- "protocol": "mqtt://",
170
- "host": "192.168.0.1",
171
- "port": 1883,
172
- "username": "",
173
- "password": "",
174
- "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();Alt",
175
- "retain": true,
176
- "qos": 0,
177
- "changesOnly": true
178
- }
179
- },
180
- "rem": {
181
- "name": "Relay Equipment Manager",
182
- "type": "rem",
183
- "enabled": false,
184
- "options": {
185
- "protocol": "http://",
186
- "host": "raspberrypi",
187
- "port": 8080,
188
- "headers": {
189
- "content-type": "application/json"
190
- }
191
- },
192
- "socket": {
193
- "transports": [
194
- "websocket"
195
- ],
196
- "upgrade": false,
197
- "reconnectionDelay": 2000,
198
- "reconnection": true,
199
- "reconnectionDelayMax": 20000
200
- }
201
- }
202
- }
203
- },
204
- "log": {
205
- "packet": {
206
- "enabled": false,
207
- "logToConsole": false,
208
- "logToFile": false,
209
- "filename": "packetLog",
210
- "invalid": true,
211
- "broadcast": {
212
- "enabled": true,
213
- "includeActions": [],
214
- "includeSource": [],
215
- "includeDest": [],
216
- "excludeActions": [],
217
- "excludeSource": [],
218
- "excludeDest": []
219
- },
220
- "pump": {
221
- "enabled": true,
222
- "includeActions": [],
223
- "includeSource": [],
224
- "includeDest": [],
225
- "excludeActions": [],
226
- "excludeSource": [],
227
- "excludeDest": []
228
- },
229
- "chlorinator": {
230
- "enabled": true,
231
- "includeSource": [],
232
- "includeDest": [],
233
- "excludeSource": [],
234
- "excludeDest": []
235
- },
236
- "intellichem": {
237
- "enabled": true,
238
- "includeActions": [],
239
- "excludeActions": [],
240
- "includeSource": [],
241
- "includeDest": [],
242
- "excludeSource": [],
243
- "excludeDest": []
244
- },
245
- "intellivalve": {
246
- "enabled": true,
247
- "includeActions": [],
248
- "excludeActions": [],
249
- "includeSource": [],
250
- "includeDest": [],
251
- "excludeSource": [],
252
- "excludeDest": []
253
- },
254
- "heater": {
255
- "enabled": true,
256
- "includeActions": [],
257
- "excludeActions": [],
258
- "includeSource": [],
259
- "includeDest": [],
260
- "excludeSource": [],
261
- "excludeDest": []
262
- },
263
- "unidentified": {
264
- "enabled": true,
265
- "includeSource": [],
266
- "includeDest": [],
267
- "excludeSource": [],
268
- "excludeDest": []
269
- },
270
- "unknown": {
271
- "enabled": true,
272
- "includeSource": [],
273
- "includeDest": [],
274
- "excludeSource": [],
275
- "excludeDest": []
276
- }
277
- },
278
- "app": {
279
- "enabled": true,
280
- "level": "info",
281
- "captureForReplay": false,
282
- "logToFile": false
283
- }
284
- },
285
- "appVersion": "0.0.1"
286
- }
1
+ {
2
+ "controller": {
3
+ "comms": {
4
+ "portId": 0,
5
+ "enabled": true,
6
+ "rs485Port": "/dev/ttyUSB0",
7
+ "mockPort": false,
8
+ "netConnect": false,
9
+ "netHost": "raspberrypi",
10
+ "netPort": 9801,
11
+ "inactivityRetry": 10,
12
+ "portSettings": {
13
+ "baudRate": 9600,
14
+ "dataBits": 8,
15
+ "parity": "none",
16
+ "stopBits": 1,
17
+ "flowControl": false,
18
+ "autoOpen": false,
19
+ "lock": false
20
+ }
21
+ },
22
+ "backups": {
23
+ "automatic": false,
24
+ "interval": {
25
+ "days": 30,
26
+ "hours": 0
27
+ },
28
+ "keepCount": 5,
29
+ "njsPC": true,
30
+ "servers": []
31
+ }
32
+
33
+ },
34
+ "web": {
35
+ "servers": {
36
+ "http2": {
37
+ "enabled": false
38
+ },
39
+ "http": {
40
+ "enabled": true,
41
+ "ip": "0.0.0.0",
42
+ "port": 4200,
43
+ "httpsRedirect": false,
44
+ "authentication": "none",
45
+ "authFile": "/users.htpasswd"
46
+ },
47
+ "https": {
48
+ "enabled": false,
49
+ "ip": "0.0.0.0",
50
+ "port": 4201,
51
+ "authentication": "none",
52
+ "authFile": "/users.htpasswd",
53
+ "sslKeyFile": "",
54
+ "sslCertFile": ""
55
+ },
56
+ "mdns": {
57
+ "enabled": false
58
+ },
59
+ "ssdp": {
60
+ "enabled": true
61
+ }
62
+ },
63
+ "services": {},
64
+ "interfaces": {
65
+ "smartThings": {
66
+ "name": "SmartThings",
67
+ "type": "rest",
68
+ "enabled": false,
69
+ "fileName": "smartThings-Hubitat.json",
70
+ "globals": {},
71
+ "options": {
72
+ "host": "0.0.0.0",
73
+ "port": 39500
74
+ }
75
+ },
76
+ "hubitat": {
77
+ "name": "Hubitat",
78
+ "type": "rest",
79
+ "enabled": false,
80
+ "fileName": "smartThings-Hubitat.json",
81
+ "globals": {},
82
+ "options": {
83
+ "host": "0.0.0.0",
84
+ "port": 39501
85
+ }
86
+ },
87
+ "vera": {
88
+ "name": "Vera",
89
+ "type": "rest",
90
+ "enabled": false,
91
+ "fileName": "vera.json",
92
+ "vars": {
93
+ "deviceId": 0
94
+ },
95
+ "options": {
96
+ "host": "",
97
+ "port": 3480
98
+ }
99
+ },
100
+ "valveRelay": {
101
+ "type": "rest",
102
+ "name": "Valve Relays",
103
+ "enabled": false,
104
+ "fileName": "valveRelays.json",
105
+ "vars": {
106
+ "valveIds": []
107
+ },
108
+ "options": {
109
+ "host": "0.0.0.0",
110
+ "port": 8081
111
+ }
112
+ },
113
+ "influxDB": {
114
+ "name": "InfluxDB",
115
+ "type": "influx",
116
+ "enabled": false,
117
+ "fileName": "influxDB.json",
118
+ "options": {
119
+ "version": 1,
120
+ "protocol": "http",
121
+ "host": "192.168.0.1",
122
+ "port": 9999,
123
+ "username": "",
124
+ "password": "",
125
+ "database": "pool",
126
+ "retentionPolicy": "autogen"
127
+ }
128
+ },
129
+ "influxDBv2": {
130
+ "name": "InfluxDBv2",
131
+ "type": "influx",
132
+ "enabled": false,
133
+ "fileName": "influxDB.json",
134
+ "options": {
135
+ "version": 2,
136
+ "protocol": "http",
137
+ "host": "192.168.0.1",
138
+ "port": 9999,
139
+ "token": "...LuyM84JJx93Qvc7tfaXPbI_mFFjRBjaA==",
140
+ "org": "example-org",
141
+ "bucket": "57ec4eed2d90a50b"
142
+ }
143
+ },
144
+ "mqtt": {
145
+ "name": "MQTT",
146
+ "type": "mqtt",
147
+ "enabled": false,
148
+ "fileName": "mqtt.json",
149
+ "globals": {},
150
+ "options": {
151
+ "protocol": "mqtt://",
152
+ "host": "192.168.0.1",
153
+ "port": 1883,
154
+ "username": "",
155
+ "password": "",
156
+ "selfSignedCertificate": false,
157
+ "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();",
158
+ "retain": true,
159
+ "qos": 0,
160
+ "changesOnly": true
161
+ }
162
+ },
163
+ "aqualinkD": {
164
+ "name": "AquaLinkD",
165
+ "type": "mqtt",
166
+ "enabled": false,
167
+ "fileName": "aqualinkD.json",
168
+ "globals": {},
169
+ "options": {
170
+ "protocol": "mqtt://",
171
+ "host": "192.168.0.1",
172
+ "port": 1883,
173
+ "username": "",
174
+ "password": "",
175
+ "rootTopic": "aqualinkd",
176
+ "retain": true,
177
+ "qos": 0,
178
+ "changesOnly": true
179
+ }
180
+
181
+ },
182
+ "mqttAlt": {
183
+ "name": "MQTTAlt",
184
+ "type": "mqtt",
185
+ "enabled": false,
186
+ "fileName": "mqttAlt.json",
187
+ "globals": {},
188
+ "options": {
189
+ "protocol": "mqtt://",
190
+ "host": "192.168.0.1",
191
+ "port": 1883,
192
+ "username": "",
193
+ "password": "",
194
+ "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();Alt",
195
+ "retain": true,
196
+ "qos": 0,
197
+ "changesOnly": true
198
+ }
199
+ },
200
+ "rem": {
201
+ "name": "Relay Equipment Manager",
202
+ "type": "rem",
203
+ "enabled": false,
204
+ "options": {
205
+ "protocol": "http://",
206
+ "host": "raspberrypi",
207
+ "port": 8080,
208
+ "headers": {
209
+ "content-type": "application/json"
210
+ }
211
+ },
212
+ "socket": {
213
+ "transports": [
214
+ "websocket"
215
+ ],
216
+ "upgrade": false,
217
+ "reconnectionDelay": 2000,
218
+ "reconnection": true,
219
+ "reconnectionDelayMax": 20000
220
+ }
221
+ }
222
+ }
223
+ },
224
+ "log": {
225
+ "packet": {
226
+ "enabled": false,
227
+ "logToConsole": false,
228
+ "logToFile": false,
229
+ "filename": "packetLog",
230
+ "invalid": true,
231
+ "broadcast": {
232
+ "enabled": true,
233
+ "includeActions": [],
234
+ "includeSource": [],
235
+ "includeDest": [],
236
+ "excludeActions": [],
237
+ "excludeSource": [],
238
+ "excludeDest": []
239
+ },
240
+ "pump": {
241
+ "enabled": true,
242
+ "includeActions": [],
243
+ "includeSource": [],
244
+ "includeDest": [],
245
+ "excludeActions": [],
246
+ "excludeSource": [],
247
+ "excludeDest": []
248
+ },
249
+ "chlorinator": {
250
+ "enabled": true,
251
+ "includeSource": [],
252
+ "includeDest": [],
253
+ "excludeSource": [],
254
+ "excludeDest": []
255
+ },
256
+ "intellichem": {
257
+ "enabled": true,
258
+ "includeActions": [],
259
+ "excludeActions": [],
260
+ "includeSource": [],
261
+ "includeDest": [],
262
+ "excludeSource": [],
263
+ "excludeDest": []
264
+ },
265
+ "intellivalve": {
266
+ "enabled": true,
267
+ "includeActions": [],
268
+ "excludeActions": [],
269
+ "includeSource": [],
270
+ "includeDest": [],
271
+ "excludeSource": [],
272
+ "excludeDest": []
273
+ },
274
+ "heater": {
275
+ "enabled": true,
276
+ "includeActions": [],
277
+ "excludeActions": [],
278
+ "includeSource": [],
279
+ "includeDest": [],
280
+ "excludeSource": [],
281
+ "excludeDest": []
282
+ },
283
+ "unidentified": {
284
+ "enabled": true,
285
+ "includeSource": [],
286
+ "includeDest": [],
287
+ "excludeSource": [],
288
+ "excludeDest": []
289
+ },
290
+ "unknown": {
291
+ "enabled": true,
292
+ "includeSource": [],
293
+ "includeDest": [],
294
+ "excludeSource": [],
295
+ "excludeDest": []
296
+ }
297
+ },
298
+ "app": {
299
+ "enabled": true,
300
+ "level": "info",
301
+ "captureForReplay": false,
302
+ "logToFile": false
303
+ }
304
+ },
305
+ "appVersion": "0.0.1"
306
+ }