homebridge-carrier-infinity 1.8.1 → 1.9.0-beta.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 (73) hide show
  1. package/.devcontainer/.uix-hb-service-homebridge-startup.json.example +5 -0
  2. package/.devcontainer/config.json.example +2 -1
  3. package/.devcontainer/setup-homebridge.sh +6 -0
  4. package/CLAUDE.md +28 -21
  5. package/dist/accessory_base.d.ts +2 -2
  6. package/dist/accessory_base.d.ts.map +1 -1
  7. package/dist/accessory_base.js.map +1 -1
  8. package/dist/api/graphql_client.d.ts +71 -0
  9. package/dist/api/graphql_client.d.ts.map +1 -0
  10. package/dist/api/graphql_client.js +261 -0
  11. package/dist/api/graphql_client.js.map +1 -0
  12. package/dist/api/graphql_operations.d.ts +56 -0
  13. package/dist/api/graphql_operations.d.ts.map +1 -0
  14. package/dist/api/graphql_operations.js +325 -0
  15. package/dist/api/graphql_operations.js.map +1 -0
  16. package/dist/api/interface_graphql_mutations.d.ts +149 -0
  17. package/dist/api/interface_graphql_mutations.d.ts.map +1 -0
  18. package/dist/api/interface_graphql_mutations.js +8 -0
  19. package/dist/api/interface_graphql_mutations.js.map +1 -0
  20. package/dist/api/interface_graphql_system.d.ts +287 -0
  21. package/dist/api/interface_graphql_system.d.ts.map +1 -0
  22. package/dist/api/interface_graphql_system.js +9 -0
  23. package/dist/api/interface_graphql_system.js.map +1 -0
  24. package/dist/api/models_graphql.d.ts +167 -0
  25. package/dist/api/models_graphql.d.ts.map +1 -0
  26. package/dist/api/models_graphql.js +590 -0
  27. package/dist/api/models_graphql.js.map +1 -0
  28. package/dist/api/oauth2.d.ts +45 -0
  29. package/dist/api/oauth2.d.ts.map +1 -0
  30. package/dist/api/oauth2.js +35 -0
  31. package/dist/api/oauth2.js.map +1 -0
  32. package/dist/characteristics_base.d.ts +2 -2
  33. package/dist/characteristics_base.d.ts.map +1 -1
  34. package/dist/characteristics_base.js.map +1 -1
  35. package/dist/platform.d.ts +4 -4
  36. package/dist/platform.d.ts.map +1 -1
  37. package/dist/platform.js +7 -12
  38. package/dist/platform.js.map +1 -1
  39. package/dist/settings.d.ts +6 -3
  40. package/dist/settings.d.ts.map +1 -1
  41. package/dist/settings.js +7 -4
  42. package/dist/settings.js.map +1 -1
  43. package/eslint.config.mjs +93 -2
  44. package/package.json +3 -6
  45. package/dist/api/comodo-aaa-root.pem +0 -25
  46. package/dist/api/interface_config.d.ts +0 -185
  47. package/dist/api/interface_config.d.ts.map +0 -1
  48. package/dist/api/interface_config.js +0 -5
  49. package/dist/api/interface_config.js.map +0 -1
  50. package/dist/api/interface_locations.d.ts +0 -45
  51. package/dist/api/interface_locations.d.ts.map +0 -1
  52. package/dist/api/interface_locations.js +0 -5
  53. package/dist/api/interface_locations.js.map +0 -1
  54. package/dist/api/interface_profile.d.ts +0 -80
  55. package/dist/api/interface_profile.d.ts.map +0 -1
  56. package/dist/api/interface_profile.js +0 -5
  57. package/dist/api/interface_profile.js.map +0 -1
  58. package/dist/api/interface_status.d.ts +0 -90
  59. package/dist/api/interface_status.d.ts.map +0 -1
  60. package/dist/api/interface_status.js +0 -5
  61. package/dist/api/interface_status.js.map +0 -1
  62. package/dist/api/models.d.ts +0 -111
  63. package/dist/api/models.d.ts.map +0 -1
  64. package/dist/api/models.js +0 -572
  65. package/dist/api/models.js.map +0 -1
  66. package/dist/api/oauth.d.ts +0 -6
  67. package/dist/api/oauth.d.ts.map +0 -1
  68. package/dist/api/oauth.js +0 -49
  69. package/dist/api/oauth.js.map +0 -1
  70. package/dist/api/rest_client.d.ts +0 -15
  71. package/dist/api/rest_client.d.ts.map +0 -1
  72. package/dist/api/rest_client.js +0 -135
  73. package/dist/api/rest_client.js.map +0 -1
@@ -0,0 +1,590 @@
1
+ "use strict";
2
+ /**
3
+ * GraphQL-based Models for Carrier Infinity API
4
+ *
5
+ * This file implements the same model interfaces as models.ts but uses
6
+ * the GraphQL API instead of the REST API. The public API remains unchanged
7
+ * to maintain backward compatibility with accessory and characteristic code.
8
+ */
9
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
14
+ };
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.SystemModelGraphQL = exports.SystemConfigModelGraphQL = exports.SystemConfigModelReadOnlyGraphQL = exports.SystemStatusModelGraphQL = exports.SystemProfileModelGraphQL = exports.LocationsModelGraphQL = void 0;
20
+ const helpers_1 = require("../helpers");
21
+ const typescript_memoize_1 = require("typescript-memoize");
22
+ const async_mutex_1 = require("async-mutex");
23
+ const object_hash_1 = __importDefault(require("object-hash"));
24
+ const helper_logging_1 = require("../helper_logging");
25
+ const axios_1 = __importDefault(require("axios"));
26
+ const events_1 = __importDefault(require("events"));
27
+ const graphql_operations_1 = require("./graphql_operations");
28
+ const constants_1 = require("./constants");
29
+ /**
30
+ * Base model for GraphQL API interactions
31
+ *
32
+ * Similar to the old BaseModel but works with GraphQL and JSON instead of REST and XML
33
+ */
34
+ class BaseModelGraphQL {
35
+ constructor(graphql_client) {
36
+ this.graphql_client = graphql_client;
37
+ this.HASH_IGNORE_KEYS = new Set();
38
+ this.log = new helper_logging_1.PrefixLogger(this.graphql_client.log, 'API');
39
+ this.write_lock = new async_mutex_1.Mutex();
40
+ }
41
+ hashDataObject(data) {
42
+ return (0, object_hash_1.default)(data || this.data_object, { excludeKeys: (key) => {
43
+ return this.HASH_IGNORE_KEYS.has(key);
44
+ } });
45
+ }
46
+ async fetch() {
47
+ // If push is ongoing, skip this update fetch. The push will do a fetch.
48
+ try {
49
+ await (0, async_mutex_1.tryAcquire)(this.write_lock).runExclusive(async () => {
50
+ await this.forceFetch();
51
+ });
52
+ }
53
+ catch (e) {
54
+ if (e === async_mutex_1.E_ALREADY_LOCKED) {
55
+ return;
56
+ }
57
+ else if (e === async_mutex_1.E_TIMEOUT || e === async_mutex_1.E_CANCELED) {
58
+ this.log.error(`Deadlock on fetch ${e}. Report bug: https://bit.ly/3igbU7D`);
59
+ }
60
+ else {
61
+ const errorMessage = axios_1.default.isAxiosError(e) ? e.message : String(e);
62
+ this.log.error('Failed to fetch updates: ', errorMessage);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ __decorate([
68
+ (0, typescript_memoize_1.MemoizeExpiring)(10 * 1000)
69
+ ], BaseModelGraphQL.prototype, "fetch", null);
70
+ /**
71
+ * Locations Model - GraphQL Version
72
+ *
73
+ * Fetches user information and discovers available systems
74
+ */
75
+ class LocationsModelGraphQL extends BaseModelGraphQL {
76
+ async forceFetch() {
77
+ const response = await this.graphql_client.query(graphql_operations_1.GET_USER, { userName: this.graphql_client.username });
78
+ this.data_object = response;
79
+ this.data_object_hash = this.hashDataObject(response);
80
+ }
81
+ async getSystems() {
82
+ await this.fetch();
83
+ const systems = [];
84
+ // Extract serial numbers from user locations
85
+ for (const location of this.data_object.user.locations) {
86
+ for (const system of location.systems) {
87
+ systems.push(system.profile.serial);
88
+ }
89
+ }
90
+ return systems;
91
+ }
92
+ }
93
+ exports.LocationsModelGraphQL = LocationsModelGraphQL;
94
+ /**
95
+ * Unified System Model - GraphQL Version
96
+ *
97
+ * This model fetches all system data (profile + status + config) in a single GraphQL query.
98
+ * The old REST API required 3 separate calls. This unified approach is more efficient.
99
+ */
100
+ class UnifiedSystemModelGraphQL extends BaseModelGraphQL {
101
+ constructor(graphql_client, serialNumber, log, events) {
102
+ super(graphql_client);
103
+ this.graphql_client = graphql_client;
104
+ this.serialNumber = serialNumber;
105
+ this.log = log;
106
+ this.events = events;
107
+ this.HASH_IGNORE_KEYS = new Set(['timestamp', 'localTime', 'etag']);
108
+ this.last_updated = 0;
109
+ }
110
+ async forceFetch() {
111
+ const old_hash = this.data_object_hash;
112
+ // Single GraphQL query fetches profile, status, AND config
113
+ const response = await this.graphql_client.query(graphql_operations_1.GET_INFINITY_SYSTEMS, { userName: this.graphql_client.username });
114
+ // Find our system in the response
115
+ const system = response.infinitySystems.find(s => s.profile.serial === this.serialNumber);
116
+ if (!system) {
117
+ throw new Error(`System ${this.serialNumber} not found in GraphQL response`);
118
+ }
119
+ this.data_object = system;
120
+ const new_hash = this.hashDataObject(system);
121
+ this.data_object_hash = new_hash;
122
+ // Update timestamp
123
+ if (system.status.localTime) {
124
+ this.last_updated = Date.parse(system.status.localTime);
125
+ this.log.debug(`TIMESTAMP reports ${system.status.localTime} (${this.last_updated})`);
126
+ }
127
+ // Emit events if data changed (for backward compatibility with old model)
128
+ if (old_hash !== new_hash) {
129
+ // Emit granular events for each section
130
+ // Accessories subscribe to these specific events
131
+ this.events.emit('updated_system_profile');
132
+ this.events.emit('updated_status');
133
+ this.events.emit('updated_config');
134
+ }
135
+ }
136
+ // Direct accessors for internal use by facade models
137
+ getProfile() {
138
+ return this.data_object.profile;
139
+ }
140
+ getStatus() {
141
+ return this.data_object.status;
142
+ }
143
+ getConfig() {
144
+ return this.data_object.config;
145
+ }
146
+ }
147
+ /**
148
+ * System Profile Model - GraphQL Facade
149
+ *
150
+ * Maintains the same public API as the old SystemProfileModel but delegates
151
+ * to the UnifiedSystemModelGraphQL internally. No changes needed in accessory code.
152
+ */
153
+ class SystemProfileModelGraphQL {
154
+ constructor(unified) {
155
+ this.unified = unified;
156
+ }
157
+ async fetch() {
158
+ await this.unified.fetch();
159
+ }
160
+ async getName() {
161
+ await this.fetch();
162
+ return this.unified.getProfile().name;
163
+ }
164
+ async getBrand() {
165
+ await this.fetch();
166
+ return this.unified.getProfile().brand;
167
+ }
168
+ async getModel() {
169
+ await this.fetch();
170
+ return this.unified.getProfile().model;
171
+ }
172
+ async getFirmware() {
173
+ await this.fetch();
174
+ return this.unified.getProfile().firmware;
175
+ }
176
+ async getZones() {
177
+ await this.fetch();
178
+ const status = this.unified.getStatus();
179
+ // Return zones that are enabled
180
+ return status.zones
181
+ .filter(zone => zone.enabled === constants_1.STATUS.ON)
182
+ .map(zone => zone.id);
183
+ }
184
+ }
185
+ exports.SystemProfileModelGraphQL = SystemProfileModelGraphQL;
186
+ /**
187
+ * System Status Model - GraphQL Facade
188
+ *
189
+ * Maintains the same public API as the old SystemStatusModel
190
+ */
191
+ class SystemStatusModelGraphQL {
192
+ constructor(unified) {
193
+ this.unified = unified;
194
+ }
195
+ async fetch() {
196
+ await this.unified.fetch();
197
+ }
198
+ async getUnits() {
199
+ await this.fetch();
200
+ return this.unified.getStatus().cfgem;
201
+ }
202
+ async getOutdoorTemp() {
203
+ await this.fetch();
204
+ return Number(this.unified.getStatus().oat);
205
+ }
206
+ async getFilterUsed() {
207
+ await this.fetch();
208
+ return Number(this.unified.getStatus().filtrlvl);
209
+ }
210
+ async getMode() {
211
+ await this.fetch();
212
+ const raw_mode = this.unified.getStatus().mode;
213
+ switch (raw_mode) {
214
+ case 'gasheat':
215
+ case 'electric':
216
+ case 'hpheat':
217
+ return constants_1.SYSTEM_MODE.HEAT;
218
+ case 'dehumidify':
219
+ return constants_1.SYSTEM_MODE.COOL;
220
+ default:
221
+ return raw_mode;
222
+ }
223
+ }
224
+ getZone(zone) {
225
+ const zones = this.unified.getStatus().zones;
226
+ const found = zones.find(z => z.id === zone.toString());
227
+ if (!found) {
228
+ throw new Error(`Zone ${zone} not found in status`);
229
+ }
230
+ return found;
231
+ }
232
+ async getZoneConditioning(zone) {
233
+ await this.fetch();
234
+ const raw_mode = this.getZone(zone).zoneconditioning;
235
+ switch (raw_mode) {
236
+ case 'active_heat':
237
+ case 'prep_heat':
238
+ case 'pending_heat':
239
+ return constants_1.SYSTEM_MODE.HEAT;
240
+ case 'active_cool':
241
+ case 'prep_cool':
242
+ case 'pending_cool':
243
+ return constants_1.SYSTEM_MODE.COOL;
244
+ case 'idle':
245
+ return constants_1.SYSTEM_MODE.OFF;
246
+ default:
247
+ return raw_mode;
248
+ }
249
+ }
250
+ async getZoneFan(zone) {
251
+ await this.fetch();
252
+ const zone_obj = this.getZone(zone);
253
+ // Note: In GraphQL API, damperposition is not in status, check fan directly
254
+ return zone_obj.fan;
255
+ }
256
+ async getZoneOpen(zone) {
257
+ await this.fetch();
258
+ const zone_obj = this.getZone(zone);
259
+ // Zone is open if enabled
260
+ return zone_obj.enabled === constants_1.STATUS.ON;
261
+ }
262
+ async getZoneTemp(zone) {
263
+ await this.fetch();
264
+ return Number(this.getZone(zone).rt);
265
+ }
266
+ async getZoneHumidity(zone) {
267
+ await this.fetch();
268
+ return Number(this.getZone(zone).rh);
269
+ }
270
+ async getZoneActivity(zone) {
271
+ await this.fetch();
272
+ return this.getZone(zone).currentActivity;
273
+ }
274
+ async getZoneCoolSetpoint(zone) {
275
+ await this.fetch();
276
+ return Number(this.getZone(zone).clsp);
277
+ }
278
+ async getZoneHeatSetpoint(zone) {
279
+ await this.fetch();
280
+ return Number(this.getZone(zone).htsp);
281
+ }
282
+ }
283
+ exports.SystemStatusModelGraphQL = SystemStatusModelGraphQL;
284
+ /**
285
+ * System Config Model (Read-Only) - GraphQL Facade
286
+ *
287
+ * Maintains the same public API as the old SystemConfigModelReadOnly
288
+ */
289
+ class SystemConfigModelReadOnlyGraphQL {
290
+ constructor(unified, log) {
291
+ this.unified = unified;
292
+ this.log = log;
293
+ }
294
+ async fetch() {
295
+ await this.unified.fetch();
296
+ }
297
+ async getUnits() {
298
+ await this.fetch();
299
+ return this.unified.getConfig().cfgem;
300
+ }
301
+ async getTempBounds() {
302
+ await this.fetch();
303
+ // GraphQL API may not have utilityEvent, use sensible defaults
304
+ // TODO: Find where temperature bounds are in GraphQL schema
305
+ return [50, 90]; // Default bounds in Fahrenheit
306
+ }
307
+ async getMode() {
308
+ await this.fetch();
309
+ return this.unified.getConfig().mode;
310
+ }
311
+ getZone(zone) {
312
+ const zones = this.unified.getConfig().zones;
313
+ const found = zones.find(z => z.id === zone.toString());
314
+ if (!found) {
315
+ throw new Error(`Zone ${zone} not found in config`);
316
+ }
317
+ return found;
318
+ }
319
+ async getZoneName(zone) {
320
+ await this.fetch();
321
+ return this.getZone(zone).name;
322
+ }
323
+ async getZoneHoldStatus(zone) {
324
+ await this.fetch();
325
+ const zone_obj = this.getZone(zone);
326
+ return [zone_obj.hold, zone_obj.otmr || ''];
327
+ }
328
+ getZoneActivityInternal(zone) {
329
+ const zone_obj = this.getZone(zone);
330
+ if (zone_obj.hold === constants_1.STATUS.ON) {
331
+ return zone_obj.holdActivity || constants_1.ACTIVITY.HOME;
332
+ }
333
+ else {
334
+ const now = new Date();
335
+ const program_obj = zone_obj.program;
336
+ const today_schedule = program_obj.day[now.getDay()].period
337
+ .filter(period => period.enabled === constants_1.STATUS.ON)
338
+ .reverse();
339
+ for (const period of today_schedule) {
340
+ const time = period.time;
341
+ const [hours, minutes] = time.split(':').map(Number);
342
+ if (hours < now.getHours() ||
343
+ (hours === now.getHours() && minutes < now.getMinutes())) {
344
+ return period.activity;
345
+ }
346
+ }
347
+ // If we got to the end, activity is the last from yesterday
348
+ const yesterday_schedule = program_obj.day[(now.getDay() + 6) % 7].period
349
+ .filter(period => period.enabled === constants_1.STATUS.ON)
350
+ .reverse();
351
+ return yesterday_schedule[0].activity;
352
+ }
353
+ }
354
+ async getZoneActivity(zone) {
355
+ await this.fetch();
356
+ return this.getZoneActivityInternal(zone);
357
+ }
358
+ getZoneActivityConfig(zone, activity_name) {
359
+ const config = this.unified.getConfig();
360
+ // Vacation is stored at system level
361
+ if (activity_name === constants_1.ACTIVITY.VACATION) {
362
+ return {
363
+ id: constants_1.ACTIVITY.VACATION,
364
+ zoneId: zone,
365
+ type: constants_1.ACTIVITY.VACATION,
366
+ clsp: config.vacmaxt,
367
+ htsp: config.vacmint,
368
+ fan: config.vacfan,
369
+ };
370
+ }
371
+ const zone_obj = this.getZone(zone);
372
+ const activity = zone_obj.activities.find(a => a.type === activity_name);
373
+ if (!activity) {
374
+ throw new Error(`Activity ${activity_name} not found for zone ${zone}`);
375
+ }
376
+ return activity;
377
+ }
378
+ async getZoneActivityFan(zone, activity) {
379
+ await this.fetch();
380
+ return this.getZoneActivityConfig(zone, activity).fan;
381
+ }
382
+ async getZoneActivityCoolSetpoint(zone, activity) {
383
+ await this.fetch();
384
+ return Number(this.getZoneActivityConfig(zone, activity).clsp);
385
+ }
386
+ async getZoneActivityHeatSetpoint(zone, activity) {
387
+ await this.fetch();
388
+ return Number(this.getZoneActivityConfig(zone, activity).htsp);
389
+ }
390
+ async getZoneNextActivityTime(zone) {
391
+ await this.fetch();
392
+ const now = new Date();
393
+ const program_obj = this.getZone(zone).program;
394
+ const day_obj = program_obj.day[now.getDay()];
395
+ for (const period of day_obj.period) {
396
+ const time = period.time;
397
+ const [hours, minutes] = time.split(':').map(Number);
398
+ if (hours > now.getHours() ||
399
+ (hours === now.getHours() && minutes > now.getMinutes())) {
400
+ return time;
401
+ }
402
+ }
403
+ // Next activity is first from tomorrow
404
+ const tomorrow_obj = program_obj.day[(now.getDay() + 1) % 7];
405
+ return tomorrow_obj.period[0].time;
406
+ }
407
+ }
408
+ exports.SystemConfigModelReadOnlyGraphQL = SystemConfigModelReadOnlyGraphQL;
409
+ /**
410
+ * System Config Model (Writable) - GraphQL Version
411
+ *
412
+ * Handles mutations to system configuration via GraphQL mutations
413
+ */
414
+ class SystemConfigModelGraphQL extends SystemConfigModelReadOnlyGraphQL {
415
+ constructor(unified, graphql_client, log, events) {
416
+ super(unified, log);
417
+ this.unified = unified;
418
+ this.graphql_client = graphql_client;
419
+ this.log = log;
420
+ this.events = events;
421
+ this.mutations = [];
422
+ }
423
+ // Skip fetching new data when we have a dirty local state
424
+ async fetch() {
425
+ if (this.mutations.length > 0) {
426
+ return;
427
+ }
428
+ await super.fetch();
429
+ }
430
+ async push() {
431
+ // Emit local mutation event for immediate HK updates
432
+ this.events.emit(constants_1.SUBSCRIPTION.CONFIG_MUTATE);
433
+ // Wait a bit to batch mutations
434
+ await new Promise(r => setTimeout(r, 2000));
435
+ // Cancel any pending pushes
436
+ const write_lock = this.unified.write_lock;
437
+ write_lock.cancel();
438
+ try {
439
+ await write_lock.runExclusive(async () => {
440
+ if (this.mutations.length === 0) {
441
+ return;
442
+ }
443
+ // Refresh data first
444
+ await this.unified.fetch();
445
+ const config = this.unified.getConfig();
446
+ const status = this.unified.getStatus();
447
+ // Apply all queued mutations
448
+ while (this.mutations.length > 0) {
449
+ const mutation = this.mutations.shift();
450
+ if (mutation) {
451
+ const input = mutation(config, status);
452
+ await this.executeMutation(input);
453
+ }
454
+ }
455
+ this.log.info('... pushing changes complete.');
456
+ // Wait for propagation
457
+ await new Promise(r => setTimeout(r, 5000));
458
+ // Refresh to confirm
459
+ if (this.mutations.length === 0) {
460
+ await this.unified.fetch();
461
+ this.log.debug('Successful propagation to carrier api is confirmed.');
462
+ }
463
+ });
464
+ }
465
+ catch (e) {
466
+ if (e === async_mutex_1.E_CANCELED) {
467
+ return;
468
+ }
469
+ else if (e === async_mutex_1.E_TIMEOUT || e === async_mutex_1.E_ALREADY_LOCKED) {
470
+ this.log.error(`Deadlock on push ${e}. Report bug: https://bit.ly/3igbU7D`);
471
+ }
472
+ else {
473
+ const errorMessage = axios_1.default.isAxiosError(e) ? e.message : String(e);
474
+ this.log.error('Failed to push updates: ', errorMessage);
475
+ }
476
+ }
477
+ }
478
+ async executeMutation(input) {
479
+ // Determine mutation type based on input properties
480
+ if ('mode' in input && !('zoneId' in input)) {
481
+ // System config mutation
482
+ await this.graphql_client.mutate(graphql_operations_1.UPDATE_INFINITY_CONFIG, { input });
483
+ this.log.info('Executed updateInfinityConfig mutation');
484
+ }
485
+ else if ('activityType' in input) {
486
+ // Zone activity mutation
487
+ await this.graphql_client.mutate(graphql_operations_1.UPDATE_INFINITY_ZONE_ACTIVITY, { input });
488
+ this.log.info('Executed updateInfinityZoneActivity mutation');
489
+ }
490
+ else if ('zoneId' in input) {
491
+ // Zone config mutation
492
+ await this.graphql_client.mutate(graphql_operations_1.UPDATE_INFINITY_ZONE_CONFIG, { input });
493
+ this.log.info('Executed updateInfinityZoneConfig mutation');
494
+ }
495
+ else {
496
+ this.log.error('Unknown mutation type:', input);
497
+ }
498
+ }
499
+ async setMode(mode) {
500
+ this.log.debug('Setting mode to ' + mode);
501
+ const m = (config, status) => {
502
+ return {
503
+ serial: this.unified.serialNumber,
504
+ mode,
505
+ };
506
+ };
507
+ this.mutations.push(m);
508
+ this.push();
509
+ }
510
+ async setZoneActivityHold(zone, activity, hold_until) {
511
+ this.log.debug(`Setting zone ${zone} activity to ${activity} until ${hold_until}`);
512
+ const m = (config, status) => {
513
+ return {
514
+ serial: this.unified.serialNumber,
515
+ zoneId: zone,
516
+ hold: activity ? constants_1.STATUS.ON : constants_1.STATUS.OFF,
517
+ holdActivity: activity || null,
518
+ otmr: activity ? hold_until : null,
519
+ };
520
+ };
521
+ this.mutations.push(m);
522
+ this.push();
523
+ }
524
+ async setZoneActivityManualHold(zone, clsp, htsp, hold_until, fan = null) {
525
+ this.log.debug(`Setting zone ${zone} to`, clsp ? `clsp=${clsp}` : '', htsp ? `htsp=${htsp}` : '', fan ? `fan=${fan}` : '', '.');
526
+ // First, update the MANUAL activity setpoints
527
+ const m1 = (config, status) => {
528
+ const zone_obj = config.zones.find(z => z.id === zone);
529
+ const manual_activity = zone_obj === null || zone_obj === void 0 ? void 0 : zone_obj.activities.find(a => a.type === constants_1.ACTIVITY.MANUAL);
530
+ if (!manual_activity) {
531
+ throw new Error(`MANUAL activity not found for zone ${zone}`);
532
+ }
533
+ // Get current setpoints as defaults
534
+ let current_htsp = Number(manual_activity.htsp);
535
+ let current_clsp = Number(manual_activity.clsp);
536
+ const current_fan = manual_activity.fan;
537
+ // Apply deadband processing
538
+ [current_htsp, current_clsp] = (0, helpers_1.processSetpointDeadband)(htsp !== null ? htsp : current_htsp, clsp !== null ? clsp : current_clsp, config.cfgem, htsp === null);
539
+ return {
540
+ serial: this.unified.serialNumber,
541
+ zoneId: zone,
542
+ activityType: constants_1.ACTIVITY.MANUAL,
543
+ htsp: current_htsp.toFixed(1),
544
+ clsp: current_clsp.toFixed(1),
545
+ fan: fan || current_fan,
546
+ };
547
+ };
548
+ // Then, set hold to MANUAL activity
549
+ const m2 = (config, status) => {
550
+ return {
551
+ serial: this.unified.serialNumber,
552
+ zoneId: zone,
553
+ hold: constants_1.STATUS.ON,
554
+ holdActivity: constants_1.ACTIVITY.MANUAL,
555
+ otmr: hold_until,
556
+ };
557
+ };
558
+ this.mutations.push(m1, m2);
559
+ this.push();
560
+ }
561
+ }
562
+ exports.SystemConfigModelGraphQL = SystemConfigModelGraphQL;
563
+ /**
564
+ * System Model - GraphQL Version
565
+ *
566
+ * Top-level facade that combines profile, status, and config models
567
+ * Maintains the same public API as the old SystemModel
568
+ */
569
+ class SystemModelGraphQL {
570
+ constructor(graphql_client, serialNumber) {
571
+ this.graphql_client = graphql_client;
572
+ this.serialNumber = serialNumber;
573
+ this.log = new helper_logging_1.PrefixLogger(this.graphql_client.log, this.serialNumber);
574
+ this.events = new events_1.default().setMaxListeners(100);
575
+ const api_logger = new helper_logging_1.PrefixLogger(this.log, 'API');
576
+ // Create unified model that fetches all data
577
+ this.unified = new UnifiedSystemModelGraphQL(graphql_client, serialNumber, api_logger, this.events);
578
+ // Create facade models that delegate to unified model
579
+ this.status = new SystemStatusModelGraphQL(this.unified);
580
+ this.profile = new SystemProfileModelGraphQL(this.unified);
581
+ this.config = new SystemConfigModelGraphQL(this.unified, graphql_client, api_logger, this.events);
582
+ // Periodically fetch to keep data fresh
583
+ // Note: No activate() call needed with GraphQL API
584
+ setInterval(() => {
585
+ this.status.fetch();
586
+ }, 30 * 60 * 1000); // every 30 min
587
+ }
588
+ }
589
+ exports.SystemModelGraphQL = SystemModelGraphQL;
590
+ //# sourceMappingURL=models_graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models_graphql.js","sourceRoot":"","sources":["../../src/api/models_graphql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * OAuth 2.0 Authentication Helpers for Carrier Infinity GraphQL API
3
+ *
4
+ * This replaces the old OAuth 1.0 HMAC signature-based authentication
5
+ * with simple OAuth 2.0 Bearer token authentication via Okta.
6
+ */
7
+ import { InternalAxiosRequestConfig } from 'axios';
8
+ /**
9
+ * OAuth 2.0 token response from assistedLogin mutation
10
+ */
11
+ export interface OAuth2TokenResponse {
12
+ token_type: string;
13
+ expires_in: number;
14
+ access_token: string;
15
+ scope: string;
16
+ refresh_token: string;
17
+ }
18
+ /**
19
+ * OAuth 2.0 token refresh response from Okta endpoint
20
+ */
21
+ export interface OAuth2RefreshResponse {
22
+ token_type: string;
23
+ expires_in: number;
24
+ access_token: string;
25
+ scope: string;
26
+ refresh_token?: string;
27
+ }
28
+ /**
29
+ * OAuth2Headers - Simple Bearer token injection for authenticated requests
30
+ *
31
+ * This is much simpler than the old OAuth 1.0 implementation which required
32
+ * HMAC-SHA1 signatures, nonces, timestamps, and complex header generation.
33
+ */
34
+ export declare class OAuth2Headers {
35
+ /**
36
+ * Inject Bearer token into Axios request config
37
+ *
38
+ * @param config - Axios request configuration
39
+ * @param access_token - OAuth 2.0 access token
40
+ * @param token_type - OAuth 2.0 token type (usually "Bearer")
41
+ * @returns Modified request config with Authorization header
42
+ */
43
+ static intercept(config: InternalAxiosRequestConfig, access_token: string, token_type?: string): InternalAxiosRequestConfig;
44
+ }
45
+ //# sourceMappingURL=oauth2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/api/oauth2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,MAAM,EAAE,0BAA0B,EAClC,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,MAAiB,GAC5B,0BAA0B;CAU9B"}