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.
- package/.devcontainer/.uix-hb-service-homebridge-startup.json.example +5 -0
- package/.devcontainer/config.json.example +2 -1
- package/.devcontainer/setup-homebridge.sh +6 -0
- package/CLAUDE.md +28 -21
- package/dist/accessory_base.d.ts +2 -2
- package/dist/accessory_base.d.ts.map +1 -1
- package/dist/accessory_base.js.map +1 -1
- package/dist/api/graphql_client.d.ts +71 -0
- package/dist/api/graphql_client.d.ts.map +1 -0
- package/dist/api/graphql_client.js +261 -0
- package/dist/api/graphql_client.js.map +1 -0
- package/dist/api/graphql_operations.d.ts +56 -0
- package/dist/api/graphql_operations.d.ts.map +1 -0
- package/dist/api/graphql_operations.js +325 -0
- package/dist/api/graphql_operations.js.map +1 -0
- package/dist/api/interface_graphql_mutations.d.ts +149 -0
- package/dist/api/interface_graphql_mutations.d.ts.map +1 -0
- package/dist/api/interface_graphql_mutations.js +8 -0
- package/dist/api/interface_graphql_mutations.js.map +1 -0
- package/dist/api/interface_graphql_system.d.ts +287 -0
- package/dist/api/interface_graphql_system.d.ts.map +1 -0
- package/dist/api/interface_graphql_system.js +9 -0
- package/dist/api/interface_graphql_system.js.map +1 -0
- package/dist/api/models_graphql.d.ts +167 -0
- package/dist/api/models_graphql.d.ts.map +1 -0
- package/dist/api/models_graphql.js +590 -0
- package/dist/api/models_graphql.js.map +1 -0
- package/dist/api/oauth2.d.ts +45 -0
- package/dist/api/oauth2.d.ts.map +1 -0
- package/dist/api/oauth2.js +35 -0
- package/dist/api/oauth2.js.map +1 -0
- package/dist/characteristics_base.d.ts +2 -2
- package/dist/characteristics_base.d.ts.map +1 -1
- package/dist/characteristics_base.js.map +1 -1
- package/dist/platform.d.ts +4 -4
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +7 -12
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +6 -3
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +7 -4
- package/dist/settings.js.map +1 -1
- package/eslint.config.mjs +93 -2
- package/package.json +3 -6
- package/dist/api/comodo-aaa-root.pem +0 -25
- package/dist/api/interface_config.d.ts +0 -185
- package/dist/api/interface_config.d.ts.map +0 -1
- package/dist/api/interface_config.js +0 -5
- package/dist/api/interface_config.js.map +0 -1
- package/dist/api/interface_locations.d.ts +0 -45
- package/dist/api/interface_locations.d.ts.map +0 -1
- package/dist/api/interface_locations.js +0 -5
- package/dist/api/interface_locations.js.map +0 -1
- package/dist/api/interface_profile.d.ts +0 -80
- package/dist/api/interface_profile.d.ts.map +0 -1
- package/dist/api/interface_profile.js +0 -5
- package/dist/api/interface_profile.js.map +0 -1
- package/dist/api/interface_status.d.ts +0 -90
- package/dist/api/interface_status.d.ts.map +0 -1
- package/dist/api/interface_status.js +0 -5
- package/dist/api/interface_status.js.map +0 -1
- package/dist/api/models.d.ts +0 -111
- package/dist/api/models.d.ts.map +0 -1
- package/dist/api/models.js +0 -572
- package/dist/api/models.js.map +0 -1
- package/dist/api/oauth.d.ts +0 -6
- package/dist/api/oauth.d.ts.map +0 -1
- package/dist/api/oauth.js +0 -49
- package/dist/api/oauth.js.map +0 -1
- package/dist/api/rest_client.d.ts +0 -15
- package/dist/api/rest_client.d.ts.map +0 -1
- package/dist/api/rest_client.js +0 -135
- 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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"}
|