homebridge-plejd 1.7.0-beta-2 → 1.7.0
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 +3 -11
- package/README.md +2 -0
- package/dist/PlejdHbAccessory.d.ts +2 -3
- package/dist/PlejdHbAccessory.js +4 -6
- package/dist/PlejdHbAccessory.js.map +1 -1
- package/dist/PlejdHbPlatform.js +2 -2
- package/dist/PlejdHbPlatform.js.map +1 -1
- package/package.json +3 -2
- package/tests/plejdService.spec.ts +30 -21
package/CHANGELOG.md
CHANGED
@@ -1,18 +1,10 @@
|
|
1
|
-
#### 1.7.0
|
2
|
-
|
3
|
-
Removed characteristic connection in favor of settings.
|
4
|
-
Reduced message simeout for BLE commands
|
5
|
-
|
6
|
-
#### 1.7.0-beta-1(2025-09-16)
|
7
|
-
|
8
|
-
Migrated to characteristic SetDuration
|
9
|
-
|
10
|
-
#### 1.7.0-beta(2025-09-11)
|
1
|
+
#### 1.7.0 (2025-09-19)
|
11
2
|
|
3
|
+
Reduced message timeout for BLE commands
|
12
4
|
Update filter for finding lights
|
13
5
|
Refactorings
|
14
6
|
Added tests
|
15
|
-
Added opt-in brightness transition
|
7
|
+
Added opt-in brightness transition when light is on
|
16
8
|
|
17
9
|
#### 1.6.2(2024-12-24)
|
18
10
|
|
package/README.md
CHANGED
@@ -60,6 +60,8 @@ Device info can be found like [this](./docs/Device%20Info.md)!
|
|
60
60
|
|
61
61
|
### Notes
|
62
62
|
|
63
|
+
I'm maintaining this plugin on my spare time and I use it daily. Though I do not have much time due to children and life. Feel free to help out in any way.
|
64
|
+
|
63
65
|
This plugin lacks testing for multiple platforms. Feel free to test on your system. The main dependency [@abandonware/Noble](https://github.com/abandonware/noble) is your guide in case of your separate system. Usually BLE is the problem.
|
64
66
|
|
65
67
|
Feel free to open a ticket if you can't get it working.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { PlatformAccessory
|
1
|
+
import { PlatformAccessory } from "homebridge";
|
2
2
|
import { Device } from "./model/device.js";
|
3
3
|
import { PlejdHbPlatform } from "./PlejdHbPlatform.js";
|
4
4
|
/**
|
@@ -8,13 +8,12 @@ import { PlejdHbPlatform } from "./PlejdHbPlatform.js";
|
|
8
8
|
*/
|
9
9
|
export declare class PlejdHbAccessory {
|
10
10
|
private readonly platform;
|
11
|
-
private readonly log;
|
12
11
|
private readonly accessory;
|
13
12
|
readonly device: Device;
|
14
13
|
private readonly transitionMs;
|
15
14
|
private service;
|
16
15
|
private state;
|
17
|
-
constructor(platform: PlejdHbPlatform,
|
16
|
+
constructor(platform: PlejdHbPlatform, accessory: PlatformAccessory, device: Device, transitionMs: number);
|
18
17
|
onPlejdUpdates: (isOn: boolean, brightness?: number) => void;
|
19
18
|
private setOn;
|
20
19
|
private getOn;
|
package/dist/PlejdHbAccessory.js
CHANGED
@@ -6,15 +6,13 @@ import { PLATFORM_NAME } from "./constants.js";
|
|
6
6
|
*/
|
7
7
|
export class PlejdHbAccessory {
|
8
8
|
platform;
|
9
|
-
log;
|
10
9
|
accessory;
|
11
10
|
device;
|
12
11
|
transitionMs;
|
13
12
|
service;
|
14
13
|
state;
|
15
|
-
constructor(platform,
|
14
|
+
constructor(platform, accessory, device, transitionMs) {
|
16
15
|
this.platform = platform;
|
17
|
-
this.log = log;
|
18
16
|
this.accessory = accessory;
|
19
17
|
this.device = device;
|
20
18
|
this.transitionMs = transitionMs;
|
@@ -66,9 +64,9 @@ export class PlejdHbAccessory {
|
|
66
64
|
};
|
67
65
|
setOn = async (value) => {
|
68
66
|
const newState = value;
|
69
|
-
this.log.
|
67
|
+
this.platform.log.debug(`Homekit: turning ${value === true ? "on" : "off"} ${this.device.name} (current state: isOn=${this.state.isOn}, brightness=${this.state.brightness})`);
|
70
68
|
if (this.state.isOn === newState) {
|
71
|
-
this.log.debug(`${this.device.name} already ${newState ? "on" : "off"}, skipping`);
|
69
|
+
this.platform.log.debug(`${this.device.name} already ${newState ? "on" : "off"}, skipping`);
|
72
70
|
return;
|
73
71
|
}
|
74
72
|
await this.platform.plejdService?.updateState(this.device.identifier, value);
|
@@ -76,7 +74,7 @@ export class PlejdHbAccessory {
|
|
76
74
|
};
|
77
75
|
getOn = () => this.state.isOn;
|
78
76
|
setBrightness = async (value) => {
|
79
|
-
this.log.debug(`Homekit: Set brightness of ${this.device.name} to ${value}`);
|
77
|
+
this.platform.log.debug(`Homekit: Set brightness of ${this.device.name} to ${value}`);
|
80
78
|
await this.platform.plejdService?.updateState(this.device.identifier, true, {
|
81
79
|
targetBrightness: value,
|
82
80
|
currentBrightness: this.state.brightness,
|
@@ -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
@@ -129,7 +129,7 @@ export class PlejdHbPlatform {
|
|
129
129
|
}
|
130
130
|
const existingAccessory = this.accessories.find((accessory) => accessory.UUID === device.uuid);
|
131
131
|
if (existingAccessory) {
|
132
|
-
this.plejdHbAccessories.push(new PlejdHbAccessory(this,
|
132
|
+
this.plejdHbAccessories.push(new PlejdHbAccessory(this, existingAccessory, device, this.transitionMs));
|
133
133
|
}
|
134
134
|
else {
|
135
135
|
this.addNewDevice(device);
|
@@ -140,7 +140,7 @@ export class PlejdHbPlatform {
|
|
140
140
|
const accessory = new this.homebridgeApi.platformAccessory(device.name, device.uuid);
|
141
141
|
accessory.context.device = device;
|
142
142
|
// See above.
|
143
|
-
this.plejdHbAccessories.push(new PlejdHbAccessory(this,
|
143
|
+
this.plejdHbAccessories.push(new PlejdHbAccessory(this, accessory, device, this.transitionMs));
|
144
144
|
// link the accessory to your platform
|
145
145
|
this.homebridgeApi.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [
|
146
146
|
accessory,
|
@@ -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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"}
|
package/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
"displayName": "Plejd",
|
4
4
|
"name": "homebridge-plejd",
|
5
5
|
"author": "Herlix",
|
6
|
-
"version": "1.7.0
|
6
|
+
"version": "1.7.0",
|
7
7
|
"description": "HomeKit support for the Plejd BLE platform using Homebridge",
|
8
8
|
"license": "Apache-2.0",
|
9
9
|
"type": "module",
|
@@ -24,7 +24,8 @@
|
|
24
24
|
"dev": "npm run build && npm link && nodemon",
|
25
25
|
"build": "rimraf ./dist && tsc",
|
26
26
|
"prepublishOnly": "npm run lint && npm run build",
|
27
|
-
"test": "jest ./**/*.spec.* --detectOpenHandles --forceExit --silent=false"
|
27
|
+
"test": "jest ./**/*.spec.* --detectOpenHandles --forceExit --silent=false",
|
28
|
+
"test:watch": "jest ./**/*.spec.* --detectOpenHandles --forceExit --silent=false --watch"
|
28
29
|
},
|
29
30
|
"keywords": [
|
30
31
|
"homebridge-plugin",
|
@@ -16,14 +16,19 @@ describe("PlejdService updateState", () => {
|
|
16
16
|
);
|
17
17
|
});
|
18
18
|
|
19
|
-
describe("Turn off scenarios", () => {
|
19
|
+
describe("Turn on/off scenarios", () => {
|
20
20
|
it.each([
|
21
21
|
["isOn=false, brightness=undefined", false, undefined],
|
22
22
|
["isOn=false, brightness=0", false, 0],
|
23
23
|
["isOn=true, brightness=0", true, 0],
|
24
24
|
["isOn=true, brightness=undefined", true, undefined],
|
25
|
+
["isOn=true, brightness=0", true, 0],
|
26
|
+
// ["isOn=true, brightness=1 (Not needed due to brightness change)", true, 1],
|
25
27
|
])("%s should queue a turn off command", async (_, isOn, brightness) => {
|
26
28
|
const deviceId = 42;
|
29
|
+
const refQueue = service.readQueue();
|
30
|
+
expect(refQueue.length).toBe(0);
|
31
|
+
|
27
32
|
await service.updateState(deviceId, isOn, {
|
28
33
|
targetBrightness: brightness,
|
29
34
|
});
|
@@ -36,7 +41,7 @@ describe("PlejdService updateState", () => {
|
|
36
41
|
deviceId.toString(16).padStart(2, "0") +
|
37
42
|
PlejdCommand.RequestNoResponse +
|
38
43
|
PlejdCommand.OnOffState +
|
39
|
-
"00";
|
44
|
+
(isOn ? "01" : "00");
|
40
45
|
|
41
46
|
expect(command).toBe(expected);
|
42
47
|
});
|
@@ -50,7 +55,7 @@ describe("PlejdService updateState", () => {
|
|
50
55
|
await service.updateState(deviceId, true, {
|
51
56
|
currentBrightness: brightness,
|
52
57
|
targetBrightness: brightness,
|
53
|
-
|
58
|
+
transitionMs: transitionMS,
|
54
59
|
});
|
55
60
|
const queue = service.readQueue();
|
56
61
|
expect(queue.length).toBe(0);
|
@@ -58,21 +63,21 @@ describe("PlejdService updateState", () => {
|
|
58
63
|
|
59
64
|
it("should queue multiple brightness commands for a transition", async () => {
|
60
65
|
const deviceId = 42;
|
61
|
-
const
|
62
|
-
const
|
66
|
+
const currentBrightness = 10;
|
67
|
+
const targetBrightness = 70;
|
68
|
+
const transitionMs = 500;
|
63
69
|
|
64
70
|
await service.updateState(deviceId, true, {
|
65
|
-
targetBrightness
|
66
|
-
|
71
|
+
targetBrightness,
|
72
|
+
currentBrightness,
|
73
|
+
transitionMs,
|
67
74
|
});
|
68
75
|
|
69
76
|
const queue = service.readQueue();
|
70
77
|
|
71
|
-
|
72
|
-
const expectedSteps = Math.round(transitionMS / PLEJD_WRITE_TIMEOUT);
|
78
|
+
const expectedSteps = Math.round(transitionMs / PLEJD_WRITE_TIMEOUT);
|
73
79
|
expect(queue.length).toBe(expectedSteps);
|
74
80
|
|
75
|
-
// Check that all commands are brightness commands
|
76
81
|
queue.forEach((item) => {
|
77
82
|
const command = item.toString("hex");
|
78
83
|
expect(command.substring(2, 6)).toBe(PlejdCommand.RequestNoResponse);
|
@@ -80,16 +85,22 @@ describe("PlejdService updateState", () => {
|
|
80
85
|
expect(command.substring(10, 14)).toBe("0100"); // isOn = true
|
81
86
|
});
|
82
87
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
+
for (let step = 1; step <= expectedSteps; step++) {
|
89
|
+
const brightnessDifference = targetBrightness - currentBrightness;
|
90
|
+
const currentStepBrightness = Math.min(
|
91
|
+
100,
|
92
|
+
Math.max(
|
93
|
+
0,
|
94
|
+
currentBrightness + (brightnessDifference * step) / expectedSteps,
|
95
|
+
),
|
96
|
+
);
|
97
|
+
const eightBitBrightness = Math.round(currentStepBrightness * 2.55);
|
98
|
+
const item = queue[expectedSteps - step];
|
88
99
|
const command = item.toString("hex");
|
89
100
|
const brightnessHex = command.substring(14, 18);
|
90
101
|
const brightnessValue = parseInt(brightnessHex, 16);
|
91
|
-
expect(brightnessValue).toBe(
|
92
|
-
}
|
102
|
+
expect(brightnessValue).toBe(eightBitBrightness);
|
103
|
+
}
|
93
104
|
});
|
94
105
|
|
95
106
|
it("should handle a 1-second transition with default parameters", async () => {
|
@@ -98,13 +109,11 @@ describe("PlejdService updateState", () => {
|
|
98
109
|
|
99
110
|
await service.updateState(deviceId, true, {
|
100
111
|
targetBrightness: brightness,
|
101
|
-
|
112
|
+
transitionMs: 1000,
|
102
113
|
});
|
103
114
|
const queue = service.readQueue();
|
104
115
|
|
105
|
-
|
106
|
-
const expectedSteps = 10;
|
107
|
-
expect(queue.length).toBe(expectedSteps);
|
116
|
+
expect(queue.length).toBe(1000 / PLEJD_WRITE_TIMEOUT);
|
108
117
|
});
|
109
118
|
|
110
119
|
it("should handle a 0-ms transition with default parameters", async () => {
|