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.
Files changed (270) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +1091 -0
  3. package/VirtualAccessories.jpg +0 -0
  4. package/VirtualAccessories.png +0 -0
  5. package/assets/changeorder.png +0 -0
  6. package/assets/creative-ideas/HowToAddAFakeThermostat.png +0 -0
  7. package/assets/keepaccessories.png +0 -0
  8. package/assets/mentions/youtube-EdgarsHomeTech.png +0 -0
  9. package/assets/mentions/youtube-MakeSmartMatter.png +0 -0
  10. package/assets/wiki/automation-shortcut-1.png +0 -0
  11. package/assets/wiki/automation-shortcut-2.png +0 -0
  12. package/assets/wiki/cron-schedule-config.png +0 -0
  13. package/assets/wiki/enable-sensor-webhooks.png +0 -0
  14. package/assets/wiki/humidifier-dehumidifier-config.png +0 -0
  15. package/assets/wiki/new-automation.png +0 -0
  16. package/assets/wiki/timer-duration-new.png +0 -0
  17. package/assets/wiki/timer-duration-old.png +0 -0
  18. package/assets/wiki/valve-timer-duration-new.png +0 -0
  19. package/assets/wiki/valve-timer-duration-old.png +0 -0
  20. package/config.schema.json +1570 -0
  21. package/dist/accessories/audioAccessory.d.ts +29 -0
  22. package/dist/accessories/audioAccessory.js +119 -0
  23. package/dist/accessories/audioAccessory.js.map +1 -0
  24. package/dist/accessories/externalAccessory.d.ts +10 -0
  25. package/dist/accessories/externalAccessory.js +13 -0
  26. package/dist/accessories/externalAccessory.js.map +1 -0
  27. package/dist/accessories/openingAccessory.d.ts +35 -0
  28. package/dist/accessories/openingAccessory.js +166 -0
  29. package/dist/accessories/openingAccessory.js.map +1 -0
  30. package/dist/accessories/triggerableEventAccessory.d.ts +7 -0
  31. package/dist/accessories/triggerableEventAccessory.js +2 -0
  32. package/dist/accessories/triggerableEventAccessory.js.map +1 -0
  33. package/dist/accessories/virtualAccessory.d.ts +29 -0
  34. package/dist/accessories/virtualAccessory.js +86 -0
  35. package/dist/accessories/virtualAccessory.js.map +1 -0
  36. package/dist/accessories/virtualAccessoryDoor.d.ts +14 -0
  37. package/dist/accessories/virtualAccessoryDoor.js +20 -0
  38. package/dist/accessories/virtualAccessoryDoor.js.map +1 -0
  39. package/dist/accessories/virtualAccessoryDoorbell.d.ts +29 -0
  40. package/dist/accessories/virtualAccessoryDoorbell.js +111 -0
  41. package/dist/accessories/virtualAccessoryDoorbell.js.map +1 -0
  42. package/dist/accessories/virtualAccessoryFan.d.ts +27 -0
  43. package/dist/accessories/virtualAccessoryFan.js +122 -0
  44. package/dist/accessories/virtualAccessoryFan.js.map +1 -0
  45. package/dist/accessories/virtualAccessoryFilterMaintenance.d.ts +26 -0
  46. package/dist/accessories/virtualAccessoryFilterMaintenance.js +122 -0
  47. package/dist/accessories/virtualAccessoryFilterMaintenance.js.map +1 -0
  48. package/dist/accessories/virtualAccessoryGarageDoor.d.ts +28 -0
  49. package/dist/accessories/virtualAccessoryGarageDoor.js +162 -0
  50. package/dist/accessories/virtualAccessoryGarageDoor.js.map +1 -0
  51. package/dist/accessories/virtualAccessoryHeaterCooler.d.ts +62 -0
  52. package/dist/accessories/virtualAccessoryHeaterCooler.js +441 -0
  53. package/dist/accessories/virtualAccessoryHeaterCooler.js.map +1 -0
  54. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.d.ts +53 -0
  55. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js +365 -0
  56. package/dist/accessories/virtualAccessoryHumidifierDehumidifier.js.map +1 -0
  57. package/dist/accessories/virtualAccessoryInputSource.d.ts +38 -0
  58. package/dist/accessories/virtualAccessoryInputSource.js +196 -0
  59. package/dist/accessories/virtualAccessoryInputSource.js.map +1 -0
  60. package/dist/accessories/virtualAccessoryLightbulb.d.ts +37 -0
  61. package/dist/accessories/virtualAccessoryLightbulb.js +222 -0
  62. package/dist/accessories/virtualAccessoryLightbulb.js.map +1 -0
  63. package/dist/accessories/virtualAccessoryLock.d.ts +34 -0
  64. package/dist/accessories/virtualAccessoryLock.js +198 -0
  65. package/dist/accessories/virtualAccessoryLock.js.map +1 -0
  66. package/dist/accessories/virtualAccessorySecuritySystem.d.ts +30 -0
  67. package/dist/accessories/virtualAccessorySecuritySystem.js +214 -0
  68. package/dist/accessories/virtualAccessorySecuritySystem.js.map +1 -0
  69. package/dist/accessories/virtualAccessorySpeaker.d.ts +14 -0
  70. package/dist/accessories/virtualAccessorySpeaker.js +20 -0
  71. package/dist/accessories/virtualAccessorySpeaker.js.map +1 -0
  72. package/dist/accessories/virtualAccessorySwitch.d.ts +34 -0
  73. package/dist/accessories/virtualAccessorySwitch.js +191 -0
  74. package/dist/accessories/virtualAccessorySwitch.js.map +1 -0
  75. package/dist/accessories/virtualAccessoryTelevision.d.ts +44 -0
  76. package/dist/accessories/virtualAccessoryTelevision.js +230 -0
  77. package/dist/accessories/virtualAccessoryTelevision.js.map +1 -0
  78. package/dist/accessories/virtualAccessoryValve.d.ts +34 -0
  79. package/dist/accessories/virtualAccessoryValve.js +215 -0
  80. package/dist/accessories/virtualAccessoryValve.js.map +1 -0
  81. package/dist/accessories/virtualAccessoryWindow.d.ts +14 -0
  82. package/dist/accessories/virtualAccessoryWindow.js +20 -0
  83. package/dist/accessories/virtualAccessoryWindow.js.map +1 -0
  84. package/dist/accessories/virtualAccessoryWindowCovering.d.ts +14 -0
  85. package/dist/accessories/virtualAccessoryWindowCovering.js +20 -0
  86. package/dist/accessories/virtualAccessoryWindowCovering.js.map +1 -0
  87. package/dist/accessoryFactory.d.ts +15 -0
  88. package/dist/accessoryFactory.js +147 -0
  89. package/dist/accessoryFactory.js.map +1 -0
  90. package/dist/colors.d.ts +22 -0
  91. package/dist/colors.js +146 -0
  92. package/dist/colors.js.map +1 -0
  93. package/dist/companions/companionLightbulb.d.ts +10 -0
  94. package/dist/companions/companionLightbulb.js +12 -0
  95. package/dist/companions/companionLightbulb.js.map +1 -0
  96. package/dist/companions/companionSensors.d.ts +9 -0
  97. package/dist/companions/companionSensors.js +117 -0
  98. package/dist/companions/companionSensors.js.map +1 -0
  99. package/dist/companions/companionSwitch.d.ts +15 -0
  100. package/dist/companions/companionSwitch.js +46 -0
  101. package/dist/companions/companionSwitch.js.map +1 -0
  102. package/dist/configuration/accessories/configurationDoor.d.ts +9 -0
  103. package/dist/configuration/accessories/configurationDoor.js +31 -0
  104. package/dist/configuration/accessories/configurationDoor.js.map +1 -0
  105. package/dist/configuration/accessories/configurationDoorbell.d.ts +10 -0
  106. package/dist/configuration/accessories/configurationDoorbell.js +23 -0
  107. package/dist/configuration/accessories/configurationDoorbell.js.map +1 -0
  108. package/dist/configuration/accessories/configurationFan.d.ts +12 -0
  109. package/dist/configuration/accessories/configurationFan.js +36 -0
  110. package/dist/configuration/accessories/configurationFan.js.map +1 -0
  111. package/dist/configuration/accessories/configurationFilterMaintenance.d.ts +12 -0
  112. package/dist/configuration/accessories/configurationFilterMaintenance.js +48 -0
  113. package/dist/configuration/accessories/configurationFilterMaintenance.js.map +1 -0
  114. package/dist/configuration/accessories/configurationGarageDoor.d.ts +9 -0
  115. package/dist/configuration/accessories/configurationGarageDoor.js +31 -0
  116. package/dist/configuration/accessories/configurationGarageDoor.js.map +1 -0
  117. package/dist/configuration/accessories/configurationHeaterCooler.d.ts +20 -0
  118. package/dist/configuration/accessories/configurationHeaterCooler.js +116 -0
  119. package/dist/configuration/accessories/configurationHeaterCooler.js.map +1 -0
  120. package/dist/configuration/accessories/configurationHumidifierDehumidifier.d.ts +12 -0
  121. package/dist/configuration/accessories/configurationHumidifierDehumidifier.js +44 -0
  122. package/dist/configuration/accessories/configurationHumidifierDehumidifier.js.map +1 -0
  123. package/dist/configuration/accessories/configurationInputSource.d.ts +12 -0
  124. package/dist/configuration/accessories/configurationInputSource.js +33 -0
  125. package/dist/configuration/accessories/configurationInputSource.js.map +1 -0
  126. package/dist/configuration/accessories/configurationLightbulb.d.ts +14 -0
  127. package/dist/configuration/accessories/configurationLightbulb.js +55 -0
  128. package/dist/configuration/accessories/configurationLightbulb.js.map +1 -0
  129. package/dist/configuration/accessories/configurationLock.d.ts +11 -0
  130. package/dist/configuration/accessories/configurationLock.js +30 -0
  131. package/dist/configuration/accessories/configurationLock.js.map +1 -0
  132. package/dist/configuration/accessories/configurationSecuritySystem.d.ts +18 -0
  133. package/dist/configuration/accessories/configurationSecuritySystem.js +48 -0
  134. package/dist/configuration/accessories/configurationSecuritySystem.js.map +1 -0
  135. package/dist/configuration/accessories/configurationSpeaker.d.ts +9 -0
  136. package/dist/configuration/accessories/configurationSpeaker.js +24 -0
  137. package/dist/configuration/accessories/configurationSpeaker.js.map +1 -0
  138. package/dist/configuration/accessories/configurationSwitch.d.ts +13 -0
  139. package/dist/configuration/accessories/configurationSwitch.js +27 -0
  140. package/dist/configuration/accessories/configurationSwitch.js.map +1 -0
  141. package/dist/configuration/accessories/configurationTelevision.d.ts +12 -0
  142. package/dist/configuration/accessories/configurationTelevision.js +47 -0
  143. package/dist/configuration/accessories/configurationTelevision.js.map +1 -0
  144. package/dist/configuration/accessories/configurationValve.d.ts +25 -0
  145. package/dist/configuration/accessories/configurationValve.js +88 -0
  146. package/dist/configuration/accessories/configurationValve.js.map +1 -0
  147. package/dist/configuration/accessories/configurationWindow.d.ts +9 -0
  148. package/dist/configuration/accessories/configurationWindow.js +31 -0
  149. package/dist/configuration/accessories/configurationWindow.js.map +1 -0
  150. package/dist/configuration/accessories/configurationWindowCovering.d.ts +9 -0
  151. package/dist/configuration/accessories/configurationWindowCovering.js +31 -0
  152. package/dist/configuration/accessories/configurationWindowCovering.js.map +1 -0
  153. package/dist/configuration/configuration.d.ts +13 -0
  154. package/dist/configuration/configuration.js +41 -0
  155. package/dist/configuration/configuration.js.map +1 -0
  156. package/dist/configuration/configurationAccessory.d.ts +6 -0
  157. package/dist/configuration/configurationAccessory.js +6 -0
  158. package/dist/configuration/configurationAccessory.js.map +1 -0
  159. package/dist/configuration/configurationAudioAccessoryConfiguration.d.ts +9 -0
  160. package/dist/configuration/configurationAudioAccessoryConfiguration.js +9 -0
  161. package/dist/configuration/configurationAudioAccessoryConfiguration.js.map +1 -0
  162. package/dist/configuration/configurationCompanionSensor.d.ts +11 -0
  163. package/dist/configuration/configurationCompanionSensor.js +26 -0
  164. package/dist/configuration/configurationCompanionSensor.js.map +1 -0
  165. package/dist/configuration/configurationDuration.d.ts +19 -0
  166. package/dist/configuration/configurationDuration.js +55 -0
  167. package/dist/configuration/configurationDuration.js.map +1 -0
  168. package/dist/configuration/configurationOpenableAccesory.d.ts +9 -0
  169. package/dist/configuration/configurationOpenableAccesory.js +9 -0
  170. package/dist/configuration/configurationOpenableAccesory.js.map +1 -0
  171. package/dist/configuration/configurationPlatform.d.ts +76 -0
  172. package/dist/configuration/configurationPlatform.js +381 -0
  173. package/dist/configuration/configurationPlatform.js.map +1 -0
  174. package/dist/configuration/configurationSchema.d.ts +178 -0
  175. package/dist/configuration/configurationSchema.js +198 -0
  176. package/dist/configuration/configurationSchema.js.map +1 -0
  177. package/dist/configuration/configurationSensor.d.ts +11 -0
  178. package/dist/configuration/configurationSensor.js +30 -0
  179. package/dist/configuration/configurationSensor.js.map +1 -0
  180. package/dist/configuration/configurationSensorServer.d.ts +11 -0
  181. package/dist/configuration/configurationSensorServer.js +26 -0
  182. package/dist/configuration/configurationSensorServer.js.map +1 -0
  183. package/dist/configuration/configurationTimer.d.ts +15 -0
  184. package/dist/configuration/configurationTimer.js +101 -0
  185. package/dist/configuration/configurationTimer.js.map +1 -0
  186. package/dist/configuration/triggers/configurationCronTrigger.d.ts +18 -0
  187. package/dist/configuration/triggers/configurationCronTrigger.js +65 -0
  188. package/dist/configuration/triggers/configurationCronTrigger.js.map +1 -0
  189. package/dist/configuration/triggers/configurationPingTrigger.d.ts +11 -0
  190. package/dist/configuration/triggers/configurationPingTrigger.js +26 -0
  191. package/dist/configuration/triggers/configurationPingTrigger.js.map +1 -0
  192. package/dist/configuration/triggers/configurationSunEventsTrigger.d.ts +18 -0
  193. package/dist/configuration/triggers/configurationSunEventsTrigger.js +52 -0
  194. package/dist/configuration/triggers/configurationSunEventsTrigger.js.map +1 -0
  195. package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.d.ts +9 -0
  196. package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js +17 -0
  197. package/dist/configuration/triggers/configurationWebhookTriggerConfiguration.js.map +1 -0
  198. package/dist/errors.d.ts +27 -0
  199. package/dist/errors.js +52 -0
  200. package/dist/errors.js.map +1 -0
  201. package/dist/index.d.ts +6 -0
  202. package/dist/index.js +9 -0
  203. package/dist/index.js.map +1 -0
  204. package/dist/platform.d.ts +28 -0
  205. package/dist/platform.js +221 -0
  206. package/dist/platform.js.map +1 -0
  207. package/dist/sensorServer.d.ts +27 -0
  208. package/dist/sensorServer.js +227 -0
  209. package/dist/sensorServer.js.map +1 -0
  210. package/dist/sensors/virtualSensor.d.ts +37 -0
  211. package/dist/sensors/virtualSensor.js +87 -0
  212. package/dist/sensors/virtualSensor.js.map +1 -0
  213. package/dist/sensors/virtualSensorCarbonDioxide.d.ts +20 -0
  214. package/dist/sensors/virtualSensorCarbonDioxide.js +45 -0
  215. package/dist/sensors/virtualSensorCarbonDioxide.js.map +1 -0
  216. package/dist/sensors/virtualSensorCarbonMonoxide.d.ts +20 -0
  217. package/dist/sensors/virtualSensorCarbonMonoxide.js +45 -0
  218. package/dist/sensors/virtualSensorCarbonMonoxide.js.map +1 -0
  219. package/dist/sensors/virtualSensorContact.d.ts +20 -0
  220. package/dist/sensors/virtualSensorContact.js +45 -0
  221. package/dist/sensors/virtualSensorContact.js.map +1 -0
  222. package/dist/sensors/virtualSensorLeak.d.ts +20 -0
  223. package/dist/sensors/virtualSensorLeak.js +45 -0
  224. package/dist/sensors/virtualSensorLeak.js.map +1 -0
  225. package/dist/sensors/virtualSensorMotion.d.ts +20 -0
  226. package/dist/sensors/virtualSensorMotion.js +45 -0
  227. package/dist/sensors/virtualSensorMotion.js.map +1 -0
  228. package/dist/sensors/virtualSensorOccupancy.d.ts +20 -0
  229. package/dist/sensors/virtualSensorOccupancy.js +45 -0
  230. package/dist/sensors/virtualSensorOccupancy.js.map +1 -0
  231. package/dist/sensors/virtualSensorSmoke.d.ts +20 -0
  232. package/dist/sensors/virtualSensorSmoke.js +45 -0
  233. package/dist/sensors/virtualSensorSmoke.js.map +1 -0
  234. package/dist/settings.d.ts +8 -0
  235. package/dist/settings.js +9 -0
  236. package/dist/settings.js.map +1 -0
  237. package/dist/timer.d.ts +58 -0
  238. package/dist/timer.js +110 -0
  239. package/dist/timer.js.map +1 -0
  240. package/dist/triggerableSensor.d.ts +6 -0
  241. package/dist/triggerableSensor.js +2 -0
  242. package/dist/triggerableSensor.js.map +1 -0
  243. package/dist/triggers/trigger.d.ts +13 -0
  244. package/dist/triggers/trigger.js +16 -0
  245. package/dist/triggers/trigger.js.map +1 -0
  246. package/dist/triggers/triggerCron.d.ts +19 -0
  247. package/dist/triggers/triggerCron.js +102 -0
  248. package/dist/triggers/triggerCron.js.map +1 -0
  249. package/dist/triggers/triggerPing.d.ts +19 -0
  250. package/dist/triggers/triggerPing.js +110 -0
  251. package/dist/triggers/triggerPing.js.map +1 -0
  252. package/dist/triggers/triggerSunEvents.d.ts +20 -0
  253. package/dist/triggers/triggerSunEvents.js +200 -0
  254. package/dist/triggers/triggerSunEvents.js.map +1 -0
  255. package/dist/triggers/triggerWebhook.d.ts +10 -0
  256. package/dist/triggers/triggerWebhook.js +26 -0
  257. package/dist/triggers/triggerWebhook.js.map +1 -0
  258. package/dist/updatableObstruction.d.ts +6 -0
  259. package/dist/updatableObstruction.js +2 -0
  260. package/dist/updatableObstruction.js.map +1 -0
  261. package/dist/updatableSensor.d.ts +6 -0
  262. package/dist/updatableSensor.js +2 -0
  263. package/dist/updatableSensor.js.map +1 -0
  264. package/dist/utils.d.ts +28 -0
  265. package/dist/utils.js +120 -0
  266. package/dist/utils.js.map +1 -0
  267. package/dist/virtualLogger.d.ts +15 -0
  268. package/dist/virtualLogger.js +38 -0
  269. package/dist/virtualLogger.js.map +1 -0
  270. 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":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,sBAAsB;IAChE,YAAY,CAAU;IACtB,IAAI,CAAU;IACd,UAAU,CAAU;IACpB,sBAAsB,CAAU;IAChC,QAAQ,CAAU;IAEV,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,WAAW,GAAY,CAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;QAEF,MAAM,iBAAiB,GAAY,CACjC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,CACE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC/B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CACpC,CAAC,CAAC;YACH,IAAI,CACP,CAAC;QAEF,MAAM,uBAAuB,GAAY,CACvC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtC,CACE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAC3C,CAAC,IAAI,CAAC,sBAAsB,IAAI,gBAAgB,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAC/I,CAAC,CAAC;YACH,IAAI,CACP,CAAC;QAEF,MAAM,eAAe,GAAY,CAC/B,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,CACE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjC,CAAC,CAAC;YACH,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,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzF,IAAI,CAAC,uBAAuB;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QAC3G,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAErF,OAAO;YACL,CAAC,mBAAmB;gBAClB,WAAW;gBACX,iBAAiB;gBACjB,uBAAuB;gBACvB,eAAe,CAAC;YAClB,IAAI,CAAC,WAAW;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -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
+ }