homebridge-plejd 1.6.2 → 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.
- package/CHANGELOG.md +7 -0
- package/cache/plejdCacheSite.json +3774 -0
- package/cache/plejdLogin.json +24 -0
- package/cache/plejdSites.json +34 -0
- package/config.schema.json +7 -0
- package/dist/PlejdHbAccessory.d.ts +7 -5
- package/dist/PlejdHbAccessory.js +23 -5
- package/dist/PlejdHbAccessory.js.map +1 -1
- package/dist/PlejdHbPlatform.js +24 -31
- package/dist/PlejdHbPlatform.js.map +1 -1
- package/dist/{settings.d.ts → constants.d.ts} +7 -3
- package/dist/constants.js +35 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/model/userInputConfig.d.ts +1 -1
- package/dist/plejdApi.d.ts +2 -2
- package/dist/plejdApi.js +27 -24
- package/dist/plejdApi.js.map +1 -1
- package/dist/plejdService.d.ts +24 -2
- package/dist/plejdService.js +51 -32
- package/dist/plejdService.js.map +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +39 -0
- package/dist/utils.js.map +1 -1
- package/jest.config.js +4 -5
- package/package.json +5 -5
- package/tests/plejdService.spec.ts +125 -0
- package/tests/utils.spec.ts +286 -0
- package/dist/plejdUtils.d.ts +0 -3
- package/dist/plejdUtils.js +0 -40
- package/dist/plejdUtils.js.map +0 -1
- package/dist/settings.js +0 -47
- package/dist/settings.js.map +0 -1
- package/tests/settings.spec.ts +0 -59
@@ -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
|
+
}
|
package/config.schema.json
CHANGED
@@ -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
|
2
|
-
import { Device } from
|
3
|
-
import { PlejdHbPlatform } from
|
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
|
-
|
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;
|
package/dist/PlejdHbAccessory.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { PLATFORM_NAME } from
|
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
|
-
|
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) =>
|
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) =>
|
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":"
|
1
|
+
{"version":3,"file":"PlejdHbAccessory.js","sourceRoot":"","sources":["../src/PlejdHbAccessory.ts"],"names":[],"mappings":"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"}
|
package/dist/PlejdHbPlatform.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
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
|
-
|
47
|
-
|
48
|
-
|
49
|
-
const
|
50
|
-
const
|
51
|
-
|
52
|
-
|
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 ===
|
57
|
-
let identifier = site.
|
58
|
-
|
59
|
-
|
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:
|
66
|
+
model: model,
|
65
67
|
identifier: identifier,
|
66
|
-
isDimmer: isDimmable(
|
68
|
+
isDimmer: isDimmable(model),
|
67
69
|
uuid: this.generateId(identifier.toString()),
|
68
70
|
room: room?.title,
|
69
71
|
hidden: false,
|
70
72
|
};
|
71
|
-
|
72
|
-
|
73
|
-
|
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(
|
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.
|
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":"AAUA,OAAO,EAAE,
|
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 =
|
9
|
+
export declare const PLEJD_WRITE_TIMEOUT = 100;
|
10
10
|
export declare const PLEJD_PING_TIMEOUT = 3000;
|
11
|
-
export declare const
|
12
|
-
|
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
package/dist/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { PLATFORM_NAME, PLUGIN_NAME } from
|
2
|
-
import { PlejdHbPlatform } from
|
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,
|
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"}
|
package/dist/plejdApi.d.ts
CHANGED
package/dist/plejdApi.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
const API_APP_ID =
|
2
|
-
const API_BASE_URL =
|
3
|
-
const API_LOGIN_URL =
|
4
|
-
const API_SITE_LIST_URL =
|
5
|
-
const API_SITE_DETAILS_URL =
|
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:
|
26
|
+
method: "POST",
|
27
27
|
headers: {
|
28
|
-
|
29
|
-
|
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(
|
38
|
+
throw new Error("error: server returned status 400. probably invalid credentials, please verify.");
|
39
39
|
}
|
40
40
|
else {
|
41
|
-
throw new Error(
|
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(
|
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:
|
53
|
+
method: "POST",
|
53
54
|
headers: {
|
54
|
-
|
55
|
-
|
56
|
-
|
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(
|
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(
|
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:
|
73
|
+
method: "POST",
|
72
74
|
headers: {
|
73
|
-
|
74
|
-
|
75
|
-
|
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(
|
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(
|
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(
|
94
|
+
throw new Error("No Crypto has been retrieved yet");
|
92
95
|
}
|
93
96
|
}
|
94
97
|
}
|
package/dist/plejdApi.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"plejdApi.js","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,0CAA0C,CAAC;AAC9D,MAAM,YAAY,GAAG,gCAAgC,CAAC;AACtD,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAwBrD,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,oBAAoB,CAAU;IAE9B,YACE,GAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,oBAA6B;QAE7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,GAAG,aAAa,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,wBAAwB,EAAE,UAAU;gBACpC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,
|
1
|
+
{"version":3,"file":"plejdApi.js","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":"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"}
|
package/dist/plejdService.d.ts
CHANGED
@@ -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;
|
@@ -16,15 +27,26 @@ export declare class PlejdService {
|
|
16
27
|
private readonly BLACKLIST_DURATION;
|
17
28
|
private readonly EXTENDED_BLACKLIST_DURATION;
|
18
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[];
|
19
35
|
/**
|
20
36
|
*
|
21
37
|
* Update the state of a device
|
22
38
|
*
|
23
39
|
* @param identifier: The device identifier
|
24
40
|
* @param isOn: The new state of the device
|
25
|
-
* @param
|
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
|
26
44
|
*/
|
27
|
-
updateState: (identifier: number, isOn: boolean,
|
45
|
+
updateState: (identifier: number, isOn: boolean, opt: {
|
46
|
+
targetBrightness?: number;
|
47
|
+
currentBrightness?: number;
|
48
|
+
transitionMS?: number;
|
49
|
+
}) => Promise<void>;
|
28
50
|
configureBLE: () => void;
|
29
51
|
private onDiscover;
|
30
52
|
private mapRssiToQuality;
|