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,48 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { SecuritySystemArmedMode, SecuritySystemState } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class SecuritySystemConfiguration extends AccessoryConfiguration {
|
9
|
+
defaultState;
|
10
|
+
armedModes;
|
11
|
+
errorFields = [];
|
12
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
13
|
+
isValid(prefix) {
|
14
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
15
|
+
SecuritySystemState.States.includes(this.defaultState) &&
|
16
|
+
this.armedModesContainsDefaultState());
|
17
|
+
const isValidArmedModes = (Utils.notEmpty(this.armedModes));
|
18
|
+
// Store fields failing validation
|
19
|
+
if (!isValidDefaultState)
|
20
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
21
|
+
if (!isValidArmedModes)
|
22
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.armedModes);
|
23
|
+
return [
|
24
|
+
(isValidDefaultState &&
|
25
|
+
isValidArmedModes),
|
26
|
+
this.errorFields,
|
27
|
+
];
|
28
|
+
}
|
29
|
+
// TODO: remove this method once ng-formworks feature 'Feature request: Implement multi select using oneOf as set of checkboxes'
|
30
|
+
// (https://github.com/zahmo/ng-formworks/issues/26) is complete
|
31
|
+
/**
|
32
|
+
* This method is necessary becasue the values for
|
33
|
+
* states are: 'disarmed', 'armedaway', 'armednight', 'armedstay'
|
34
|
+
* while values for
|
35
|
+
* armed modes are: 'Away', 'Night', 'Home'
|
36
|
+
*/
|
37
|
+
armedModesContainsDefaultState() {
|
38
|
+
let armedModesContainsDefaultState = false;
|
39
|
+
if ((this.defaultState === SecuritySystemState.ArmedAway && this.armedModes.includes(SecuritySystemArmedMode.ArmedAway)) ||
|
40
|
+
(this.defaultState === SecuritySystemState.ArmedNight && this.armedModes.includes(SecuritySystemArmedMode.ArmedNight)) ||
|
41
|
+
(this.defaultState === SecuritySystemState.ArmedStay && this.armedModes.includes(SecuritySystemArmedMode.ArmedStay)) ||
|
42
|
+
(this.defaultState === SecuritySystemState.Disarmed)) {
|
43
|
+
armedModesContainsDefaultState = true;
|
44
|
+
}
|
45
|
+
return armedModesContainsDefaultState;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
//# sourceMappingURL=configurationSecuritySystem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationSecuritySystem.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationSecuritySystem.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,sBAAsB;IACrE,YAAY,CAAU;IACtB,UAAU,CAAY;IAEd,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,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACtD,IAAI,CAAC,8BAA8B,EAAE,CACtC,CAAC;QAEF,MAAM,iBAAiB,GAAY,CACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAChC,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,iBAAiB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEzF,OAAO;YACL,CAAC,mBAAmB;gBAClB,iBAAiB,CAAC;YACpB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;IAED,gIAAgI;IAChI,gEAAgE;IAEhE;;;;;OAKG;IACK,8BAA8B;QACpC,IAAI,8BAA8B,GAAY,KAAK,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,mBAAmB,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACpH,CAAC,IAAI,CAAC,YAAY,KAAK,mBAAmB,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACtH,CAAC,IAAI,CAAC,YAAY,KAAK,mBAAmB,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACpH,CAAC,IAAI,CAAC,YAAY,KAAK,mBAAmB,CAAC,QAAQ,CAAC,EACtD,CAAC;YACD,8BAA8B,GAAG,IAAI,CAAC;QACxC,CAAC;QAED,OAAO,8BAA8B,CAAC;IACxC,CAAC;CACF"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { AudioAccessoryConfiguration } from '../configurationAudioAccessoryConfiguration.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class SpeakerConfiguration extends AudioAccessoryConfiguration {
|
6
|
+
private errorFields;
|
7
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
8
|
+
isValid(prefix: string): [boolean, string[]];
|
9
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AudioAccessoryConfiguration } from '../configurationAudioAccessoryConfiguration.js';
|
3
|
+
import { Utils } from '../../utils.js';
|
4
|
+
/**
|
5
|
+
*
|
6
|
+
*/
|
7
|
+
export class SpeakerConfiguration extends AudioAccessoryConfiguration {
|
8
|
+
// volume!: number;
|
9
|
+
// mute!: boolean;
|
10
|
+
errorFields = [];
|
11
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
12
|
+
isValid(prefix) {
|
13
|
+
const isValidVolume = (Utils.required(this.volume) &&
|
14
|
+
Utils.isPercentage(this.volume));
|
15
|
+
// Store fields failing validation
|
16
|
+
if (!isValidVolume)
|
17
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.volume);
|
18
|
+
return [
|
19
|
+
(isValidVolume),
|
20
|
+
this.errorFields,
|
21
|
+
];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=configurationSpeaker.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationSpeaker.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationSpeaker.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,2BAA2B;IACnE,mBAAmB;IACnB,kBAAkB;IAEV,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,13 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class SwitchConfiguration extends AccessoryConfiguration {
|
6
|
+
defaultState: string;
|
7
|
+
hasResetTimer: boolean;
|
8
|
+
hasCompanionSensor: boolean;
|
9
|
+
muteLogging: boolean;
|
10
|
+
private errorFields;
|
11
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
12
|
+
isValid(prefix: string): [boolean, string[]];
|
13
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { PowerState } from '../configurationSchema.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class SwitchConfiguration extends AccessoryConfiguration {
|
9
|
+
defaultState;
|
10
|
+
hasResetTimer = false;
|
11
|
+
hasCompanionSensor = false;
|
12
|
+
muteLogging = false;
|
13
|
+
errorFields = [];
|
14
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
15
|
+
isValid(prefix) {
|
16
|
+
const isValidDefaultState = (Utils.required(this.defaultState) &&
|
17
|
+
PowerState.States.includes(this.defaultState));
|
18
|
+
// Store fields failing validation
|
19
|
+
if (!isValidDefaultState)
|
20
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.defaultState);
|
21
|
+
return [
|
22
|
+
(isValidDefaultState),
|
23
|
+
this.errorFields,
|
24
|
+
];
|
25
|
+
}
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=configurationSwitch.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationSwitch.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationSwitch.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,sBAAsB;IAC7D,YAAY,CAAU;IACtB,aAAa,GAAY,KAAK,CAAC;IAC/B,kBAAkB,GAAY,KAAK,CAAC;IACpC,WAAW,GAAY,KAAK,CAAC;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,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9C,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;QAE7F,OAAO;YACL,CAAC,mBAAmB,CAAC;YACrB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
import { InputSourceConfiguration } from './configurationInputSource.js';
|
3
|
+
/**
|
4
|
+
*
|
5
|
+
*/
|
6
|
+
export declare class TelevisionConfiguration extends AccessoryConfiguration {
|
7
|
+
inputs: string[];
|
8
|
+
private errorFields;
|
9
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
10
|
+
isValid(prefix: string): [boolean, string[]];
|
11
|
+
getInputSources(): InputSourceConfiguration[];
|
12
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
3
|
+
import { InputSourceConfiguration } from './configurationInputSource.js';
|
4
|
+
import { Utils } from '../../utils.js';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class TelevisionConfiguration extends AccessoryConfiguration {
|
9
|
+
inputs;
|
10
|
+
errorFields = [];
|
11
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
12
|
+
isValid(prefix) {
|
13
|
+
const isValidInputsArray = (Utils.required(this.inputs) &&
|
14
|
+
(this.inputs.length > 0));
|
15
|
+
let isValidInputNames = true;
|
16
|
+
const namesSet = new Set();
|
17
|
+
this.inputs.forEach(input => {
|
18
|
+
isValidInputNames &&=
|
19
|
+
input.length > 0 &&
|
20
|
+
!namesSet.has(input);
|
21
|
+
namesSet.add(input);
|
22
|
+
});
|
23
|
+
// Store fields failing validation
|
24
|
+
if (!isValidInputsArray)
|
25
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.inputs);
|
26
|
+
if (!isValidInputNames)
|
27
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.inputs);
|
28
|
+
return [
|
29
|
+
(isValidInputsArray &&
|
30
|
+
isValidInputNames),
|
31
|
+
this.errorFields,
|
32
|
+
];
|
33
|
+
}
|
34
|
+
getInputSources() {
|
35
|
+
const HDMI = 3; // Characteristic.InputSourceType.HDMI
|
36
|
+
const inputSources = [];
|
37
|
+
this.inputs.forEach((name, index) => {
|
38
|
+
const inputSource = new InputSourceConfiguration();
|
39
|
+
inputSource.name = name;
|
40
|
+
inputSource.inputSourceType = HDMI;
|
41
|
+
inputSource.identifier = index;
|
42
|
+
inputSources.push(inputSource);
|
43
|
+
});
|
44
|
+
return inputSources;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
//# sourceMappingURL=configurationTelevision.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationTelevision.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationTelevision.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,sBAAsB;IACjE,MAAM,CAAY;IAEV,WAAW,GAAa,EAAE,CAAC;IAE1B,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CAAC,MAAc;QACpB,MAAM,kBAAkB,GAAY,CAClC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CACzB,CAAC;QAEF,IAAI,iBAAiB,GAAY,IAAI,CAAC;QACtC,MAAM,QAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,iBAAiB;gBACf,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,CAAC,kBAAkB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAErF,OAAO;YACL,CAAC,kBAAkB;gBACjB,iBAAiB,CAAC;YACpB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,CAAC,CAAC,CAAG,sCAAsC;QAExD,MAAM,YAAY,GAA+B,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,WAAW,GAAG,IAAI,wBAAwB,EAAE,CAAC;YACnD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;YACxB,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;YACnC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;YAE/B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
declare class ValveDurationConfiguration extends AccessoryConfiguration {
|
6
|
+
static readonly MINUTES_MAX_VALUE: number;
|
7
|
+
static readonly SECONDS_MAX_VALUE: number;
|
8
|
+
minutes: number;
|
9
|
+
seconds: number;
|
10
|
+
private errorFields;
|
11
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
12
|
+
isValid(prefix: string): [boolean, string[]];
|
13
|
+
toSeconds(): number;
|
14
|
+
}
|
15
|
+
/**
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
export declare class ValveConfiguration extends AccessoryConfiguration {
|
19
|
+
type: string;
|
20
|
+
duration: ValveDurationConfiguration;
|
21
|
+
private errorFields;
|
22
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
23
|
+
isValid(prefix: string): [boolean, string[]];
|
24
|
+
}
|
25
|
+
export {};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
/* eslint-disable brace-style */
|
2
|
+
/* eslint-disable curly */
|
3
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
4
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
5
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
6
|
+
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;
|
7
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
8
|
+
};
|
9
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
11
|
+
};
|
12
|
+
import { AccessoryConfiguration } from '../configurationAccessory.js';
|
13
|
+
import { ValveType } from '../configurationSchema.js';
|
14
|
+
import { Utils } from '../../utils.js';
|
15
|
+
import { Type } from 'typeserializer';
|
16
|
+
/**
|
17
|
+
*
|
18
|
+
*/
|
19
|
+
class ValveDurationConfiguration extends AccessoryConfiguration {
|
20
|
+
static MINUTES_MAX_VALUE = 60;
|
21
|
+
static SECONDS_MAX_VALUE = 59;
|
22
|
+
minutes;
|
23
|
+
seconds = 0;
|
24
|
+
errorFields = [];
|
25
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
26
|
+
isValid(prefix) {
|
27
|
+
const isValidMinutes = (Utils.required(this.minutes) &&
|
28
|
+
(this.minutes >= 0 && this.minutes <= ValveDurationConfiguration.MINUTES_MAX_VALUE));
|
29
|
+
// Do not exceed maximum value (MINUTES_MAX_VALUE)
|
30
|
+
if (isValidMinutes && this.minutes === ValveDurationConfiguration.MINUTES_MAX_VALUE) {
|
31
|
+
this.seconds = 0;
|
32
|
+
}
|
33
|
+
const isValidSeconds = (Utils.required(this.seconds) &&
|
34
|
+
(this.seconds >= 0 && this.seconds <= ValveDurationConfiguration.SECONDS_MAX_VALUE));
|
35
|
+
if (!isValidMinutes)
|
36
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.minutes);
|
37
|
+
if (!isValidSeconds)
|
38
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.seconds);
|
39
|
+
return [
|
40
|
+
(isValidMinutes &&
|
41
|
+
isValidSeconds),
|
42
|
+
this.errorFields,
|
43
|
+
];
|
44
|
+
}
|
45
|
+
toSeconds() {
|
46
|
+
const seconds = Utils.daysHoursMinutesSecondsToSeconds(0, 0, this.minutes, this.seconds);
|
47
|
+
return seconds;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
*
|
52
|
+
*/
|
53
|
+
export class ValveConfiguration extends AccessoryConfiguration {
|
54
|
+
type;
|
55
|
+
duration;
|
56
|
+
errorFields = [];
|
57
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
58
|
+
isValid(prefix) {
|
59
|
+
const isValidType = (Utils.required(this.type) &&
|
60
|
+
ValveType.Types.includes(this.type));
|
61
|
+
let isValidDuration = true;
|
62
|
+
let durationErrorFields = [];
|
63
|
+
if (this.duration !== undefined) {
|
64
|
+
[isValidDuration, durationErrorFields] = this.duration.isValid(this.fieldNames.duration);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
[isValidDuration, durationErrorFields] = [false, [this.fieldNames.duration]];
|
68
|
+
}
|
69
|
+
// Store fields failing validation
|
70
|
+
if (!isValidType)
|
71
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.type);
|
72
|
+
if (!isValidDuration) {
|
73
|
+
durationErrorFields.forEach((errorField) => {
|
74
|
+
this.errorFields.push(prefix + '.' + errorField);
|
75
|
+
});
|
76
|
+
}
|
77
|
+
return [
|
78
|
+
(isValidType &&
|
79
|
+
isValidDuration),
|
80
|
+
this.errorFields,
|
81
|
+
];
|
82
|
+
}
|
83
|
+
}
|
84
|
+
__decorate([
|
85
|
+
Type(ValveDurationConfiguration),
|
86
|
+
__metadata("design:type", ValveDurationConfiguration)
|
87
|
+
], ValveConfiguration.prototype, "duration", void 0);
|
88
|
+
//# sourceMappingURL=configurationValve.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationValve.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationValve.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { OpenableAccessoryConfiguration } from '../configurationOpenableAccesory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class WindowConfiguration 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 WindowConfiguration 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=configurationWindow.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationWindow.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationWindow.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,mBAAoB,SAAQ,8BAA8B;IACrE,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,9 @@
|
|
1
|
+
import { OpenableAccessoryConfiguration } from '../configurationOpenableAccesory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class WindowCoveringConfiguration 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 WindowCoveringConfiguration 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=configurationWindowCovering.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationWindowCovering.js","sourceRoot":"","sources":["../../../src/configuration/accessories/configurationWindowCovering.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,2BAA4B,SAAQ,8BAA8B;IAC7E,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,13 @@
|
|
1
|
+
import { PlatformConfiguration } from './configurationPlatform.js';
|
2
|
+
import { SensorServerConfiguration } from './configurationSensorServer.js';
|
3
|
+
import { VirtualAccessoriesLogger } from '../virtualLogger.js';
|
4
|
+
import 'reflect-metadata';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export declare class Configuration {
|
9
|
+
private log;
|
10
|
+
constructor(log: VirtualAccessoriesLogger);
|
11
|
+
deserializeAccessoryConfig(config: string | object): PlatformConfiguration | undefined;
|
12
|
+
deserializeSensorServerConfig(config: string | object): SensorServerConfiguration | undefined;
|
13
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { PlatformConfiguration } from './configurationPlatform.js';
|
2
|
+
import { SensorServerConfiguration } from './configurationSensorServer.js';
|
3
|
+
import { deserialize } from 'typeserializer';
|
4
|
+
import 'reflect-metadata';
|
5
|
+
/**
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export class Configuration {
|
9
|
+
log;
|
10
|
+
constructor(log) {
|
11
|
+
this.log = log;
|
12
|
+
}
|
13
|
+
deserializeAccessoryConfig(config) {
|
14
|
+
let accessoryConfig;
|
15
|
+
const json = (typeof config === 'object') ? JSON.stringify(config) : config;
|
16
|
+
try {
|
17
|
+
accessoryConfig = deserialize(json, PlatformConfiguration);
|
18
|
+
}
|
19
|
+
catch (error) {
|
20
|
+
this.log.error(`[Configuration] Error: ${JSON.stringify(error)}`);
|
21
|
+
}
|
22
|
+
return accessoryConfig;
|
23
|
+
}
|
24
|
+
deserializeSensorServerConfig(config) {
|
25
|
+
let sensorServerConfig;
|
26
|
+
if (config !== undefined) {
|
27
|
+
const json = (typeof config === 'object') ? JSON.stringify(config) : config;
|
28
|
+
try {
|
29
|
+
sensorServerConfig = deserialize(json, SensorServerConfiguration);
|
30
|
+
}
|
31
|
+
catch (error) {
|
32
|
+
this.log.error(`[Configuration] SensorServer configuration error: ${JSON.stringify(error)}`);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
this.log.debug('[Configuration] No SensorServer configuration. Skipping');
|
37
|
+
}
|
38
|
+
return sensorServerConfig;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
//# sourceMappingURL=configuration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/configuration/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,OAAO,aAAa;IAEhB,GAAG,CAA2B;IAEtC,YACE,GAA6B;QAE7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,0BAA0B,CAAC,MAAuB;QAChD,IAAI,eAAkD,CAAC;QAEvD,MAAM,IAAI,GAAW,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAS,MAAM,CAAC;QAC5F,IAAI,CAAC;YACH,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,6BAA6B,CAAC,MAAuB;QACnD,IAAI,kBAAyD,CAAC;QAE9D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,GAAW,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAS,MAAM,CAAC;YAC5F,IAAI,CAAC;gBACH,kBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qDAAqD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationAccessory.js","sourceRoot":"","sources":["../../src/configuration/configurationAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAgB,sBAAsB;CAG3C"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { AccessoryConfiguration } from './configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare abstract class AudioAccessoryConfiguration extends AccessoryConfiguration {
|
6
|
+
volume: number;
|
7
|
+
mute: boolean;
|
8
|
+
abstract isValid(prefix: string): [boolean, string[]];
|
9
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationAudioAccessoryConfiguration.js","sourceRoot":"","sources":["../../src/configuration/configurationAudioAccessoryConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,OAAgB,2BAA4B,SAAQ,sBAAsB;IAC9E,MAAM,CAAU;IAChB,IAAI,CAAW;CAGhB"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AccessoryConfiguration } from './configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class CompanionSensorConfiguration extends AccessoryConfiguration {
|
6
|
+
name: string;
|
7
|
+
type: string;
|
8
|
+
private errorFields;
|
9
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
10
|
+
isValid(prefix: string): [boolean, string[]];
|
11
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/* eslint-disable curly */
|
2
|
+
import { AccessoryConfiguration } from './configurationAccessory.js';
|
3
|
+
import { Utils } from '../utils.js';
|
4
|
+
/**
|
5
|
+
*
|
6
|
+
*/
|
7
|
+
export class CompanionSensorConfiguration extends AccessoryConfiguration {
|
8
|
+
name;
|
9
|
+
type;
|
10
|
+
errorFields = [];
|
11
|
+
fieldNames = Utils.proxiedPropertiesOf(this);
|
12
|
+
isValid(prefix) {
|
13
|
+
const isValidName = (Utils.required(this.name));
|
14
|
+
const isValidType = (Utils.required(this.type));
|
15
|
+
if (!isValidName)
|
16
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.name);
|
17
|
+
if (!isValidType)
|
18
|
+
this.errorFields.push(prefix + '.' + this.fieldNames.type);
|
19
|
+
return [
|
20
|
+
(isValidName &&
|
21
|
+
isValidType),
|
22
|
+
this.errorFields,
|
23
|
+
];
|
24
|
+
}
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=configurationCompanionSensor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configurationCompanionSensor.js","sourceRoot":"","sources":["../../src/configuration/configurationCompanionSensor.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,sBAAsB;IACtE,IAAI,CAAU;IACd,IAAI,CAAU;IAEN,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,CAC1B,CAAC;QAEF,MAAM,WAAW,GAAY,CAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;QAEF,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE7E,OAAO;YACL,CAAC,WAAW;gBACV,WAAW,CAAC;YACd,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { AccessoryConfiguration } from './configurationAccessory.js';
|
2
|
+
/**
|
3
|
+
*
|
4
|
+
*/
|
5
|
+
export declare class DurationConfiguration extends AccessoryConfiguration {
|
6
|
+
static readonly DAYS_MAX_VALUE: number;
|
7
|
+
static readonly HOURS_MAX_VALUE: number;
|
8
|
+
static readonly MINUTES_MAX_VALUE: number;
|
9
|
+
static readonly SECONDS_MAX_VALUE: number;
|
10
|
+
days: number;
|
11
|
+
hours: number;
|
12
|
+
minutes: number;
|
13
|
+
seconds: number;
|
14
|
+
private errorFields;
|
15
|
+
readonly fieldNames: { [P in keyof this]?: P | undefined; };
|
16
|
+
isValid(prefix: string): [boolean, string[]];
|
17
|
+
isValid(prefix: string, maxDays: number): [boolean, string[]];
|
18
|
+
toSeconds(): number;
|
19
|
+
}
|