homebridge-plejd 1.1.8 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
+ import { PlejdPlatformAccessoryHandler } from './plejdPlatformAccessory';
2
3
  import { UserInputConfig } from './model';
3
4
  import { PlejdService } from './plejdService';
4
5
  export declare class PlejdPlatform implements DynamicPlatformPlugin {
@@ -10,14 +11,15 @@ export declare class PlejdPlatform implements DynamicPlatformPlugin {
10
11
  readonly userInputConfig: UserInputConfig;
11
12
  readonly plejdService: PlejdService;
12
13
  readonly accessories: PlatformAccessory[];
14
+ readonly plejdHandlers: PlejdPlatformAccessoryHandler[];
13
15
  constructor(log: Logger, config: PlatformConfig, api: API);
14
16
  /**
15
17
  * This function is invoked when homebridge restores cached accessories from disk at startup.
16
18
  * It should be used to setup event handlers for characteristics and update respective values.
17
19
  */
18
- configureAccessory(accessory: PlatformAccessory): void;
19
- discoverDevices(): void;
20
- onPlejdUpdates(identifier: number, isOn: boolean, dim?: number): void;
20
+ configureAccessory: (accessory: PlatformAccessory) => void;
21
+ discoverDevices: () => void;
22
+ onPlejdUpdates: (identifier: number, isOn: boolean, brightness?: number | undefined) => void;
21
23
  private generateId;
22
24
  }
23
25
  //# sourceMappingURL=plejdPlatform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatform.d.ts","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5H,OAAO,EAAU,eAAe,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,aAAc,YAAW,qBAAqB;aAWvC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAZ1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpF,SAAgB,eAAe,EAAG,eAAe,CAAC;IAElD,SAAgB,YAAY,EAAE,YAAY,CAAC;IAG3C,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;gBAGpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAqB1B;;;KAGC;IACD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAK/C,eAAe;IAuBf,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM;IAyB9D,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"plejdPlatform.d.ts","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5H,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAU,eAAe,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,aAAc,YAAW,qBAAqB;aAcvC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpF,SAAgB,eAAe,EAAG,eAAe,CAAC;IAGlD,SAAgB,YAAY,EAAE,YAAY,CAAC;IAG3C,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,SAAgB,aAAa,EAAE,6BAA6B,EAAE,CAAM;gBAGlD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAqB1B;;;KAGC;IACD,kBAAkB,cAAe,iBAAiB,UAGhD;IAEF,eAAe,aAqBb;IAEF,cAAc,eAAgB,MAAM,QAAQ,OAAO,2CAwCjD;IAEF,OAAO,CAAC,UAAU,CAEhB;CACH"}
@@ -14,77 +14,90 @@ class PlejdPlatform {
14
14
  this.Characteristic = this.api.hap.Characteristic;
15
15
  // this is used to track restored cached accessories
16
16
  this.accessories = [];
17
+ this.plejdHandlers = [];
18
+ /**
19
+ * This function is invoked when homebridge restores cached accessories from disk at startup.
20
+ * It should be used to setup event handlers for characteristics and update respective values.
21
+ */
22
+ this.configureAccessory = (accessory) => {
23
+ this.log.info('Loading accessory from cache | ', accessory.displayName);
24
+ this.accessories.push(accessory);
25
+ };
26
+ this.discoverDevices = () => {
27
+ const units = this.userInputConfig.devices.map(x => x.uuid);
28
+ const notRegistered = this.accessories.filter(ac => !units.includes(ac.UUID));
29
+ if (notRegistered.length > 0) {
30
+ this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, notRegistered);
31
+ }
32
+ for (const device of this.userInputConfig.devices) {
33
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === device.uuid);
34
+ if (existingAccessory) {
35
+ this.plejdHandlers.push(new plejdPlatformAccessory_1.PlejdPlatformAccessoryHandler(this, existingAccessory, device));
36
+ }
37
+ else {
38
+ this.log.info('Adding new accessory |', device.name);
39
+ const accessory = new this.api.platformAccessory(device.name, device.uuid);
40
+ accessory.context.device = device;
41
+ // See above.
42
+ this.plejdHandlers.push(new plejdPlatformAccessory_1.PlejdPlatformAccessoryHandler(this, accessory, device));
43
+ // link the accessory to your platform
44
+ this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
45
+ }
46
+ }
47
+ };
48
+ this.onPlejdUpdates = (identifier, isOn, brightness) => {
49
+ var _a, _b, _c;
50
+ const uuid = (_a = this.userInputConfig.devices.find(d => d.identifier === identifier)) === null || _a === void 0 ? void 0 : _a.uuid;
51
+ if (uuid === undefined) {
52
+ this.log.warn(`Got updates on a device with identifier ${identifier} but it is not registered in HB settings`);
53
+ return;
54
+ }
55
+ const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
56
+ const device = this.userInputConfig.devices.find(dev => dev.identifier === identifier);
57
+ const plejdHandler = this.plejdHandlers.find(dev => dev.device.identifier === identifier);
58
+ if (existingAccessory && device && plejdHandler) {
59
+ if (device.isDimmer) {
60
+ const ser = existingAccessory.getService(this.Service.Lightbulb);
61
+ if (!ser) {
62
+ this.log.warn('Unable to get service');
63
+ }
64
+ const on = ser === null || ser === void 0 ? void 0 : ser.getCharacteristic(this.Characteristic.On);
65
+ if (!on) {
66
+ this.log.warn('Unable to get Characteristic [On]');
67
+ }
68
+ on === null || on === void 0 ? void 0 : on.updateValue(isOn);
69
+ if (brightness !== undefined) {
70
+ ser === null || ser === void 0 ? void 0 : ser.getCharacteristic(this.Characteristic.Brightness).updateValue(brightness);
71
+ }
72
+ }
73
+ else {
74
+ (_c = (_b = existingAccessory.getService(this.Service.Switch)) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.Characteristic.On)) === null || _c === void 0 ? void 0 : _c.updateValue(isOn);
75
+ }
76
+ plejdHandler.updateState(isOn, brightness);
77
+ }
78
+ else {
79
+ this.log.warn('Unable find device associated with update.');
80
+ }
81
+ };
82
+ this.generateId = (input) => {
83
+ return this.api.hap.uuid.generate(input);
84
+ };
17
85
  this.log.debug('Finished initializing platform:', this.config.platform);
18
86
  // Update this to have it computed.
19
- const devs = config['devices'];
20
- for (let i = 0; i < devs.length; i++) {
21
- devs[i].isDimmer = settings_1.PLEJD_LIGHTS.includes((devs[i].model));
22
- devs[i].uuid = this.generateId(devs[i].identifier.toString());
87
+ const devices = config['devices'];
88
+ for (let i = 0; i < devices.length; i++) {
89
+ devices[i].isDimmer = settings_1.PLEJD_LIGHTS.includes((devices[i].model));
90
+ devices[i].uuid = this.generateId(devices[i].identifier.toString());
23
91
  }
24
92
  const cryptoKey = Buffer.from(((_a = config['crypto_key']) !== null && _a !== void 0 ? _a : config['key']).replace(/-/g, ''), 'hex');
25
93
  this.userInputConfig = {
26
- devices: devs,
94
+ devices: devices,
27
95
  cryptoKey: cryptoKey,
28
96
  };
29
97
  this.log.debug('UserConfig: ', this.userInputConfig);
30
98
  this.plejdService = new plejdService_1.PlejdService(this.userInputConfig, log, this.onPlejdUpdates.bind(this));
31
99
  this.api.on('didFinishLaunching', () => this.discoverDevices());
32
100
  }
33
- /**
34
- * This function is invoked when homebridge restores cached accessories from disk at startup.
35
- * It should be used to setup event handlers for characteristics and update respective values.
36
- */
37
- configureAccessory(accessory) {
38
- this.log.info('Loading accessory from cache | ', accessory.displayName);
39
- this.accessories.push(accessory);
40
- }
41
- discoverDevices() {
42
- const units = this.userInputConfig.devices.map(x => x.uuid);
43
- const notRegistered = this.accessories.filter(ac => !units.includes(ac.UUID));
44
- if (notRegistered.length > 0) {
45
- this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, notRegistered);
46
- }
47
- for (const device of this.userInputConfig.devices) {
48
- const existingAccessory = this.accessories.find(accessory => accessory.UUID === device.uuid);
49
- if (existingAccessory) {
50
- new plejdPlatformAccessory_1.PlejdPlatformAccessory(this, existingAccessory, device);
51
- }
52
- else {
53
- this.log.info('Adding new accessory |', device.name);
54
- const accessory = new this.api.platformAccessory(device.name, device.uuid);
55
- accessory.context.device = device;
56
- // See above.
57
- new plejdPlatformAccessory_1.PlejdPlatformAccessory(this, accessory, device);
58
- // link the accessory to your platform
59
- this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
60
- }
61
- }
62
- }
63
- onPlejdUpdates(identifier, isOn, dim) {
64
- var _a, _b, _c, _d;
65
- const uuid = (_a = this.userInputConfig.devices.find(d => d.identifier === identifier)) === null || _a === void 0 ? void 0 : _a.uuid;
66
- if (uuid === undefined) {
67
- this.log.warn(`Got updates on a device with identifier ${identifier} but it is not registered in HB settings`);
68
- return;
69
- }
70
- const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
71
- const device = this.userInputConfig.devices.find(dev => dev.identifier === identifier);
72
- if (existingAccessory && device) {
73
- if (device.isDimmer) {
74
- const ser = existingAccessory.getService(this.Service.Lightbulb);
75
- (_b = ser === null || ser === void 0 ? void 0 : ser.getCharacteristic(this.Characteristic.On)) === null || _b === void 0 ? void 0 : _b.updateValue(isOn);
76
- if (dim !== undefined) {
77
- ser === null || ser === void 0 ? void 0 : ser.getCharacteristic(this.Characteristic.Brightness).updateValue(dim);
78
- }
79
- }
80
- else {
81
- (_d = (_c = existingAccessory.getService(this.Service.Switch)) === null || _c === void 0 ? void 0 : _c.getCharacteristic(this.Characteristic.On)) === null || _d === void 0 ? void 0 : _d.updateValue(isOn);
82
- }
83
- }
84
- }
85
- generateId(input) {
86
- return this.api.hap.uuid.generate(input);
87
- }
88
101
  }
89
102
  exports.PlejdPlatform = PlejdPlatform;
90
103
  //# sourceMappingURL=plejdPlatform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatform.js","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plejdPlatform.js","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,22 @@
1
- import { PlatformAccessory, CharacteristicValue } from 'homebridge';
1
+ import { PlatformAccessory } from 'homebridge';
2
2
  import { Device } from './model';
3
3
  import { PlejdPlatform } from './plejdPlatform';
4
- interface DeviceState {
5
- isOn: boolean;
6
- brightness: number;
7
- }
8
4
  /**
9
5
  * Platform Accessory
10
6
  * An instance of this class is created for each accessory your platform registers
11
7
  * Each accessory may expose multiple services of different service types.
12
8
  */
13
- export declare class PlejdPlatformAccessory {
9
+ export declare class PlejdPlatformAccessoryHandler {
14
10
  private readonly platform;
15
11
  private readonly accessory;
16
- private readonly device;
12
+ readonly device: Device;
17
13
  private service;
18
14
  private state;
19
- private cachePath;
20
15
  constructor(platform: PlejdPlatform, accessory: PlatformAccessory, device: Device);
21
- setOn(value: CharacteristicValue): Promise<void>;
22
- getOn(): Promise<CharacteristicValue>;
23
- setBrightness(value: CharacteristicValue): Promise<void>;
24
- getBrightness(): Promise<CharacteristicValue>;
25
- updateStoredStateCache(): void;
26
- getStoredStateCache(): DeviceState;
16
+ updateState: (isOn: boolean, brightness?: number | undefined) => void;
17
+ private setOn;
18
+ private getOn;
19
+ private setBrightness;
20
+ private getBrightness;
27
21
  }
28
- export {};
29
22
  //# sourceMappingURL=plejdPlatformAccessory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatformAccessory.d.ts","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IAM/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAGP,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM;IA6C3B,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAShC,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAMrC,aAAa,CAAC,KAAK,EAAE,mBAAmB;IASxC,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKnD,sBAAsB;IAUtB,mBAAmB,IAAI,WAAW;CAGnC"}
1
+ {"version":3,"file":"plejdPlatformAccessory.d.ts","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAuB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;GAIG;AACH,qBAAa,6BAA6B;IAKtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,MAAM,EAAE,MAAM;IANhC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAc;gBAGR,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM;IAoChC,WAAW,SAAU,OAAO,2CAe1B;IAEF,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,KAAK,CAGX;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,aAAa,CAGnB;CACH"}
@@ -1,31 +1,57 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlejdPlatformAccessory = void 0;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
3
+ exports.PlejdPlatformAccessoryHandler = void 0;
6
4
  const settings_1 = require("./settings");
7
5
  /**
8
6
  * Platform Accessory
9
7
  * An instance of this class is created for each accessory your platform registers
10
8
  * Each accessory may expose multiple services of different service types.
11
9
  */
12
- class PlejdPlatformAccessory {
10
+ class PlejdPlatformAccessoryHandler {
13
11
  constructor(platform, accessory, device) {
12
+ var _a, _b;
14
13
  this.platform = platform;
15
14
  this.accessory = accessory;
16
15
  this.device = device;
16
+ this.updateState = (isOn, brightness) => {
17
+ this.state.isOn = isOn;
18
+ this.platform.log.debug('updateState | Sending isOn', isOn);
19
+ this.service.getCharacteristic(this.platform.Characteristic.On)
20
+ .updateValue(isOn);
21
+ if (brightness) {
22
+ this.state.brightness = Math.round(brightness);
23
+ this.platform.log.debug('update state | Sending brightness', this.state.brightness);
24
+ this.service.getCharacteristic(this.platform.Characteristic.Brightness)
25
+ .updateValue(this.state.brightness);
26
+ }
27
+ this.accessory.context = this.state;
28
+ this.platform.log.debug(`State updated | ${JSON.stringify(this.state)}`);
29
+ };
30
+ this.setOn = async (value) => {
31
+ const newVal = value;
32
+ this.platform.log.info(`Updating state | ${this.device.name} | to ${newVal ? 'On' : 'off'} | from ${this.state.isOn ? 'On' : 'Off'}`);
33
+ this.updateState(newVal, this.state.brightness);
34
+ this.platform.plejdService.updateState(this.device.identifier, newVal, null);
35
+ };
36
+ this.getOn = async () => {
37
+ this.platform.log.debug('Get Characteristic On', this.device.name, this.state.isOn);
38
+ return this.state.isOn;
39
+ };
40
+ this.setBrightness = async (value) => {
41
+ const newVal = value; // Number between 1-100
42
+ this.platform.log.debug(`Updating brightness | ${this.device.name} | to ${newVal} | from ${this.state.brightness}`);
43
+ this.updateState(this.state.isOn, newVal);
44
+ this.platform.plejdService.updateState(this.device.identifier, this.state.isOn, newVal);
45
+ };
46
+ this.getBrightness = async () => {
47
+ this.platform.log.debug('Get Characteristic Brightness', this.device.name, this.state.brightness);
48
+ return this.state.brightness;
49
+ };
17
50
  platform.log.debug(`Adding handler for a ${this.device.model} with id ${this.device.identifier}`);
18
- const dirPath = (0, path_1.join)(platform.api.user.storagePath(), 'plugin-persist', 'plejd-cache');
19
- if (!(0, fs_1.existsSync)(dirPath)) {
20
- (0, fs_1.mkdir)(dirPath, { recursive: true }, (err) => {
21
- if (err) {
22
- this.platform.log.warn('Unable to create storage path |', err);
23
- }
24
- });
25
- }
26
- this.cachePath = (0, path_1.join)(dirPath, `${device.identifier}.json`);
27
- this.state = this.getStoredStateCache();
28
- this.updateStoredStateCache();
51
+ this.state = {
52
+ brightness: (_a = accessory.context.brightness) !== null && _a !== void 0 ? _a : 100,
53
+ isOn: (_b = accessory.context.isOn) !== null && _b !== void 0 ? _b : false,
54
+ };
29
55
  // set accessory information
30
56
  this.accessory.getService(this.platform.Service.AccessoryInformation)
31
57
  .setCharacteristic(this.platform.Characteristic.Manufacturer, settings_1.PLATFORM_NAME)
@@ -49,43 +75,6 @@ class PlejdPlatformAccessory {
49
75
  .onGet(this.getOn.bind(this));
50
76
  this.service.setCharacteristic(this.platform.Characteristic.Name, this.device.name);
51
77
  }
52
- async setOn(value) {
53
- const oldVal = this.state.isOn;
54
- const newVal = value;
55
- this.state.isOn = newVal;
56
- this.updateStoredStateCache();
57
- this.platform.log.info(`Updating state | ${this.device.name} | to ${newVal ? 'On' : 'off'} | from ${oldVal ? 'On' : 'Off'}`);
58
- this.platform.plejdService.updateState(this.device.identifier, newVal, null);
59
- }
60
- async getOn() {
61
- this.platform.log.debug('Get Characteristic On', this.device.name, this.state.isOn);
62
- // this.platform.plejdService.getState(this.device.identifier);
63
- return this.state.isOn;
64
- }
65
- async setBrightness(value) {
66
- const oldValue = this.state.brightness;
67
- const newVal = value; // Number between 1-100
68
- this.state.brightness = newVal;
69
- this.updateStoredStateCache();
70
- this.platform.log.info(`Updating brightness | ${this.device.name} | to ${newVal} | from ${oldValue}`);
71
- this.platform.plejdService.updateState(this.device.identifier, this.state.isOn, newVal);
72
- }
73
- async getBrightness() {
74
- this.platform.log.debug('Get Characteristic Brightness', this.device.name, this.state.brightness);
75
- return this.state.brightness;
76
- }
77
- updateStoredStateCache() {
78
- if (this.state) {
79
- (0, fs_1.writeFile)(this.cachePath, JSON.stringify(this.state), 'utf-8', (err) => {
80
- if (err) {
81
- this.platform.log.warn('Unable to write cache file.');
82
- }
83
- });
84
- }
85
- }
86
- getStoredStateCache() {
87
- return (0, fs_1.existsSync)(this.cachePath) ? JSON.parse((0, fs_1.readFileSync)(this.cachePath, 'utf-8')) : { brightness: 100, isOn: false };
88
- }
89
78
  }
90
- exports.PlejdPlatformAccessory = PlejdPlatformAccessory;
79
+ exports.PlejdPlatformAccessoryHandler = PlejdPlatformAccessoryHandler;
91
80
  //# sourceMappingURL=plejdPlatformAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatformAccessory.js","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plejdPlatformAccessory.js","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,11 @@ export declare class PlejdService {
5
5
  readonly log: Logger;
6
6
  private readonly onUpdate;
7
7
  private connectedPeripheral;
8
+ private addressBuffer;
9
+ private dataCharacteristic;
8
10
  private pingIndex;
9
11
  constructor(config: UserInputConfig, log: Logger, onUpdate: (identifier: number, isOn: boolean, dim?: number) => void);
10
- updateState(identifier: number, isOn: boolean, brightness: number | null): void;
11
- getState(identifier: number): void;
12
+ updateState: (identifier: number, isOn: boolean, brightness: number | null) => void;
12
13
  private stateChange;
13
14
  private startConnection;
14
15
  private discover;
@@ -20,7 +21,5 @@ export declare class PlejdService {
20
21
  private disconnect;
21
22
  private gotData;
22
23
  private plejdWrite;
23
- private addressBuffer;
24
- private dataCharacteristic;
25
24
  }
26
25
  //# sourceMappingURL=plejdService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdService.d.ts","sourceRoot":"","sources":["../src/plejdService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8B1C,qBAAa,YAAY;IAKjB,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,GAAG,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN/B,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,SAAS,CAAgB;gBAGV,MAAM,EAAE,eAAe,EACxB,GAAG,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI;IAS1F,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAyBxE,QAAQ,CAAC,UAAU,EAAE,MAAM;IA2B3B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,OAAO;IA6Cf,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"plejdService.d.ts","sourceRoot":"","sources":["../src/plejdService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgC1C,qBAAa,YAAY;IAOrB,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,GAAG,EAAE,MAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,SAAS,CAAgB;gBAGd,MAAM,EAAE,eAAe,EACxB,GAAG,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI;IAWtF,WAAW,eAAgB,MAAM,QAAQ,OAAO,cAAc,MAAM,GAAG,IAAI,UAqBzE;IAGF,OAAO,CAAC,WAAW,CAOjB;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,QAAQ,CAad;IAEF,OAAO,CAAC,mBAAmB,CA+BzB;IAEF,OAAO,CAAC,UAAU,CAuBhB;IAEF,OAAO,CAAC,SAAS,CAyBf;IAEF,OAAO,CAAC,cAAc,CAiBpB;IAEF,OAAO,CAAC,SAAS,CAwBf;IAEF,OAAO,CAAC,UAAU,CAuBhB;IAEF,OAAO,CAAC,OAAO,CAiDb;IAEF,OAAO,CAAC,UAAU,CAOhB;CACH"}
@@ -14,6 +14,7 @@ const NOBLE_IS_POWER_ON = 'poweredOn';
14
14
  var PlejdCharacteristics;
15
15
  (function (PlejdCharacteristics) {
16
16
  PlejdCharacteristics["Service"] = "31ba000160854726be45040c957391b5";
17
+ PlejdCharacteristics["LightLevel"] = "31ba000360854726be45040c957391b5";
17
18
  PlejdCharacteristics["Data"] = "31ba000460854726be45040c957391b5";
18
19
  PlejdCharacteristics["LastData"] = "31ba000560854726be45040c957391b5";
19
20
  PlejdCharacteristics["Auth"] = "31ba000960854726be45040c957391b5";
@@ -21,271 +22,258 @@ var PlejdCharacteristics;
21
22
  })(PlejdCharacteristics || (PlejdCharacteristics = {}));
22
23
  var PlejdCommand;
23
24
  (function (PlejdCommand) {
24
- PlejdCommand["StateOnOff"] = "0097";
25
- PlejdCommand["StateDim"] = "00c8";
26
- PlejdCommand["Dim"] = "0098";
25
+ PlejdCommand["UpdateState"] = "0097";
26
+ PlejdCommand["StateBrightness"] = "00c8";
27
+ PlejdCommand["Brightness"] = "0098";
27
28
  PlejdCommand["Time"] = "001b";
28
29
  PlejdCommand["Scene"] = "0021";
29
30
  PlejdCommand["RequestResponse"] = "0102";
30
31
  PlejdCommand["RequestNoResponse"] = "0110";
31
32
  PlejdCommand["RequestReadValue"] = "0103";
33
+ PlejdCommand["ButtonClick"] = "1006";
32
34
  })(PlejdCommand || (PlejdCommand = {}));
33
35
  class PlejdService {
34
36
  constructor(config, log, onUpdate) {
35
37
  this.config = config;
36
38
  this.log = log;
37
39
  this.onUpdate = onUpdate;
38
- this.connectedPeripheral = null;
39
- noble_1.default.on('stateChange', (state) => this.stateChange(state));
40
- noble_1.default.on('warning', (msg) => this.log.warn('Noble warning: ', msg));
41
- }
42
- /// Brightness should be between 1-100
43
- updateState(identifier, isOn, brightness) {
44
- const char = this.dataCharacteristic();
45
- const addr = this.addressBuffer();
46
- if (!char || !addr) {
47
- this.log.warn(`UpdateState | characteristic (${char}) or address (${addr}) not found`);
48
- return;
49
- }
50
- const dimming = brightness !== null;
51
- const command = (isOn && dimming) ? PlejdCommand.Dim : PlejdCommand.StateOnOff;
52
- const on = isOn ? '01' : '00';
53
- let payload = Buffer.from((identifier).toString(16).padStart(2, '0') + PlejdCommand.RequestNoResponse + command + on, 'hex');
54
- if (dimming) {
55
- const dim = Math.round((2.55 * brightness)); // Convert to Plejd 0-255
56
- this.log.debug(`Dim value sent over BLE ${dim}`);
57
- payload = Buffer.concat([payload, Buffer.from(dim.toString(16).padStart(4, '0'), 'hex')]);
58
- }
59
- const data = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, addr, payload);
60
- this.plejdWrite(char, data);
61
- }
62
- /// WIP, does not work.
63
- getState(identifier) {
64
- const char = this.dataCharacteristic();
65
- const addr = this.addressBuffer();
66
- if (!char || !addr) {
67
- this.log.warn(`GetState | characteristic (${char}) or address (${addr}) not found`);
68
- return;
69
- }
70
- const payload = Buffer.from((identifier)
71
- .toString(16)
72
- .padStart(2, '0') + PlejdCommand.RequestResponse + PlejdCommand.StateOnOff, 'hex');
73
- const data = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, addr, payload);
74
- this.plejdWrite(char, data);
75
- char.read((err, data) => {
76
- const decodedData = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, addr, data);
77
- const id = parseInt(decodedData[0].toString(), 10);
78
- const command = decodedData.toString('hex', 3, 5);
79
- const isOn = parseInt(decodedData.toString('hex', 5, 6), 10) === 1;
80
- this.log.debug(`getState | id: ${id} | command: ${command} | arg: ${isOn} | err ${err}`);
81
- });
82
- }
83
- // -------------- Private -------------- \\
84
- stateChange(state) {
85
- if (state !== NOBLE_IS_POWER_ON) {
86
- this.log.debug('stateChange | Stopped | ' + state);
87
- noble_1.default.stopScanning();
88
- }
89
- this.log.debug('stateChange | Started | ' + state);
90
- this.startConnection();
91
- }
92
- startConnection() {
93
- if (noble_1.default.state === NOBLE_IS_POWER_ON) {
94
- noble_1.default.startScanning([PlejdCharacteristics.Service], false);
95
- noble_1.default.once('discover', (peripheral) => this.discover(peripheral));
96
- }
97
- }
98
- discover(peripheral) {
99
- this.log.info(`Discovered | ${peripheral.advertisement.localName} | addr: ${peripheral.address} | RSSI: ${peripheral.rssi} dB`);
100
- noble_1.default.stopScanning();
101
- peripheral.connect((error) => {
102
- if (error) {
103
- this.log.error(`Connecting failed | ${peripheral.advertisement.localName} | addr: ${peripheral.address}) - err: ${error}`);
40
+ /// Brightness should be between 1-100
41
+ this.updateState = (identifier, isOn, brightness) => {
42
+ if (!this.dataCharacteristic || !this.addressBuffer) {
43
+ this.log.warn(`UpdateState | characteristic (${this.dataCharacteristic}) or address (${this.addressBuffer}) not found`);
104
44
  return;
105
45
  }
106
- this.connectToPeripheral(peripheral);
107
- });
108
- }
109
- connectToPeripheral(peripheral) {
110
- this.log.info(`Connected | ${peripheral.advertisement.localName} (addr: ${peripheral.address})`);
111
- this.connectedPeripheral = peripheral;
112
- const services = [PlejdCharacteristics.Service];
113
- const characteristics = [
114
- PlejdCharacteristics.Data,
115
- PlejdCharacteristics.LastData,
116
- PlejdCharacteristics.Auth,
117
- PlejdCharacteristics.Ping
118
- ];
119
- peripheral.discoverSomeServicesAndCharacteristics(services, characteristics, (error, services, characteristics) => {
120
- if (error) {
121
- this.log.error(`Discover failed | ${peripheral.advertisement.localName} (${peripheral.address}) | ${error}`);
122
- return;
46
+ const dimming = brightness !== null;
47
+ const command = (isOn && dimming) ? PlejdCommand.Brightness : PlejdCommand.UpdateState;
48
+ const on = isOn ? '01' : '00';
49
+ let payload = Buffer.from((identifier).toString(16).padStart(2, '0') + PlejdCommand.RequestNoResponse + command + on, 'hex');
50
+ if (dimming) {
51
+ const dim = Math.round((2.55 * brightness)); // Convert to Plejd 0-255
52
+ this.log.debug(`Dim value sent over BLE ${dim}`);
53
+ payload = Buffer.concat([payload, Buffer.from(dim.toString(16).padStart(4, '0'), 'hex')]);
123
54
  }
124
- this.discovered(peripheral, services, characteristics);
125
- });
126
- this.log.debug('Connected | Peripheral |', peripheral);
127
- peripheral.once('disconnect', () => {
128
- this.log.info('Peripheral disconnected');
129
- this.connectedPeripheral = null;
130
- });
131
- }
132
- discovered(peripheral, services, characteristics) {
133
- const authChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.Auth);
134
- const lastDataChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.LastData);
135
- const pingChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.Ping);
136
- if (!authChar || !lastDataChar || !pingChar) {
137
- this.log.error('Unable to extract characteristic during discovery', authChar, lastDataChar, pingChar);
138
- return;
139
- }
140
- this.plejdAuth(authChar, () => {
141
- this.startPlejdPing(pingChar);
142
- lastDataChar.subscribe((error) => {
55
+ this.log.debug('UpdateState:', this.config.cryptoKey, this.addressBuffer, payload);
56
+ const data = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, this.addressBuffer, payload);
57
+ this.plejdWrite(this.dataCharacteristic, data);
58
+ };
59
+ // -------------- Private -------------- \\
60
+ this.stateChange = (state) => {
61
+ if (state !== NOBLE_IS_POWER_ON) {
62
+ this.log.debug('stateChange | Stopped | ' + state);
63
+ noble_1.default.stopScanning();
64
+ }
65
+ this.log.debug('stateChange | Started | ' + state);
66
+ this.startConnection();
67
+ };
68
+ this.startConnection = () => {
69
+ if (noble_1.default.state === NOBLE_IS_POWER_ON) {
70
+ noble_1.default.startScanning([PlejdCharacteristics.Service], false);
71
+ noble_1.default.once('discover', (peripheral) => this.discover(peripheral));
72
+ }
73
+ };
74
+ this.discover = (peripheral) => {
75
+ this.log.info(`Discovered | ${peripheral.advertisement.localName} | addr: ${peripheral.address} | RSSI: ${peripheral.rssi} dB`);
76
+ noble_1.default.stopScanning();
77
+ peripheral.connect((error) => {
143
78
  if (error) {
144
- this.log.error('Error subscribing | ' + error);
79
+ this.log.error(`Connecting failed | ${peripheral.advertisement.localName} | addr: ${peripheral.address}) - err: ${error}`);
80
+ // TODO, restart discover
145
81
  return;
146
82
  }
147
- lastDataChar.on('data', (data, isNotification) => this.gotData(data, isNotification));
83
+ this.connectToPeripheral(peripheral);
148
84
  });
149
- });
150
- }
151
- plejdAuth(authChar, callback) {
152
- authChar.write(Buffer.from([0x00]), false, (error) => {
153
- if (error) {
154
- this.log.error('Error writing auth start | ' + error);
85
+ };
86
+ this.connectToPeripheral = (peripheral) => {
87
+ this.log.info(`Connected | ${peripheral.advertisement.localName} (addr: ${peripheral.address})`);
88
+ this.connectedPeripheral = peripheral;
89
+ this.addressBuffer = (0, plejdUtils_1.reverseBuffer)(Buffer.from(String(peripheral.address).replace(/:/g, ''), 'hex'));
90
+ const services = [PlejdCharacteristics.Service];
91
+ const characteristics = [
92
+ PlejdCharacteristics.Data,
93
+ PlejdCharacteristics.LastData,
94
+ PlejdCharacteristics.Auth,
95
+ PlejdCharacteristics.Ping
96
+ ];
97
+ peripheral.discoverSomeServicesAndCharacteristics(services, characteristics, (error, services, characteristics) => {
98
+ if (error) {
99
+ this.log.error(`Discover failed | ${peripheral.advertisement.localName} (${peripheral.address}) | ${error}`);
100
+ return;
101
+ }
102
+ this.discovered(peripheral, services, characteristics);
103
+ });
104
+ peripheral.once('disconnect', () => {
105
+ this.log.info('Peripheral disconnected');
106
+ this.addressBuffer = null;
107
+ this.dataCharacteristic = null;
108
+ this.connectedPeripheral = null;
109
+ peripheral.connectAsync();
110
+ });
111
+ };
112
+ this.discovered = (peripheral, services, characteristics) => {
113
+ var _a, _b, _c;
114
+ const authChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.Auth);
115
+ const lastDataChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.LastData);
116
+ const pingChar = characteristics.find((char) => char.uuid === PlejdCharacteristics.Ping);
117
+ this.dataCharacteristic = (_c = (_b = (_a = peripheral === null || peripheral === void 0 ? void 0 : peripheral.services[0]) === null || _a === void 0 ? void 0 : _a.characteristics) === null || _b === void 0 ? void 0 : _b.find((char) => char.uuid === PlejdCharacteristics.Data)) !== null && _c !== void 0 ? _c : null;
118
+ if (!authChar || !lastDataChar || !pingChar) {
119
+ this.log.error('Unable to extract characteristic during discovery', authChar, lastDataChar, pingChar);
155
120
  return;
156
121
  }
157
- authChar.read((error, data) => {
122
+ this.plejdAuth(authChar, () => {
123
+ this.startPlejdPing(pingChar);
124
+ lastDataChar.subscribe((error) => {
125
+ if (error) {
126
+ this.log.error('Error subscribing | ' + error);
127
+ return;
128
+ }
129
+ lastDataChar.on('data', (data, isNotification) => this.gotData(data, isNotification));
130
+ });
131
+ });
132
+ };
133
+ this.plejdAuth = (authChar, callback) => {
134
+ authChar.write(Buffer.from([0x00]), false, (error) => {
158
135
  if (error) {
159
- this.log.error('Error reading auth | ' + error);
136
+ this.log.error('Error writing auth start | ' + error);
160
137
  return;
161
138
  }
162
- authChar.write((0, plejdUtils_1.plejdChalResp)(this.config.cryptoKey, data), false, (error) => {
139
+ authChar.read((error, data) => {
163
140
  if (error) {
164
- this.log.error('Error writing auth char | ' + error);
141
+ this.log.error('Error reading auth | ' + error);
165
142
  return;
166
143
  }
167
- callback();
144
+ authChar.write((0, plejdUtils_1.plejdChalResp)(this.config.cryptoKey, data), false, (error) => {
145
+ if (error) {
146
+ this.log.error('Error writing auth char | ' + error);
147
+ return;
148
+ }
149
+ callback();
150
+ });
168
151
  });
169
152
  });
170
- });
171
- }
172
- startPlejdPing(pingChar) {
173
- clearInterval(this.pingIndex);
174
- this.pingIndex = setInterval(() => {
175
- if (this.connectedPeripheral) {
176
- this.plejdPing(pingChar, (pingOk) => {
177
- if (pingOk === false) {
178
- this.disconnect(() => {
179
- this.startConnection();
180
- });
153
+ };
154
+ this.startPlejdPing = (pingChar) => {
155
+ clearInterval(this.pingIndex);
156
+ this.pingIndex = setInterval(() => {
157
+ if (this.connectedPeripheral) {
158
+ this.plejdPing(pingChar, (pingOk) => {
159
+ if (pingOk === false) {
160
+ this.disconnect(() => {
161
+ this.startConnection();
162
+ });
163
+ }
164
+ });
165
+ }
166
+ else {
167
+ this.disconnect(() => {
168
+ this.startConnection();
169
+ });
170
+ }
171
+ }, 1000 * 60 * 3);
172
+ };
173
+ this.plejdPing = (pingChar, callback) => {
174
+ const ping = (0, crypto_1.randomBytes)(1);
175
+ pingChar.write(ping, false, (error) => {
176
+ if (error) {
177
+ this.log.error('Error sending ping | ' + error);
178
+ return callback(false);
179
+ }
180
+ pingChar.read((error, pong) => {
181
+ if (error) {
182
+ this.log.error('Error reading pong | ' + error);
183
+ return callback(false);
184
+ }
185
+ if (((ping[0] + 1) & 0xff) !== pong[0]) {
186
+ this.log.error(`Ping failed: ${ping[0]} ${pong[0]}`);
187
+ callback(false);
188
+ }
189
+ else {
190
+ this.log.debug(`Ping success: ${ping[0]} ${pong[0]}`);
191
+ callback(true);
181
192
  }
182
193
  });
194
+ });
195
+ };
196
+ this.disconnect = (callback) => {
197
+ if (!this.pingIndex) {
198
+ return;
183
199
  }
184
- else {
185
- this.disconnect(() => {
186
- this.startConnection();
200
+ clearInterval(this.pingIndex);
201
+ if (this.connectedPeripheral) {
202
+ this.log.info('Disconnecting peripheral');
203
+ this.connectedPeripheral.disconnect(() => {
204
+ this.addressBuffer = null;
205
+ this.dataCharacteristic = null;
206
+ this.connectedPeripheral = null;
207
+ if (callback) {
208
+ callback();
209
+ return;
210
+ }
187
211
  });
188
212
  }
189
- }, 1000 * 60 * 3);
190
- }
191
- plejdPing(pingChar, callback) {
192
- const ping = (0, crypto_1.randomBytes)(1);
193
- pingChar.write(ping, false, (error) => {
194
- if (error) {
195
- this.log.error('Error sending ping | ' + error);
196
- return callback(false);
213
+ if (callback) {
214
+ callback();
197
215
  }
198
- pingChar.read((error, pong) => {
199
- if (error) {
200
- this.log.error('Error reading pong | ' + error);
201
- return callback(false);
216
+ };
217
+ this.gotData = (data, isNotification) => {
218
+ var _a, _b;
219
+ if (!this.addressBuffer || ((_a = this.addressBuffer) === null || _a === void 0 ? void 0 : _a.byteLength) === 0) {
220
+ this.log.warn('Got data but address in unknown');
221
+ return;
222
+ }
223
+ this.log.debug('GotData:', this.config.cryptoKey, this.addressBuffer, data);
224
+ const decodedData = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, this.addressBuffer, data);
225
+ const id = parseInt(decodedData[0].toString(), 10);
226
+ const command = decodedData.toString('hex', 3, 5);
227
+ const isOn = parseInt(decodedData.toString('hex', 5, 6), 10) === 1;
228
+ const commandType = (_b = Object.values(PlejdCommand).find(x => x.toString() === command)) !== null && _b !== void 0 ? _b : 'Unknown';
229
+ // eslint-disable-next-line max-len
230
+ this.log.debug(`GotData | id: ${id} | Command: ${command} - ${commandType} | On: ${isOn} | Notification: ${isNotification} | payload: ${decodedData.toString('hex')}`);
231
+ switch (command) {
232
+ case PlejdCommand.Time: {
233
+ const arg = parseInt((0, plejdUtils_1.reverseBuffer)(decodedData.slice(5, 9)).toString('hex'), 16);
234
+ const date = new Date(arg * 1000);
235
+ this.log.debug('Time sync: ' + date.toString());
236
+ break;
202
237
  }
203
- if (((ping[0] + 1) & 0xff) !== pong[0]) {
204
- this.log.error(`Ping failed: ${ping[0]} ${pong[0]}`);
205
- callback(false);
238
+ case PlejdCommand.Scene: {
239
+ this.log.debug('Trigger scene: ' + isOn);
240
+ break;
206
241
  }
207
- else {
208
- this.log.debug(`Ping success: ${ping[0]} ${pong[0]}`);
209
- callback(true);
242
+ case PlejdCommand.Brightness:
243
+ case PlejdCommand.StateBrightness: {
244
+ const dim = parseInt(decodedData.toString('hex', 7, 8), 16);
245
+ // Convert to Homebridge 1-100
246
+ const converted = dim === 0 ? 1 : ((100 / 255) * dim);
247
+ this.onUpdate(id, isOn, converted);
248
+ break;
210
249
  }
211
- });
212
- });
213
- }
214
- disconnect(callback) {
215
- if (!this.pingIndex) {
216
- return;
217
- }
218
- clearInterval(this.pingIndex);
219
- if (this.connectedPeripheral) {
220
- this.log.info('Disconnecting peripheral');
221
- this.connectedPeripheral.disconnect(() => {
222
- this.connectedPeripheral = null;
223
- if (callback) {
224
- callback();
250
+ case PlejdCommand.UpdateState: {
251
+ this.onUpdate(id, isOn);
252
+ break;
253
+ }
254
+ case PlejdCommand.ButtonClick: {
255
+ this.onUpdate(id, isOn);
256
+ break;
257
+ }
258
+ default: {
259
+ this.log.warn(`Unknown | command: ${command} | id: ${id} | ${decodedData.toString('hex')}`);
260
+ break;
261
+ }
262
+ }
263
+ };
264
+ this.plejdWrite = (dataChar, data) => {
265
+ dataChar.write(data, false, (error) => {
266
+ if (error) {
267
+ this.log.error('Error writing data | ' + error);
225
268
  return;
226
269
  }
227
270
  });
228
- }
229
- if (callback) {
230
- callback();
231
- }
232
- }
233
- gotData(data, isNotification) {
234
- const addr = this.addressBuffer();
235
- if (!addr) {
236
- this.log.warn('Got data but address in unknown');
237
- return;
238
- }
239
- const decodedData = (0, plejdUtils_1.plejdEncodeDecode)(this.config.cryptoKey, addr, data);
240
- const id = parseInt(decodedData[0].toString(), 10);
241
- const command = decodedData.toString('hex', 3, 5);
242
- const isOn = parseInt(decodedData.toString('hex', 5, 6), 10) === 1;
243
- this.log.debug(`GotData | id: ${id} | command: ${command} | arg: ${isOn} | isNotification: ${isNotification}`);
244
- switch (command) {
245
- case PlejdCommand.Time: {
246
- const arg = parseInt((0, plejdUtils_1.reverseBuffer)(decodedData.slice(5, 9)).toString('hex'), 16);
247
- const date = new Date(arg * 1000);
248
- this.log.debug('Time sync: ' + date.toString());
249
- break;
250
- }
251
- case PlejdCommand.Scene: {
252
- this.log.debug('Trigger scene: ' + isOn);
253
- break;
254
- }
255
- case PlejdCommand.Dim:
256
- case PlejdCommand.StateDim: {
257
- const dim = parseInt(decodedData.toString('hex', 7, 8), 16);
258
- // Convert to Homebridge 1-100
259
- const converted = dim === 0 ? 1 : ((100 / 255) * dim);
260
- this.log.debug(`Dim value sent to HB ${converted}`);
261
- this.onUpdate(id, isOn, converted);
262
- break;
263
- }
264
- case PlejdCommand.StateOnOff: {
265
- this.onUpdate(id, isOn);
266
- break;
267
- }
268
- default: {
269
- this.log.warn(`Unknown command | ${command} | ${id} | ${decodedData.toString('hex')}`);
270
- break;
271
- }
272
- }
273
- }
274
- plejdWrite(dataChar, data) {
275
- dataChar.write(data, false, (error) => {
276
- if (error) {
277
- this.log.error('Error writing data | ' + error);
278
- return;
279
- }
280
- });
281
- }
282
- addressBuffer() {
283
- return this.connectedPeripheral ?
284
- (0, plejdUtils_1.reverseBuffer)(Buffer.from(String(this.connectedPeripheral.address).replace(/:/g, ''), 'hex')) : null;
285
- }
286
- dataCharacteristic() {
287
- var _a, _b, _c, _d;
288
- return (_d = (_c = (_b = (_a = this.connectedPeripheral) === null || _a === void 0 ? void 0 : _a.services[0]) === null || _b === void 0 ? void 0 : _b.characteristics) === null || _c === void 0 ? void 0 : _c.find((char) => char.uuid === PlejdCharacteristics.Data)) !== null && _d !== void 0 ? _d : null;
271
+ };
272
+ this.addressBuffer = null;
273
+ this.dataCharacteristic = null;
274
+ this.connectedPeripheral = null;
275
+ noble_1.default.on('stateChange', (state) => this.stateChange(state));
276
+ noble_1.default.on('warning', (msg) => this.log.warn('Noble warning: ', msg));
289
277
  }
290
278
  }
291
279
  exports.PlejdService = PlejdService;
@@ -1 +1 @@
1
- {"version":3,"file":"plejdService.js","sourceRoot":"","sources":["../src/plejdService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plejdService.js","sourceRoot":"","sources":["../src/plejdService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- export declare function plejdChalResp(key: any, chal: any): Buffer;
3
- export declare function plejdEncodeDecode(key: Buffer, addressBuffer: Buffer, data: Buffer): Buffer;
4
- export declare function reverseBuffer(src: Buffer): Buffer;
2
+ export declare const plejdChalResp: (key: any, chal: any) => Buffer;
3
+ export declare const plejdEncodeDecode: (key: Buffer, addressBuffer: Buffer, data: Buffer) => Buffer;
4
+ export declare const reverseBuffer: (src: Buffer) => Buffer;
5
5
  //# sourceMappingURL=plejdUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdUtils.d.ts","sourceRoot":"","sources":["../src/plejdUtils.ts"],"names":[],"mappings":";AAEA,wBAAgB,aAAa,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA,UAOtC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAe1F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASjD"}
1
+ {"version":3,"file":"plejdUtils.d.ts","sourceRoot":"","sources":["../src/plejdUtils.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,aAAa,iCAOzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAS,MAAM,iBAAiB,MAAM,QAAQ,MAAM,KAAG,MAepF,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,MAS3C,CAAC"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reverseBuffer = exports.plejdEncodeDecode = exports.plejdChalResp = void 0;
4
4
  const crypto_1 = require("crypto");
5
- function plejdChalResp(key, chal) {
5
+ const plejdChalResp = (key, chal) => {
6
6
  const intermediate = (0, crypto_1.createHash)('sha256').update(xor(key, chal)).digest();
7
7
  const part1 = intermediate.slice(0, 16);
8
8
  const part2 = intermediate.slice(16);
9
9
  return xor(part1, part2);
10
- }
10
+ };
11
11
  exports.plejdChalResp = plejdChalResp;
12
- function plejdEncodeDecode(key, addressBuffer, data) {
12
+ const plejdEncodeDecode = (key, addressBuffer, data) => {
13
13
  const buf = Buffer.concat([addressBuffer, addressBuffer, addressBuffer.subarray(0, 4)]);
14
14
  const cipher = (0, crypto_1.createCipheriv)('aes-128-ecb', key, '');
15
15
  cipher.setAutoPadding(false);
@@ -21,22 +21,22 @@ function plejdEncodeDecode(key, addressBuffer, data) {
21
21
  output += String.fromCharCode(data[i] ^ ctBuff[i % 16]);
22
22
  }
23
23
  return Buffer.from(output, 'ascii');
24
- }
24
+ };
25
25
  exports.plejdEncodeDecode = plejdEncodeDecode;
26
- function reverseBuffer(src) {
26
+ const reverseBuffer = (src) => {
27
27
  const buffer = Buffer.allocUnsafe(src.length);
28
28
  for (let i = 0, j = src.length - 1; i <= j; ++i, --j) {
29
29
  buffer[i] = src[j];
30
30
  buffer[j] = src[i];
31
31
  }
32
32
  return buffer;
33
- }
33
+ };
34
34
  exports.reverseBuffer = reverseBuffer;
35
- function xor(first, second) {
35
+ const xor = (first, second) => {
36
36
  const result = Buffer.alloc(first.length);
37
37
  for (let i = 0; i < first.length; i++) {
38
38
  result[i] = first[i] ^ second[i];
39
39
  }
40
40
  return result;
41
- }
41
+ };
42
42
  //# sourceMappingURL=plejdUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdUtils.js","sourceRoot":"","sources":["../src/plejdUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAEpD,SAAgB,aAAa,CAAC,GAAG,EAAE,IAAI;IACrC,MAAM,YAAY,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAE1E,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAErC,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAPD,sCAOC;AAED,SAAgB,iBAAiB,CAAC,GAAW,EAAE,aAAqB,EAAE,IAAY;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAfD,8CAeC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,sCASC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,MAAc;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KAClC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"plejdUtils.js","sourceRoot":"","sources":["../src/plejdUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAE7C,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACzC,MAAM,YAAY,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAE1E,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAErC,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB;AAEK,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,aAAqB,EAAE,IAAY,EAAU,EAAE;IAC5F,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;QACpD,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB;AAEF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KAClC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Plejd",
4
4
  "name": "homebridge-plejd",
5
5
  "author": "Alexander Herlin",
6
- "version": "1.1.8",
6
+ "version": "1.2.1",
7
7
  "description": "HomeKit support for the Plejd BLE platform using Homebridge",
8
8
  "license": "MIT",
9
9
  "repository": {
@@ -43,4 +43,4 @@
43
43
  "ts-node": "^10.3.0",
44
44
  "typescript": "^4.4.4"
45
45
  }
46
- }
46
+ }