nodejs-poolcontroller 7.6.0 → 7.6.1

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 (85) hide show
  1. package/.eslintrc.json +44 -44
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +52 -52
  3. package/CONTRIBUTING.md +74 -74
  4. package/Changelog +215 -215
  5. package/Dockerfile +17 -17
  6. package/Gruntfile.js +40 -40
  7. package/LICENSE +661 -661
  8. package/README.md +191 -186
  9. package/app.ts +0 -0
  10. package/config/Config.ts +24 -2
  11. package/config/VersionCheck.ts +27 -12
  12. package/config copy.json +299 -299
  13. package/controller/Constants.ts +0 -0
  14. package/controller/Equipment.ts +2459 -2405
  15. package/controller/Errors.ts +180 -180
  16. package/controller/Lockouts.ts +436 -422
  17. package/controller/State.ts +51 -26
  18. package/controller/boards/BoardFactory.ts +45 -45
  19. package/controller/boards/EasyTouchBoard.ts +2653 -2537
  20. package/controller/boards/IntelliCenterBoard.ts +4230 -4034
  21. package/controller/boards/IntelliComBoard.ts +63 -63
  22. package/controller/boards/IntelliTouchBoard.ts +241 -241
  23. package/controller/boards/NixieBoard.ts +1675 -1660
  24. package/controller/boards/SystemBoard.ts +4697 -4463
  25. package/controller/comms/Comms.ts +138 -1
  26. package/controller/comms/messages/Messages.ts +3 -5
  27. package/controller/comms/messages/config/ChlorinatorMessage.ts +1 -1
  28. package/controller/comms/messages/config/CircuitGroupMessage.ts +0 -0
  29. package/controller/comms/messages/config/CircuitMessage.ts +0 -0
  30. package/controller/comms/messages/config/ConfigMessage.ts +0 -0
  31. package/controller/comms/messages/config/CoverMessage.ts +0 -0
  32. package/controller/comms/messages/config/CustomNameMessage.ts +30 -30
  33. package/controller/comms/messages/config/EquipmentMessage.ts +0 -0
  34. package/controller/comms/messages/config/ExternalMessage.ts +9 -7
  35. package/controller/comms/messages/config/FeatureMessage.ts +0 -0
  36. package/controller/comms/messages/config/GeneralMessage.ts +0 -0
  37. package/controller/comms/messages/config/HeaterMessage.ts +0 -20
  38. package/controller/comms/messages/config/IntellichemMessage.ts +0 -0
  39. package/controller/comms/messages/config/OptionsMessage.ts +25 -1
  40. package/controller/comms/messages/config/PumpMessage.ts +0 -0
  41. package/controller/comms/messages/config/RemoteMessage.ts +0 -0
  42. package/controller/comms/messages/config/ScheduleMessage.ts +347 -342
  43. package/controller/comms/messages/config/SecurityMessage.ts +0 -0
  44. package/controller/comms/messages/config/ValveMessage.ts +0 -0
  45. package/controller/comms/messages/status/ChlorinatorStateMessage.ts +0 -0
  46. package/controller/comms/messages/status/EquipmentStateMessage.ts +1 -1
  47. package/controller/comms/messages/status/HeaterStateMessage.ts +86 -86
  48. package/controller/comms/messages/status/IntelliChemStateMessage.ts +445 -397
  49. package/controller/comms/messages/status/IntelliValveStateMessage.ts +35 -35
  50. package/controller/comms/messages/status/PumpStateMessage.ts +0 -0
  51. package/controller/comms/messages/status/VersionMessage.ts +0 -0
  52. package/controller/nixie/Nixie.ts +162 -162
  53. package/controller/nixie/NixieEquipment.ts +103 -103
  54. package/controller/nixie/bodies/Body.ts +120 -120
  55. package/controller/nixie/bodies/Filter.ts +135 -135
  56. package/controller/nixie/chemistry/ChemController.ts +2498 -2398
  57. package/controller/nixie/chemistry/Chlorinator.ts +314 -314
  58. package/controller/nixie/circuits/Circuit.ts +248 -245
  59. package/controller/nixie/heaters/Heater.ts +648 -600
  60. package/controller/nixie/pumps/Pump.ts +661 -661
  61. package/controller/nixie/schedules/Schedule.ts +257 -257
  62. package/controller/nixie/valves/Valve.ts +170 -170
  63. package/defaultConfig.json +286 -286
  64. package/issue_template.md +51 -51
  65. package/logger/DataLogger.ts +448 -448
  66. package/logger/Logger.ts +0 -0
  67. package/package.json +56 -56
  68. package/tsconfig.json +25 -25
  69. package/web/Server.ts +2 -2
  70. package/web/bindings/influxDB.json +1021 -981
  71. package/web/bindings/mqtt.json +654 -654
  72. package/web/bindings/mqttAlt.json +684 -684
  73. package/web/bindings/rulesManager.json +54 -54
  74. package/web/bindings/smartThings-Hubitat.json +31 -31
  75. package/web/bindings/valveRelays.json +20 -20
  76. package/web/bindings/vera.json +25 -25
  77. package/web/interfaces/baseInterface.ts +136 -136
  78. package/web/interfaces/httpInterface.ts +124 -124
  79. package/web/interfaces/influxInterface.ts +245 -241
  80. package/web/interfaces/mqttInterface.ts +475 -475
  81. package/web/services/config/Config.ts +10 -108
  82. package/web/services/config/ConfigSocket.ts +0 -0
  83. package/web/services/state/State.ts +71 -4
  84. package/web/services/state/StateSocket.ts +0 -0
  85. package/web/services/utilities/Utilities.ts +42 -42
@@ -1,300 +1,300 @@
1
- {
2
- "controller": {
3
- "comms": {
4
- "enabled": true,
5
- "rs485Port": "/dev/ttyUSB0",
6
- "mockPort": false,
7
- "netConnect": true,
8
- "netHost": "10.0.0.170",
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
- },
22
- "web": {
23
- "servers": {
24
- "http2": {
25
- "enabled": false,
26
- "uuid": "2365fe2f-97e9-4353-95d4-9ccd71e0ce94"
27
- },
28
- "http": {
29
- "enabled": true,
30
- "ip": "0.0.0.0",
31
- "port": 4200,
32
- "httpsRedirect": false,
33
- "authentication": "none",
34
- "authFile": "/users.htpasswd",
35
- "uuid": "4ff21da9-8ba5-49e6-8c87-20e1c988ef9d"
36
- },
37
- "https": {
38
- "enabled": false,
39
- "ip": "0.0.0.0",
40
- "port": 4201,
41
- "authentication": "none",
42
- "authFile": "/users.htpasswd",
43
- "sslKeyFile": "",
44
- "sslCertFile": "",
45
- "uuid": "fb7e9f5e-d662-4000-b1ca-c01e17f2fc49"
46
- },
47
- "mdns": {
48
- "enabled": false,
49
- "uuid": "1e7bd3d0-f1d0-4dc5-95d4-f0bd0ceb2d76"
50
- },
51
- "ssdp": {
52
- "enabled": true,
53
- "uuid": "4fd33942-66c9-46a7-8a5a-9e50fc0f315f"
54
- }
55
- },
56
- "services": {},
57
- "interfaces": {
58
- "smartThings": {
59
- "name": "SmartThings",
60
- "enabled": false,
61
- "fileName": "smartThings-Hubitat.json",
62
- "globals": {},
63
- "options": {
64
- "host": "0.0.0.0",
65
- "port": 39500
66
- },
67
- "uuid": "95b47bcc-fb46-47c2-a44a-cd9aaa867ccc"
68
- },
69
- "hubitat": {
70
- "name": "Hubitat",
71
- "enabled": false,
72
- "fileName": "smartThings-Hubitat.json",
73
- "globals": {},
74
- "options": {
75
- "host": "0.0.0.0",
76
- "port": 39501
77
- },
78
- "uuid": "4573370e-5ae1-40a5-bda3-9597b17e4050"
79
- },
80
- "vera": {
81
- "name": "Vera",
82
- "enabled": false,
83
- "fileName": "vera.json",
84
- "vars": {
85
- "deviceId": 0
86
- },
87
- "options": {
88
- "host": "",
89
- "port": 3480
90
- },
91
- "uuid": "bc256cd7-af18-41f3-a94d-43397c835165"
92
- },
93
- "valveRelay": {
94
- "name": "Valve Relays",
95
- "enabled": false,
96
- "fileName": "valveRelays.json",
97
- "vars": {
98
- "valveIds": []
99
- },
100
- "options": {
101
- "host": "0.0.0.0",
102
- "port": 8081
103
- },
104
- "uuid": "415c5cbd-01e0-43bb-99c9-15a003febe0c"
105
- },
106
- "influxDB": {
107
- "name": "InfluxDB",
108
- "type": "influx",
109
- "enabled": false,
110
- "fileName": "influxDB.json",
111
- "options": {
112
- "protocol": "http",
113
- "host": "192.168.0.1",
114
- "port": 32770,
115
- "username": "",
116
- "password": "",
117
- "database": "pool",
118
- "retentionPolicy": "autogen"
119
- },
120
- "uuid": "7e7875c8-0161-448b-b9fa-c818f0d3d49f"
121
- },
122
- "mqtt": {
123
- "name": "MQTT",
124
- "type": "mqtt",
125
- "enabled": false,
126
- "fileName": "mqtt.json",
127
- "globals": {},
128
- "options": {
129
- "protocol": "mqtt://",
130
- "host": "192.168.0.1",
131
- "port": 1883,
132
- "username": "",
133
- "password": "",
134
- "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();",
135
- "retain": true,
136
- "qos": 0,
137
- "changesOnly": true
138
- },
139
- "uuid": "dec40fe7-70d5-48d1-8f57-0e1a474838e6"
140
- },
141
- "mqttAlt": {
142
- "name": "MQTTAlt",
143
- "type": "mqtt",
144
- "enabled": false,
145
- "fileName": "mqttAlt.json",
146
- "globals": {},
147
- "options": {
148
- "protocol": "mqtt://",
149
- "host": "192.168.0.1",
150
- "port": 1883,
151
- "username": "",
152
- "password": "",
153
- "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();Alt",
154
- "retain": true,
155
- "qos": 0,
156
- "changesOnly": true
157
- },
158
- "uuid": "b8b0e719-a81f-4085-b69e-5df3adfa990c"
159
- },
160
- "rem": {
161
- "name": "Relay Equipment Manager",
162
- "type": "rem",
163
- "enabled": true,
164
- "options": {
165
- "protocol": "http://",
166
- "host": "10.0.0.98",
167
- "port": "8080",
168
- "headers": {
169
- "content-type": "application/json"
170
- }
171
- },
172
- "socket": {
173
- "transports": [
174
- "websocket"
175
- ],
176
- "upgrade": false,
177
- "reconnectionDelay": 2000,
178
- "reconnection": true,
179
- "reconnectionDelayMax": 20000
180
- },
181
- "uuid": "af4c8252-0715-4edd-872f-9eeda8f18754"
182
- },
183
- "rem2": {
184
- "name": "Relay Equipment Manager2",
185
- "type": "rem",
186
- "enabled": false,
187
- "options": {
188
- "protocol": "http://",
189
- "host": "raspberrypi3",
190
- "port": "8080",
191
- "headers": {
192
- "content-type": "application/json"
193
- }
194
- },
195
- "socket": {
196
- "transports": [
197
- "websocket"
198
- ],
199
- "upgrade": false,
200
- "reconnectionDelay": 2000,
201
- "reconnection": true,
202
- "reconnectionDelayMax": 20000
203
- },
204
- "uuid": "9346f2a7-734d-475b-a90e-2b43f6131a4c"
205
- },
206
- "rulesManager": {
207
- "name": "Rules Manager",
208
- "type": "http",
209
- "enabled": false,
210
- "fileName": "rulesManager.json",
211
- "globals": {},
212
- "options": {
213
- "host": "localhost",
214
- "port": 4200
215
- },
216
- "uuid": "65ee2581-e652-427e-99c6-17c6aa02a6e3"
217
- }
218
- }
219
- },
220
- "log": {
221
- "packet": {
222
- "enabled": true,
223
- "logToConsole": true,
224
- "logToFile": false,
225
- "filename": "packetLog",
226
- "invalid": false,
227
- "broadcast": {
228
- "enabled": true,
229
- "includeActions": [
230
- 23,
231
- 24,
232
- 152,
233
- 155,
234
- 215,
235
- 216
236
- ],
237
- "includeSource": [],
238
- "includeDest": [],
239
- "excludeActions": [],
240
- "excludeSource": [],
241
- "excludeDest": []
242
- },
243
- "pump": {
244
- "enabled": false,
245
- "includeActions": [],
246
- "includeSource": [],
247
- "includeDest": [],
248
- "excludeActions": [],
249
- "excludeSource": [],
250
- "excludeDest": []
251
- },
252
- "chlorinator": {
253
- "enabled": false,
254
- "includeSource": [],
255
- "includeDest": [],
256
- "excludeSource": [],
257
- "excludeDest": []
258
- },
259
- "intellichem": {
260
- "enabled": false,
261
- "includeActions": [],
262
- "excludeActions": [],
263
- "includeSource": [],
264
- "includeDest": [],
265
- "excludeSource": [],
266
- "excludeDest": []
267
- },
268
- "intellivalve": {
269
- "enabled": false,
270
- "includeActions": [],
271
- "excludeActions": [],
272
- "includeSource": [],
273
- "includeDest": [],
274
- "excludeSource": [],
275
- "excludeDest": []
276
- },
277
- "unidentified": {
278
- "enabled": true,
279
- "includeSource": [],
280
- "includeDest": [],
281
- "excludeSource": [],
282
- "excludeDest": []
283
- },
284
- "unknown": {
285
- "enabled": true,
286
- "includeSource": [],
287
- "includeDest": [],
288
- "excludeSource": [],
289
- "excludeDest": []
290
- }
291
- },
292
- "app": {
293
- "enabled": true,
294
- "level": "verbose",
295
- "captureForReplay": false,
296
- "logToFile": false
297
- }
298
- },
299
- "appVersion": "6.5.2"
1
+ {
2
+ "controller": {
3
+ "comms": {
4
+ "enabled": true,
5
+ "rs485Port": "/dev/ttyUSB0",
6
+ "mockPort": false,
7
+ "netConnect": true,
8
+ "netHost": "10.0.0.170",
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
+ },
22
+ "web": {
23
+ "servers": {
24
+ "http2": {
25
+ "enabled": false,
26
+ "uuid": "2365fe2f-97e9-4353-95d4-9ccd71e0ce94"
27
+ },
28
+ "http": {
29
+ "enabled": true,
30
+ "ip": "0.0.0.0",
31
+ "port": 4200,
32
+ "httpsRedirect": false,
33
+ "authentication": "none",
34
+ "authFile": "/users.htpasswd",
35
+ "uuid": "4ff21da9-8ba5-49e6-8c87-20e1c988ef9d"
36
+ },
37
+ "https": {
38
+ "enabled": false,
39
+ "ip": "0.0.0.0",
40
+ "port": 4201,
41
+ "authentication": "none",
42
+ "authFile": "/users.htpasswd",
43
+ "sslKeyFile": "",
44
+ "sslCertFile": "",
45
+ "uuid": "fb7e9f5e-d662-4000-b1ca-c01e17f2fc49"
46
+ },
47
+ "mdns": {
48
+ "enabled": false,
49
+ "uuid": "1e7bd3d0-f1d0-4dc5-95d4-f0bd0ceb2d76"
50
+ },
51
+ "ssdp": {
52
+ "enabled": true,
53
+ "uuid": "4fd33942-66c9-46a7-8a5a-9e50fc0f315f"
54
+ }
55
+ },
56
+ "services": {},
57
+ "interfaces": {
58
+ "smartThings": {
59
+ "name": "SmartThings",
60
+ "enabled": false,
61
+ "fileName": "smartThings-Hubitat.json",
62
+ "globals": {},
63
+ "options": {
64
+ "host": "0.0.0.0",
65
+ "port": 39500
66
+ },
67
+ "uuid": "95b47bcc-fb46-47c2-a44a-cd9aaa867ccc"
68
+ },
69
+ "hubitat": {
70
+ "name": "Hubitat",
71
+ "enabled": false,
72
+ "fileName": "smartThings-Hubitat.json",
73
+ "globals": {},
74
+ "options": {
75
+ "host": "0.0.0.0",
76
+ "port": 39501
77
+ },
78
+ "uuid": "4573370e-5ae1-40a5-bda3-9597b17e4050"
79
+ },
80
+ "vera": {
81
+ "name": "Vera",
82
+ "enabled": false,
83
+ "fileName": "vera.json",
84
+ "vars": {
85
+ "deviceId": 0
86
+ },
87
+ "options": {
88
+ "host": "",
89
+ "port": 3480
90
+ },
91
+ "uuid": "bc256cd7-af18-41f3-a94d-43397c835165"
92
+ },
93
+ "valveRelay": {
94
+ "name": "Valve Relays",
95
+ "enabled": false,
96
+ "fileName": "valveRelays.json",
97
+ "vars": {
98
+ "valveIds": []
99
+ },
100
+ "options": {
101
+ "host": "0.0.0.0",
102
+ "port": 8081
103
+ },
104
+ "uuid": "415c5cbd-01e0-43bb-99c9-15a003febe0c"
105
+ },
106
+ "influxDB": {
107
+ "name": "InfluxDB",
108
+ "type": "influx",
109
+ "enabled": false,
110
+ "fileName": "influxDB.json",
111
+ "options": {
112
+ "protocol": "http",
113
+ "host": "192.168.0.1",
114
+ "port": 32770,
115
+ "username": "",
116
+ "password": "",
117
+ "database": "pool",
118
+ "retentionPolicy": "autogen"
119
+ },
120
+ "uuid": "7e7875c8-0161-448b-b9fa-c818f0d3d49f"
121
+ },
122
+ "mqtt": {
123
+ "name": "MQTT",
124
+ "type": "mqtt",
125
+ "enabled": false,
126
+ "fileName": "mqtt.json",
127
+ "globals": {},
128
+ "options": {
129
+ "protocol": "mqtt://",
130
+ "host": "192.168.0.1",
131
+ "port": 1883,
132
+ "username": "",
133
+ "password": "",
134
+ "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();",
135
+ "retain": true,
136
+ "qos": 0,
137
+ "changesOnly": true
138
+ },
139
+ "uuid": "dec40fe7-70d5-48d1-8f57-0e1a474838e6"
140
+ },
141
+ "mqttAlt": {
142
+ "name": "MQTTAlt",
143
+ "type": "mqtt",
144
+ "enabled": false,
145
+ "fileName": "mqttAlt.json",
146
+ "globals": {},
147
+ "options": {
148
+ "protocol": "mqtt://",
149
+ "host": "192.168.0.1",
150
+ "port": 1883,
151
+ "username": "",
152
+ "password": "",
153
+ "rootTopic": "@bind=(state.equipment.model).replace(' ','-').replace('/','').toLowerCase();Alt",
154
+ "retain": true,
155
+ "qos": 0,
156
+ "changesOnly": true
157
+ },
158
+ "uuid": "b8b0e719-a81f-4085-b69e-5df3adfa990c"
159
+ },
160
+ "rem": {
161
+ "name": "Relay Equipment Manager",
162
+ "type": "rem",
163
+ "enabled": true,
164
+ "options": {
165
+ "protocol": "http://",
166
+ "host": "10.0.0.98",
167
+ "port": "8080",
168
+ "headers": {
169
+ "content-type": "application/json"
170
+ }
171
+ },
172
+ "socket": {
173
+ "transports": [
174
+ "websocket"
175
+ ],
176
+ "upgrade": false,
177
+ "reconnectionDelay": 2000,
178
+ "reconnection": true,
179
+ "reconnectionDelayMax": 20000
180
+ },
181
+ "uuid": "af4c8252-0715-4edd-872f-9eeda8f18754"
182
+ },
183
+ "rem2": {
184
+ "name": "Relay Equipment Manager2",
185
+ "type": "rem",
186
+ "enabled": false,
187
+ "options": {
188
+ "protocol": "http://",
189
+ "host": "raspberrypi3",
190
+ "port": "8080",
191
+ "headers": {
192
+ "content-type": "application/json"
193
+ }
194
+ },
195
+ "socket": {
196
+ "transports": [
197
+ "websocket"
198
+ ],
199
+ "upgrade": false,
200
+ "reconnectionDelay": 2000,
201
+ "reconnection": true,
202
+ "reconnectionDelayMax": 20000
203
+ },
204
+ "uuid": "9346f2a7-734d-475b-a90e-2b43f6131a4c"
205
+ },
206
+ "rulesManager": {
207
+ "name": "Rules Manager",
208
+ "type": "http",
209
+ "enabled": false,
210
+ "fileName": "rulesManager.json",
211
+ "globals": {},
212
+ "options": {
213
+ "host": "localhost",
214
+ "port": 4200
215
+ },
216
+ "uuid": "65ee2581-e652-427e-99c6-17c6aa02a6e3"
217
+ }
218
+ }
219
+ },
220
+ "log": {
221
+ "packet": {
222
+ "enabled": true,
223
+ "logToConsole": true,
224
+ "logToFile": false,
225
+ "filename": "packetLog",
226
+ "invalid": false,
227
+ "broadcast": {
228
+ "enabled": true,
229
+ "includeActions": [
230
+ 23,
231
+ 24,
232
+ 152,
233
+ 155,
234
+ 215,
235
+ 216
236
+ ],
237
+ "includeSource": [],
238
+ "includeDest": [],
239
+ "excludeActions": [],
240
+ "excludeSource": [],
241
+ "excludeDest": []
242
+ },
243
+ "pump": {
244
+ "enabled": false,
245
+ "includeActions": [],
246
+ "includeSource": [],
247
+ "includeDest": [],
248
+ "excludeActions": [],
249
+ "excludeSource": [],
250
+ "excludeDest": []
251
+ },
252
+ "chlorinator": {
253
+ "enabled": false,
254
+ "includeSource": [],
255
+ "includeDest": [],
256
+ "excludeSource": [],
257
+ "excludeDest": []
258
+ },
259
+ "intellichem": {
260
+ "enabled": false,
261
+ "includeActions": [],
262
+ "excludeActions": [],
263
+ "includeSource": [],
264
+ "includeDest": [],
265
+ "excludeSource": [],
266
+ "excludeDest": []
267
+ },
268
+ "intellivalve": {
269
+ "enabled": false,
270
+ "includeActions": [],
271
+ "excludeActions": [],
272
+ "includeSource": [],
273
+ "includeDest": [],
274
+ "excludeSource": [],
275
+ "excludeDest": []
276
+ },
277
+ "unidentified": {
278
+ "enabled": true,
279
+ "includeSource": [],
280
+ "includeDest": [],
281
+ "excludeSource": [],
282
+ "excludeDest": []
283
+ },
284
+ "unknown": {
285
+ "enabled": true,
286
+ "includeSource": [],
287
+ "includeDest": [],
288
+ "excludeSource": [],
289
+ "excludeDest": []
290
+ }
291
+ },
292
+ "app": {
293
+ "enabled": true,
294
+ "level": "verbose",
295
+ "captureForReplay": false,
296
+ "logToFile": false
297
+ }
298
+ },
299
+ "appVersion": "6.5.2"
300
300
  }
File without changes