homebridge-virtual-accessories 3.1.0 → 3.1.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 +3 -8
- package/config.schema.json +2 -3
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.d.ts +1 -1
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js +11 -10
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js.map +1 -1
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js +2 -2
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js.map +1 -1
- package/dist/triggers/triggerPing.d.ts +3 -0
- package/dist/triggers/triggerPing.js +23 -11
- package/dist/triggers/triggerPing.js.map +1 -1
- package/package.json +9 -1
package/README.md
CHANGED
@@ -22,11 +22,6 @@
|
|
22
22
|
|
23
23
|
## <!-- Thin separator line -->
|
24
24
|
|
25
|
-
> [!CAUTION]
|
26
|
-
> **Virtual Accessories For Homebridge v3.0.0 is a breaking upgrade.** If you are upgrading from a v2.x.x version, please read the [Wiki page for v3.0.0](https://github.com/justjam2013/homebridge-virtual-accessories/wiki/Virtual-Accessories-For-Homebridge-v3.0.0-breaking-update) for details on how to update your configuration.
|
27
|
-
|
28
|
-
## <!-- Thin separator line -->
|
29
|
-
|
30
25
|
<details>
|
31
26
|
<summary>
|
32
27
|
|
@@ -79,7 +74,7 @@
|
|
79
74
|
|
80
75
|
This plugin is inspired by Nick Farina's most excellent 🎸 [homebridge-dummy](https://github.com/nfarina/homebridge-dummy) plugin, which formed the backbone of my HomeKit automations. This plugin is Homebridge Verified and is ready for Homebridge 2.0.
|
81
76
|
|
82
|
-
The purpose of this plugin is to provide a single solution for creating different types of virtual HomeKit accessories. In my automations it has replaced seven separate plugins, each of which provided part of the functionality I needed, and all of which had gone unmaintained or abandoned. Also, it became
|
77
|
+
The purpose of this plugin is to provide a single solution for creating different types of virtual HomeKit accessories. In my automations it has replaced seven separate plugins, each of which provided part of the functionality I needed, and all of which had gone unmaintained or abandoned. Also, it became annoying having to figure out which plugin provided what functionality, or managed which accessory, each time I wanted to make a change.
|
83
78
|
|
84
79
|
The downside to a single plugin is trading ease of accessory maintenance for a single point of failure. However, this is work in progress so I will be publishing bug fixes and improvements. Also, I will slowly add new accessories and functionality, either as I need them, or, more likely, in response to requests by users who find this plugin useful.
|
85
80
|
|
@@ -771,10 +766,10 @@ Patrick Hunt, the content creator of the [Make Smart Matter](https://www.youtube
|
|
771
766
|
- The Humidifier/Dehumidifier accessory is not properly rendered in Homebridge UI. Homebrige UI currently is unable to differentiate between Humidifier-only, Dehumidifier-only, and Humidifier-Dehumidifier accessories, but HomeKit renders it correctly.
|
772
767
|
- The Heater/Cooler accessory is not properly rendered in Homebridge UI. Homebrige UI currently is unable to differentiate between Heater-only, Cooler-only, and Heater-Cooler accessories, but HomeKit renders it correctly.
|
773
768
|
- The Speaker tile in Homebridge UI is not working properly. It does not differentiate between Active and Muted properties and once switched off, does not switch it back on again.
|
774
|
-
- The ability to order the accessories has been rolled back, as it makes it impossible to drag a number slider, for example to set the Doorbell volume
|
769
|
+
- The ability to order the accessories has been rolled back, as it makes it impossible to drag a number slider, for example to set the Doorbell volume. A bug report has been opened with the underlying framework project and, once this behavior is fixed, this functionality will be restored. The temporary workaround is to manually edit the order of the accessories in the JSON configuration.
|
775
770
|
|
776
771
|
## What if I run into a problem?
|
777
772
|
|
778
|
-
If you encounter a problem, you can [check the #virtual accessories channel on Discord](https://discord.gg/Z8jmyvb) for any notifications, or [open an issue on GitHub](https://github.com/justjam2013/homebridge-virtual-accessories/issues
|
773
|
+
If you encounter a problem, you can [check the #virtual accessories channel on Discord](https://discord.gg/Z8jmyvb) for any notifications, or [open an issue here on GitHub](https://github.com/justjam2013/homebridge-virtual-accessories/issues). Please include log outputs and configuration details to the issue, making sure to remove any sensitive information such as passwords, tokens, etc. The more information you provide, the better I can investigate the issues.
|
779
774
|
|
780
775
|
Please open a [Feature Request issue](https://github.com/justjam2013/homebridge-virtual-accessories/issues/new/choose) if you have any enhancement suggestions or any additional functionality that you would like to see added, or comment on an existing issue if one is already open.
|
package/config.schema.json
CHANGED
@@ -772,10 +772,9 @@
|
|
772
772
|
"properties": {
|
773
773
|
"host": {
|
774
774
|
"title": "Host *",
|
775
|
-
"description": "IP address of host to ping",
|
775
|
+
"description": "IP address (142.250.178.4) or domain name (www.google.com) of host to ping",
|
776
776
|
"placeholder": "192.168.0.1",
|
777
|
-
"type": "string"
|
778
|
-
"pattern": "^((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])$"
|
777
|
+
"type": "string"
|
779
778
|
},
|
780
779
|
"failureRetryCount": {
|
781
780
|
"title": "Retries Before Failure *",
|
@@ -40,7 +40,7 @@ export declare class HumidifierDehumidifier extends Accessory implements Updatab
|
|
40
40
|
private deviceHumidifies;
|
41
41
|
private deviceDehumidifies;
|
42
42
|
private setDeviceOperationalCondition;
|
43
|
-
static getActiveName(
|
43
|
+
static getActiveName(status: number): string;
|
44
44
|
static getCurrentStateName(state: number): string;
|
45
45
|
static getTargetStateName(state: number): string;
|
46
46
|
private setHumidifierDehumidifierServiceProperties;
|
@@ -123,27 +123,27 @@ export class HumidifierDehumidifier extends Accessory {
|
|
123
123
|
}
|
124
124
|
async getCurrentRelativeHumidity() {
|
125
125
|
const currentRelativeHumidity = this.states.CurrentRelativeHumidity;
|
126
|
-
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Current Relative Humidity: ${currentRelativeHumidity}
|
126
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Current Relative Humidity: ${currentRelativeHumidity}%`);
|
127
127
|
return currentRelativeHumidity;
|
128
128
|
}
|
129
129
|
async setRelativeHumidityDehumidifierThreshold(value) {
|
130
130
|
this.states.DehumidifierThreshold = value;
|
131
131
|
this.setDeviceOperationalCondition();
|
132
|
-
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Setting Relative Humidity Dehumidifier Threshold: ${this.states.DehumidifierThreshold}
|
132
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Setting Relative Humidity Dehumidifier Threshold: ${this.states.DehumidifierThreshold}%`);
|
133
133
|
}
|
134
134
|
async getRelativeHumidityDehumidifierThreshold() {
|
135
135
|
const dehumidifierThreshold = this.states.DehumidifierThreshold;
|
136
|
-
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Relative Humidity Dehumidifier Threshold: ${dehumidifierThreshold}
|
136
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Relative Humidity Dehumidifier Threshold: ${dehumidifierThreshold}%`);
|
137
137
|
return dehumidifierThreshold;
|
138
138
|
}
|
139
139
|
async setRelativeHumidityHumidifierThreshold(value) {
|
140
140
|
this.states.HumidifierThreshold = value;
|
141
141
|
this.setDeviceOperationalCondition();
|
142
|
-
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Setting Relative Humidity Humidifier Threshold: ${this.states.HumidifierThreshold}
|
142
|
+
this.log.info(`[${this.accessoryConfiguration.accessoryName}] Setting Relative Humidity Humidifier Threshold: ${this.states.HumidifierThreshold}%`);
|
143
143
|
}
|
144
144
|
async getRelativeHumidityHumidifierThreshold() {
|
145
145
|
const humidifierThreshold = this.states.HumidifierThreshold;
|
146
|
-
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Relative Humidity Humidifier Threshold: ${humidifierThreshold}
|
146
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Getting Relative Humidity Humidifier Threshold: ${humidifierThreshold}%`);
|
147
147
|
return humidifierThreshold;
|
148
148
|
}
|
149
149
|
getJsonState() {
|
@@ -199,11 +199,11 @@ export class HumidifierDehumidifier extends Accessory {
|
|
199
199
|
}
|
200
200
|
this.service?.setCharacteristic(this.platform.Characteristic.CurrentHumidifierDehumidifierState, (this.states.HumidifierDehumidifierCurrentState));
|
201
201
|
this.storeState();
|
202
|
-
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Humidifier current state: ${HumidifierDehumidifier.getCurrentStateName(this.states.HumidifierDehumidifierCurrentState)}`);
|
202
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Humidifier/Dehumidifier current state: ${HumidifierDehumidifier.getCurrentStateName(this.states.HumidifierDehumidifierCurrentState)}`);
|
203
203
|
}
|
204
|
-
static getActiveName(
|
204
|
+
static getActiveName(status) {
|
205
205
|
let activeName;
|
206
|
-
switch (
|
206
|
+
switch (status) {
|
207
207
|
case undefined: {
|
208
208
|
activeName = 'undefined';
|
209
209
|
break;
|
@@ -217,7 +217,7 @@ export class HumidifierDehumidifier extends Accessory {
|
|
217
217
|
break;
|
218
218
|
}
|
219
219
|
default: {
|
220
|
-
activeName =
|
220
|
+
activeName = status.toString();
|
221
221
|
}
|
222
222
|
}
|
223
223
|
return activeName;
|
@@ -333,7 +333,7 @@ export class HumidifierDehumidifier extends Accessory {
|
|
333
333
|
}
|
334
334
|
// Updatable Sensor interface
|
335
335
|
updateSensor(value, accessoryId) {
|
336
|
-
this.log.debug(`[${this.accessoryConfiguration.accessoryName}]
|
336
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Request update humidity sensor to ${value}%`);
|
337
337
|
if (accessoryId !== this.accessoryConfiguration.accessoryID) {
|
338
338
|
this.log.error(`[${this.accessoryConfiguration.accessoryName}] Accessory Id ${accessoryId} is not valid for this accessory`);
|
339
339
|
throw new SensorValueUpdateNotAllowed(`Invalid accessory id: ${accessoryId}`);
|
@@ -343,6 +343,7 @@ export class HumidifierDehumidifier extends Accessory {
|
|
343
343
|
throw new InvalidSensorValueType(`Invalid sensor value: ${value}`);
|
344
344
|
}
|
345
345
|
else {
|
346
|
+
this.log.debug(`[${this.accessoryConfiguration.accessoryName}] Updating humidity sensor to ${value}%`);
|
346
347
|
this.states.CurrentRelativeHumidity = value;
|
347
348
|
this.setDeviceOperationalCondition();
|
348
349
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtualAccessoryHumidifierDehumidifier.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryHumidifierDehumidifier.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"virtualAccessoryHumidifierDehumidifier.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryHumidifierDehumidifier.ts"],"names":[],"mappings":"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"}
|
@@ -5,8 +5,8 @@ import { Utils } from '../../utils.js';
|
|
5
5
|
*/
|
6
6
|
export class HumidifierDehumidifierConfiguration {
|
7
7
|
type;
|
8
|
-
humidifierThreshold
|
9
|
-
dehumidifierThreshold
|
8
|
+
humidifierThreshold;
|
9
|
+
dehumidifierThreshold;
|
10
10
|
static prefix = 'humidifierDehumidifier';
|
11
11
|
errorFields = [];
|
12
12
|
isValid() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"configurationHumidifierDehumidifier.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationHumidifierDehumidifier.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC9C,IAAI,CAAU;IACd,mBAAmB,
|
1
|
+
{"version":3,"file":"configurationHumidifierDehumidifier.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationHumidifierDehumidifier.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,mCAAmC;IAC9C,IAAI,CAAU;IACd,mBAAmB,CAAU;IAC7B,qBAAqB,CAAU;IAE/B,MAAM,CAAC,MAAM,GAAW,wBAAwB,CAAC;IAEzC,WAAW,GAAa,EAAE,CAAC;IAEnC,OAAO;QACL,MAAM,WAAW,GAAY,CAC3B,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;YACzB,CAAE,MAAM,EAAE,YAAY,EAAE,cAAc,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7D,CAAC;QAEF,MAAM,0BAA0B,GAAY,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEzF,MAAM,4BAA4B,GAAY,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE7F,MAAM,sBAAsB,GAAY,CACtC,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC;YACxC,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC;YAC1C,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CACxD,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAmC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAC9F,IAAI,CAAC,0BAA0B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAmC,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAAC;QAC5H,IAAI,CAAC,4BAA4B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAmC,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QAChI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,mCAAmC;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAmC,CAAC,MAAM,GAAG,0BAA0B,GAAG,mCAAmC,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QACzK,CAAC;QAED,OAAO;YACL,CAAC,WAAW;gBACV,0BAA0B;gBAC1B,4BAA4B;gBAC5B,sBAAsB,CAAC;YACzB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { PingTriggerConfiguration } from '../configuration/triggers/configurationPingTrigger.js';
|
1
2
|
import { Trigger } from './trigger.js';
|
2
3
|
import { Sensor } from '../sensors/virtualSensor.js';
|
3
4
|
/**
|
@@ -9,9 +10,11 @@ export declare class PingTrigger extends Trigger {
|
|
9
10
|
private IPv6;
|
10
11
|
private failureCount;
|
11
12
|
constructor(sensor: Sensor, name: string);
|
13
|
+
setup(triggerConfig: PingTriggerConfiguration): Promise<void>;
|
12
14
|
/**
|
13
15
|
* Private methods
|
14
16
|
*/
|
15
17
|
private ping;
|
18
|
+
private getIP;
|
16
19
|
}
|
17
20
|
export declare const dynamicTrigger: typeof PingTrigger;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Trigger } from './trigger.js';
|
2
2
|
import { Sensor } from '../sensors/virtualSensor.js';
|
3
|
-
|
3
|
+
import dns from 'dns';
|
4
4
|
import net from 'net';
|
5
5
|
import ping from 'net-ping';
|
6
6
|
/**
|
@@ -27,12 +27,17 @@ export class PingTrigger extends Trigger {
|
|
27
27
|
this.log.info(`[${this.sensorConfig.accessoryName}] Ping trigger is disabled`);
|
28
28
|
return;
|
29
29
|
}
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
this.setup(triggerConfig);
|
31
|
+
}
|
32
|
+
async setup(triggerConfig) {
|
33
|
+
let ipProtocolVersion = net.isIP(triggerConfig.host);
|
34
|
+
if (ipProtocolVersion === this.NOT_IP) {
|
35
|
+
const ip = await this.getIP(triggerConfig.host);
|
36
|
+
if (ip) {
|
37
|
+
ipProtocolVersion = net.isIP(ip);
|
38
|
+
triggerConfig.host = ip;
|
39
|
+
}
|
40
|
+
}
|
36
41
|
let protocol;
|
37
42
|
switch (ipProtocolVersion) {
|
38
43
|
case this.IPv4:
|
@@ -41,10 +46,6 @@ export class PingTrigger extends Trigger {
|
|
41
46
|
case this.IPv6:
|
42
47
|
protocol = ping.NetworkProtocol.IPv6;
|
43
48
|
break;
|
44
|
-
// case this.NOT_IP:
|
45
|
-
// // TODO: this is a domain name, perform DNS lookup
|
46
|
-
// protocol = ping.NetworkProtocol.None; // 0
|
47
|
-
// break;
|
48
49
|
default:
|
49
50
|
this.log.error(`[${this.sensorConfig.accessoryName}] Unkown or invalid IP protocol version: ${ipProtocolVersion}`);
|
50
51
|
return;
|
@@ -93,6 +94,17 @@ export class PingTrigger extends Trigger {
|
|
93
94
|
session.close();
|
94
95
|
});
|
95
96
|
}
|
97
|
+
async getIP(hostname) {
|
98
|
+
const response = await dns.promises.lookup(hostname)
|
99
|
+
.then((result) => {
|
100
|
+
this.sensor.platform.log.info(`[${this.sensorConfig.accessoryName}] IP address retrieved for '${hostname}' is '${result.address}'`);
|
101
|
+
return result.address;
|
102
|
+
})
|
103
|
+
.catch((error) => {
|
104
|
+
this.sensor.platform.log.error(`[${this.sensorConfig.accessoryName}] Error retrieving IP address for '${hostname}': ${error.message}`);
|
105
|
+
});
|
106
|
+
return response;
|
107
|
+
}
|
96
108
|
}
|
97
109
|
export const dynamicTrigger = PingTrigger;
|
98
110
|
//# sourceMappingURL=triggerPing.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"triggerPing.js","sourceRoot":"","sources":["../../src/triggers/triggerPing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,
|
1
|
+
{"version":3,"file":"triggerPing.js","sourceRoot":"","sources":["../../src/triggers/triggerPing.ts"],"names":[],"mappings":"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"}
|
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.1.
|
5
|
+
"version": "3.1.2",
|
6
6
|
"description": "Virtual HomeKit accessories for Homebridge.",
|
7
7
|
"author": "justjam2013",
|
8
8
|
"license": "MIT",
|
@@ -28,6 +28,14 @@
|
|
28
28
|
"virtual fan",
|
29
29
|
"garage door",
|
30
30
|
"virtual garage door",
|
31
|
+
"heater",
|
32
|
+
"virtual heater",
|
33
|
+
"thermostat",
|
34
|
+
"virtual thermostat",
|
35
|
+
"cooler",
|
36
|
+
"virtual cooler",
|
37
|
+
"air conditioner",
|
38
|
+
"virtual air conditioner",
|
31
39
|
"humidifier",
|
32
40
|
"virtual humidifier",
|
33
41
|
"dehumidifier",
|