homebridge-virtual-accessories 3.11.0 → 3.11.2
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/README.md +22 -1
- package/config.schema.json +0 -8
- package/dist/accessories/virtualAccessoryAirPurifier.js +7 -5
- package/dist/accessories/virtualAccessoryAirPurifier.js.map +1 -1
- package/dist/accessories/virtualAccessoryFan.js +1 -2
- package/dist/accessories/virtualAccessoryFan.js.map +1 -1
- package/dist/configuration/accessories/configurationFan.d.ts +0 -1
- package/dist/configuration/accessories/configurationFan.js +2 -8
- package/dist/configuration/accessories/configurationFan.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
- [Synology](#synology)
|
|
37
37
|
- [Configuration](#configuration)
|
|
38
38
|
- [Accessory Configurations](#accessory-configurations)
|
|
39
|
+
- [Air Purifier](#air-purifier)
|
|
39
40
|
- [Battery](#battery)
|
|
40
41
|
- [Door](#door)
|
|
41
42
|
- [Doorbell](#doorbell)
|
|
@@ -94,6 +95,7 @@ The downside to a single plugin is trading ease of accessory maintenance for a s
|
|
|
94
95
|
|
|
95
96
|
Currently, these are the implemented virtual accessories:
|
|
96
97
|
|
|
98
|
+
- **Air Purifier.** Allows you to create a virtual air purifier.
|
|
97
99
|
- **Battery.** Allows you to create a virtual battery service. The "charging state" and "battery level" properties can be set via a [webhook call](#webhook-service-configuration).
|
|
98
100
|
- **Door.** Allows you to create a virtual door.
|
|
99
101
|
- **Doorbell.** Allows you to use a button as a doorbell and have it play a chime on HomePods. Due to [issues with HomeKit](#issues-with-homekit), you will need the free [Eve app](https://www.evehome.com/en-us/eve-app) to control its settings.
|
|
@@ -232,6 +234,26 @@ It is recommended to use the Homebridge UI to configure this plugin, as the requ
|
|
|
232
234
|
|
|
233
235
|
These are example configurations of the virtual accessories and provided for reference only. They are not intended to be exhaustive of all the different permutations and it is recommended that you use the UI to fully explore each accessory's setup.
|
|
234
236
|
|
|
237
|
+
### Air Purifier
|
|
238
|
+
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"name": "Virtual Accessories Platform",
|
|
242
|
+
"devices": [
|
|
243
|
+
{
|
|
244
|
+
"accessoryID": "1234567",
|
|
245
|
+
"accessoryName": "My Air Purifier",
|
|
246
|
+
"accessoryType": "airpurifier",
|
|
247
|
+
"accessoryIsStateful": false,
|
|
248
|
+
"airPurifier": {
|
|
249
|
+
"rotationSpeed": 32
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
],
|
|
253
|
+
"platform": "VirtualAccessoriesForHomebridge"
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
235
257
|
### Battery
|
|
236
258
|
|
|
237
259
|
```json
|
|
@@ -303,7 +325,6 @@ These are example configurations of the virtual accessories and provided for ref
|
|
|
303
325
|
"accessoryName": "My Fan",
|
|
304
326
|
"accessoryType": "fan",
|
|
305
327
|
"fan": {
|
|
306
|
-
"defaultState": "off",
|
|
307
328
|
"rotationDirection": "clockwise",
|
|
308
329
|
"rotationSpeed": 80
|
|
309
330
|
}
|
package/config.schema.json
CHANGED
|
@@ -216,14 +216,6 @@
|
|
|
216
216
|
"title": "Fan",
|
|
217
217
|
"type": "object",
|
|
218
218
|
"properties": {
|
|
219
|
-
"defaultState": {
|
|
220
|
-
"title": "Default State *",
|
|
221
|
-
"type": "string",
|
|
222
|
-
"oneOf": [
|
|
223
|
-
{ "title": "Off", "enum": ["off"] },
|
|
224
|
-
{ "title": "On", "enum": ["on"] }
|
|
225
|
-
]
|
|
226
|
-
},
|
|
227
219
|
"rotationDirection": {
|
|
228
220
|
"title": "Rotation Direction *",
|
|
229
221
|
"type": "string",
|
|
@@ -25,9 +25,11 @@ export class AirPurifier extends Accessory {
|
|
|
25
25
|
constructor(platform, accessory, accessoryConfiguration) {
|
|
26
26
|
super(platform, accessory, accessoryConfiguration);
|
|
27
27
|
// First configure the device based on the accessory details
|
|
28
|
+
const rotationSpeed = this.accessoryConfiguration.airPurifier.rotationSpeed;
|
|
28
29
|
this.states.AirPurifierActive = AirPurifier.INACTIVE;
|
|
29
30
|
this.states.AirPurifierCurrentState = AirPurifier.CURRENTLY_INACTIVE;
|
|
30
31
|
this.states.AirPurifierTargetState = AirPurifier.MANUAL;
|
|
32
|
+
this.states.AirPurifierRotationSpeed = rotationSpeed;
|
|
31
33
|
// If the accessory is stateful retrieve stored state
|
|
32
34
|
if (this.accessoryConfiguration.accessoryIsStateful) {
|
|
33
35
|
const accessoryState = this.loadAccessoryState(this.storagePath);
|
|
@@ -114,15 +116,15 @@ export class AirPurifier extends Accessory {
|
|
|
114
116
|
return AirPurifier.ACCESSORY_TYPE_NAME;
|
|
115
117
|
}
|
|
116
118
|
setDeviceOperationalCondition() {
|
|
117
|
-
if (this.states.AirPurifierActive === AirPurifier.
|
|
118
|
-
this.states.AirPurifierCurrentState = AirPurifier.
|
|
119
|
+
if (this.states.AirPurifierActive === AirPurifier.ACTIVE) {
|
|
120
|
+
this.states.AirPurifierCurrentState = AirPurifier.CURRENTLY_PURIFYING_AIR;
|
|
119
121
|
}
|
|
120
|
-
else { // (this.states.AirPurifierActive === AirPurifier.
|
|
122
|
+
else { // (this.states.AirPurifierActive === AirPurifier.INACTIVE)
|
|
121
123
|
if (this.states.AirPurifierTargetState === AirPurifier.AUTO) {
|
|
122
|
-
this.states.AirPurifierCurrentState = AirPurifier.
|
|
124
|
+
this.states.AirPurifierCurrentState = AirPurifier.CURRENTLY_IDLE;
|
|
123
125
|
}
|
|
124
126
|
else if (this.states.AirPurifierTargetState === AirPurifier.MANUAL) {
|
|
125
|
-
this.states.AirPurifierCurrentState = AirPurifier.
|
|
127
|
+
this.states.AirPurifierCurrentState = AirPurifier.CURRENTLY_INACTIVE;
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
this.service?.setCharacteristic(this.platform.Characteristic.CurrentAirPurifierState, (this.states.AirPurifierCurrentState));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualAccessoryAirPurifier.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryAirPurifier.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,4BAA4B;AAM5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAExC,MAAM,CAAU,mBAAmB,GAAW,aAAa,CAAC;IAE5D,MAAM,CAAU,kBAAkB,GAAW,CAAC,CAAC,CAAO,kDAAkD;IACxG,MAAM,CAAU,cAAc,GAAW,CAAC,CAAC,CAAW,8CAA8C;IACpG,MAAM,CAAU,uBAAuB,GAAW,CAAC,CAAC,CAAE,uDAAuD;IAE7G,MAAM,CAAU,MAAM,GAAW,CAAC,CAAC,CAAmB,+CAA+C;IACrG,MAAM,CAAU,IAAI,GAAW,CAAC,CAAC,CAAqB,6CAA6C;IAEnG,MAAM,CAAU,QAAQ,GAAW,CAAC,CAAC,CAAiB,iCAAiC;IACvF,MAAM,CAAU,MAAM,GAAW,CAAC,CAAC,CAAmB,+BAA+B;IAEpE,eAAe,GAAW,mBAAmB,CAAC;IAC9C,qBAAqB,GAAW,wBAAwB,CAAC;IACzD,sBAAsB,GAAW,0BAA0B,CAAC;IAErE,MAAM,GAAG;QACf,iBAAiB,EAAE,WAAW,CAAC,QAAQ;QACvC,uBAAuB,EAAE,WAAW,CAAC,kBAAkB;QACvD,sBAAsB,EAAE,WAAW,CAAC,MAAM;QAC1C,wBAAwB,EAAE,GAAG;KAC9B,CAAC;IAEF,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEnD,4DAA4D;QAC5D,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,WAAW,CAAC,QAAQ,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,uBAAuB,GAAG,WAAW,CAAC,kBAAkB,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,WAAW,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"virtualAccessoryAirPurifier.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryAirPurifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,10 +19,9 @@ export class Fan extends Accessory {
|
|
|
19
19
|
constructor(platform, accessory, accessoryConfiguration) {
|
|
20
20
|
super(platform, accessory, accessoryConfiguration);
|
|
21
21
|
// First configure the device based on the accessory details
|
|
22
|
-
this.defaultState = this.accessoryConfiguration.fan.defaultState === 'on' ? Fan.ON : Fan.OFF;
|
|
23
22
|
const rotationDirection = this.accessoryConfiguration.fan.rotationDirection === 'clockwise' ? Fan.CLOCKWISE : Fan.COUNTER_CLOCKWISE;
|
|
24
23
|
const rotationSpeed = this.accessoryConfiguration.fan.rotationSpeed;
|
|
25
|
-
this.states.FanState =
|
|
24
|
+
this.states.FanState = Fan.OFF;
|
|
26
25
|
this.states.FanRotationDirection = rotationDirection;
|
|
27
26
|
this.states.FanRotationSpeed = rotationSpeed;
|
|
28
27
|
// If the accessory is stateful retrieve stored state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualAccessoryFan.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryFan.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,GAAI,SAAQ,SAAS;IAEhC,MAAM,CAAU,mBAAmB,GAAW,KAAK,CAAC;IAEpD,MAAM,CAAU,EAAE,GAAY,IAAI,CAAC;IACnC,MAAM,CAAU,GAAG,GAAY,KAAK,CAAC;IAErC,MAAM,CAAU,SAAS,GAAW,CAAC,CAAC,CAAU,qEAAqE;IACrH,MAAM,CAAU,iBAAiB,GAAW,CAAC,CAAC,CAAE,6EAA6E;IAE5G,eAAe,GAAW,UAAU,CAAC;IACrC,0BAA0B,GAAW,sBAAsB,CAAC;IAC5D,sBAAsB,GAAW,kBAAkB,CAAC;IAE7D,MAAM,GAAG;QACf,QAAQ,EAAE,GAAG,CAAC,GAAG;QACjB,oBAAoB,EAAE,GAAG,CAAC,SAAS;QACnC,gBAAgB,EAAE,GAAG;KACtB,CAAC;IAEF,YACE,QAAoC,EACpC,SAA4B,EAC5B,sBAA8C;QAE9C,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEnD,4DAA4D;QAC5D,
|
|
1
|
+
{"version":3,"file":"virtualAccessoryFan.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryFan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
/* eslint-disable curly */
|
|
2
|
-
import {
|
|
2
|
+
import { RotationDirection } from '../schema.js';
|
|
3
3
|
import { Utils } from '../../utils/utils.js';
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
7
|
export class FanConfiguration {
|
|
8
|
-
defaultState;
|
|
9
8
|
rotationDirection;
|
|
10
9
|
rotationSpeed;
|
|
11
10
|
errorFields = [];
|
|
12
11
|
fieldNames = Utils.proxiedPropertiesOf(this);
|
|
13
12
|
isValid(prefix) {
|
|
14
|
-
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
|
15
|
-
PowerState.States.includes(this.defaultState));
|
|
16
13
|
const isValidRotationDirection = (Utils.required(this.rotationDirection) &&
|
|
17
14
|
RotationDirection.Directions.includes(this.rotationDirection));
|
|
18
15
|
const isValidRotationSpeed = (Utils.required(this.rotationSpeed) &&
|
|
19
16
|
Utils.isPercentage(this.rotationSpeed));
|
|
20
17
|
// Store fields failing validation
|
|
21
|
-
if (!isValidDefaultState)
|
|
22
|
-
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
|
23
18
|
if (!isValidRotationDirection)
|
|
24
19
|
this.errorFields.push(prefix + '.' + this.fieldNames.rotationDirection);
|
|
25
20
|
if (!isValidRotationSpeed)
|
|
26
21
|
this.errorFields.push(prefix + '.' + this.fieldNames.rotationSpeed);
|
|
27
22
|
return [
|
|
28
|
-
(
|
|
29
|
-
isValidRotationDirection &&
|
|
23
|
+
(isValidRotationDirection &&
|
|
30
24
|
isValidRotationSpeed),
|
|
31
25
|
this.errorFields,
|
|
32
26
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationFan.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFan.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"configurationFan.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFan.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B,iBAAiB,CAAU;IAC3B,aAAa,CAAU;IAEf,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,wBAAwB,GAAY,CACxC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC9D,CAAC;QAEF,MAAM,oBAAoB,GAAY,CACpC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YAClC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CACvC,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,wBAAwB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACvG,IAAI,CAAC,oBAAoB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE/F,OAAO;YACL,CAAC,wBAAwB;gBACvB,oBAAoB,CAAC;YACvB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "homebridge-virtual-accessories",
|
|
3
3
|
"displayName": "Virtual Accessories for Homebridge",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.11.
|
|
5
|
+
"version": "3.11.2",
|
|
6
6
|
"description": "Virtual HomeKit accessories for Homebridge.",
|
|
7
7
|
"author": "justjam2013",
|
|
8
8
|
"license": "MIT",
|