homebridge-gree-ac 2.1.1 → 2.1.3
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/CHANGELOG.md +56 -0
- package/README.md +136 -57
- package/config.schema.json +52 -54
- package/dist/platform.d.ts +4 -4
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +177 -81
- package/dist/platform.js.map +1 -1
- package/dist/platformAccessory.d.ts +1 -1
- package/dist/platformAccessory.d.ts.map +1 -1
- package/dist/platformAccessory.js +40 -26
- package/dist/platformAccessory.js.map +1 -1
- package/dist/settings.d.ts +8 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +8 -2
- package/dist/settings.js.map +1 -1
- package/dist/tsAccessory.d.ts +1 -0
- package/dist/tsAccessory.d.ts.map +1 -1
- package/dist/tsAccessory.js +5 -1
- package/dist/tsAccessory.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +8 -7
- package/uiconfig.jpg +0 -0
package/dist/platform.js
CHANGED
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.GreeACPlatform = void 0;
|
|
7
7
|
const dgram_1 = __importDefault(require("dgram"));
|
|
8
8
|
const crypto_1 = __importDefault(require("./crypto"));
|
|
9
|
+
const os_1 = require("os");
|
|
9
10
|
const settings_1 = require("./settings");
|
|
10
11
|
const platformAccessory_1 = require("./platformAccessory");
|
|
11
12
|
const tsAccessory_1 = require("./tsAccessory");
|
|
12
13
|
const commands_1 = __importDefault(require("./commands"));
|
|
14
|
+
const version_1 = require("./version");
|
|
13
15
|
/**
|
|
14
16
|
* HomebridgePlatform
|
|
15
17
|
* This class is the main constructor for your plugin, this is where you should
|
|
@@ -22,6 +24,7 @@ class GreeACPlatform {
|
|
|
22
24
|
this.api = api;
|
|
23
25
|
this.Service = this.api.hap.Service;
|
|
24
26
|
this.Characteristic = this.api.hap.Characteristic;
|
|
27
|
+
this.pluginAddresses = {};
|
|
25
28
|
this.handleMessage = (msg, rinfo) => {
|
|
26
29
|
this.log.debug('handleMessage -> %s', msg.toString());
|
|
27
30
|
try {
|
|
@@ -30,11 +33,11 @@ class GreeACPlatform {
|
|
|
30
33
|
message = JSON.parse(msg.toString());
|
|
31
34
|
}
|
|
32
35
|
catch (e) {
|
|
33
|
-
this.log.debug('handleMessage - unknown message - BASE64 encoded message: %s', Buffer.from(msg).toString('base64'));
|
|
36
|
+
this.log.debug('handleMessage - unknown message from %s - BASE64 encoded message: %s', rinfo.address.toString(), Buffer.from(msg).toString('base64'));
|
|
34
37
|
return;
|
|
35
38
|
}
|
|
36
39
|
if (message.i !== 1 || message.t !== 'pack') {
|
|
37
|
-
this.log.debug('handleMessage - unknown response: %j', message);
|
|
40
|
+
this.log.debug('handleMessage - unknown response from %s: %j', rinfo.address.toString(), message);
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
43
|
let pack, encryptionVersion;
|
|
@@ -62,23 +65,24 @@ class GreeACPlatform {
|
|
|
62
65
|
});
|
|
63
66
|
}
|
|
64
67
|
else {
|
|
65
|
-
this.log.debug('handleMessage - unknown package: %j', pack);
|
|
68
|
+
this.log.debug('handleMessage - unknown package from %s: %j', rinfo.address.toString(), pack);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
catch (err) {
|
|
69
72
|
const msg = err.message;
|
|
70
|
-
this.log.error('handleMessage - Error:', msg);
|
|
73
|
+
this.log.error('handleMessage (%s) - Error: %s', rinfo.address.toString(), msg);
|
|
71
74
|
}
|
|
72
75
|
};
|
|
73
76
|
this.registerDevice = (deviceInfo) => {
|
|
74
77
|
var _a, _b;
|
|
78
|
+
this.log.debug('registerDevice - deviceInfo:', JSON.stringify(deviceInfo));
|
|
75
79
|
const devcfg = this.config.devices.find((item) => item.mac === deviceInfo.mac) || {};
|
|
76
80
|
const deviceConfig = {
|
|
77
81
|
...devcfg,
|
|
78
82
|
...((devcfg.speedSteps && devcfg.speedSteps !== 3 && devcfg.speedSteps !== 5) || devcfg.speedSteps === 0 ?
|
|
79
83
|
{ speedSteps: 5 } : {}),
|
|
80
|
-
...((devcfg.temperatureSensor &&
|
|
81
|
-
{ temperatureSensor: devcfg.temperatureSensor.toLowerCase() } : { temperatureSensor:
|
|
84
|
+
...((devcfg.temperatureSensor && Object.values(settings_1.TS_TYPE).includes(devcfg.temperatureSensor.toLowerCase())) ?
|
|
85
|
+
{ temperatureSensor: devcfg.temperatureSensor.toLowerCase() } : { temperatureSensor: settings_1.TS_TYPE.disabled }),
|
|
82
86
|
...(devcfg.minimumTargetTemperature && (devcfg.minimumTargetTemperature < settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature ||
|
|
83
87
|
devcfg.minimumTargetTemperature > settings_1.DEFAULT_DEVICE_CONFIG.maximumTargetTemperature) ?
|
|
84
88
|
{ minimumTargetTemperature: settings_1.DEFAULT_DEVICE_CONFIG.minimumTargetTemperature } : {}),
|
|
@@ -99,6 +103,12 @@ class GreeACPlatform {
|
|
|
99
103
|
deviceConfig[key] = value;
|
|
100
104
|
}
|
|
101
105
|
});
|
|
106
|
+
if (deviceConfig.port !== undefined && (typeof deviceConfig.port !== 'number' || deviceConfig.port !== deviceConfig.port ||
|
|
107
|
+
(typeof deviceConfig.port === 'number' && (deviceConfig.port < 1025 || deviceConfig.port > 65535)))) {
|
|
108
|
+
this.log.warn('Warning: Port is misconfigured (Valid port values: 1025~65535 or leave port empty to auto select) - ' +
|
|
109
|
+
`Accessory ${deviceInfo.mac} listening port overridden: ${deviceConfig.port} -> auto`);
|
|
110
|
+
deviceConfig.port = undefined;
|
|
111
|
+
}
|
|
102
112
|
// force encryption version if set in config
|
|
103
113
|
if (deviceConfig.encryptionVersion !== settings_1.ENCRYPTION_VERSION.auto) {
|
|
104
114
|
deviceInfo.encryptionVersion = deviceConfig.encryptionVersion;
|
|
@@ -108,76 +118,125 @@ class GreeACPlatform {
|
|
|
108
118
|
let accessory_ts = this.devices[deviceInfo.mac + '_ts'];
|
|
109
119
|
if ((deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.disabled) || !/^[a-f0-9]{12}$/.test(deviceConfig.mac)) {
|
|
110
120
|
if (!this.skippedDevices[deviceInfo.mac]) {
|
|
111
|
-
this.log.info(`Accessory ${deviceInfo.mac} skipped`);
|
|
121
|
+
this.log.info(`Accessory ${deviceInfo.mac}${devcfg.mac === undefined ? ' not configured -' : ''} skipped`);
|
|
112
122
|
this.skippedDevices[deviceInfo.mac] = true;
|
|
113
123
|
}
|
|
124
|
+
else {
|
|
125
|
+
this.log.debug(`Accessory ${deviceInfo.mac}${devcfg.mac === undefined ? ' not configured -' : ''} skipped`);
|
|
126
|
+
}
|
|
114
127
|
if (accessory) {
|
|
128
|
+
delete this.devices[accessory.context.deviceInfo.mac];
|
|
115
129
|
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
|
|
116
|
-
|
|
130
|
+
this.log.debug(`registerDevice - unregister (${devcfg.mac === undefined ? 'not configured' : 'disabled'}):`, accessory.displayName, accessory.UUID);
|
|
131
|
+
accessory = undefined;
|
|
117
132
|
}
|
|
118
133
|
if (accessory_ts) {
|
|
134
|
+
delete this.devices[accessory_ts.context.deviceInfo.mac];
|
|
119
135
|
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory_ts]);
|
|
120
|
-
|
|
136
|
+
this.log.debug(`registerDevice - unregister (${devcfg.mac === undefined ? 'not configured' : 'disabled'}):`, accessory_ts.displayName, accessory_ts.UUID);
|
|
137
|
+
accessory_ts = undefined;
|
|
121
138
|
}
|
|
122
139
|
return;
|
|
123
140
|
}
|
|
141
|
+
// check device address change
|
|
142
|
+
if (accessory && deviceInfo.address !== accessory.context.device.address) {
|
|
143
|
+
this.log.info(`Device [${accessory.displayName} - ${accessory.context.device.mac}] address has changed: %s -> %s`, accessory.context.device.address, deviceInfo.address);
|
|
144
|
+
accessory.context.device.address = deviceInfo.address;
|
|
145
|
+
}
|
|
146
|
+
if (accessory_ts && deviceInfo.address !== accessory_ts.context.device.address) {
|
|
147
|
+
accessory_ts.context.device.address = deviceInfo.address;
|
|
148
|
+
}
|
|
124
149
|
if (accessory && this.initializedDevices[accessory.UUID]) {
|
|
125
150
|
// already initalized
|
|
151
|
+
this.log.debug('registerDevice - already initalized:', accessory.displayName, accessory.UUID, accessory.context.device.mac);
|
|
126
152
|
return;
|
|
127
153
|
}
|
|
154
|
+
// register heatercooler accessory
|
|
155
|
+
const deviceName = (_a = deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.name) !== null && _a !== void 0 ? _a : (deviceInfo.name || deviceInfo.mac);
|
|
128
156
|
if (!accessory) {
|
|
129
|
-
|
|
130
|
-
this.log.debug(`Initializing new accessory ${deviceInfo.mac} with name ${deviceName}...`);
|
|
157
|
+
this.log.debug(`Initializing new accessory ${deviceInfo.mac} with name ${deviceName} ...`);
|
|
131
158
|
const uuid = this.api.hap.uuid.generate(deviceInfo.mac);
|
|
132
159
|
accessory = new this.api.platformAccessory(deviceName, uuid, 21 /* Categories.AIR_CONDITIONER */);
|
|
133
160
|
this.devices[deviceInfo.mac] = accessory;
|
|
134
161
|
this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
|
|
135
162
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
163
|
+
// register temperaturesensor accessory if configured as separate
|
|
164
|
+
const tsDeviceName = 'Temperature Sensor - ' + ((_b = deviceConfig === null || deviceConfig === void 0 ? void 0 : deviceConfig.name) !== null && _b !== void 0 ? _b : (deviceInfo.name || deviceInfo.mac));
|
|
165
|
+
if (!accessory_ts && deviceConfig.temperatureSensor === settings_1.TS_TYPE.separate) {
|
|
166
|
+
this.log.debug(`Initializing new accessory ${deviceInfo.mac}_ts with name ${tsDeviceName} ...`);
|
|
139
167
|
const uuid = this.api.hap.uuid.generate(deviceInfo.mac + '_ts');
|
|
140
|
-
accessory_ts = new this.api.platformAccessory(
|
|
168
|
+
accessory_ts = new this.api.platformAccessory(tsDeviceName, uuid, 10 /* Categories.SENSOR */);
|
|
141
169
|
this.devices[deviceInfo.mac + '_ts'] = accessory_ts;
|
|
142
170
|
this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory_ts]);
|
|
143
171
|
}
|
|
144
|
-
if
|
|
172
|
+
// unregister temperaturesensor accessory if configuration has changed from separate to any other
|
|
173
|
+
if (accessory_ts && deviceConfig.temperatureSensor !== settings_1.TS_TYPE.separate) {
|
|
145
174
|
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory_ts]);
|
|
146
|
-
delete this.devices[
|
|
175
|
+
delete this.devices[deviceInfo.mac + '_ts'];
|
|
176
|
+
this.log.debug('registerDevice - unregister:', accessory_ts.displayName, accessory_ts.UUID);
|
|
177
|
+
accessory_ts = undefined;
|
|
147
178
|
}
|
|
148
|
-
let tsService;
|
|
149
|
-
if (accessory_ts && deviceConfig.temperatureSensor ===
|
|
150
|
-
// mark temperature sensor
|
|
151
|
-
accessory_ts.context.device = deviceInfo;
|
|
179
|
+
let tsService = null;
|
|
180
|
+
if (accessory_ts && deviceConfig.temperatureSensor === settings_1.TS_TYPE.separate) {
|
|
181
|
+
// mark temperature sensor device as initialized
|
|
182
|
+
accessory_ts.context.device = { ...deviceInfo };
|
|
183
|
+
accessory_ts.context.device.mac = deviceInfo.mac + '_ts';
|
|
152
184
|
accessory_ts.context.deviceType = 'TemperatureSensor';
|
|
185
|
+
accessory_ts.displayName = tsDeviceName;
|
|
153
186
|
this.initializedDevices[accessory_ts.UUID] = true;
|
|
154
187
|
tsService = new tsAccessory_1.GreeAirConditionerTS(this, accessory_ts, deviceConfig);
|
|
188
|
+
this.log.debug(`registerDevice - ${accessory_ts.context.deviceType} initialized:`, accessory_ts.displayName, accessory_ts.context.device.mac, accessory_ts.UUID);
|
|
155
189
|
}
|
|
156
190
|
if (accessory) {
|
|
157
|
-
// mark
|
|
191
|
+
// mark heatercooler device as initialized
|
|
158
192
|
accessory.context.device = deviceInfo;
|
|
159
193
|
accessory.context.deviceType = 'HeaterCooler';
|
|
160
|
-
accessory.
|
|
161
|
-
accessory.context.bound = false;
|
|
194
|
+
accessory.displayName = deviceName;
|
|
162
195
|
this.initializedDevices[accessory.UUID] = true;
|
|
163
|
-
|
|
196
|
+
this.log.debug(`registerDevice - ${accessory.context.deviceType} initialized:`, accessory.displayName, accessory.context.device.mac, accessory.UUID);
|
|
197
|
+
new platformAccessory_1.GreeAirConditioner(this, accessory, deviceConfig, this.config.port, tsService);
|
|
198
|
+
}
|
|
199
|
+
// update registered accessories at the end of initialization
|
|
200
|
+
const accessories = [accessory];
|
|
201
|
+
if (accessory_ts) {
|
|
202
|
+
accessories.push(accessory_ts);
|
|
164
203
|
}
|
|
204
|
+
this.api.updatePlatformAccessories(accessories);
|
|
165
205
|
};
|
|
166
|
-
this.socket = dgram_1.default.createSocket({ type: 'udp4', reuseAddr: true });
|
|
167
206
|
this.devices = {};
|
|
168
207
|
this.initializedDevices = {};
|
|
169
208
|
this.skippedDevices = {};
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
209
|
+
this.pluginAddresses = this.getNetworkAddresses();
|
|
210
|
+
if (Object.entries(this.pluginAddresses).length > 0) {
|
|
211
|
+
this.log.debug('Device detection address list {(address : netmask) pairs}:', this.pluginAddresses);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.log.error('Error: Homebridge host has no IPv4 address');
|
|
215
|
+
}
|
|
216
|
+
// if no IPv4 address found we create socket for IPv6
|
|
217
|
+
this.socket = dgram_1.default.createSocket({ type: (Object.entries(this.pluginAddresses).length > 0) ? 'udp4' : 'udp6', reuseAddr: true });
|
|
218
|
+
this.socket.on('error', (err) => {
|
|
219
|
+
this.log.error('Network - Error:', err.message);
|
|
220
|
+
});
|
|
221
|
+
this.socket.on('close', () => {
|
|
222
|
+
this.log.debug('Network - Connection closed');
|
|
223
|
+
});
|
|
224
|
+
this.log.debug('Finished initializing platform');
|
|
172
225
|
// When this event is fired it means Homebridge has restored all cached accessories from disk.
|
|
173
226
|
// Dynamic Platform plugins should only register new accessories after this event was fired,
|
|
174
227
|
// in order to ensure they weren't added to homebridge already. This event can also be used
|
|
175
228
|
// to start discovery of new accessories.
|
|
176
229
|
this.api.on('didFinishLaunching', () => {
|
|
177
230
|
log.debug('Executed didFinishLaunching callback');
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
231
|
+
if (Object.entries(this.pluginAddresses).length === 0) {
|
|
232
|
+
this.socket.close();
|
|
233
|
+
this.log.error('Network - Error: No IPv4 host address found');
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
this.socket.on('message', this.handleMessage);
|
|
237
|
+
// run the method to discover / register your devices as accessories
|
|
238
|
+
this.discoverDevices();
|
|
239
|
+
}
|
|
181
240
|
});
|
|
182
241
|
}
|
|
183
242
|
/**
|
|
@@ -186,73 +245,110 @@ class GreeACPlatform {
|
|
|
186
245
|
*/
|
|
187
246
|
configureAccessory(accessory) {
|
|
188
247
|
var _a;
|
|
189
|
-
this.log.debug('Loading accessory from cache:
|
|
248
|
+
this.log.debug('Loading accessory from cache:', accessory.displayName, JSON.stringify(accessory.context.device));
|
|
190
249
|
// add the restored accessory to the accessories cache so we can track if it has already been registered
|
|
191
250
|
if ((_a = accessory.context.device) === null || _a === void 0 ? void 0 : _a.mac) {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
251
|
+
accessory.context.bound = false;
|
|
252
|
+
this.devices[accessory.context.device.mac] = accessory;
|
|
253
|
+
}
|
|
254
|
+
// clean all invalid accessories found in cache
|
|
255
|
+
if (!accessory.context) {
|
|
256
|
+
this.log.debug('Invalid accessory found in cache - deleting:', accessory.displayName, accessory.UUID);
|
|
257
|
+
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
|
|
200
258
|
}
|
|
201
259
|
}
|
|
202
260
|
/**
|
|
203
261
|
* Accessories must only be registered once, previously created accessories
|
|
204
262
|
* must not be registered again to prevent "duplicate UUID" errors.
|
|
205
263
|
*/
|
|
264
|
+
bindCallback() {
|
|
265
|
+
this.log.info(`${settings_1.PLATFORM_NAME} (${settings_1.PLUGIN_NAME}) v%s is running on UDP port %d`, version_1.version, this.socket.address().port);
|
|
266
|
+
this.socket.setBroadcast(true);
|
|
267
|
+
setInterval(() => {
|
|
268
|
+
this.broadcastScan();
|
|
269
|
+
}, (this.config.scanInterval || settings_1.DEF_SCAN_INTERVAL) * 1000); // scanInterval in seconds (default = 60 sec)
|
|
270
|
+
}
|
|
206
271
|
discoverDevices() {
|
|
207
|
-
if (this.config.port
|
|
208
|
-
this.config.port >=
|
|
209
|
-
this.socket.bind(this.config.port, () =>
|
|
210
|
-
this.log.info(`UDP server bind to port ${this.config.port}`);
|
|
211
|
-
this.socket.setBroadcast(true);
|
|
212
|
-
this.timer = setInterval(() => {
|
|
213
|
-
this.scanCount += 1;
|
|
214
|
-
if (this.scanCount > this.config.scanCount && this.timer) {
|
|
215
|
-
this.log.info('Scan finished.');
|
|
216
|
-
clearInterval(this.timer);
|
|
217
|
-
this.socket.close();
|
|
218
|
-
// remove accessories not found on network or not responsing to bind request
|
|
219
|
-
Object.entries(this.devices).forEach(([key, value]) => {
|
|
220
|
-
if (value && !value.context.bound && this.initializedDevices[value.UUID] &&
|
|
221
|
-
(value.context.deviceType === 'HeaterCooler' || value.context.deviceType === undefined)) {
|
|
222
|
-
this.log.warn('Warning: Device not bound: %s [%s -- %s:%s]', value.context.device.mac, value.displayName, value.context.device.address, value.context.device.port);
|
|
223
|
-
if (value.context.accessory_ts) {
|
|
224
|
-
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [value.context.accessory_ts]);
|
|
225
|
-
delete this.initializedDevices[value.context.accessory_ts.UUID];
|
|
226
|
-
delete this.devices[value.context.accessory_ts.context.device.mac + '_ts'];
|
|
227
|
-
}
|
|
228
|
-
this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [value]);
|
|
229
|
-
delete this.initializedDevices[value.UUID];
|
|
230
|
-
}
|
|
231
|
-
if (value && !this.initializedDevices[value.UUID]) {
|
|
232
|
-
this.log.debug('Cleanup -> Remove', value.displayName, key, value.UUID);
|
|
233
|
-
delete this.devices[key];
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
this.broadcastScan();
|
|
239
|
-
}
|
|
240
|
-
}, this.config.scanTimeout * 1000); // scanTimeout in seconds
|
|
241
|
-
});
|
|
272
|
+
if (this.config.port === undefined || (this.config.port !== undefined && typeof this.config.port === 'number' &&
|
|
273
|
+
this.config.port === this.config.port && this.config.port >= 1025 && this.config.port <= 65535)) {
|
|
274
|
+
this.socket.bind(this.config.port, undefined, () => this.bindCallback());
|
|
242
275
|
}
|
|
243
276
|
else {
|
|
244
|
-
this.log.
|
|
277
|
+
this.log.error('Error: Port is misconfigured (Valid port values: 1025~65535 or leave port empty to auto select)');
|
|
278
|
+
this.socket.close();
|
|
245
279
|
}
|
|
246
280
|
}
|
|
247
281
|
broadcastScan() {
|
|
248
282
|
const message = Buffer.from(JSON.stringify({ t: 'scan' }));
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
this.
|
|
253
|
-
|
|
283
|
+
Object.entries(this.pluginAddresses).forEach((value) => {
|
|
284
|
+
const addr = value[0];
|
|
285
|
+
this.socket.send(message, 0, message.length, settings_1.UDP_SCAN_PORT, addr, (error) => {
|
|
286
|
+
if (this.pluginAddresses[addr] === '255.255.255.255') {
|
|
287
|
+
this.log.debug(`Querying device '${message}' ${addr}:${settings_1.UDP_SCAN_PORT}`);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
this.log.debug(`Broadcasting '${message}' ${addr}:${settings_1.UDP_SCAN_PORT}`);
|
|
291
|
+
}
|
|
292
|
+
if (error) {
|
|
293
|
+
this.log.error('Device detection - Error:', error.message);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
254
296
|
});
|
|
255
297
|
}
|
|
298
|
+
getNetworkAddresses() {
|
|
299
|
+
this.log.debug('Checking network interfaces');
|
|
300
|
+
const pluginAddresses = {};
|
|
301
|
+
const allInterfaces = (0, os_1.networkInterfaces)();
|
|
302
|
+
for (const name of Object.keys(allInterfaces)) {
|
|
303
|
+
const nets = allInterfaces[name];
|
|
304
|
+
if (nets) {
|
|
305
|
+
for (const iface of nets) {
|
|
306
|
+
// Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses
|
|
307
|
+
const familyV4Value = typeof iface.family === 'string' ? 'IPv4' : 4;
|
|
308
|
+
if (iface.family === familyV4Value && !iface.internal) {
|
|
309
|
+
const addrParts = iface.address.split('.');
|
|
310
|
+
const netmaskParts = iface.netmask.split('.');
|
|
311
|
+
const broadcast = addrParts.map((e, i) => ((~Number(netmaskParts[i]) & 0xFF) | Number(e)).toString()).join('.');
|
|
312
|
+
this.log.debug('Interface: \'%s\' Address: %s Netmask: %s Broadcast: %s', name, iface.address, iface.netmask, broadcast);
|
|
313
|
+
if (pluginAddresses[broadcast] === undefined) {
|
|
314
|
+
pluginAddresses[broadcast] = iface.netmask;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
// Add IPs from configuration but only if at least one host address found
|
|
321
|
+
if (Object.keys(pluginAddresses).length > 0) {
|
|
322
|
+
const devcfgs = this.config.devices.filter((item) => item.ip && !item.disabled) || [];
|
|
323
|
+
devcfgs.forEach((value) => {
|
|
324
|
+
const ip = value['ip'];
|
|
325
|
+
const ipv4Pattern = /^(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})(\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})){3}$/;
|
|
326
|
+
if (ipv4Pattern.test(ip)) {
|
|
327
|
+
this.log.debug('Found AC Unit address in configuration:', ip);
|
|
328
|
+
const addrParts = ip.split('.');
|
|
329
|
+
const addresses = {};
|
|
330
|
+
Object.keys(pluginAddresses).forEach((addr) => {
|
|
331
|
+
const netmaskParts = pluginAddresses[addr].split('.');
|
|
332
|
+
const broadcast = addrParts.map((e, i) => ((~Number(netmaskParts[i]) & 0xFF) | Number(e)).toString()).join('.');
|
|
333
|
+
if (addr === broadcast) {
|
|
334
|
+
addresses[ip] = true;
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
const skipAddress = Object.keys(addresses).find((addr) => addr === ip);
|
|
338
|
+
if (skipAddress === undefined) {
|
|
339
|
+
pluginAddresses[ip] = '255.255.255.255';
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
this.log.debug('AC Unit (%s) is already on broadcast list - skipping', skipAddress);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
this.log.warn('Warning: Invalid IP address found in configuration: %s - skipping', ip);
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
return pluginAddresses;
|
|
351
|
+
}
|
|
256
352
|
}
|
|
257
353
|
exports.GreeACPlatform = GreeACPlatform;
|
|
258
354
|
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export declare class GreeAirConditioner {
|
|
|
21
21
|
private bound;
|
|
22
22
|
private status;
|
|
23
23
|
private updateTimer;
|
|
24
|
-
constructor(platform: GreeACPlatform, accessory: PlatformAccessory, deviceConfig: DeviceConfig, port: number, platform_ts: GreeAirConditionerTS);
|
|
24
|
+
constructor(platform: GreeACPlatform, accessory: PlatformAccessory, deviceConfig: DeviceConfig, port: number, platform_ts: GreeAirConditionerTS | null);
|
|
25
25
|
/**
|
|
26
26
|
* Handle "SET" requests from HomeKit
|
|
27
27
|
* These are sent when the user changes the state of an accessory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const commands_1 = __importDefault(require("./commands"));
|
|
|
15
15
|
*/
|
|
16
16
|
class GreeAirConditioner {
|
|
17
17
|
constructor(platform, accessory, deviceConfig, port, platform_ts) {
|
|
18
|
-
var _a, _b, _c;
|
|
18
|
+
var _a, _b, _c, _d;
|
|
19
19
|
this.platform = platform;
|
|
20
20
|
this.accessory = accessory;
|
|
21
21
|
this.deviceConfig = deviceConfig;
|
|
@@ -23,6 +23,7 @@ class GreeAirConditioner {
|
|
|
23
23
|
this.platform_ts = platform_ts;
|
|
24
24
|
// device communication functions
|
|
25
25
|
this.handleMessage = (msg, rinfo) => {
|
|
26
|
+
var _a;
|
|
26
27
|
if (this.accessory.context.device.address === rinfo.address) {
|
|
27
28
|
this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage -> %s`, msg.toString());
|
|
28
29
|
this.platform.log.debug(`[${this.getDeviceLabel()}] handleMessage -> Encryption version: %i`, this.accessory.context.device.encryptionVersion);
|
|
@@ -51,6 +52,7 @@ class GreeAirConditioner {
|
|
|
51
52
|
this.key = pack.key;
|
|
52
53
|
this.bound = true;
|
|
53
54
|
this.accessory.context.bound = true;
|
|
55
|
+
(_a = this.platform_ts) === null || _a === void 0 ? void 0 : _a.setBound(true);
|
|
54
56
|
this.platform.log.info(`[${this.getDeviceLabel()}] Device is bound -> ${pack.mac}`);
|
|
55
57
|
this.platform.log.debug(`[${this.getDeviceLabel()}] Device key -> ${this.key}`);
|
|
56
58
|
if (this.updateTimer) {
|
|
@@ -87,7 +89,10 @@ class GreeAirConditioner {
|
|
|
87
89
|
pack.opt.forEach((opt, i) => {
|
|
88
90
|
const value = pack.p !== undefined ? pack.p[i] : pack.val[i];
|
|
89
91
|
if (this.status[opt] !== value) {
|
|
90
|
-
|
|
92
|
+
const cmd = this.getKeyName(commands_1.default, opt, 'code');
|
|
93
|
+
const oldval = this.getKeyName(commands_1.default[cmd].value, this.status[opt]) || this.status[opt];
|
|
94
|
+
const newval = this.getKeyName(commands_1.default[cmd].value, value) || value;
|
|
95
|
+
updatedParams.push(`${cmd}: ${oldval} -> ${newval}`);
|
|
91
96
|
}
|
|
92
97
|
this.status[opt] = value;
|
|
93
98
|
});
|
|
@@ -104,23 +109,25 @@ class GreeAirConditioner {
|
|
|
104
109
|
}
|
|
105
110
|
};
|
|
106
111
|
this.accessory.context.bound = false;
|
|
112
|
+
(_a = this.platform_ts) === null || _a === void 0 ? void 0 : _a.setBound(false);
|
|
107
113
|
this.platform.log.debug(`[${this.getDeviceLabel()}] deviceConfig -> %j`, deviceConfig);
|
|
108
114
|
// set accessory information
|
|
109
115
|
this.accessory.getService(this.platform.Service.AccessoryInformation)
|
|
110
116
|
.setCharacteristic(this.platform.Characteristic.Manufacturer, this.accessory.context.device.brand || 'Gree')
|
|
111
|
-
.setCharacteristic(this.platform.Characteristic.Model, ((
|
|
117
|
+
.setCharacteristic(this.platform.Characteristic.Model, ((_b = this.deviceConfig) === null || _b === void 0 ? void 0 : _b.model) || this.accessory.context.device.model || this.accessory.context.device.name || 'Air Conditioner')
|
|
112
118
|
.setCharacteristic(this.platform.Characteristic.SerialNumber, this.accessory.context.device.mac)
|
|
113
119
|
.setCharacteristic(this.platform.Characteristic.FirmwareRevision, this.accessory.context.device.hid && this.accessory.context.device.hid.lastIndexOf('V') >= 0 &&
|
|
114
120
|
this.accessory.context.device.hid.lastIndexOf('V') < this.accessory.context.device.hid.lastIndexOf('.') ?
|
|
115
121
|
this.accessory.context.device.hid.substring(this.accessory.context.device.hid.lastIndexOf('V') + 1, this.accessory.context.device.hid.lastIndexOf('.')) : '1.0.0')
|
|
116
122
|
.setCharacteristic(this.platform.Characteristic.HardwareRevision, this.accessory.context.device.ver ?
|
|
117
|
-
this.accessory.context.device.ver.substring(this.accessory.context.device.ver.lastIndexOf('V') + 1) : '1.0.0')
|
|
123
|
+
this.accessory.context.device.ver.substring(this.accessory.context.device.ver.lastIndexOf('V') + 1) : '1.0.0')
|
|
124
|
+
.setCharacteristic(this.platform.Characteristic.Name, this.accessory.displayName);
|
|
118
125
|
// get the HeaterCooler service if it exists, otherwise create a new HeaterCooler service
|
|
119
126
|
// we don't use subtype because we add only one service with this type
|
|
120
127
|
this.HeaterCooler = this.accessory.getService(this.platform.Service.HeaterCooler) ||
|
|
121
128
|
this.accessory.addService(this.platform.Service.HeaterCooler, this.accessory.displayName, undefined);
|
|
122
129
|
this.HeaterCooler.displayName = this.accessory.displayName;
|
|
123
|
-
if (deviceConfig.temperatureSensor ===
|
|
130
|
+
if (deviceConfig.temperatureSensor === settings_1.TS_TYPE.child) {
|
|
124
131
|
this.platform.log.debug(`[${this.getDeviceLabel()}] Add Temperature Sensor child service`);
|
|
125
132
|
this.TemperatureSensor = this.accessory.getService(this.platform.Service.TemperatureSensor) ||
|
|
126
133
|
this.accessory.addService(this.platform.Service.TemperatureSensor, 'Temperature Sensor - ' + this.accessory.displayName, undefined);
|
|
@@ -135,7 +142,7 @@ class GreeAirConditioner {
|
|
|
135
142
|
}
|
|
136
143
|
}
|
|
137
144
|
this.HeaterCooler.setPrimaryService(true);
|
|
138
|
-
(
|
|
145
|
+
(_c = this.TemperatureSensor) === null || _c === void 0 ? void 0 : _c.setPrimaryService(false);
|
|
139
146
|
// each service must implement at-minimum the "required characteristics" for the given service type
|
|
140
147
|
// see https://developers.homebridge.io/#/service/HeaterCooler
|
|
141
148
|
// register handlers for the Active Characteristic
|
|
@@ -152,7 +159,7 @@ class GreeAirConditioner {
|
|
|
152
159
|
// register handlers for the Current Temperature Characteristic
|
|
153
160
|
this.HeaterCooler.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
|
|
154
161
|
.onGet(this.getCurrentTemperature.bind(this, 'Heater Cooler'));
|
|
155
|
-
(
|
|
162
|
+
(_d = this.TemperatureSensor) === null || _d === void 0 ? void 0 : _d.getCharacteristic(this.platform.Characteristic.CurrentTemperature).onGet(this.getCurrentTemperature.bind(this, 'Temperature Sensor'));
|
|
156
163
|
// register handlers for the Cooling Threshold Temperature Characteristic
|
|
157
164
|
// (minValue and maxValue can't be set here, they need an active accessory in cooling sate to set)
|
|
158
165
|
this.HeaterCooler.getCharacteristic(this.platform.Characteristic.CoolingThresholdTemperature)
|
|
@@ -190,7 +197,11 @@ class GreeAirConditioner {
|
|
|
190
197
|
this.platform.log.error(`[${this.getDeviceLabel()}] Network - Error:`, err.message);
|
|
191
198
|
});
|
|
192
199
|
this.socket.on('message', this.handleMessage);
|
|
193
|
-
this.socket.
|
|
200
|
+
this.socket.on('close', () => {
|
|
201
|
+
this.platform.log.error(`[${this.getDeviceLabel()}] Network - Connection closed`);
|
|
202
|
+
});
|
|
203
|
+
this.socket.bind(this.deviceConfig.port, undefined, () => {
|
|
204
|
+
this.platform.log.info(`[${this.getDeviceLabel()}] Device handler is listening on UDP port %d`, this.socket.address().port);
|
|
194
205
|
this.socket.setBroadcast(false);
|
|
195
206
|
this.sendBindRequest();
|
|
196
207
|
});
|
|
@@ -455,6 +466,7 @@ class GreeAirConditioner {
|
|
|
455
466
|
}
|
|
456
467
|
break;
|
|
457
468
|
}
|
|
469
|
+
this.platform.api.updatePlatformAccessories([this.accessory]);
|
|
458
470
|
}
|
|
459
471
|
getDeviceLabel() {
|
|
460
472
|
return `${this.accessory.displayName} -- ${this.accessory.context.device.address}:${this.accessory.context.device.port}`;
|
|
@@ -467,24 +479,26 @@ class GreeAirConditioner {
|
|
|
467
479
|
}
|
|
468
480
|
getKeyName(obj, value, subkey) {
|
|
469
481
|
let name = '';
|
|
470
|
-
if (
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
482
|
+
if (obj !== undefined) {
|
|
483
|
+
if (subkey === undefined) {
|
|
484
|
+
Object.entries(obj).find(([key, val]) => {
|
|
485
|
+
if (val === value) {
|
|
486
|
+
name = key;
|
|
487
|
+
return true;
|
|
488
|
+
}
|
|
489
|
+
return false;
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
Object.entries(obj).find(([key, val]) => {
|
|
494
|
+
const v = val;
|
|
495
|
+
if (v[subkey] === value) {
|
|
496
|
+
name = key;
|
|
497
|
+
return true;
|
|
498
|
+
}
|
|
499
|
+
return false;
|
|
500
|
+
});
|
|
501
|
+
}
|
|
488
502
|
}
|
|
489
503
|
return name;
|
|
490
504
|
}
|