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,287 @@
1
+ /**
2
+ * TypeScript interfaces for Carrier Infinity GraphQL API responses
3
+ *
4
+ * These interfaces define the structure of data returned from GraphQL queries.
5
+ * The GraphQL API combines profile, status, and config data into a single response.
6
+ */
7
+ /**
8
+ * System Profile - Hardware and firmware information
9
+ * Equivalent to the old REST API's /systems/{serial}/profile endpoint
10
+ */
11
+ export interface InfinitySystemProfile {
12
+ serial: string;
13
+ name: string;
14
+ firmware: string;
15
+ model: string;
16
+ brand: string;
17
+ indoorModel: string;
18
+ indoorSerial: string;
19
+ idutype: string;
20
+ idusource: string;
21
+ outdoorModel: string;
22
+ outdoorSerial: string;
23
+ odutype: string;
24
+ }
25
+ /**
26
+ * ODU (Outdoor Unit) Status
27
+ */
28
+ export interface InfinityOduStatus {
29
+ type: string;
30
+ opstat: string;
31
+ }
32
+ /**
33
+ * IDU (Indoor Unit) Status
34
+ */
35
+ export interface InfinityIduStatus {
36
+ type: string;
37
+ opstat: string;
38
+ cfm: string;
39
+ statpress: string;
40
+ blwrpm: string;
41
+ }
42
+ /**
43
+ * Zone Status - Real-time zone information
44
+ */
45
+ export interface InfinityZoneStatus {
46
+ id: string;
47
+ rt: string;
48
+ rh: string;
49
+ fan: string;
50
+ htsp: string;
51
+ clsp: string;
52
+ hold: string;
53
+ enabled: string;
54
+ currentActivity: string;
55
+ zoneconditioning: string;
56
+ }
57
+ /**
58
+ * System Status - Real-time system information
59
+ * Equivalent to the old REST API's /systems/{serial}/status endpoint
60
+ */
61
+ export interface InfinitySystemStatus {
62
+ localTime: string;
63
+ localTimeOffset: string;
64
+ utcTime: string;
65
+ wcTime: string;
66
+ isDisconnected: string;
67
+ cfgem: string;
68
+ mode: string;
69
+ vacatrunning: string;
70
+ oat: string;
71
+ odu: InfinityOduStatus;
72
+ filtrlvl: string;
73
+ idu: InfinityIduStatus;
74
+ vent: string;
75
+ ventlvl: string;
76
+ humid: string;
77
+ humlvl: string;
78
+ uvlvl: string;
79
+ zones: InfinityZoneStatus[];
80
+ }
81
+ /**
82
+ * Humidity Configuration
83
+ */
84
+ export interface InfinityHumidityConfig {
85
+ humid?: string;
86
+ humidifier?: string;
87
+ rhtg?: number;
88
+ rclg?: number;
89
+ rclgovercool?: string;
90
+ ventspdclg?: string;
91
+ ventclg?: string;
92
+ venthtg?: string;
93
+ ventspdhtg?: string;
94
+ }
95
+ /**
96
+ * Schedule Period - Single time period in a day's schedule
97
+ */
98
+ export interface InfinitySchedulePeriod {
99
+ id: string;
100
+ zoneId: string;
101
+ dayId: string;
102
+ activity: string;
103
+ time: string;
104
+ enabled: string;
105
+ }
106
+ /**
107
+ * Schedule Day - All periods for a single day
108
+ */
109
+ export interface InfinityScheduleDay {
110
+ id: string;
111
+ zoneId: string;
112
+ period: InfinitySchedulePeriod[];
113
+ }
114
+ /**
115
+ * Zone Program - Weekly schedule for a zone
116
+ */
117
+ export interface InfinityZoneProgram {
118
+ id: string;
119
+ day: InfinityScheduleDay[];
120
+ }
121
+ /**
122
+ * Zone Activity - Setpoints and fan mode for an activity
123
+ */
124
+ export interface InfinityZoneActivity {
125
+ id: string;
126
+ zoneId: string;
127
+ type: string;
128
+ fan: string;
129
+ htsp: string;
130
+ clsp: string;
131
+ }
132
+ /**
133
+ * Zone Configuration - Zone settings and schedules
134
+ */
135
+ export interface InfinityZoneConfig {
136
+ id: string;
137
+ name: string;
138
+ enabled: string;
139
+ hold: string;
140
+ holdActivity: string | null;
141
+ otmr: string | null;
142
+ occEnabled: string;
143
+ program: InfinityZoneProgram;
144
+ activities: InfinityZoneActivity[];
145
+ }
146
+ /**
147
+ * System Configuration - System settings
148
+ * Equivalent to the old REST API's /systems/{serial}/config endpoint
149
+ */
150
+ export interface InfinitySystemConfig {
151
+ etag: string;
152
+ mode: string;
153
+ cfgem: string;
154
+ cfgdead: string;
155
+ cfgvent: string;
156
+ cfghumid: string;
157
+ cfguv: string;
158
+ cfgfan: string;
159
+ heatsource: string;
160
+ vacat: string;
161
+ vacstart: string;
162
+ vacend: string;
163
+ vacmint: string;
164
+ vacmaxt: string;
165
+ vacfan: string;
166
+ fueltype: string;
167
+ gasunit: string;
168
+ filtertype: string;
169
+ filterinterval: string;
170
+ humidityVacation: InfinityHumidityConfig;
171
+ humidityAway: InfinityHumidityConfig;
172
+ humidityHome: InfinityHumidityConfig;
173
+ zones: InfinityZoneConfig[];
174
+ }
175
+ /**
176
+ * Complete Infinity System - Combines profile, status, and config
177
+ * This is what the getInfinitySystems query returns
178
+ */
179
+ export interface InfinitySystem {
180
+ profile: InfinitySystemProfile;
181
+ status: InfinitySystemStatus;
182
+ config: InfinitySystemConfig;
183
+ }
184
+ /**
185
+ * getInfinitySystems query response
186
+ */
187
+ export interface GetInfinitySystemsResponse {
188
+ infinitySystems: InfinitySystem[];
189
+ }
190
+ /**
191
+ * User location data
192
+ */
193
+ export interface UserLocation {
194
+ locationId: string;
195
+ name: string;
196
+ systems: {
197
+ config: {
198
+ zones: {
199
+ id: string;
200
+ enabled: string;
201
+ }[];
202
+ };
203
+ profile: {
204
+ serial: string;
205
+ name: string;
206
+ };
207
+ status: {
208
+ isDisconnected: string;
209
+ };
210
+ }[];
211
+ devices: {
212
+ deviceId: string;
213
+ type: string;
214
+ thingName: string;
215
+ name: string;
216
+ connectionStatus: string;
217
+ }[];
218
+ }
219
+ /**
220
+ * User information
221
+ */
222
+ export interface UserInfo {
223
+ username: string;
224
+ identityId: string;
225
+ first: string;
226
+ last: string;
227
+ email: string;
228
+ emailVerified: boolean;
229
+ postal: string;
230
+ locations: UserLocation[];
231
+ }
232
+ /**
233
+ * getUser query response
234
+ */
235
+ export interface GetUserResponse {
236
+ user: UserInfo;
237
+ }
238
+ /**
239
+ * Energy display configuration
240
+ */
241
+ export interface EnergyDisplayConfig {
242
+ display: boolean;
243
+ enabled: boolean;
244
+ }
245
+ /**
246
+ * Energy configuration
247
+ */
248
+ export interface InfinityEnergyConfig {
249
+ cooling: EnergyDisplayConfig;
250
+ eheat: EnergyDisplayConfig;
251
+ fan: EnergyDisplayConfig;
252
+ fangas: EnergyDisplayConfig;
253
+ gas: EnergyDisplayConfig;
254
+ hpheat: EnergyDisplayConfig;
255
+ looppump: EnergyDisplayConfig;
256
+ reheat: EnergyDisplayConfig;
257
+ hspf: number;
258
+ seer: number;
259
+ }
260
+ /**
261
+ * Energy usage period
262
+ */
263
+ export interface InfinityEnergyPeriod {
264
+ energyPeriodType: string;
265
+ eHeatKwh: number;
266
+ coolingKwh: number;
267
+ fanGasKwh: number;
268
+ fanKwh: number;
269
+ hPHeatKwh: number;
270
+ loopPumpKwh: number;
271
+ gasKwh: number;
272
+ reheatKwh: number;
273
+ }
274
+ /**
275
+ * Energy data
276
+ */
277
+ export interface InfinityEnergy {
278
+ energyConfig: InfinityEnergyConfig;
279
+ energyPeriods: InfinityEnergyPeriod[];
280
+ }
281
+ /**
282
+ * getInfinityEnergy query response
283
+ */
284
+ export interface GetInfinityEnergyResponse {
285
+ infinityEnergy: InfinityEnergy;
286
+ }
287
+ //# sourceMappingURL=interface_graphql_system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_graphql_system.d.ts","sourceRoot":"","sources":["../../src/api/interface_graphql_system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript interfaces for Carrier Infinity GraphQL API responses
4
+ *
5
+ * These interfaces define the structure of data returned from GraphQL queries.
6
+ * The GraphQL API combines profile, status, and config data into a single response.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=interface_graphql_system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface_graphql_system.js","sourceRoot":"","sources":["../../src/api/interface_graphql_system.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * GraphQL-based Models for Carrier Infinity API
3
+ *
4
+ * This file implements the same model interfaces as models.ts but uses
5
+ * the GraphQL API instead of the REST API. The public API remains unchanged
6
+ * to maintain backward compatibility with accessory and characteristic code.
7
+ */
8
+ import { Mutex } from 'async-mutex';
9
+ import { Logger } from 'homebridge';
10
+ import { InfinityGraphQLClient } from './graphql_client';
11
+ import EventEmitter from 'events';
12
+ import { InfinitySystem, InfinitySystemProfile, InfinitySystemStatus, InfinitySystemConfig, InfinityZoneConfig, InfinityZoneActivity, GetUserResponse } from './interface_graphql_system';
13
+ import { InfinityConfigInput, InfinityZoneActivityInput, InfinityZoneConfigInput } from './interface_graphql_mutations';
14
+ /**
15
+ * Base model for GraphQL API interactions
16
+ *
17
+ * Similar to the old BaseModel but works with GraphQL and JSON instead of REST and XML
18
+ */
19
+ declare abstract class BaseModelGraphQL {
20
+ protected readonly graphql_client: InfinityGraphQLClient;
21
+ protected data_object: object;
22
+ protected data_object_hash?: string;
23
+ protected HASH_IGNORE_KEYS: Set<string>;
24
+ protected write_lock: Mutex;
25
+ protected log: Logger;
26
+ constructor(graphql_client: InfinityGraphQLClient);
27
+ protected hashDataObject(data?: object): string;
28
+ fetch(): Promise<void>;
29
+ protected abstract forceFetch(): Promise<void>;
30
+ }
31
+ /**
32
+ * Locations Model - GraphQL Version
33
+ *
34
+ * Fetches user information and discovers available systems
35
+ */
36
+ export declare class LocationsModelGraphQL extends BaseModelGraphQL {
37
+ protected data_object: GetUserResponse;
38
+ protected forceFetch(): Promise<void>;
39
+ getSystems(): Promise<string[]>;
40
+ }
41
+ /**
42
+ * Unified System Model - GraphQL Version
43
+ *
44
+ * This model fetches all system data (profile + status + config) in a single GraphQL query.
45
+ * The old REST API required 3 separate calls. This unified approach is more efficient.
46
+ */
47
+ declare class UnifiedSystemModelGraphQL extends BaseModelGraphQL {
48
+ protected readonly graphql_client: InfinityGraphQLClient;
49
+ readonly serialNumber: string;
50
+ protected readonly log: Logger;
51
+ protected readonly events: EventEmitter;
52
+ protected data_object: InfinitySystem;
53
+ protected HASH_IGNORE_KEYS: Set<string>;
54
+ private last_updated;
55
+ constructor(graphql_client: InfinityGraphQLClient, serialNumber: string, log: Logger, events: EventEmitter);
56
+ protected forceFetch(): Promise<void>;
57
+ getProfile(): InfinitySystemProfile;
58
+ getStatus(): InfinitySystemStatus;
59
+ getConfig(): InfinitySystemConfig;
60
+ }
61
+ /**
62
+ * System Profile Model - GraphQL Facade
63
+ *
64
+ * Maintains the same public API as the old SystemProfileModel but delegates
65
+ * to the UnifiedSystemModelGraphQL internally. No changes needed in accessory code.
66
+ */
67
+ export declare class SystemProfileModelGraphQL {
68
+ private readonly unified;
69
+ constructor(unified: UnifiedSystemModelGraphQL);
70
+ fetch(): Promise<void>;
71
+ getName(): Promise<string>;
72
+ getBrand(): Promise<string>;
73
+ getModel(): Promise<string>;
74
+ getFirmware(): Promise<string>;
75
+ getZones(): Promise<Array<string>>;
76
+ }
77
+ /**
78
+ * System Status Model - GraphQL Facade
79
+ *
80
+ * Maintains the same public API as the old SystemStatusModel
81
+ */
82
+ export declare class SystemStatusModelGraphQL {
83
+ private readonly unified;
84
+ constructor(unified: UnifiedSystemModelGraphQL);
85
+ fetch(): Promise<void>;
86
+ getUnits(): Promise<string>;
87
+ getOutdoorTemp(): Promise<number>;
88
+ getFilterUsed(): Promise<number>;
89
+ getMode(): Promise<string>;
90
+ private getZone;
91
+ getZoneConditioning(zone: string): Promise<string>;
92
+ getZoneFan(zone: string): Promise<string>;
93
+ getZoneOpen(zone: string): Promise<boolean>;
94
+ getZoneTemp(zone: string): Promise<number>;
95
+ getZoneHumidity(zone: string): Promise<number>;
96
+ getZoneActivity(zone: string): Promise<string>;
97
+ getZoneCoolSetpoint(zone: string): Promise<number>;
98
+ getZoneHeatSetpoint(zone: string): Promise<number>;
99
+ }
100
+ /**
101
+ * System Config Model (Read-Only) - GraphQL Facade
102
+ *
103
+ * Maintains the same public API as the old SystemConfigModelReadOnly
104
+ */
105
+ export declare class SystemConfigModelReadOnlyGraphQL {
106
+ protected readonly unified: UnifiedSystemModelGraphQL;
107
+ protected readonly log: Logger;
108
+ constructor(unified: UnifiedSystemModelGraphQL, log: Logger);
109
+ fetch(): Promise<void>;
110
+ getUnits(): Promise<string>;
111
+ getTempBounds(): Promise<[number, number]>;
112
+ getMode(): Promise<string>;
113
+ protected getZone(zone: string): InfinityZoneConfig;
114
+ getZoneName(zone: string): Promise<string>;
115
+ getZoneHoldStatus(zone: string): Promise<[string, string]>;
116
+ protected getZoneActivityInternal(zone: string): string;
117
+ getZoneActivity(zone: string): Promise<string>;
118
+ protected getZoneActivityConfig(zone: string, activity_name: string): InfinityZoneActivity;
119
+ getZoneActivityFan(zone: string, activity: string): Promise<string>;
120
+ getZoneActivityCoolSetpoint(zone: string, activity: string): Promise<number>;
121
+ getZoneActivityHeatSetpoint(zone: string, activity: string): Promise<number>;
122
+ getZoneNextActivityTime(zone: string): Promise<string>;
123
+ }
124
+ /**
125
+ * Config Mutation Interface
126
+ */
127
+ interface ConfigMutationGraphQL {
128
+ (config: InfinitySystemConfig, status: InfinitySystemStatus): InfinityConfigInput | InfinityZoneActivityInput | InfinityZoneConfigInput;
129
+ }
130
+ /**
131
+ * System Config Model (Writable) - GraphQL Version
132
+ *
133
+ * Handles mutations to system configuration via GraphQL mutations
134
+ */
135
+ export declare class SystemConfigModelGraphQL extends SystemConfigModelReadOnlyGraphQL {
136
+ protected readonly unified: UnifiedSystemModelGraphQL;
137
+ protected readonly graphql_client: InfinityGraphQLClient;
138
+ protected readonly log: Logger;
139
+ private readonly events;
140
+ mutations: ConfigMutationGraphQL[];
141
+ constructor(unified: UnifiedSystemModelGraphQL, graphql_client: InfinityGraphQLClient, log: Logger, events: EventEmitter);
142
+ fetch(): Promise<void>;
143
+ private push;
144
+ private executeMutation;
145
+ setMode(mode: string): Promise<void>;
146
+ setZoneActivityHold(zone: string, activity: string, hold_until: string | null): Promise<void>;
147
+ setZoneActivityManualHold(zone: string, clsp: number | null, htsp: number | null, hold_until: string | null, fan?: string | null): Promise<void>;
148
+ }
149
+ /**
150
+ * System Model - GraphQL Version
151
+ *
152
+ * Top-level facade that combines profile, status, and config models
153
+ * Maintains the same public API as the old SystemModel
154
+ */
155
+ export declare class SystemModelGraphQL {
156
+ protected readonly graphql_client: InfinityGraphQLClient;
157
+ readonly serialNumber: string;
158
+ status: SystemStatusModelGraphQL;
159
+ config: SystemConfigModelGraphQL;
160
+ profile: SystemProfileModelGraphQL;
161
+ log: Logger;
162
+ events: EventEmitter;
163
+ private unified;
164
+ constructor(graphql_client: InfinityGraphQLClient, serialNumber: string);
165
+ }
166
+ export {};
167
+ //# sourceMappingURL=models_graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models_graphql.d.ts","sourceRoot":"","sources":["../../src/api/models_graphql.ts"],"names":[],"mappings":"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"}