homebridge-virtual-accessories 3.6.2 → 3.6.3
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 +2 -0
- package/dist/accessories/virtualAccessoryFilterMaintenance.js +1 -1
- package/dist/accessories/virtualAccessoryFilterMaintenance.js.map +1 -1
- package/dist/configuration/accessories/configurationFilterMaintenance.js +5 -0
- package/dist/configuration/accessories/configurationFilterMaintenance.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -120,6 +120,8 @@ Currently, these are the implemented virtual accessories:
|
|
120
120
|
- **Switch trigger.** To create a switch triggered sensor, create a virtual switch accessory with a companion sensor. This is just the easier way of implementing a switch triggered sensor. A future version may provide the ability to create this pairing as a sensor with a switch trigger.
|
121
121
|
- **Webhook trigger.** Triggers the sensor via a [webhook call](#webhook-service-configuration). To reset the sensor, trigger it via another web call.
|
122
122
|
|
123
|
+
- **Timer.** To create a timer, create a timed switch.
|
124
|
+
|
123
125
|
<span align="right">
|
124
126
|
<h6>
|
125
127
|
|
@@ -19,7 +19,7 @@ export class FilterMaintenance extends Accessory {
|
|
19
19
|
constructor(platform, accessory) {
|
20
20
|
super(platform, accessory);
|
21
21
|
// First configure the device based on the accessory details
|
22
|
-
this.lifespan = Utils.daysHoursMinutesSecondsToSeconds(this.accessoryConfiguration.filterMaintenance.lifespan.days, this.accessoryConfiguration.filterMaintenance.lifespan.hours, this.accessoryConfiguration.filterMaintenance.lifespan.minutes, this.accessoryConfiguration.filterMaintenance.lifespan.seconds);
|
22
|
+
this.lifespan = Utils.daysHoursMinutesSecondsToSeconds(this.accessoryConfiguration.filterMaintenance.lifespan.days, (this.accessoryConfiguration.filterMaintenance.lifespan.hours ??= 0), (this.accessoryConfiguration.filterMaintenance.lifespan.minutes ??= 0), (this.accessoryConfiguration.filterMaintenance.lifespan.seconds ??= 0));
|
23
23
|
const timerIsResettable = true;
|
24
24
|
this.lifespanTimer = new Timer(this.accessoryConfiguration.accessoryName, this.log, timerIsResettable, this.lifespan);
|
25
25
|
const accessoryState = this.loadAccessoryState(this.storagePath);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"virtualAccessoryFilterMaintenance.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryFilterMaintenance.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAKhC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAE9C,MAAM,CAAU,mBAAmB,GAAW,QAAQ,CAAC;IAEvD,MAAM,CAAU,SAAS,GAAW,CAAC,CAAC,CAAM,kDAAkD;IAC9F,MAAM,CAAU,aAAa,GAAW,CAAC,CAAC,CAAE,sDAAsD;IAEjF,wBAAwB,GAAW,gBAAgB,CAAC;IACpD,uBAAuB,GAAW,eAAe,CAAC;IAClD,wBAAwB,GAAW,gBAAgB,CAAC;IAE7D,QAAQ,CAAS;IACjB,aAAa,CAAQ;IAErB,qBAAqB,CAAS;IAE9B,MAAM,GAAG,EAChB,CAAC;IAEF,YACE,QAAoC,EACpC,SAA4B;QAE5B,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE3B,4DAA4D;QAE5D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,gCAAgC,CACpD,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAC3D,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,
|
1
|
+
{"version":3,"file":"virtualAccessoryFilterMaintenance.js","sourceRoot":"","sources":["../../src/accessories/virtualAccessoryFilterMaintenance.ts"],"names":[],"mappings":"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"}
|
@@ -29,6 +29,11 @@ export class FilterMaintenanceConfiguration extends AccessoryConfiguration {
|
|
29
29
|
else {
|
30
30
|
[isValidLifespan, lifespanErrorFields] = [false, [this.fieldNames.lifespan]];
|
31
31
|
}
|
32
|
+
if (this.lifespan !== undefined &&
|
33
|
+
Utils.daysHoursMinutesSecondsToSeconds(this.lifespan.days, this.lifespan.hours, this.lifespan.minutes, this.lifespan.seconds) === 0) {
|
34
|
+
isValidLifespan = false;
|
35
|
+
lifespanErrorFields.push(this.fieldNames.lifespan);
|
36
|
+
}
|
32
37
|
// Store fields failing validation
|
33
38
|
if (!isValidLifespan) {
|
34
39
|
lifespanErrorFields.forEach((errorField) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"configurationFilterMaintenance.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFilterMaintenance.ts"],"names":[],"mappings":"AAAA,gCAAgC;;;;;;;;;;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,sBAAsB;IAExE,MAAM,CAAU,cAAc,GAAW,EAAE,CAAC;IAG1C,QAAQ,CAAyB;IAE3B,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,IAAI,eAAe,GAAY,IAAI,CAAC;QACpC,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAS,EAAE,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAC3I,CAAC;aACI,CAAC;YACJ,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAE,IAAI,CAAC,UAAU,CAAC,QAAS,CAAE,CAAC,CAAC;QAClF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,mBAAmB,CAAC,OAAO,CAAE,CAAC,UAAU,EAAE,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,CAAC,eAAe,CAAC;YACjB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;;
|
1
|
+
{"version":3,"file":"configurationFilterMaintenance.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFilterMaintenance.ts"],"names":[],"mappings":"AAAA,gCAAgC;;;;;;;;;;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,8BAA+B,SAAQ,sBAAsB;IAExE,MAAM,CAAU,cAAc,GAAW,EAAE,CAAC;IAG1C,QAAQ,CAAyB;IAE3B,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,IAAI,eAAe,GAAY,IAAI,CAAC;QACpC,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAS,EAAE,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAC3I,CAAC;aACI,CAAC;YACJ,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAE,IAAI,CAAC,UAAU,CAAC,QAAS,CAAE,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC7B,KAAK,CAAC,gCAAgC,CACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAC9B,CAAC;YACD,eAAe,GAAG,KAAK,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,CAAC;QACtD,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,mBAAmB,CAAC,OAAO,CAAE,CAAC,UAAU,EAAE,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,CAAC,eAAe,CAAC;YACjB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;;AAtCC;IADD,IAAI,CAAC,qBAAqB,CAAC;8BACf,qBAAqB;gEAAC"}
|
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.6.
|
5
|
+
"version": "3.6.3",
|
6
6
|
"description": "Virtual HomeKit accessories for Homebridge.",
|
7
7
|
"author": "justjam2013",
|
8
8
|
"license": "MIT",
|