homebridge-virtual-accessories 3.6.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/LICENSE +7 -0
- package/README.md +1091 -0
- package/VirtualAccessories.jpg +0 -0
- package/VirtualAccessories.png +0 -0
- package/assets/changeorder.png +0 -0
- package/assets/creative-ideas/HowToAddAFakeThermostat.png +0 -0
- package/assets/keepaccessories.png +0 -0
- package/assets/mentions/youtube-EdgarsHomeTech.png +0 -0
- package/assets/mentions/youtube-MakeSmartMatter.png +0 -0
- package/assets/wiki/automation-shortcut-1.png +0 -0
- package/assets/wiki/automation-shortcut-2.png +0 -0
- package/assets/wiki/cron-schedule-config.png +0 -0
- package/assets/wiki/enable-sensor-webhooks.png +0 -0
- package/assets/wiki/humidifier-dehumidifier-config.png +0 -0
- package/assets/wiki/new-automation.png +0 -0
- package/assets/wiki/timer-duration-new.png +0 -0
- package/assets/wiki/timer-duration-old.png +0 -0
- package/assets/wiki/valve-timer-duration-new.png +0 -0
- package/assets/wiki/valve-timer-duration-old.png +0 -0
- package/config.schema.json +1570 -0
- package/dist/accessories/audioAccessory.d.ts +29 -0
- package/dist/accessories/audioAccessory.js +119 -0
- package/dist/accessories/audioAccessory.js.map +1 -0
- package/dist/accessories/externalAccessory.d.ts +10 -0
- package/dist/accessories/externalAccessory.js +13 -0
- package/dist/accessories/externalAccessory.js.map +1 -0
- package/dist/accessories/openingAccessory.d.ts +35 -0
- package/dist/accessories/openingAccessory.js +166 -0
- package/dist/accessories/openingAccessory.js.map +1 -0
- package/dist/accessories/triggerableEventAccessory.d.ts +7 -0
- package/dist/accessories/triggerableEventAccessory.js +2 -0
- package/dist/accessories/triggerableEventAccessory.js.map +1 -0
- package/dist/accessories/virtualAccessory.d.ts +29 -0
- package/dist/accessories/virtualAccessory.js +86 -0
- package/dist/accessories/virtualAccessory.js.map +1 -0
- package/dist/accessories/virtualAccessoryDoor.d.ts +14 -0
- package/dist/accessories/virtualAccessoryDoor.js +20 -0
- package/dist/accessories/virtualAccessoryDoor.js.map +1 -0
- package/dist/accessories/virtualAccessoryDoorbell.d.ts +29 -0
- package/dist/accessories/virtualAccessoryDoorbell.js +111 -0
- package/dist/accessories/virtualAccessoryDoorbell.js.map +1 -0
- package/dist/accessories/virtualAccessoryFan.d.ts +27 -0
- package/dist/accessories/virtualAccessoryFan.js +122 -0
- package/dist/accessories/virtualAccessoryFan.js.map +1 -0
- package/dist/accessories/virtualAccessoryFilterMaintenance.d.ts +26 -0
- package/dist/accessories/virtualAccessoryFilterMaintenance.js +122 -0
- package/dist/accessories/virtualAccessoryFilterMaintenance.js.map +1 -0
- package/dist/accessories/virtualAccessoryGarageDoor.d.ts +28 -0
- package/dist/accessories/virtualAccessoryGarageDoor.js +162 -0
- package/dist/accessories/virtualAccessoryGarageDoor.js.map +1 -0
- package/dist/accessories/virtualAccessoryHeaterCooler.d.ts +62 -0
- package/dist/accessories/virtualAccessoryHeaterCooler.js +441 -0
- package/dist/accessories/virtualAccessoryHeaterCooler.js.map +1 -0
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.d.ts +53 -0
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js +365 -0
- package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js.map +1 -0
- package/dist/accessories/virtualAccessoryInputSource.d.ts +38 -0
- package/dist/accessories/virtualAccessoryInputSource.js +196 -0
- package/dist/accessories/virtualAccessoryInputSource.js.map +1 -0
- package/dist/accessories/virtualAccessoryLightbulb.d.ts +37 -0
- package/dist/accessories/virtualAccessoryLightbulb.js +222 -0
- package/dist/accessories/virtualAccessoryLightbulb.js.map +1 -0
- package/dist/accessories/virtualAccessoryLock.d.ts +34 -0
- package/dist/accessories/virtualAccessoryLock.js +198 -0
- package/dist/accessories/virtualAccessoryLock.js.map +1 -0
- package/dist/accessories/virtualAccessorySecuritySystem.d.ts +30 -0
- package/dist/accessories/virtualAccessorySecuritySystem.js +214 -0
- package/dist/accessories/virtualAccessorySecuritySystem.js.map +1 -0
- package/dist/accessories/virtualAccessorySpeaker.d.ts +14 -0
- package/dist/accessories/virtualAccessorySpeaker.js +20 -0
- package/dist/accessories/virtualAccessorySpeaker.js.map +1 -0
- package/dist/accessories/virtualAccessorySwitch.d.ts +34 -0
- package/dist/accessories/virtualAccessorySwitch.js +191 -0
- package/dist/accessories/virtualAccessorySwitch.js.map +1 -0
- package/dist/accessories/virtualAccessoryTelevision.d.ts +44 -0
- package/dist/accessories/virtualAccessoryTelevision.js +230 -0
- package/dist/accessories/virtualAccessoryTelevision.js.map +1 -0
- package/dist/accessories/virtualAccessoryValve.d.ts +34 -0
- package/dist/accessories/virtualAccessoryValve.js +215 -0
- package/dist/accessories/virtualAccessoryValve.js.map +1 -0
- package/dist/accessories/virtualAccessoryWindow.d.ts +14 -0
- package/dist/accessories/virtualAccessoryWindow.js +20 -0
- package/dist/accessories/virtualAccessoryWindow.js.map +1 -0
- package/dist/accessories/virtualAccessoryWindowCovering.d.ts +14 -0
- package/dist/accessories/virtualAccessoryWindowCovering.js +20 -0
- package/dist/accessories/virtualAccessoryWindowCovering.js.map +1 -0
- package/dist/accessoryFactory.d.ts +15 -0
- package/dist/accessoryFactory.js +147 -0
- package/dist/accessoryFactory.js.map +1 -0
- package/dist/colors.d.ts +22 -0
- package/dist/colors.js +146 -0
- package/dist/colors.js.map +1 -0
- package/dist/companions/companionLightbulb.d.ts +10 -0
- package/dist/companions/companionLightbulb.js +12 -0
- package/dist/companions/companionLightbulb.js.map +1 -0
- package/dist/companions/companionSensors.d.ts +9 -0
- package/dist/companions/companionSensors.js +117 -0
- package/dist/companions/companionSensors.js.map +1 -0
- package/dist/companions/companionSwitch.d.ts +15 -0
- package/dist/companions/companionSwitch.js +46 -0
- package/dist/companions/companionSwitch.js.map +1 -0
- package/dist/configuration/accessories/configurationDoor.d.ts +9 -0
- package/dist/configuration/accessories/configurationDoor.js +31 -0
- package/dist/configuration/accessories/configurationDoor.js.map +1 -0
- package/dist/configuration/accessories/configurationDoorbell.d.ts +10 -0
- package/dist/configuration/accessories/configurationDoorbell.js +23 -0
- package/dist/configuration/accessories/configurationDoorbell.js.map +1 -0
- package/dist/configuration/accessories/configurationFan.d.ts +12 -0
- package/dist/configuration/accessories/configurationFan.js +36 -0
- package/dist/configuration/accessories/configurationFan.js.map +1 -0
- package/dist/configuration/accessories/configurationFilterMaintenance.d.ts +12 -0
- package/dist/configuration/accessories/configurationFilterMaintenance.js +48 -0
- package/dist/configuration/accessories/configurationFilterMaintenance.js.map +1 -0
- package/dist/configuration/accessories/configurationGarageDoor.d.ts +9 -0
- package/dist/configuration/accessories/configurationGarageDoor.js +31 -0
- package/dist/configuration/accessories/configurationGarageDoor.js.map +1 -0
- package/dist/configuration/accessories/configurationHeaterCooler.d.ts +20 -0
- package/dist/configuration/accessories/configurationHeaterCooler.js +116 -0
- package/dist/configuration/accessories/configurationHeaterCooler.js.map +1 -0
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.d.ts +12 -0
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js +44 -0
- package/dist/configuration/accessories/configurationHumidifierDehumidifier.js.map +1 -0
- package/dist/configuration/accessories/configurationInputSource.d.ts +12 -0
- package/dist/configuration/accessories/configurationInputSource.js +33 -0
- package/dist/configuration/accessories/configurationInputSource.js.map +1 -0
- package/dist/configuration/accessories/configurationLightbulb.d.ts +14 -0
- package/dist/configuration/accessories/configurationLightbulb.js +55 -0
- package/dist/configuration/accessories/configurationLightbulb.js.map +1 -0
- package/dist/configuration/accessories/configurationLock.d.ts +11 -0
- package/dist/configuration/accessories/configurationLock.js +30 -0
- package/dist/configuration/accessories/configurationLock.js.map +1 -0
- package/dist/configuration/accessories/configurationSecuritySystem.d.ts +18 -0
- package/dist/configuration/accessories/configurationSecuritySystem.js +48 -0
- package/dist/configuration/accessories/configurationSecuritySystem.js.map +1 -0
- package/dist/configuration/accessories/configurationSpeaker.d.ts +9 -0
- package/dist/configuration/accessories/configurationSpeaker.js +24 -0
- package/dist/configuration/accessories/configurationSpeaker.js.map +1 -0
- package/dist/configuration/accessories/configurationSwitch.d.ts +13 -0
- package/dist/configuration/accessories/configurationSwitch.js +27 -0
- package/dist/configuration/accessories/configurationSwitch.js.map +1 -0
- package/dist/configuration/accessories/configurationTelevision.d.ts +12 -0
- package/dist/configuration/accessories/configurationTelevision.js +47 -0
- package/dist/configuration/accessories/configurationTelevision.js.map +1 -0
- package/dist/configuration/accessories/configurationValve.d.ts +25 -0
- package/dist/configuration/accessories/configurationValve.js +88 -0
- package/dist/configuration/accessories/configurationValve.js.map +1 -0
- package/dist/configuration/accessories/configurationWindow.d.ts +9 -0
- package/dist/configuration/accessories/configurationWindow.js +31 -0
- package/dist/configuration/accessories/configurationWindow.js.map +1 -0
- package/dist/configuration/accessories/configurationWindowCovering.d.ts +9 -0
- package/dist/configuration/accessories/configurationWindowCovering.js +31 -0
- package/dist/configuration/accessories/configurationWindowCovering.js.map +1 -0
- package/dist/configuration/configuration.d.ts +13 -0
- package/dist/configuration/configuration.js +41 -0
- package/dist/configuration/configuration.js.map +1 -0
- package/dist/configuration/configurationAccessory.d.ts +6 -0
- package/dist/configuration/configurationAccessory.js +6 -0
- package/dist/configuration/configurationAccessory.js.map +1 -0
- package/dist/configuration/configurationAudioAccessoryConfiguration.d.ts +9 -0
- package/dist/configuration/configurationAudioAccessoryConfiguration.js +9 -0
- package/dist/configuration/configurationAudioAccessoryConfiguration.js.map +1 -0
- package/dist/configuration/configurationCompanionSensor.d.ts +11 -0
- package/dist/configuration/configurationCompanionSensor.js +26 -0
- package/dist/configuration/configurationCompanionSensor.js.map +1 -0
- package/dist/configuration/configurationDuration.d.ts +19 -0
- package/dist/configuration/configurationDuration.js +55 -0
- package/dist/configuration/configurationDuration.js.map +1 -0
- package/dist/configuration/configurationOpenableAccesory.d.ts +9 -0
- package/dist/configuration/configurationOpenableAccesory.js +9 -0
- package/dist/configuration/configurationOpenableAccesory.js.map +1 -0
- package/dist/configuration/configurationPlatform.d.ts +76 -0
- package/dist/configuration/configurationPlatform.js +381 -0
- package/dist/configuration/configurationPlatform.js.map +1 -0
- package/dist/configuration/configurationSchema.d.ts +178 -0
- package/dist/configuration/configurationSchema.js +198 -0
- package/dist/configuration/configurationSchema.js.map +1 -0
- package/dist/configuration/configurationSensor.d.ts +11 -0
- package/dist/configuration/configurationSensor.js +30 -0
- package/dist/configuration/configurationSensor.js.map +1 -0
- package/dist/configuration/configurationSensorServer.d.ts +11 -0
- package/dist/configuration/configurationSensorServer.js +26 -0
- package/dist/configuration/configurationSensorServer.js.map +1 -0
- package/dist/configuration/configurationTimer.d.ts +15 -0
- package/dist/configuration/configurationTimer.js +101 -0
- package/dist/configuration/configurationTimer.js.map +1 -0
- package/dist/configuration/triggers/configurationCronTrigger.d.ts +18 -0
- package/dist/configuration/triggers/configurationCronTrigger.js +65 -0
- package/dist/configuration/triggers/configurationCronTrigger.js.map +1 -0
- package/dist/configuration/triggers/configurationPingTrigger.d.ts +11 -0
- package/dist/configuration/triggers/configurationPingTrigger.js +26 -0
- package/dist/configuration/triggers/configurationPingTrigger.js.map +1 -0
- package/dist/configuration/triggers/configurationSunEventsTrigger.d.ts +18 -0
- package/dist/configuration/triggers/configurationSunEventsTrigger.js +52 -0
- package/dist/configuration/triggers/configurationSunEventsTrigger.js.map +1 -0
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.d.ts +9 -0
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js +17 -0
- package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js.map +1 -0
- package/dist/errors.d.ts +27 -0
- package/dist/errors.js +52 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/platform.d.ts +28 -0
- package/dist/platform.js +221 -0
- package/dist/platform.js.map +1 -0
- package/dist/sensorServer.d.ts +27 -0
- package/dist/sensorServer.js +227 -0
- package/dist/sensorServer.js.map +1 -0
- package/dist/sensors/virtualSensor.d.ts +37 -0
- package/dist/sensors/virtualSensor.js +87 -0
- package/dist/sensors/virtualSensor.js.map +1 -0
- package/dist/sensors/virtualSensorCarbonDioxide.d.ts +20 -0
- package/dist/sensors/virtualSensorCarbonDioxide.js +45 -0
- package/dist/sensors/virtualSensorCarbonDioxide.js.map +1 -0
- package/dist/sensors/virtualSensorCarbonMonoxide.d.ts +20 -0
- package/dist/sensors/virtualSensorCarbonMonoxide.js +45 -0
- package/dist/sensors/virtualSensorCarbonMonoxide.js.map +1 -0
- package/dist/sensors/virtualSensorContact.d.ts +20 -0
- package/dist/sensors/virtualSensorContact.js +45 -0
- package/dist/sensors/virtualSensorContact.js.map +1 -0
- package/dist/sensors/virtualSensorLeak.d.ts +20 -0
- package/dist/sensors/virtualSensorLeak.js +45 -0
- package/dist/sensors/virtualSensorLeak.js.map +1 -0
- package/dist/sensors/virtualSensorMotion.d.ts +20 -0
- package/dist/sensors/virtualSensorMotion.js +45 -0
- package/dist/sensors/virtualSensorMotion.js.map +1 -0
- package/dist/sensors/virtualSensorOccupancy.d.ts +20 -0
- package/dist/sensors/virtualSensorOccupancy.js +45 -0
- package/dist/sensors/virtualSensorOccupancy.js.map +1 -0
- package/dist/sensors/virtualSensorSmoke.d.ts +20 -0
- package/dist/sensors/virtualSensorSmoke.js +45 -0
- package/dist/sensors/virtualSensorSmoke.js.map +1 -0
- package/dist/settings.d.ts +8 -0
- package/dist/settings.js +9 -0
- package/dist/settings.js.map +1 -0
- package/dist/timer.d.ts +58 -0
- package/dist/timer.js +110 -0
- package/dist/timer.js.map +1 -0
- package/dist/triggerableSensor.d.ts +6 -0
- package/dist/triggerableSensor.js +2 -0
- package/dist/triggerableSensor.js.map +1 -0
- package/dist/triggers/trigger.d.ts +13 -0
- package/dist/triggers/trigger.js +16 -0
- package/dist/triggers/trigger.js.map +1 -0
- package/dist/triggers/triggerCron.d.ts +19 -0
- package/dist/triggers/triggerCron.js +102 -0
- package/dist/triggers/triggerCron.js.map +1 -0
- package/dist/triggers/triggerPing.d.ts +19 -0
- package/dist/triggers/triggerPing.js +110 -0
- package/dist/triggers/triggerPing.js.map +1 -0
- package/dist/triggers/triggerSunEvents.d.ts +20 -0
- package/dist/triggers/triggerSunEvents.js +200 -0
- package/dist/triggers/triggerSunEvents.js.map +1 -0
- package/dist/triggers/triggerWebhook.d.ts +10 -0
- package/dist/triggers/triggerWebhook.js +26 -0
- package/dist/triggers/triggerWebhook.js.map +1 -0
- package/dist/updatableObstruction.d.ts +6 -0
- package/dist/updatableObstruction.js +2 -0
- package/dist/updatableObstruction.js.map +1 -0
- package/dist/updatableSensor.d.ts +6 -0
- package/dist/updatableSensor.js +2 -0
- package/dist/updatableSensor.js.map +1 -0
- package/dist/utils.d.ts +28 -0
- package/dist/utils.js +120 -0
- package/dist/utils.js.map +1 -0
- package/dist/virtualLogger.d.ts +15 -0
- package/dist/virtualLogger.js +38 -0
- package/dist/virtualLogger.js.map +1 -0
- package/package.json +120 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { Utils } from '../../utils.js';
|
4
|
+
/**
|
5
|
+
*
|
6
|
+
*/
|
7
|
+
export class DoorbellConfiguration extends AccessoryConfiguration {
|
8
|
+
volume;
|
9
|
+
errorFields = [];
|
10
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
11
|
+
isValid(prefix) {
|
12
|
+
const isValidVolume = (Utils.required(this.volume) &&
|
13
|
+
Utils.isPercentage(this.volume));
|
14
|
+
// Store fields failing validation
|
15
|
+
if (!isValidVolume)
|
16
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.volume);
|
17
|
+
return [
|
18
|
+
(isValidVolume),
|
19
|
+
this.errorFields,
|
20
|
+
];
|
21
|
+
}
|
22
|
+
}
|
23
|
+
//# sourceMappingURL=configurationDoorbell.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationDoorbell.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationDoorbell.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,sBAAsB;IAC/D,MAAM,CAAU;IAER,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,aAAa,GAAY,CAC7B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAChC,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEjF,OAAO;YACL,CAAC,aAAa,CAAC;YACf,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class FanConfiguration extends AccessoryConfiguration {
|
6
|
+
defaultState: string;
|
7
|
+
rotationDirection: string;
|
8
|
+
rotationSpeed: number;
|
9
|
+
private errorFields;
|
10
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
11
|
+
isValid(prefix: string): [boolean, string[]];
|
12
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { PowerState, RotationDirection } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class FanConfiguration extends AccessoryConfiguration {
|
9
|
+
defaultState;
|
10
|
+
rotationDirection;
|
11
|
+
rotationSpeed;
|
12
|
+
errorFields = [];
|
13
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
14
|
+
isValid(prefix) {
|
15
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
16
|
+
PowerState.States.includes(this.defaultState));
|
17
|
+
const isValidRotationDirection = (Utils.required(this.rotationDirection) &&
|
18
|
+
RotationDirection.Directions.includes(this.rotationDirection));
|
19
|
+
const isValidRotationSpeed = (Utils.required(this.rotationSpeed) &&
|
20
|
+
Utils.isPercentage(this.rotationSpeed));
|
21
|
+
// Store fields failing validation
|
22
|
+
if (!isValidDefaultState)
|
23
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
24
|
+
if (!isValidRotationDirection)
|
25
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.rotationDirection);
|
26
|
+
if (!isValidRotationSpeed)
|
27
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.rotationSpeed);
|
28
|
+
return [
|
29
|
+
(isValidDefaultState &&
|
30
|
+
isValidRotationDirection &&
|
31
|
+
isValidRotationSpeed),
|
32
|
+
this.errorFields,
|
33
|
+
];
|
34
|
+
}
|
35
|
+
}
|
36
|
+
//# sourceMappingURL=configurationFan.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationFan.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFan.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,sBAAsB;IAC1D,YAAY,CAAU;IACtB,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,mBAAmB,GAAY,CACnC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9C,CAAC;QAEF,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,mBAAmB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7F,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,mBAAmB;gBAClB,wBAAwB;gBACxB,oBAAoB,CAAC;YACvB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
import { DurationConfiguration } from '../configurationDuration.js';
|
3
|
+
/**
|
4
|
+
*
|
5
|
+
*/
|
6
|
+
export declare class FilterMaintenanceConfiguration extends AccessoryConfiguration {
|
7
|
+
static readonly DAYS_MAX_VALUE: number;
|
8
|
+
lifespan: DurationConfiguration;
|
9
|
+
private errorFields;
|
10
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
11
|
+
isValid(prefix: string): [boolean, string[]];
|
12
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/* eslint-disable brace-style */
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
12
|
+
import { DurationConfiguration } from '../configurationDuration.js';
|
13
|
+
import { Utils } from '../../utils.js';
|
14
|
+
import { Type } from 'typeserializer';
|
15
|
+
/**
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
export class FilterMaintenanceConfiguration extends AccessoryConfiguration {
|
19
|
+
static DAYS_MAX_VALUE = 30;
|
20
|
+
lifespan;
|
21
|
+
errorFields = [];
|
22
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
23
|
+
isValid(prefix) {
|
24
|
+
let isValidLifespan = true;
|
25
|
+
let lifespanErrorFields = [];
|
26
|
+
if (this.lifespan !== undefined) {
|
27
|
+
[isValidLifespan, lifespanErrorFields] = this.lifespan.isValid(this.fieldNames.lifespan, FilterMaintenanceConfiguration.DAYS_MAX_VALUE);
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
[isValidLifespan, lifespanErrorFields] = [false, [this.fieldNames.lifespan]];
|
31
|
+
}
|
32
|
+
// Store fields failing validation
|
33
|
+
if (!isValidLifespan) {
|
34
|
+
lifespanErrorFields.forEach((errorField) => {
|
35
|
+
this.errorFields.push(prefix + '.' + errorField);
|
36
|
+
});
|
37
|
+
}
|
38
|
+
return [
|
39
|
+
(isValidLifespan),
|
40
|
+
this.errorFields,
|
41
|
+
];
|
42
|
+
}
|
43
|
+
}
|
44
|
+
__decorate([
|
45
|
+
Type(DurationConfiguration),
|
46
|
+
__metadata("design:type", DurationConfiguration)
|
47
|
+
], FilterMaintenanceConfiguration.prototype, "lifespan", void 0);
|
48
|
+
//# sourceMappingURL=configurationFilterMaintenance.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationFilterMaintenance.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationFilterMaintenance.ts"],"names":[],"mappings":"AAAA,gCAAgC;;;;;;;;;;AAGhC,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;;AA3BC;IADD,IAAI,CAAC,qBAAqB,CAAC;8BACf,qBAAqB;gEAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { OpenableAccessoryConfiguration } from '../configurationOpenableAccesory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class GarageDoorConfiguration extends OpenableAccessoryConfiguration {
|
6
|
+
private errorFields;
|
7
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
8
|
+
isValid(prefix: string): [boolean, string[]];
|
9
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { OpenableAccessoryConfiguration } from '../configurationOpenableAccesory.js';
|
3
|
+
import { OpenableState } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class GarageDoorConfiguration extends OpenableAccessoryConfiguration {
|
9
|
+
// defaultState!: string;
|
10
|
+
// transitionDuration!: number;
|
11
|
+
errorFields = [];
|
12
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
13
|
+
isValid(prefix) {
|
14
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
15
|
+
OpenableState.States.includes(this.defaultState));
|
16
|
+
const isValidTransitionDuration = (this.transitionDuration !== undefined ?
|
17
|
+
Utils.isValidTransition(this.transitionDuration) :
|
18
|
+
true);
|
19
|
+
// Store fields failing validation
|
20
|
+
if (!isValidDefaultState)
|
21
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
22
|
+
if (!isValidTransitionDuration)
|
23
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.transitionDuration);
|
24
|
+
return [
|
25
|
+
(isValidDefaultState &&
|
26
|
+
isValidTransitionDuration),
|
27
|
+
this.errorFields,
|
28
|
+
];
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=configurationGarageDoor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationGarageDoor.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationGarageDoor.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,8BAA8B;IACzE,yBAAyB;IACzB,+BAA+B;IAEvB,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,mBAAmB,GAAY,CACnC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CACjD,CAAC;QAEF,MAAM,yBAAyB,GAAY,CACzC,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAA,CAAC;YACpC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAClD,IAAI,CACP,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,mBAAmB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,yBAAyB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAEzG,OAAO;YACL,CAAC,mBAAmB;gBAClB,yBAAyB,CAAC;YAC5B,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class HeaterCoolerConfiguration extends AccessoryConfiguration {
|
6
|
+
type: string;
|
7
|
+
temperatureDisplayUnits: string;
|
8
|
+
heatingThresholdCelsius: number;
|
9
|
+
coolingThresholdCelsius: number;
|
10
|
+
heatingThresholdFahrenheit: number;
|
11
|
+
coolingThresholdFahrenheit: number;
|
12
|
+
private errorFields;
|
13
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
14
|
+
isValid(prefix: string): [boolean, string[]];
|
15
|
+
getHeatingThreshold(): number | undefined;
|
16
|
+
getCoolingThreshold(): number | undefined;
|
17
|
+
private isValidHeatingThreshold;
|
18
|
+
private isValidCoolingThreshold;
|
19
|
+
private capitalize;
|
20
|
+
}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
/* eslint-disable brace-style */
|
2
|
+
/* eslint-disable curly */
|
3
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
4
|
+
import { HeaterType, TemperatureUnit, ThresholdTemperature } from '../configurationSchema.js';
|
5
|
+
import { Utils } from '../../utils.js';
|
6
|
+
/**
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
export class HeaterCoolerConfiguration extends AccessoryConfiguration {
|
10
|
+
type;
|
11
|
+
temperatureDisplayUnits;
|
12
|
+
heatingThresholdCelsius;
|
13
|
+
coolingThresholdCelsius;
|
14
|
+
heatingThresholdFahrenheit;
|
15
|
+
coolingThresholdFahrenheit;
|
16
|
+
errorFields = [];
|
17
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
18
|
+
isValid(prefix) {
|
19
|
+
const isValidType = (Utils.required(this.type) &&
|
20
|
+
HeaterType.Types.includes(this.type));
|
21
|
+
const isValidTemperatureDisplayUnits = (Utils.required(this.temperatureDisplayUnits) &&
|
22
|
+
TemperatureUnit.Units.includes(this.temperatureDisplayUnits));
|
23
|
+
const heatingThreshold = this.getHeatingThreshold();
|
24
|
+
const coolingThreshold = this.getCoolingThreshold();
|
25
|
+
const isValidHeatingThreshold = (this.isValidHeatingThreshold());
|
26
|
+
const isValidCoolingThreshold = (this.isValidCoolingThreshold());
|
27
|
+
const isValidThresholdWindow = ((heatingThreshold !== undefined) && (coolingThreshold !== undefined) ?
|
28
|
+
(coolingThreshold > heatingThreshold) :
|
29
|
+
true);
|
30
|
+
// Store fields failing validation
|
31
|
+
const heatingThresholdField = '.heatingThreshold' + this.capitalize(this.temperatureDisplayUnits);
|
32
|
+
const coolingThresholdField = '.coolingThreshold' + this.capitalize(this.temperatureDisplayUnits);
|
33
|
+
if (!isValidType)
|
34
|
+
this.errorFields.push(prefix + '.type');
|
35
|
+
if (!isValidTemperatureDisplayUnits)
|
36
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.temperatureDisplayUnits);
|
37
|
+
if (!isValidHeatingThreshold)
|
38
|
+
this.errorFields.push(prefix + heatingThresholdField);
|
39
|
+
if (!isValidCoolingThreshold)
|
40
|
+
this.errorFields.push(prefix + coolingThresholdField);
|
41
|
+
if (!isValidThresholdWindow)
|
42
|
+
this.errorFields.push(prefix + heatingThresholdField + ' <= ' + prefix + coolingThresholdField);
|
43
|
+
return [
|
44
|
+
(isValidType &&
|
45
|
+
isValidTemperatureDisplayUnits &&
|
46
|
+
isValidHeatingThreshold &&
|
47
|
+
isValidCoolingThreshold &&
|
48
|
+
isValidThresholdWindow),
|
49
|
+
this.errorFields,
|
50
|
+
];
|
51
|
+
}
|
52
|
+
getHeatingThreshold() {
|
53
|
+
let heatingThreshold = undefined;
|
54
|
+
if (this.temperatureDisplayUnits === TemperatureUnit.Celsius) {
|
55
|
+
heatingThreshold = this.heatingThresholdCelsius;
|
56
|
+
}
|
57
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Fahrenheit) {
|
58
|
+
heatingThreshold = this.heatingThresholdFahrenheit;
|
59
|
+
}
|
60
|
+
return heatingThreshold;
|
61
|
+
}
|
62
|
+
getCoolingThreshold() {
|
63
|
+
let coolingThreshold = undefined;
|
64
|
+
if (this.temperatureDisplayUnits === TemperatureUnit.Celsius) {
|
65
|
+
coolingThreshold = this.coolingThresholdCelsius;
|
66
|
+
}
|
67
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Fahrenheit) {
|
68
|
+
coolingThreshold = this.coolingThresholdFahrenheit;
|
69
|
+
}
|
70
|
+
return coolingThreshold;
|
71
|
+
}
|
72
|
+
isValidHeatingThreshold() {
|
73
|
+
let isValidHeatingThreshold = false;
|
74
|
+
// If it's a cooler onlu, then no heating threshold is valid
|
75
|
+
if (this.type === HeaterType.Cooler) {
|
76
|
+
isValidHeatingThreshold = true;
|
77
|
+
}
|
78
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Celsius) {
|
79
|
+
isValidHeatingThreshold =
|
80
|
+
Utils.required(this.heatingThresholdCelsius) &&
|
81
|
+
(this.heatingThresholdCelsius >= ThresholdTemperature.HeatingThresholdCelsiusMin &&
|
82
|
+
this.heatingThresholdCelsius <= ThresholdTemperature.HeatingThresholdCelsiusMax);
|
83
|
+
}
|
84
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Fahrenheit) {
|
85
|
+
isValidHeatingThreshold =
|
86
|
+
Utils.required(this.heatingThresholdFahrenheit) &&
|
87
|
+
(this.heatingThresholdFahrenheit >= ThresholdTemperature.HeatingThresholdFahrenheitMin &&
|
88
|
+
this.heatingThresholdFahrenheit <= ThresholdTemperature.HeatingThresholdFahrenheitMax);
|
89
|
+
}
|
90
|
+
return isValidHeatingThreshold;
|
91
|
+
}
|
92
|
+
isValidCoolingThreshold() {
|
93
|
+
let isValidCoolingThreshold = false;
|
94
|
+
// If it's a heater onlu, then no cooling threshold is valid
|
95
|
+
if (this.type === HeaterType.Heater) {
|
96
|
+
isValidCoolingThreshold = true;
|
97
|
+
}
|
98
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Celsius) {
|
99
|
+
isValidCoolingThreshold =
|
100
|
+
Utils.required(this.coolingThresholdCelsius) &&
|
101
|
+
(this.coolingThresholdCelsius >= ThresholdTemperature.CoolingThresholdCelsiusMin &&
|
102
|
+
this.coolingThresholdCelsius <= ThresholdTemperature.CoolingThresholdCelsiusMax);
|
103
|
+
}
|
104
|
+
else if (this.temperatureDisplayUnits === TemperatureUnit.Fahrenheit) {
|
105
|
+
isValidCoolingThreshold =
|
106
|
+
Utils.required(this.coolingThresholdFahrenheit) &&
|
107
|
+
(this.coolingThresholdFahrenheit >= ThresholdTemperature.CoolingThresholdFahrenheitMin &&
|
108
|
+
this.coolingThresholdFahrenheit <= ThresholdTemperature.CoolingThresholdFahrenheitMax);
|
109
|
+
}
|
110
|
+
return isValidCoolingThreshold;
|
111
|
+
}
|
112
|
+
capitalize(value) {
|
113
|
+
return String(value).charAt(0).toUpperCase() + String(value).slice(1);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
//# sourceMappingURL=configurationHeaterCooler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationHeaterCooler.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationHeaterCooler.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class HumidifierDehumidifierConfiguration extends AccessoryConfiguration {
|
6
|
+
type: string;
|
7
|
+
humidifierThreshold: number;
|
8
|
+
dehumidifierThreshold: number;
|
9
|
+
private errorFields;
|
10
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
11
|
+
isValid(prefix: string): [boolean, string[]];
|
12
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { HumidifierType } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class HumidifierDehumidifierConfiguration extends AccessoryConfiguration {
|
9
|
+
type;
|
10
|
+
humidifierThreshold;
|
11
|
+
dehumidifierThreshold;
|
12
|
+
errorFields = [];
|
13
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
14
|
+
isValid(prefix) {
|
15
|
+
const isValidType = (Utils.required(this.type) &&
|
16
|
+
HumidifierType.Types.includes(this.type));
|
17
|
+
const isValidHumidifierThreshold = ((this.humidifierThreshold !== undefined) ?
|
18
|
+
Utils.isPercentage(this.humidifierThreshold) :
|
19
|
+
true);
|
20
|
+
const isValidDehumidifierThreshold = ((this.dehumidifierThreshold !== undefined) ?
|
21
|
+
Utils.isPercentage(this.dehumidifierThreshold) :
|
22
|
+
true);
|
23
|
+
const isValidThresholdWindow = ((this.humidifierThreshold !== undefined) && (this.dehumidifierThreshold !== undefined) ?
|
24
|
+
(this.dehumidifierThreshold > this.humidifierThreshold) :
|
25
|
+
true);
|
26
|
+
// Store fields failing validation
|
27
|
+
if (!isValidType)
|
28
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.type);
|
29
|
+
if (!isValidHumidifierThreshold)
|
30
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.humidifierThreshold);
|
31
|
+
if (!isValidDehumidifierThreshold)
|
32
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.dehumidifierThreshold);
|
33
|
+
if (!isValidThresholdWindow)
|
34
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.humidifierThreshold + ' <= ' + prefix + '.' + this.fieldNames.dehumidifierThreshold);
|
35
|
+
return [
|
36
|
+
(isValidType &&
|
37
|
+
isValidHumidifierThreshold &&
|
38
|
+
isValidDehumidifierThreshold &&
|
39
|
+
isValidThresholdWindow),
|
40
|
+
this.errorFields,
|
41
|
+
];
|
42
|
+
}
|
43
|
+
}
|
44
|
+
//# sourceMappingURL=configurationHumidifierDehumidifier.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationHumidifierDehumidifier.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationHumidifierDehumidifier.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,sBAAsB;IAC7E,IAAI,CAAU;IACd,mBAAmB,CAAU;IAC7B,qBAAqB,CAAU;IAEvB,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,WAAW,GAAY,CAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QAEF,MAAM,0BAA0B,GAAY,CAC1C,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,IAAI,CACP,CAAC;QAEF,MAAM,4BAA4B,GAAY,CAC5C,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC;YAC1C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAChD,IAAI,CACP,CAAC;QAEF,MAAM,sBAAsB,GAAY,CACtC,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC;YACtF,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACzD,IAAI,CACP,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,0BAA0B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAC3G,IAAI,CAAC,4BAA4B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAC/G,IAAI,CAAC,sBAAsB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAChD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAEvH,OAAO;YACL,CAAC,WAAW;gBACV,0BAA0B;gBAC1B,4BAA4B;gBAC5B,sBAAsB,CAAC;YACzB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class InputSourceConfiguration extends AccessoryConfiguration {
|
6
|
+
name: string;
|
7
|
+
inputSourceType: number;
|
8
|
+
identifier: number;
|
9
|
+
private errorFields;
|
10
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
11
|
+
isValid(prefix: string): [boolean, string[]];
|
12
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { Utils } from '../../utils.js';
|
4
|
+
/**
|
5
|
+
*
|
6
|
+
*/
|
7
|
+
export class InputSourceConfiguration extends AccessoryConfiguration {
|
8
|
+
name;
|
9
|
+
inputSourceType;
|
10
|
+
identifier;
|
11
|
+
errorFields = [];
|
12
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
13
|
+
isValid(prefix) {
|
14
|
+
const isValidName = (Utils.required(this.name) &&
|
15
|
+
(this.name.length > 0));
|
16
|
+
const isValidInputSourceType = (Utils.required(this.inputSourceType));
|
17
|
+
const isValidIdentifier = (Utils.required(this.identifier));
|
18
|
+
// Store fields failing validation
|
19
|
+
if (!isValidName)
|
20
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.name);
|
21
|
+
if (!isValidInputSourceType)
|
22
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.inputSourceType);
|
23
|
+
if (!isValidIdentifier)
|
24
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.identifier);
|
25
|
+
return [
|
26
|
+
(isValidName &&
|
27
|
+
isValidInputSourceType &&
|
28
|
+
isValidIdentifier),
|
29
|
+
this.errorFields,
|
30
|
+
];
|
31
|
+
}
|
32
|
+
}
|
33
|
+
//# sourceMappingURL=configurationInputSource.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationInputSource.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationInputSource.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,IAAI,CAAU;IACd,eAAe,CAAU;IACzB,UAAU,CAAU;IAEZ,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,WAAW,GAAY,CAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CACvB,CAAC;QAEF,MAAM,sBAAsB,GAAY,CACtC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CACrC,CAAC;QAEF,MAAM,iBAAiB,GAAY,CACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAChC,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,sBAAsB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACnG,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEzF,OAAO;YACL,CAAC,WAAW;gBACV,sBAAsB;gBACtB,iBAAiB,CAAC;YACpB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class LightbulbConfiguration extends AccessoryConfiguration {
|
6
|
+
defaultState: string;
|
7
|
+
type: string;
|
8
|
+
brightness: number;
|
9
|
+
colorTemperatureKelvin: number;
|
10
|
+
colorHex: string;
|
11
|
+
private errorFields;
|
12
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
13
|
+
isValid(prefix: string): [boolean, string[]];
|
14
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { ColorTemperature, LightbulbType, PowerState } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
import { Colors } from '../../colors.js';
|
6
|
+
/**
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
export class LightbulbConfiguration extends AccessoryConfiguration {
|
10
|
+
defaultState;
|
11
|
+
type;
|
12
|
+
brightness;
|
13
|
+
colorTemperatureKelvin;
|
14
|
+
colorHex;
|
15
|
+
errorFields = [];
|
16
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
17
|
+
isValid(prefix) {
|
18
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
19
|
+
PowerState.States.includes(this.defaultState));
|
20
|
+
const isValidType = (Utils.required(this.type) &&
|
21
|
+
LightbulbType.Types.includes(this.type));
|
22
|
+
const isValidBrightness = (([LightbulbType.White, LightbulbType.Ambiance].includes(this.type)) ?
|
23
|
+
(Utils.required(this.brightness) &&
|
24
|
+
Utils.isPercentage(this.brightness)) :
|
25
|
+
true);
|
26
|
+
const isValidColorTemperature = ((this.type === LightbulbType.Ambiance) ?
|
27
|
+
(Utils.required(this.colorTemperatureKelvin) &&
|
28
|
+
(this.colorTemperatureKelvin >= ColorTemperature.TemperatureKelvinMin && this.colorTemperatureKelvin <= ColorTemperature.TemperatureKelvinMax)) :
|
29
|
+
true);
|
30
|
+
const isValidColorRGB = ((this.type === LightbulbType.Color) ?
|
31
|
+
(Utils.required(this.colorHex) &&
|
32
|
+
Colors.isValidHex(this.colorHex)) :
|
33
|
+
true);
|
34
|
+
// Store fields failing validation
|
35
|
+
if (!isValidDefaultState)
|
36
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
37
|
+
if (!isValidType)
|
38
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.type);
|
39
|
+
if (!isValidBrightness)
|
40
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.brightness);
|
41
|
+
if (!isValidColorTemperature)
|
42
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.colorTemperatureKelvin);
|
43
|
+
if (!isValidColorRGB)
|
44
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.colorHex);
|
45
|
+
return [
|
46
|
+
(isValidDefaultState &&
|
47
|
+
isValidType &&
|
48
|
+
isValidBrightness &&
|
49
|
+
isValidColorTemperature &&
|
50
|
+
isValidColorRGB),
|
51
|
+
this.errorFields,
|
52
|
+
];
|
53
|
+
}
|
54
|
+
}
|
55
|
+
//# sourceMappingURL=configurationLightbulb.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationLightbulb.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationLightbulb.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class LockConfiguration extends AccessoryConfiguration {
|
6
|
+
defaultState: string;
|
7
|
+
autoSecurityTimeout: number;
|
8
|
+
private errorFields;
|
9
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
10
|
+
isValid(prefix: string): [boolean, string[]];
|
11
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { LockState } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class LockConfiguration extends AccessoryConfiguration {
|
9
|
+
defaultState;
|
10
|
+
autoSecurityTimeout;
|
11
|
+
errorFields = [];
|
12
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
13
|
+
isValid(prefix) {
|
14
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
15
|
+
LockState.States.includes(this.defaultState));
|
16
|
+
const isValidAutoSecurityTimeout = (Utils.required(this.autoSecurityTimeout) &&
|
17
|
+
Utils.isValidTimeout(this.autoSecurityTimeout));
|
18
|
+
// Store fields failing validation
|
19
|
+
if (!isValidDefaultState)
|
20
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
21
|
+
if (!isValidAutoSecurityTimeout)
|
22
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.autoSecurityTimeout);
|
23
|
+
return [
|
24
|
+
(isValidDefaultState &&
|
25
|
+
isValidAutoSecurityTimeout),
|
26
|
+
this.errorFields,
|
27
|
+
];
|
28
|
+
}
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=configurationLock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationLock.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationLock.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,sBAAsB;IAC3D,YAAY,CAAU;IACtB,mBAAmB,CAAU;IAErB,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,mBAAmB,GAAY,CACnC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACjC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAC7C,CAAC;QAEF,MAAM,0BAA0B,GAAY,CAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACxC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAC/C,CAAC;QAEF,kCAAkC;QAClC,IAAI,CAAC,mBAAmB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,0BAA0B;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAE3G,OAAO;YACL,CAAC,mBAAmB;gBAClB,0BAA0B,CAAC;YAC7B,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class SecuritySystemConfiguration extends AccessoryConfiguration {
|
6
|
+
defaultState: string;
|
7
|
+
armedModes: string[];
|
8
|
+
private errorFields;
|
9
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
10
|
+
isValid(prefix: string): [boolean, string[]];
|
11
|
+
/**
|
12
|
+
* This method is necessary becasue the values for
|
13
|
+
* states are: 'disarmed', 'armedaway', 'armednight', 'armedstay'
|
14
|
+
* while values for
|
15
|
+
* armed modes are: 'Away', 'Night', 'Home'
|
16
|
+
*/
|
17
|
+
private armedModesContainsDefaultState;
|
18
|
+
}
|