homebridge-securitysystem 12.0.0 → 13.0.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 (205) hide show
  1. package/.github/workflows/bump-version.yml +1 -1
  2. package/.gitignore +127 -0
  3. package/AGENTS.md +7 -7
  4. package/CHANGELOG.md +30 -0
  5. package/config.schema.json +1 -145
  6. package/package.json +1 -1
  7. package/src/constants/default-constant.ts +0 -3
  8. package/src/constants/switch-uuid-constant.ts +0 -2
  9. package/src/handlers/sensor-handler.ts +0 -22
  10. package/src/handlers/state-handler.ts +0 -17
  11. package/src/handlers/trip-handler.ts +0 -3
  12. package/src/homekit/homekit-registrar.ts +1 -6
  13. package/src/homekit/service-factory.ts +0 -11
  14. package/src/interfaces/options-interface.ts +0 -19
  15. package/src/interfaces/service-registry-interface.ts +0 -4
  16. package/src/interfaces/system-state-interface.ts +0 -2
  17. package/src/security-system.ts +2 -14
  18. package/src/services/configuration-service.ts +0 -33
  19. package/src/services/event-bus-service.ts +1 -1
  20. package/src/tests/conditions.test.ts +0 -1
  21. package/src/tests/mqtt-service.test.ts +0 -1
  22. package/src/tests/server-service.test.ts +0 -1
  23. package/src/tests/state-handler.test.ts +14 -65
  24. package/src/tests/switch-handler.test.ts +2 -6
  25. package/src/tests/trip-handler.test.ts +7 -11
  26. package/src/timers/timer-manager.ts +0 -17
  27. package/src/types/mode-type.ts +1 -1
  28. package/dist/conditions/already-triggered-condition.d.ts +0 -10
  29. package/dist/conditions/already-triggered-condition.js +0 -22
  30. package/dist/conditions/already-triggered-condition.js.map +0 -1
  31. package/dist/conditions/arming-in-progress-condition.d.ts +0 -10
  32. package/dist/conditions/arming-in-progress-condition.js +0 -21
  33. package/dist/conditions/arming-in-progress-condition.js.map +0 -1
  34. package/dist/conditions/arming-lock-condition.d.ts +0 -13
  35. package/dist/conditions/arming-lock-condition.js +0 -50
  36. package/dist/conditions/arming-lock-condition.js.map +0 -1
  37. package/dist/conditions/condition.d.ts +0 -22
  38. package/dist/conditions/condition.js +0 -19
  39. package/dist/conditions/condition.js.map +0 -1
  40. package/dist/conditions/double-knock-condition.d.ts +0 -24
  41. package/dist/conditions/double-knock-condition.js +0 -73
  42. package/dist/conditions/double-knock-condition.js.map +0 -1
  43. package/dist/conditions/not-armed-condition.d.ts +0 -10
  44. package/dist/conditions/not-armed-condition.js +0 -26
  45. package/dist/conditions/not-armed-condition.js.map +0 -1
  46. package/dist/conditions/trigger-already-running-condition.d.ts +0 -10
  47. package/dist/conditions/trigger-already-running-condition.js +0 -21
  48. package/dist/conditions/trigger-already-running-condition.js.map +0 -1
  49. package/dist/constants/default-constant.d.ts +0 -27
  50. package/dist/constants/default-constant.js +0 -30
  51. package/dist/constants/default-constant.js.map +0 -1
  52. package/dist/constants/homekit-constant.d.ts +0 -4
  53. package/dist/constants/homekit-constant.js +0 -5
  54. package/dist/constants/homekit-constant.js.map +0 -1
  55. package/dist/constants/switch-uuid-constant.d.ts +0 -23
  56. package/dist/constants/switch-uuid-constant.js +0 -24
  57. package/dist/constants/switch-uuid-constant.js.map +0 -1
  58. package/dist/handlers/sensor-handler.d.ts +0 -20
  59. package/dist/handlers/sensor-handler.js +0 -66
  60. package/dist/handlers/sensor-handler.js.map +0 -1
  61. package/dist/handlers/state-handler.d.ts +0 -52
  62. package/dist/handlers/state-handler.js +0 -213
  63. package/dist/handlers/state-handler.js.map +0 -1
  64. package/dist/handlers/switch-handler.d.ts +0 -35
  65. package/dist/handlers/switch-handler.js +0 -134
  66. package/dist/handlers/switch-handler.js.map +0 -1
  67. package/dist/handlers/trip-handler.d.ts +0 -51
  68. package/dist/handlers/trip-handler.js +0 -198
  69. package/dist/handlers/trip-handler.js.map +0 -1
  70. package/dist/homekit/homekit-registrar.d.ts +0 -19
  71. package/dist/homekit/homekit-registrar.js +0 -156
  72. package/dist/homekit/homekit-registrar.js.map +0 -1
  73. package/dist/homekit/service-factory.d.ts +0 -9
  74. package/dist/homekit/service-factory.js +0 -124
  75. package/dist/homekit/service-factory.js.map +0 -1
  76. package/dist/index.d.ts +0 -3
  77. package/dist/index.js.map +0 -1
  78. package/dist/interfaces/condition-context-interface.d.ts +0 -16
  79. package/dist/interfaces/condition-context-interface.js +0 -2
  80. package/dist/interfaces/condition-context-interface.js.map +0 -1
  81. package/dist/interfaces/hap-types-interface.d.ts +0 -9
  82. package/dist/interfaces/hap-types-interface.js +0 -2
  83. package/dist/interfaces/hap-types-interface.js.map +0 -1
  84. package/dist/interfaces/mqtt-status-payload-interface.d.ts +0 -6
  85. package/dist/interfaces/mqtt-status-payload-interface.js +0 -2
  86. package/dist/interfaces/mqtt-status-payload-interface.js.map +0 -1
  87. package/dist/interfaces/options-interface.d.ts +0 -103
  88. package/dist/interfaces/options-interface.js +0 -2
  89. package/dist/interfaces/options-interface.js.map +0 -1
  90. package/dist/interfaces/persisted-state-interface.d.ts +0 -6
  91. package/dist/interfaces/persisted-state-interface.js +0 -2
  92. package/dist/interfaces/persisted-state-interface.js.map +0 -1
  93. package/dist/interfaces/service-registry-interface.d.ts +0 -33
  94. package/dist/interfaces/service-registry-interface.js +0 -2
  95. package/dist/interfaces/service-registry-interface.js.map +0 -1
  96. package/dist/interfaces/system-state-interface.d.ts +0 -15
  97. package/dist/interfaces/system-state-interface.js +0 -2
  98. package/dist/interfaces/system-state-interface.js.map +0 -1
  99. package/dist/schemas/arming-lock-schema.d.ts +0 -10
  100. package/dist/schemas/arming-lock-schema.js +0 -12
  101. package/dist/schemas/arming-lock-schema.js.map +0 -1
  102. package/dist/schemas/error-schema.d.ts +0 -4
  103. package/dist/schemas/error-schema.js +0 -7
  104. package/dist/schemas/error-schema.js.map +0 -1
  105. package/dist/schemas/mode-request-schema.d.ts +0 -10
  106. package/dist/schemas/mode-request-schema.js +0 -18
  107. package/dist/schemas/mode-request-schema.js.map +0 -1
  108. package/dist/schemas/status-response-schema.d.ts +0 -7
  109. package/dist/schemas/status-response-schema.js +0 -10
  110. package/dist/schemas/status-response-schema.js.map +0 -1
  111. package/dist/schemas/trip-mode-request-schema.d.ts +0 -9
  112. package/dist/schemas/trip-mode-request-schema.js +0 -24
  113. package/dist/schemas/trip-mode-request-schema.js.map +0 -1
  114. package/dist/security-system.d.ts +0 -22
  115. package/dist/security-system.js +0 -154
  116. package/dist/security-system.js.map +0 -1
  117. package/dist/services/audio-service.d.ts +0 -21
  118. package/dist/services/audio-service.js +0 -113
  119. package/dist/services/audio-service.js.map +0 -1
  120. package/dist/services/command-service.d.ts +0 -16
  121. package/dist/services/command-service.js +0 -65
  122. package/dist/services/command-service.js.map +0 -1
  123. package/dist/services/configuration-service.d.ts +0 -25
  124. package/dist/services/configuration-service.js +0 -218
  125. package/dist/services/configuration-service.js.map +0 -1
  126. package/dist/services/event-bus-service.d.ts +0 -12
  127. package/dist/services/event-bus-service.js +0 -17
  128. package/dist/services/event-bus-service.js.map +0 -1
  129. package/dist/services/mqtt-service.d.ts +0 -16
  130. package/dist/services/mqtt-service.js +0 -97
  131. package/dist/services/mqtt-service.js.map +0 -1
  132. package/dist/services/server-service.d.ts +0 -28
  133. package/dist/services/server-service.js +0 -275
  134. package/dist/services/server-service.js.map +0 -1
  135. package/dist/services/storage-service.d.ts +0 -14
  136. package/dist/services/storage-service.js +0 -70
  137. package/dist/services/storage-service.js.map +0 -1
  138. package/dist/services/webhook-service.d.ts +0 -16
  139. package/dist/services/webhook-service.js +0 -68
  140. package/dist/services/webhook-service.js.map +0 -1
  141. package/dist/tests/conditions.test.d.ts +0 -1
  142. package/dist/tests/conditions.test.js +0 -148
  143. package/dist/tests/conditions.test.js.map +0 -1
  144. package/dist/tests/mqtt-service.test.d.ts +0 -1
  145. package/dist/tests/mqtt-service.test.js +0 -167
  146. package/dist/tests/mqtt-service.test.js.map +0 -1
  147. package/dist/tests/server-service.test.d.ts +0 -1
  148. package/dist/tests/server-service.test.js +0 -187
  149. package/dist/tests/server-service.test.js.map +0 -1
  150. package/dist/tests/state-handler.test.d.ts +0 -1
  151. package/dist/tests/state-handler.test.js +0 -273
  152. package/dist/tests/state-handler.test.js.map +0 -1
  153. package/dist/tests/switch-handler.test.d.ts +0 -1
  154. package/dist/tests/switch-handler.test.js +0 -267
  155. package/dist/tests/switch-handler.test.js.map +0 -1
  156. package/dist/tests/trip-handler.test.d.ts +0 -1
  157. package/dist/tests/trip-handler.test.js +0 -289
  158. package/dist/tests/trip-handler.test.js.map +0 -1
  159. package/dist/timers/timer-manager.d.ts +0 -34
  160. package/dist/timers/timer-manager.js +0 -132
  161. package/dist/timers/timer-manager.js.map +0 -1
  162. package/dist/types/event-payload-map-type.d.ts +0 -14
  163. package/dist/types/event-payload-map-type.js +0 -2
  164. package/dist/types/event-payload-map-type.js.map +0 -1
  165. package/dist/types/event-type.d.ts +0 -38
  166. package/dist/types/event-type.js +0 -17
  167. package/dist/types/event-type.js.map +0 -1
  168. package/dist/types/mode-type.d.ts +0 -4
  169. package/dist/types/mode-type.js +0 -2
  170. package/dist/types/mode-type.js.map +0 -1
  171. package/dist/types/origin-type.d.ts +0 -9
  172. package/dist/types/origin-type.js +0 -11
  173. package/dist/types/origin-type.js.map +0 -1
  174. package/dist/types/security-state-type.d.ts +0 -11
  175. package/dist/types/security-state-type.js +0 -13
  176. package/dist/types/security-state-type.js.map +0 -1
  177. package/dist/types/service-result-type.d.ts +0 -4
  178. package/dist/types/service-result-type.js +0 -2
  179. package/dist/types/service-result-type.js.map +0 -1
  180. package/dist/utils/arming-util.d.ts +0 -19
  181. package/dist/utils/arming-util.js +0 -24
  182. package/dist/utils/arming-util.js.map +0 -1
  183. package/dist/utils/state-util.d.ts +0 -8
  184. package/dist/utils/state-util.js +0 -29
  185. package/dist/utils/state-util.js.map +0 -1
  186. package/sounds/README +0 -22
  187. package/sounds/de-DE/current-away.mp3 +0 -0
  188. package/sounds/de-DE/current-home.mp3 +0 -0
  189. package/sounds/de-DE/current-night.mp3 +0 -0
  190. package/sounds/de-DE/current-off.mp3 +0 -0
  191. package/sounds/de-DE/current-triggered.mp3 +0 -0
  192. package/sounds/de-DE/current-warning.mp3 +0 -0
  193. package/sounds/de-DE/target-away.mp3 +0 -0
  194. package/sounds/de-DE/target-home.mp3 +0 -0
  195. package/sounds/de-DE/target-night.mp3 +0 -0
  196. package/sounds/en-US/current-away.mp3 +0 -0
  197. package/sounds/en-US/current-home.mp3 +0 -0
  198. package/sounds/en-US/current-night.mp3 +0 -0
  199. package/sounds/en-US/current-off.mp3 +0 -0
  200. package/sounds/en-US/current-triggered.mp3 +0 -0
  201. package/sounds/en-US/current-warning.mp3 +0 -0
  202. package/sounds/en-US/target-away.mp3 +0 -0
  203. package/sounds/en-US/target-home.mp3 +0 -0
  204. package/sounds/en-US/target-night.mp3 +0 -0
  205. package/src/services/audio-service.ts +0 -133
@@ -1 +0,0 @@
1
- {"version":3,"file":"trip-handler.js","sourceRoot":"","sources":["../../src/handlers/trip-handler.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type { API, Logging } from 'homebridge';
2
- import type { CharacteristicConstructor } from '../interfaces/hap-types-interface.js';
3
- import type { ServiceRegistry } from '../interfaces/service-registry-interface.js';
4
- import type { SystemState } from '../interfaces/system-state-interface.js';
5
- import type { StateHandler } from '../handlers/state-handler.js';
6
- import type { TripHandler } from '../handlers/trip-handler.js';
7
- import type { SwitchHandler } from '../handlers/switch-handler.js';
8
- /** Attaches all HomeKit characteristic handlers (onGet / onSet) to their services. */
9
- export declare class HomeKitRegistrar {
10
- private readonly api;
11
- private readonly log;
12
- private readonly svcs;
13
- private readonly state;
14
- private readonly stateHandler;
15
- private readonly tripHandler;
16
- private readonly switchHandler;
17
- constructor(api: API, log: Logging, svcs: ServiceRegistry, state: SystemState, stateHandler: StateHandler, tripHandler: TripHandler, switchHandler: SwitchHandler);
18
- register(Char: CharacteristicConstructor): void;
19
- }
@@ -1,156 +0,0 @@
1
- import { SecurityState } from '../types/security-state-type.js';
2
- import { OriginType } from '../types/origin-type.js';
3
- import { HK_NOT_ALLOWED_IN_CURRENT_STATE } from '../constants/homekit-constant.js';
4
- /** Attaches all HomeKit characteristic handlers (onGet / onSet) to their services. */
5
- export class HomeKitRegistrar {
6
- api;
7
- log;
8
- svcs;
9
- state;
10
- stateHandler;
11
- tripHandler;
12
- switchHandler;
13
- constructor(api, log, svcs, state, stateHandler, tripHandler, switchHandler) {
14
- this.api = api;
15
- this.log = log;
16
- this.svcs = svcs;
17
- this.state = state;
18
- this.stateHandler = stateHandler;
19
- this.tripHandler = tripHandler;
20
- this.switchHandler = switchHandler;
21
- }
22
- register(Char) {
23
- const s = this.svcs;
24
- const HK_ERR = HK_NOT_ALLOWED_IN_CURRENT_STATE;
25
- // Main security system.
26
- s.mainService.getCharacteristic(Char.SecuritySystemCurrentState)
27
- .onGet(async () => this.state.currentState);
28
- s.mainService.getCharacteristic(Char.SecuritySystemTargetState)
29
- .onGet(async () => this.state.targetState)
30
- .onSet(async (v) => {
31
- this.stateHandler.updateTargetState(v, OriginType.REGULAR_SWITCH, this.stateHandler.getArmingSeconds(v));
32
- });
33
- // Trip switches.
34
- const tripSetHandler = (v, origin) => {
35
- const result = this.tripHandler.updateTripSwitch(v, origin, false);
36
- if (!result.success) {
37
- this.log.debug(result.reason ?? 'Trip blocked');
38
- throw new this.api.hap.HapStatusError(HK_ERR);
39
- }
40
- };
41
- s.tripSwitchService.getCharacteristic(Char.On)
42
- .onGet(async () => Boolean(s.tripSwitchService.getCharacteristic(Char.On).value))
43
- .onSet(async (v) => {
44
- this.log.info(`Trip Switch (${v ? 'On' : 'Off'})`);
45
- tripSetHandler(v, OriginType.REGULAR_SWITCH);
46
- });
47
- const modeTrips = [
48
- ['tripHomeSwitchService', SecurityState.HOME, 'Trip Home'],
49
- ['tripAwaySwitchService', SecurityState.AWAY, 'Trip Away'],
50
- ['tripNightSwitchService', SecurityState.NIGHT, 'Trip Night'],
51
- ];
52
- for (const [key, mode, label] of modeTrips) {
53
- const svc = s[key];
54
- svc.getCharacteristic(Char.On)
55
- .onGet(async () => Boolean(svc.getCharacteristic(Char.On).value))
56
- .onSet(async (v) => {
57
- this.log.info(`${label} Switch (${v ? 'On' : 'Off'})`);
58
- const result = this.tripHandler.triggerIfModeSet(mode, v);
59
- if (!result.success) {
60
- this.log.debug(result.reason ?? 'Trip blocked');
61
- throw new this.api.hap.HapStatusError(HK_ERR);
62
- }
63
- });
64
- }
65
- const customModeTrips = [
66
- [s.customTripHomeSwitchServices, SecurityState.HOME],
67
- [s.customTripAwaySwitchServices, SecurityState.AWAY],
68
- [s.customTripNightSwitchServices, SecurityState.NIGHT],
69
- ];
70
- for (const [services, mode] of customModeTrips) {
71
- for (const svc of services) {
72
- const name = String(svc.getCharacteristic(Char.ConfiguredName).value ?? 'Custom Trip');
73
- svc.getCharacteristic(Char.On)
74
- .onGet(async () => Boolean(svc.getCharacteristic(Char.On).value))
75
- .onSet(async (v) => {
76
- this.log.info(`${name} Switch (${v ? 'On' : 'Off'})`);
77
- const result = this.tripHandler.triggerIfModeSet(mode, v);
78
- if (!result.success) {
79
- this.log.debug(result.reason ?? 'Trip blocked');
80
- throw new this.api.hap.HapStatusError(HK_ERR);
81
- }
82
- });
83
- }
84
- }
85
- s.tripOverrideSwitchService.getCharacteristic(Char.On)
86
- .onGet(async () => Boolean(s.tripOverrideSwitchService.getCharacteristic(Char.On).value))
87
- .onSet(async (v) => {
88
- this.log.info(`Trip Override Switch (${v ? 'On' : 'Off'})`);
89
- tripSetHandler(v, OriginType.OVERRIDE_SWITCH);
90
- });
91
- // Mode switches.
92
- const modeSwitches = [
93
- ['modeHomeSwitchService', SecurityState.HOME, 'Mode Home'],
94
- ['modeAwaySwitchService', SecurityState.AWAY, 'Mode Away'],
95
- ['modeNightSwitchService', SecurityState.NIGHT, 'Mode Night'],
96
- ['modeOffSwitchService', null, 'Mode Off'],
97
- ];
98
- for (const [key, mode, label] of modeSwitches) {
99
- const svc = s[key];
100
- svc.getCharacteristic(Char.On)
101
- .onGet(async () => Boolean(svc.getCharacteristic(Char.On).value))
102
- .onSet(async (v) => {
103
- this.log.info(`${label} Switch (${v ? 'On' : 'Off'})`);
104
- const err = mode !== null
105
- ? this.switchHandler.setModeSwitch(mode, v)
106
- : this.switchHandler.setModeOffSwitch(v);
107
- if (err) {
108
- throw new this.api.hap.HapStatusError(err);
109
- }
110
- });
111
- }
112
- s.modeAwayExtendedSwitchService.getCharacteristic(Char.On)
113
- .onGet(async () => Boolean(s.modeAwayExtendedSwitchService.getCharacteristic(Char.On).value))
114
- .onSet(async (v) => {
115
- const err = this.switchHandler.setModeAwayExtendedSwitch(v);
116
- if (err) {
117
- throw new this.api.hap.HapStatusError(err);
118
- }
119
- });
120
- s.modePauseSwitchService.getCharacteristic(Char.On)
121
- .onGet(async () => Boolean(s.modePauseSwitchService.getCharacteristic(Char.On).value))
122
- .onSet(async (v) => {
123
- const err = this.switchHandler.setModePauseSwitch(v);
124
- if (err) {
125
- throw new this.api.hap.HapStatusError(err);
126
- }
127
- });
128
- // Arming lock switches.
129
- const lockSwitches = [
130
- ['armingLockSwitchService', 'global'],
131
- ['armingLockHomeSwitchService', 'home'],
132
- ['armingLockAwaySwitchService', 'away'],
133
- ['armingLockNightSwitchService', 'night'],
134
- ];
135
- for (const [key, mode] of lockSwitches) {
136
- const svc = s[key];
137
- svc.getCharacteristic(Char.On)
138
- .onGet(async () => Boolean(svc.getCharacteristic(Char.On).value))
139
- .onSet(async (v) => this.log.info(`Arming lock [${mode}] (${v ? 'On' : 'Off'})`));
140
- }
141
- // Audio switch.
142
- s.audioSwitchService.getCharacteristic(Char.On)
143
- .onGet(async () => Boolean(s.audioSwitchService.getCharacteristic(Char.On).value))
144
- .onSet(async (v) => this.log.info(`Audio (${v ? 'Enabled' : 'Disabled'})`));
145
- // Motion sensors (read-only).
146
- const sensorKeys = [
147
- 'armingMotionSensorService', 'trippedMotionSensorService',
148
- 'triggeredMotionSensorService', 'triggeredResetMotionSensorService',
149
- ];
150
- for (const key of sensorKeys) {
151
- s[key].getCharacteristic(Char.MotionDetected)
152
- .onGet(async () => Boolean(s[key].getCharacteristic(Char.MotionDetected).value));
153
- }
154
- }
155
- }
156
- //# sourceMappingURL=homekit-registrar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"homekit-registrar.js","sourceRoot":"","sources":["../../src/homekit/homekit-registrar.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Service } from 'homebridge';
2
- import type { CharacteristicConstructor } from '../interfaces/hap-types-interface.js';
3
- import type { SecuritySystemOptions } from '../interfaces/options-interface.js';
4
- import type { ServiceRegistry } from '../interfaces/service-registry-interface.js';
5
- import type { SystemState } from '../interfaces/system-state-interface.js';
6
- /** Creates the complete ServiceRegistry of HomeKit services for the accessory. */
7
- export declare function buildServiceRegistry(Svc: typeof Service, Char: CharacteristicConstructor, options: SecuritySystemOptions): ServiceRegistry;
8
- /** Builds the list of services to expose to HomeKit based on configured options. */
9
- export declare function buildServiceList(svcs: ServiceRegistry, options: SecuritySystemOptions, state: Pick<SystemState, 'availableTargetStates'>): Service[];
@@ -1,124 +0,0 @@
1
- import { SecurityState } from '../types/security-state-type.js';
2
- import { SWITCH_UUIDS } from '../constants/switch-uuid-constant.js';
3
- /** Creates the complete ServiceRegistry of HomeKit services for the accessory. */
4
- export function buildServiceRegistry(Svc, Char, options) {
5
- const sw = (name, sub) => {
6
- const s = new Svc.Switch(name, sub);
7
- s.addCharacteristic(Char.ConfiguredName);
8
- s.setCharacteristic(Char.ConfiguredName, name);
9
- return s;
10
- };
11
- const sensor = (name, sub) => {
12
- const s = new Svc.MotionSensor(name, sub);
13
- s.addOptionalCharacteristic(Char.ConfiguredName);
14
- s.setCharacteristic(Char.ConfiguredName, name);
15
- return s;
16
- };
17
- const mainSvc = new Svc.SecuritySystem(options.name);
18
- mainSvc.addCharacteristic(Char.ConfiguredName);
19
- const infoSvc = new Svc.AccessoryInformation();
20
- infoSvc.setCharacteristic(Char.Identify, true);
21
- infoSvc.setCharacteristic(Char.Manufacturer, 'MiguelRipoll23');
22
- infoSvc.setCharacteristic(Char.Model, 'DIY');
23
- infoSvc.setCharacteristic(Char.SerialNumber, options.serialNumber);
24
- const audioSvc = sw(options.audioSwitchName, SWITCH_UUIDS.AUDIO);
25
- audioSvc.getCharacteristic(Char.On).value = true;
26
- const buildCustomTripSwitches = (mode, modeLabel, switches) => switches.map((s, i) => sw(`Trip ${modeLabel} ${s.label}`, `trip-${mode}-${i}`));
27
- return {
28
- mainService: mainSvc,
29
- accessoryInfoService: infoSvc,
30
- tripSwitchService: sw(options.tripSwitchName, SWITCH_UUIDS.TRIP),
31
- tripHomeSwitchService: sw(options.tripHomeSwitchName, SWITCH_UUIDS.TRIP_HOME),
32
- tripAwaySwitchService: sw(options.tripAwaySwitchName, SWITCH_UUIDS.TRIP_AWAY),
33
- tripNightSwitchService: sw(options.tripNightSwitchName, SWITCH_UUIDS.TRIP_NIGHT),
34
- tripOverrideSwitchService: sw(options.tripOverrideSwitchName, SWITCH_UUIDS.TRIP_OVERRIDE),
35
- armingLockSwitchService: sw('Arming Lock', SWITCH_UUIDS.ARMING_LOCK),
36
- armingLockHomeSwitchService: sw('Arming Lock Home', SWITCH_UUIDS.ARMING_LOCK_HOME),
37
- armingLockAwaySwitchService: sw('Arming Lock Away', SWITCH_UUIDS.ARMING_LOCK_AWAY),
38
- armingLockNightSwitchService: sw('Arming Lock Night', SWITCH_UUIDS.ARMING_LOCK_NIGHT),
39
- modeHomeSwitchService: sw(options.modeHomeSwitchName, SWITCH_UUIDS.MODE_HOME),
40
- modeAwaySwitchService: sw(options.modeAwaySwitchName, SWITCH_UUIDS.MODE_AWAY),
41
- modeNightSwitchService: sw(options.modeNightSwitchName, SWITCH_UUIDS.MODE_NIGHT),
42
- modeOffSwitchService: sw(options.modeOffSwitchName, SWITCH_UUIDS.MODE_OFF),
43
- modeAwayExtendedSwitchService: sw(options.modeAwayExtendedSwitchName, SWITCH_UUIDS.MODE_AWAY_EXTENDED),
44
- modePauseSwitchService: sw(options.modePauseSwitchName, SWITCH_UUIDS.MODE_PAUSE),
45
- customTripHomeSwitchServices: buildCustomTripSwitches('home', 'Home', options.tripHomeSwitches),
46
- customTripAwaySwitchServices: buildCustomTripSwitches('away', 'Away', options.tripAwaySwitches),
47
- customTripNightSwitchServices: buildCustomTripSwitches('night', 'Night', options.tripNightSwitches),
48
- audioSwitchService: audioSvc,
49
- armingMotionSensorService: sensor('Arming', SWITCH_UUIDS.ARMING_SENSOR),
50
- trippedMotionSensorService: sensor('Tripped', SWITCH_UUIDS.TRIPPED_SENSOR),
51
- triggeredMotionSensorService: sensor('Triggered', SWITCH_UUIDS.TRIGGERED_SENSOR),
52
- triggeredResetMotionSensorService: sensor('Triggered Reset', SWITCH_UUIDS.RESET_SENSOR),
53
- };
54
- }
55
- /** Builds the list of services to expose to HomeKit based on configured options. */
56
- export function buildServiceList(svcs, options, state) {
57
- const avail = state.availableTargetStates;
58
- const list = [svcs.mainService, svcs.accessoryInfoService];
59
- if (options.armingMotionSensor) {
60
- list.push(svcs.armingMotionSensorService);
61
- }
62
- if (options.trippedMotionSensor) {
63
- list.push(svcs.trippedMotionSensorService);
64
- }
65
- if (options.triggeredMotionSensor) {
66
- list.push(svcs.triggeredMotionSensorService);
67
- }
68
- if (options.resetSensor) {
69
- list.push(svcs.triggeredResetMotionSensorService);
70
- }
71
- if (options.armingLockSwitch) {
72
- list.push(svcs.armingLockSwitchService);
73
- }
74
- if (options.armingLockSwitches) {
75
- list.push(svcs.armingLockHomeSwitchService, svcs.armingLockAwaySwitchService, svcs.armingLockNightSwitchService);
76
- }
77
- if (options.tripSwitch) {
78
- list.push(svcs.tripSwitchService);
79
- }
80
- if (options.tripOverrideSwitch) {
81
- list.push(svcs.tripOverrideSwitchService);
82
- }
83
- if (avail.includes(SecurityState.HOME)) {
84
- if (options.modeSwitches) {
85
- list.push(svcs.modeHomeSwitchService);
86
- }
87
- if (options.tripModeSwitches) {
88
- list.push(svcs.tripHomeSwitchService);
89
- }
90
- list.push(...svcs.customTripHomeSwitchServices);
91
- }
92
- if (avail.includes(SecurityState.AWAY)) {
93
- if (options.modeSwitches) {
94
- list.push(svcs.modeAwaySwitchService);
95
- }
96
- if (options.tripModeSwitches) {
97
- list.push(svcs.tripAwaySwitchService);
98
- }
99
- list.push(...svcs.customTripAwaySwitchServices);
100
- }
101
- if (avail.includes(SecurityState.NIGHT)) {
102
- if (options.modeSwitches) {
103
- list.push(svcs.modeNightSwitchService);
104
- }
105
- if (options.tripModeSwitches) {
106
- list.push(svcs.tripNightSwitchService);
107
- }
108
- list.push(...svcs.customTripNightSwitchServices);
109
- }
110
- if (options.modeSwitches && options.modeOffSwitch) {
111
- list.push(svcs.modeOffSwitchService);
112
- }
113
- if (options.modeAwayExtendedSwitch) {
114
- list.push(svcs.modeAwayExtendedSwitchService);
115
- }
116
- if (options.modePauseSwitch) {
117
- list.push(svcs.modePauseSwitchService);
118
- }
119
- if (options.audio && options.audioSwitch) {
120
- list.push(svcs.audioSwitchService);
121
- }
122
- return list;
123
- }
124
- //# sourceMappingURL=service-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-factory.js","sourceRoot":"","sources":["../../src/homekit/service-factory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAClC,GAAmB,EACnB,IAA+B,EAC/B,OAA8B;IAE9B,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE;QAChD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE;QACpD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;IAC/C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC/D,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjE,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IAEjD,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,QAA0B,EAAa,EAAE,CACzG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO;QACL,WAAW,EAAE,OAAO;QACpB,oBAAoB,EAAE,OAAO;QAC7B,iBAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC;QAChE,qBAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC;QAC7E,qBAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC;QAC7E,sBAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC;QAChF,yBAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC,aAAa,CAAC;QACzF,uBAAuB,EAAE,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,WAAW,CAAC;QACpE,2BAA2B,EAAE,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAClF,2BAA2B,EAAE,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAClF,4BAA4B,EAAE,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC,iBAAiB,CAAC;QACrF,qBAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC;QAC7E,qBAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC;QAC7E,sBAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC;QAChF,oBAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC1E,6BAA6B,EAAE,EAAE,CAAC,OAAO,CAAC,0BAA0B,EAAE,YAAY,CAAC,kBAAkB,CAAC;QACtG,sBAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC;QAChF,4BAA4B,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAC/F,4BAA4B,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAC/F,6BAA6B,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC;QACnG,kBAAkB,EAAE,QAAQ;QAC5B,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC;QACvE,0BAA0B,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC;QAC1E,4BAA4B,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAChF,iCAAiC,EAAE,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,YAAY,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,gBAAgB,CAC9B,IAAqB,EACrB,OAA8B,EAC9B,KAAiD;IAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC;IAC1C,MAAM,IAAI,GAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEtE,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { API } from 'homebridge';
2
- export default _default;
3
- declare function _default(api: API): void;
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC,eAAe,CAAC,GAAQ,EAAQ,EAAE;IAChC,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AACrE,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { Logging } from 'homebridge';
2
- import type { OriginType } from '../types/origin-type.js';
3
- import type { SecuritySystemOptions } from './options-interface.js';
4
- import type { ServiceRegistry } from './service-registry-interface.js';
5
- import type { SystemState } from './system-state-interface.js';
6
- /** Context passed to Condition.evaluate() to determine if an action is blocked. */
7
- export interface ConditionContext {
8
- state: SystemState;
9
- services: ServiceRegistry;
10
- options: SecuritySystemOptions;
11
- /** The value being set (true = activating, false = deactivating). */
12
- value: boolean;
13
- origin: OriginType;
14
- /** Logger used by conditions to emit their own warning messages when blocking. */
15
- log: Logging;
16
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=condition-context-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-context-interface.js","sourceRoot":"","sources":["../../src/interfaces/condition-context-interface.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import type { API } from 'homebridge';
2
- /**
3
- * Runtime type of `api.hap.Characteristic` (the class with all static characteristic
4
- * definitions). Using `API['hap']['Characteristic']` avoids the self-referential
5
- * `typeof Characteristic` issue that arises with `import type { Characteristic }`.
6
- */
7
- export type CharacteristicConstructor = API['hap']['Characteristic'];
8
- /** Runtime type of `api.hap.Service`. */
9
- export type ServiceConstructor = API['hap']['Service'];
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hap-types-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hap-types-interface.js","sourceRoot":"","sources":["../../src/interfaces/hap-types-interface.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export interface MqttStatusPayload {
2
- arming: boolean;
3
- current_mode: string;
4
- target_mode: string;
5
- tripped: boolean;
6
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mqtt-status-payload-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mqtt-status-payload-interface.js","sourceRoot":"","sources":["../../src/interfaces/mqtt-status-payload-interface.ts"],"names":[],"mappings":""}
@@ -1,103 +0,0 @@
1
- /** Key-value pair for extra ffplay environment variables. */
2
- export interface AudioVariable {
3
- key: string;
4
- value: string;
5
- }
6
- /** A single custom trip switch entry with a user-defined label. */
7
- export interface TripModeSwitch {
8
- label: string;
9
- }
10
- /** Fully-parsed, strongly-typed configuration options for the security system. */
11
- export interface SecuritySystemOptions {
12
- name: string;
13
- serialNumber: string;
14
- defaultMode: string;
15
- armSeconds: number;
16
- triggerSeconds: number;
17
- resetMinutes: number;
18
- saveState: boolean;
19
- proxyMode: boolean;
20
- testMode: boolean;
21
- tripSwitchName: string;
22
- tripHomeSwitchName: string;
23
- tripAwaySwitchName: string;
24
- tripNightSwitchName: string;
25
- tripOverrideSwitchName: string;
26
- modeHomeSwitchName: string;
27
- modeAwaySwitchName: string;
28
- modeNightSwitchName: string;
29
- modeOffSwitchName: string;
30
- modeAwayExtendedSwitchName: string;
31
- modePauseSwitchName: string;
32
- audioSwitchName: string;
33
- overrideOff: boolean;
34
- resetOffFlow: boolean;
35
- disabledModes: string[];
36
- homeArmSeconds: number | null;
37
- awayArmSeconds: number | null;
38
- nightArmSeconds: number | null;
39
- homeTriggerSeconds: number | null;
40
- awayTriggerSeconds: number | null;
41
- nightTriggerSeconds: number | null;
42
- tripSwitch: boolean;
43
- tripOverrideSwitch: boolean;
44
- tripModeSwitches: boolean;
45
- tripHomeSwitches: TripModeSwitch[];
46
- tripAwaySwitches: TripModeSwitch[];
47
- tripNightSwitches: TripModeSwitch[];
48
- armingLockSwitch: boolean;
49
- armingLockSwitches: boolean;
50
- armingMotionSensor: boolean;
51
- trippedMotionSensor: boolean;
52
- trippedMotionSensorSeconds: number;
53
- triggeredMotionSensor: boolean;
54
- triggeredMotionSensorSeconds: number;
55
- resetSensor: boolean;
56
- modeSwitches: boolean;
57
- modeOffSwitch: boolean;
58
- modePauseSwitch: boolean;
59
- pauseMinutes: number;
60
- modeAwayExtendedSwitch: boolean;
61
- modeAwayExtendedSwitchTriggerSeconds: number | null;
62
- doubleKnock: boolean;
63
- doubleKnockSeconds: number;
64
- doubleKnockModes: string[];
65
- homeDoubleKnockSeconds: number | null;
66
- awayDoubleKnockSeconds: number | null;
67
- nightDoubleKnockSeconds: number | null;
68
- audio: boolean;
69
- audioPath: string | null;
70
- audioLanguage: string;
71
- audioVolume: number | null;
72
- audioArmingLooped: boolean;
73
- audioAlertLooped: boolean;
74
- audioExtraVariables: AudioVariable[];
75
- audioSwitch: boolean;
76
- serverPort: number | null;
77
- serverApiKey: string | null;
78
- commandTargetHome: string | null;
79
- commandTargetAway: string | null;
80
- commandTargetNight: string | null;
81
- commandTargetOff: string | null;
82
- commandCurrentHome: string | null;
83
- commandCurrentAway: string | null;
84
- commandCurrentNight: string | null;
85
- commandCurrentOff: string | null;
86
- commandCurrentWarning: string | null;
87
- commandCurrentTriggered: string | null;
88
- webhookTargetHome: string | null;
89
- webhookTargetAway: string | null;
90
- webhookTargetNight: string | null;
91
- webhookTargetOff: string | null;
92
- webhookCurrentHome: string | null;
93
- webhookCurrentAway: string | null;
94
- webhookCurrentNight: string | null;
95
- webhookCurrentOff: string | null;
96
- webhookCurrentWarning: string | null;
97
- webhookCurrentTriggered: string | null;
98
- mqttBroker: string | null;
99
- mqttUsername: string | null;
100
- mqttPassword: string | null;
101
- mqttTopic: string;
102
- mqttClientId: string | null;
103
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=options-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options-interface.js","sourceRoot":"","sources":["../../src/interfaces/options-interface.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import type { SecurityState } from '../types/security-state-type.js';
2
- /** Subset of SystemState that is persisted across Homebridge restarts. */
3
- export interface PersistedState {
4
- currentState: SecurityState;
5
- targetState: SecurityState;
6
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=persisted-state-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persisted-state-interface.js","sourceRoot":"","sources":["../../src/interfaces/persisted-state-interface.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- import type { Service } from 'homebridge';
2
- /** All HomeKit services exposed by the security system accessory. */
3
- export interface ServiceRegistry {
4
- mainService: Service;
5
- accessoryInfoService: Service;
6
- tripSwitchService: Service;
7
- tripHomeSwitchService: Service;
8
- tripAwaySwitchService: Service;
9
- tripNightSwitchService: Service;
10
- tripOverrideSwitchService: Service;
11
- armingLockSwitchService: Service;
12
- armingLockHomeSwitchService: Service;
13
- armingLockAwaySwitchService: Service;
14
- armingLockNightSwitchService: Service;
15
- modeHomeSwitchService: Service;
16
- modeAwaySwitchService: Service;
17
- modeNightSwitchService: Service;
18
- modeOffSwitchService: Service;
19
- modeAwayExtendedSwitchService: Service;
20
- modePauseSwitchService: Service;
21
- customTripHomeSwitchServices: Service[];
22
- customTripAwaySwitchServices: Service[];
23
- customTripNightSwitchServices: Service[];
24
- audioSwitchService: Service;
25
- armingMotionSensorService: Service;
26
- trippedMotionSensorService: Service;
27
- triggeredMotionSensorService: Service;
28
- triggeredResetMotionSensorService: Service;
29
- }
30
- /** Keys of ServiceRegistry whose value is a single Service (not Service[]). */
31
- export type SingleServiceKey = {
32
- [K in keyof ServiceRegistry]: ServiceRegistry[K] extends Service[] ? never : K;
33
- }[keyof ServiceRegistry];
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=service-registry-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-registry-interface.js","sourceRoot":"","sources":["../../src/interfaces/service-registry-interface.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import type { ChildProcess } from 'child_process';
2
- import type { SecurityState } from '../types/security-state-type.js';
3
- /** Mutable runtime state shared across all handlers. */
4
- export interface SystemState {
5
- currentState: SecurityState;
6
- targetState: SecurityState;
7
- defaultState: SecurityState;
8
- availableTargetStates: SecurityState[];
9
- isArming: boolean;
10
- isTripping: boolean;
11
- isKnocked: boolean;
12
- serverAuthenticationAttempts: number;
13
- pausedCurrentState: SecurityState | null;
14
- audioProcess: ChildProcess | null;
15
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=system-state-interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-state-interface.js","sourceRoot":"","sources":["../../src/interfaces/system-state-interface.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { z } from '@hono/zod-openapi';
2
- export declare const ArmingLockRequestSchema: z.ZodObject<{
3
- mode: z.ZodEnum<{
4
- away: "away";
5
- global: "global";
6
- home: "home";
7
- night: "night";
8
- }>;
9
- value: z.ZodBoolean;
10
- }, z.core.$strip>;