homebridge-plejd 1.6.1 → 1.7.0-beta

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.
@@ -0,0 +1,24 @@
1
+ {
2
+ "objectId": "dtkZ3Ev3DI",
3
+ "profileName": "Alexander Herlin",
4
+ "isInstaller": false,
5
+ "email": "alexander.herlin@outlook.com",
6
+ "locale": "en",
7
+ "username": "alexander.herlin@outlook.com",
8
+ "hasIntegration": false,
9
+ "emailVerified": true,
10
+ "createdAt": "2021-11-25T20:00:25.282Z",
11
+ "updatedAt": "2022-08-23T17:01:12.180Z",
12
+ "profile": {
13
+ "__type": "Pointer",
14
+ "className": "UserProfile",
15
+ "objectId": "LjUH1mRUUa"
16
+ },
17
+ "ACL": {
18
+ "dtkZ3Ev3DI": {
19
+ "read": true,
20
+ "write": true
21
+ }
22
+ },
23
+ "sessionToken": "r:70b73983d9a3a37f5fc72d9e47704a2c"
24
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "result": [
3
+ {
4
+ "site": {
5
+ "siteId": "ebb1e49a-4dc3-4cba-9ec9-74cc0636c240",
6
+ "title": "Kvarteret Ankan 13"
7
+ },
8
+ "plejdDevice": [
9
+ "CC01575FA70E",
10
+ "CCDE6AD41DBC",
11
+ "DC01D128C5D2",
12
+ "C33158BCB49E",
13
+ "D22C85B6CB62",
14
+ "D47538555D61",
15
+ "EF70405719AC",
16
+ "F1BD4A4267CC",
17
+ "CD0B50868AEF",
18
+ "D968EB41ED18"
19
+ ],
20
+ "gateway": [
21
+ "EEDF66953980"
22
+ ],
23
+ "hasRemoteControlAccess": true,
24
+ "sitePermission": {
25
+ "siteId": "ebb1e49a-4dc3-4cba-9ec9-74cc0636c240",
26
+ "isOwner": true,
27
+ "isInstaller": false,
28
+ "isUser": false,
29
+ "locked": false,
30
+ "hidden": false
31
+ }
32
+ }
33
+ ]
34
+ }
@@ -33,6 +33,13 @@
33
33
  "placeholder": "828291.. or 82-82-91...",
34
34
  "description": "With or without '-' "
35
35
  },
36
+ "brightness_delay_ms": {
37
+ "title": "Brightness delay",
38
+ "type": "number",
39
+ "required": false,
40
+ "placeholder": "1000",
41
+ "description": "Amount of milliseconds of transition between brightness levels (default: 0)"
42
+ },
36
43
  "devices": {
37
44
  "type": "array",
38
45
  "items": {
@@ -1,6 +1,6 @@
1
- import { PlatformAccessory } from 'homebridge';
2
- import { Device } from './model/device.js';
3
- import { PlejdHbPlatform } from './PlejdHbPlatform.js';
1
+ import { PlatformAccessory, Logger } from "homebridge";
2
+ import { Device } from "./model/device.js";
3
+ import { PlejdHbPlatform } from "./PlejdHbPlatform.js";
4
4
  /**
5
5
  * Platform Accessory
6
6
  * An instance of this class is created for each accessory your platform registers
@@ -8,12 +8,14 @@ import { PlejdHbPlatform } from './PlejdHbPlatform.js';
8
8
  */
9
9
  export declare class PlejdHbAccessory {
10
10
  private readonly platform;
11
+ private readonly log;
11
12
  private readonly accessory;
12
13
  readonly device: Device;
14
+ private readonly brightnessDelayMs?;
13
15
  private service;
14
16
  private state;
15
- constructor(platform: PlejdHbPlatform, accessory: PlatformAccessory, device: Device);
16
- updateState: (isOn: boolean, brightness?: number) => void;
17
+ constructor(platform: PlejdHbPlatform, log: Logger, accessory: PlatformAccessory, device: Device, brightnessDelayMs?: number | undefined);
18
+ onPlejdUpdates: (isOn: boolean, brightness?: number) => void;
17
19
  private setOn;
18
20
  private getOn;
19
21
  private setBrightness;
@@ -1,4 +1,4 @@
1
- import { PLATFORM_NAME } from './settings.js';
1
+ import { PLATFORM_NAME } from "./constants.js";
2
2
  /**
3
3
  * Platform Accessory
4
4
  * An instance of this class is created for each accessory your platform registers
@@ -6,14 +6,18 @@ import { PLATFORM_NAME } from './settings.js';
6
6
  */
7
7
  export class PlejdHbAccessory {
8
8
  platform;
9
+ log;
9
10
  accessory;
10
11
  device;
12
+ brightnessDelayMs;
11
13
  service;
12
14
  state;
13
- constructor(platform, accessory, device) {
15
+ constructor(platform, log, accessory, device, brightnessDelayMs) {
14
16
  this.platform = platform;
17
+ this.log = log;
15
18
  this.accessory = accessory;
16
19
  this.device = device;
20
+ this.brightnessDelayMs = brightnessDelayMs;
17
21
  this.state = {
18
22
  brightness: accessory.context.brightness ?? 100,
19
23
  isOn: accessory.context.isOn ?? false,
@@ -46,7 +50,7 @@ export class PlejdHbAccessory {
46
50
  .onGet(this.getOn.bind(this));
47
51
  this.service.setCharacteristic(this.platform.Characteristic.Name, this.device.name);
48
52
  }
49
- updateState = (isOn, brightness) => {
53
+ onPlejdUpdates = (isOn, brightness) => {
50
54
  this.platform.log.debug(`Updating Homekit state from ${this.device.name} device state`);
51
55
  this.state.isOn = isOn;
52
56
  this.service
@@ -60,9 +64,23 @@ export class PlejdHbAccessory {
60
64
  }
61
65
  this.accessory.context = this.state;
62
66
  };
63
- setOn = async (value) => await this.platform.plejdService?.updateState(this.device.identifier, value, null);
67
+ setOn = async (value) => {
68
+ this.log.debug(`Homekit: Turn on ${this.device.name}`);
69
+ await this.platform.plejdService?.updateState(this.device.identifier, value, {
70
+ targetBrightness: this.state.brightness,
71
+ currentBrightness: this.state.brightness,
72
+ transitionMS: this.brightnessDelayMs,
73
+ });
74
+ };
64
75
  getOn = () => this.state.isOn;
65
- setBrightness = async (value) => await this.platform.plejdService?.updateState(this.device.identifier, this.state.isOn, value);
76
+ setBrightness = async (value) => {
77
+ this.log.debug(`Homekit: Set brightness of ${this.device.name}`);
78
+ await this.platform.plejdService?.updateState(this.device.identifier, this.state.isOn, {
79
+ targetBrightness: value,
80
+ currentBrightness: this.state.brightness,
81
+ transitionMS: this.brightnessDelayMs,
82
+ });
83
+ };
66
84
  getBrightness = () => this.state.brightness;
67
85
  }
68
86
  //# sourceMappingURL=PlejdHbAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlejdHbAccessory.js","sourceRoot":"","sources":["../src/PlejdHbAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlejdHbAccessory.js","sourceRoot":"","sources":["../src/PlejdHbAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { isAddon, isDimmable, PLATFORM_NAME, PLUGIN_NAME } from "./settings.js";
1
+ import { PLATFORM_NAME, PLUGIN_NAME } from "./constants.js";
2
+ import { isDimmable, isAddon } from "./utils.js";
2
3
  import { PlejdHbAccessory } from "./PlejdHbAccessory.js";
3
4
  import { PlejdService } from "./plejdService.js";
4
5
  import PlejdRemoteApi from "./plejdApi.js";
@@ -27,6 +28,7 @@ export class PlejdHbPlatform {
27
28
  "Any devices added manually will override the remote site information");
28
29
  const pApi = new PlejdRemoteApi(this.log, this.config.site, this.config.username, this.config.password, true);
29
30
  const site = await pApi.getPlejdRemoteSite();
31
+ this.log.debug(JSON.stringify(site, null, 2));
30
32
  this.configureDevices(this.log, this.config, site);
31
33
  }
32
34
  else if (this.config.crypto_key &&
@@ -43,46 +45,37 @@ export class PlejdHbPlatform {
43
45
  const devices = config.devices || [];
44
46
  if (site) {
45
47
  config.crypto_key = site.plejdMesh.cryptoKey;
46
- const items = [];
47
- // Extract devices
48
- site.devices.forEach((item) => {
49
- const name = item.title;
50
- const id = item.deviceId;
51
- const e = site.plejdDevices.find((x) => x.deviceId === id);
52
- const dim = e.firmware.notes;
53
- if (isAddon(dim)) {
48
+ site.devices.forEach((device) => {
49
+ const name = device.title;
50
+ const id = device.deviceId;
51
+ const plejdDevice = site.plejdDevices.find((x) => x.deviceId === id);
52
+ const model = plejdDevice.firmware.notes;
53
+ if (isAddon(model)) {
54
+ this.log.info(`Ignoring ${model} as it is not supported for now`);
54
55
  return;
55
56
  }
56
- const room = site.rooms.find((x) => x.roomId === item.roomId);
57
- let identifier = site.inputAddress[id][0];
58
- if (dim.endsWith("-02") &&
59
- items.find((a) => a.identifier === identifier) !== undefined) {
57
+ const room = site.rooms.find((x) => x.roomId === device.roomId);
58
+ let identifier = site.deviceAddress[id];
59
+ // When DIM-02, make sure that the next device will have the new index
60
+ if (model.toUpperCase().includes("DIM-02") &&
61
+ devices.find((a) => a.identifier === identifier) !== undefined) {
60
62
  identifier += 1;
61
63
  }
62
64
  const res = {
63
65
  name: name,
64
- model: dim,
66
+ model: model,
65
67
  identifier: identifier,
66
- isDimmer: isDimmable(dim),
68
+ isDimmer: isDimmable(model),
67
69
  uuid: this.generateId(identifier.toString()),
68
70
  room: room?.title,
69
71
  hidden: false,
70
72
  };
71
- items.push(res);
72
- });
73
- items.forEach((item) => {
74
- const pre = devices.findIndex((x) => x.identifier === item.identifier);
75
- if (pre !== -1) {
76
- if (devices[pre].hidden) {
77
- log.debug("Hiding device |", devices[pre]);
78
- devices.splice(pre);
79
- }
80
- else {
81
- devices[pre].name = item.name;
82
- }
73
+ const pre = devices.findIndex((x) => x.identifier === res.identifier);
74
+ if (pre !== -1 && devices[pre].hidden) {
75
+ this.log.info(`${name} is set to hidden. Will ignore device.`);
83
76
  }
84
77
  else {
85
- devices.push(item);
78
+ devices.push(res);
86
79
  }
87
80
  });
88
81
  }
@@ -133,7 +126,7 @@ export class PlejdHbPlatform {
133
126
  }
134
127
  const existingAccessory = this.accessories.find((accessory) => accessory.UUID === device.uuid);
135
128
  if (existingAccessory) {
136
- this.plejdHbAccessories.push(new PlejdHbAccessory(this, existingAccessory, device));
129
+ this.plejdHbAccessories.push(new PlejdHbAccessory(this, this.log, existingAccessory, device, parseInt(this.config.brightness_delay_ms)));
137
130
  }
138
131
  else {
139
132
  this.addNewDevice(device);
@@ -144,7 +137,7 @@ export class PlejdHbPlatform {
144
137
  const accessory = new this.homebridgeApi.platformAccessory(device.name, device.uuid);
145
138
  accessory.context.device = device;
146
139
  // See above.
147
- this.plejdHbAccessories.push(new PlejdHbAccessory(this, accessory, device));
140
+ this.plejdHbAccessories.push(new PlejdHbAccessory(this, this.log, accessory, device, parseInt(this.config.brightness_delay_ms)));
148
141
  // link the accessory to your platform
149
142
  this.homebridgeApi.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [
150
143
  accessory,
@@ -185,7 +178,7 @@ export class PlejdHbPlatform {
185
178
  ?.getCharacteristic(this.Characteristic.On)
186
179
  ?.updateValue(isOn);
187
180
  }
188
- plejdHbAccessory.updateState(isOn, brightness);
181
+ plejdHbAccessory.onPlejdUpdates(isOn, brightness);
189
182
  }
190
183
  else {
191
184
  if (device) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlejdHbPlatform.js","sourceRoot":"","sources":["../src/PlejdHbPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlejdHbPlatform.js","sourceRoot":"","sources":["../src/PlejdHbPlatform.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ export declare const PLATFORM_NAME = "Plejd";
6
6
  * This must match the name of your plugin as defined the package.json
7
7
  */
8
8
  export declare const PLUGIN_NAME = "homebridge-plejd";
9
- export declare const PLEJD_WRITE_TIMEOUT = 200;
9
+ export declare const PLEJD_WRITE_TIMEOUT = 100;
10
10
  export declare const PLEJD_PING_TIMEOUT = 3000;
11
- export declare const isDimmable: (type: string) => boolean;
12
- export declare const isAddon: (type: string) => boolean;
11
+ export declare const DEFAULT_BRIGHTNESS_TRANSITION_MS = 0;
12
+ /**
13
+ * Lights and switches from Plejd
14
+ */
15
+ export declare const PLEJD_LIGHTS: string[];
16
+ export declare const PLEJD_ADDONS: string[];
@@ -0,0 +1,35 @@
1
+ /**
2
+ * This is the name of the platform that users will use to register the plugin in the Homebridge config.json
3
+ */
4
+ export const PLATFORM_NAME = "Plejd";
5
+ /**
6
+ * This must match the name of your plugin as defined the package.json
7
+ */
8
+ export const PLUGIN_NAME = "homebridge-plejd";
9
+ export const PLEJD_WRITE_TIMEOUT = 100;
10
+ export const PLEJD_PING_TIMEOUT = 3000;
11
+ export const DEFAULT_BRIGHTNESS_TRANSITION_MS = 0;
12
+ /**
13
+ * Lights and switches from Plejd
14
+ */
15
+ export const PLEJD_LIGHTS = ["DIM-01", "DIM-02", "LED-10", "LED-75"];
16
+ // const PLEJD_SWITCHES = [
17
+ // "REL-01",
18
+ // "REL-02",
19
+ // "REL-01-2P",
20
+ // "DAL-01",
21
+ // "SPR-01",
22
+ // "CTR-01",
23
+ // ];
24
+ export const PLEJD_ADDONS = [
25
+ "RTR-01",
26
+ "WPH-01",
27
+ "WRT-01",
28
+ "MNT-01",
29
+ "MNT-02",
30
+ "GWY-01",
31
+ "BAT-01",
32
+ "EXT-01",
33
+ "WSM-01",
34
+ ];
35
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErE,2BAA2B;AAC3B,cAAc;AACd,cAAc;AACd,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd,cAAc;AACd,KAAK;AAEL,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { API } from 'homebridge';
1
+ import { API } from "homebridge";
2
2
  /**
3
3
  * This method registers the platform with Homebridge
4
4
  */
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
- import { PlejdHbPlatform } from './PlejdHbPlatform.js';
1
+ import { PLATFORM_NAME, PLUGIN_NAME } from "./constants.js";
2
+ import { PlejdHbPlatform } from "./PlejdHbPlatform.js";
3
3
  /**
4
4
  * This method registers the platform with Homebridge
5
5
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Device } from './device';
1
+ import { Device } from "./device.js";
2
2
  export interface UserInputConfig {
3
3
  devices: Device[];
4
4
  cryptoKey: Buffer;
@@ -1,5 +1,5 @@
1
- import { Logger } from 'homebridge';
2
- import { Site } from './model/plejdSite.js';
1
+ import { Logger } from "homebridge";
2
+ import { Site } from "./model/plejdSite.js";
3
3
  export default class PlejdRemoteApi {
4
4
  log: Logger;
5
5
  siteName: string;
package/dist/plejdApi.js CHANGED
@@ -1,8 +1,8 @@
1
- const API_APP_ID = 'zHtVqXt8k4yFyk2QGmgp48D9xZr2G94xWYnF4dak';
2
- const API_BASE_URL = 'https://cloud.plejd.com/parse/';
3
- const API_LOGIN_URL = 'login';
4
- const API_SITE_LIST_URL = 'functions/getSiteList';
5
- const API_SITE_DETAILS_URL = 'functions/getSiteById';
1
+ const API_APP_ID = "zHtVqXt8k4yFyk2QGmgp48D9xZr2G94xWYnF4dak";
2
+ const API_BASE_URL = "https://cloud.plejd.com/parse/";
3
+ const API_LOGIN_URL = "login";
4
+ const API_SITE_LIST_URL = "functions/getSiteList";
5
+ const API_SITE_DETAILS_URL = "functions/getSiteById";
6
6
  export default class PlejdRemoteApi {
7
7
  log;
8
8
  siteName;
@@ -23,10 +23,10 @@ export default class PlejdRemoteApi {
23
23
  }
24
24
  async login() {
25
25
  const response = await fetch(API_BASE_URL + API_LOGIN_URL, {
26
- method: 'POST',
26
+ method: "POST",
27
27
  headers: {
28
- 'X-Parse-Application-Id': API_APP_ID,
29
- 'Content-Type': 'application/json',
28
+ "X-Parse-Application-Id": API_APP_ID,
29
+ "Content-Type": "application/json",
30
30
  },
31
31
  body: JSON.stringify({
32
32
  username: this.username,
@@ -35,60 +35,63 @@ export default class PlejdRemoteApi {
35
35
  });
36
36
  if (!response.ok) {
37
37
  if (response.status === 400) {
38
- throw new Error('error: server returned status 400. probably invalid credentials, please verify.');
38
+ throw new Error("error: server returned status 400. probably invalid credentials, please verify.");
39
39
  }
40
40
  else {
41
- throw new Error('error: unable to retrieve session token response: ' + response.statusText);
41
+ throw new Error("error: unable to retrieve session token response: " +
42
+ response.statusText);
42
43
  }
43
44
  }
44
45
  const data = await response.json();
45
46
  if (!data.sessionToken) {
46
- throw new Error('no session token received.');
47
+ throw new Error("no session token received.");
47
48
  }
48
49
  return data.sessionToken;
49
50
  }
50
51
  async getSites(token) {
51
52
  const response = await fetch(API_BASE_URL + API_SITE_LIST_URL, {
52
- method: 'POST',
53
+ method: "POST",
53
54
  headers: {
54
- 'X-Parse-Application-Id': API_APP_ID,
55
- 'X-Parse-Session-Token': token,
56
- 'Content-Type': 'application/json',
55
+ "X-Parse-Application-Id": API_APP_ID,
56
+ "X-Parse-Session-Token": token,
57
+ "Content-Type": "application/json",
57
58
  },
58
59
  });
59
60
  if (!response.ok) {
60
- throw new Error('plejd-api: unable to retrieve list of sites. error: ' + response.statusText);
61
+ throw new Error("plejd-api: unable to retrieve list of sites. error: " +
62
+ response.statusText);
61
63
  }
62
64
  const data = await response.json();
63
65
  const site = data.result.find((x) => x.site.title === this.siteName);
64
66
  if (!site) {
65
- throw new Error('failed to find a site named ' + this.siteName);
67
+ throw new Error("failed to find a site named " + this.siteName);
66
68
  }
67
69
  return site;
68
70
  }
69
71
  async getSite(site, token) {
70
72
  const response = await fetch(API_BASE_URL + API_SITE_DETAILS_URL, {
71
- method: 'POST',
73
+ method: "POST",
72
74
  headers: {
73
- 'X-Parse-Application-Id': API_APP_ID,
74
- 'X-Parse-Session-Token': token,
75
- 'Content-Type': 'application/json',
75
+ "X-Parse-Application-Id": API_APP_ID,
76
+ "X-Parse-Session-Token": token,
77
+ "Content-Type": "application/json",
76
78
  },
77
79
  body: JSON.stringify({ siteId: site.site.siteId }),
78
80
  });
79
81
  if (!response.ok) {
80
- throw new Error('plejd-api: unable to retrieve the crypto key. error: ' + response.statusText);
82
+ throw new Error("plejd-api: unable to retrieve the crypto key. error: " +
83
+ response.statusText);
81
84
  }
82
85
  const data = await response.json();
83
86
  if (data.result.length === 0) {
84
- throw new Error('No devices found');
87
+ throw new Error("No devices found");
85
88
  }
86
89
  const res = data.result[0];
87
90
  if (res) {
88
91
  return res;
89
92
  }
90
93
  else {
91
- throw new Error('No Crypto has been retrieved yet');
94
+ throw new Error("No Crypto has been retrieved yet");
92
95
  }
93
96
  }
94
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plejdApi.js","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plejdApi.js","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import { Logger } from "homebridge";
2
2
  import { UserInputConfig } from "./model/userInputConfig.js";
3
+ export declare enum PlejdCommand {
4
+ OnOffState = "0097",
5
+ StateBrightness = "00c8",
6
+ Brightness = "0098",// 0-255
7
+ Scene = "0021",
8
+ Time = "001b",
9
+ RequestResponse = "0102",
10
+ RequestNoResponse = "0110",
11
+ RequestReadValue = "0103",
12
+ ButtonClick = "0006"
13
+ }
3
14
  export declare class PlejdService {
4
15
  private readonly config;
5
16
  readonly log: Logger;
@@ -7,16 +18,35 @@ export declare class PlejdService {
7
18
  private sendQueue;
8
19
  private plejdTimeout;
9
20
  private queueTimeout;
21
+ private blacklistCleanupInterval;
22
+ private isConnecting;
23
+ private isAuthenticated;
24
+ private deviceState;
25
+ private deviceBlacklist;
26
+ private readonly MAX_FAILURES;
27
+ private readonly BLACKLIST_DURATION;
28
+ private readonly EXTENDED_BLACKLIST_DURATION;
10
29
  constructor(config: UserInputConfig, log: Logger, onUpdate: (identifier: number, isOn: boolean, dim?: number) => void);
30
+ /**
31
+ *
32
+ * @returns the current queue items
33
+ */
34
+ readQueue(): Buffer[];
11
35
  /**
12
36
  *
13
37
  * Update the state of a device
14
38
  *
15
39
  * @param identifier: The device identifier
16
40
  * @param isOn: The new state of the device
17
- * @param brightness: The new brightness of the device between 0-100
41
+ * @param targetBrightness: The new brightness of the device between 0-100
42
+ * @param currentBrightness: The current brightness of the device between 0-100
43
+ * @param transitionMS: split brightness into steps, adding a transition to the brightness change
18
44
  */
19
- updateState: (identifier: number, isOn: boolean, brightness: number | null) => Promise<void>;
45
+ updateState: (identifier: number, isOn: boolean, opt: {
46
+ targetBrightness?: number;
47
+ currentBrightness?: number;
48
+ transitionMS?: number;
49
+ }) => Promise<void>;
20
50
  configureBLE: () => void;
21
51
  private onDiscover;
22
52
  private mapRssiToQuality;
@@ -29,4 +59,9 @@ export declare class PlejdService {
29
59
  private authenticate;
30
60
  private tryStartScanning;
31
61
  private tryDisconnect;
62
+ private isDeviceBlacklisted;
63
+ private blacklistDevice;
64
+ private cleanupBlacklist;
65
+ private startBlacklistCleanup;
66
+ private cleanup;
32
67
  }