homebridge-securitysystem 12.0.0 → 13.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +7 -7
- package/CHANGELOG.md +17 -0
- package/config.schema.json +1 -145
- package/dist/constants/default-constant.d.ts +0 -3
- package/dist/constants/default-constant.js +0 -3
- package/dist/constants/default-constant.js.map +1 -1
- package/dist/constants/switch-uuid-constant.d.ts +0 -2
- package/dist/constants/switch-uuid-constant.js +0 -2
- package/dist/constants/switch-uuid-constant.js.map +1 -1
- package/dist/handlers/sensor-handler.d.ts +0 -3
- package/dist/handlers/sensor-handler.js +0 -15
- package/dist/handlers/sensor-handler.js.map +1 -1
- package/dist/handlers/state-handler.d.ts +1 -4
- package/dist/handlers/state-handler.js +1 -15
- package/dist/handlers/state-handler.js.map +1 -1
- package/dist/handlers/trip-handler.d.ts +1 -3
- package/dist/handlers/trip-handler.js +1 -4
- package/dist/handlers/trip-handler.js.map +1 -1
- package/dist/homekit/homekit-registrar.js +1 -5
- package/dist/homekit/homekit-registrar.js.map +1 -1
- package/dist/homekit/service-factory.js +0 -10
- package/dist/homekit/service-factory.js.map +1 -1
- package/dist/interfaces/options-interface.d.ts +0 -16
- package/dist/interfaces/service-registry-interface.d.ts +0 -2
- package/dist/interfaces/system-state-interface.d.ts +0 -2
- package/dist/security-system.d.ts +0 -1
- package/dist/security-system.js +2 -11
- package/dist/security-system.js.map +1 -1
- package/dist/services/configuration-service.d.ts +0 -1
- package/dist/services/configuration-service.js +0 -29
- package/dist/services/configuration-service.js.map +1 -1
- package/dist/services/event-bus-service.d.ts +1 -1
- package/dist/services/event-bus-service.js +1 -1
- package/dist/tests/conditions.test.js +0 -1
- package/dist/tests/conditions.test.js.map +1 -1
- package/dist/tests/mqtt-service.test.js +0 -1
- package/dist/tests/mqtt-service.test.js.map +1 -1
- package/dist/tests/server-service.test.js +0 -1
- package/dist/tests/server-service.test.js.map +1 -1
- package/dist/tests/state-handler.test.js +14 -45
- package/dist/tests/state-handler.test.js.map +1 -1
- package/dist/tests/switch-handler.test.js +2 -6
- package/dist/tests/switch-handler.test.js.map +1 -1
- package/dist/tests/trip-handler.test.js +7 -11
- package/dist/tests/trip-handler.test.js.map +1 -1
- package/dist/timers/timer-manager.d.ts +0 -3
- package/dist/timers/timer-manager.js +0 -14
- package/dist/timers/timer-manager.js.map +1 -1
- package/dist/types/mode-type.d.ts +1 -1
- package/package.json +1 -1
- package/src/constants/default-constant.ts +0 -3
- package/src/constants/switch-uuid-constant.ts +0 -2
- package/src/handlers/sensor-handler.ts +0 -22
- package/src/handlers/state-handler.ts +0 -17
- package/src/handlers/trip-handler.ts +0 -3
- package/src/homekit/homekit-registrar.ts +1 -6
- package/src/homekit/service-factory.ts +0 -11
- package/src/interfaces/options-interface.ts +0 -19
- package/src/interfaces/service-registry-interface.ts +0 -4
- package/src/interfaces/system-state-interface.ts +0 -2
- package/src/security-system.ts +2 -14
- package/src/services/configuration-service.ts +0 -33
- package/src/services/event-bus-service.ts +1 -1
- package/src/tests/conditions.test.ts +0 -1
- package/src/tests/mqtt-service.test.ts +0 -1
- package/src/tests/server-service.test.ts +0 -1
- package/src/tests/state-handler.test.ts +14 -65
- package/src/tests/switch-handler.test.ts +2 -6
- package/src/tests/trip-handler.test.ts +7 -11
- package/src/timers/timer-manager.ts +0 -17
- package/src/types/mode-type.ts +1 -1
- package/dist/services/audio-service.d.ts +0 -21
- package/dist/services/audio-service.js +0 -113
- package/dist/services/audio-service.js.map +0 -1
- package/sounds/README +0 -22
- package/sounds/de-DE/current-away.mp3 +0 -0
- package/sounds/de-DE/current-home.mp3 +0 -0
- package/sounds/de-DE/current-night.mp3 +0 -0
- package/sounds/de-DE/current-off.mp3 +0 -0
- package/sounds/de-DE/current-triggered.mp3 +0 -0
- package/sounds/de-DE/current-warning.mp3 +0 -0
- package/sounds/de-DE/target-away.mp3 +0 -0
- package/sounds/de-DE/target-home.mp3 +0 -0
- package/sounds/de-DE/target-night.mp3 +0 -0
- package/sounds/en-US/current-away.mp3 +0 -0
- package/sounds/en-US/current-home.mp3 +0 -0
- package/sounds/en-US/current-night.mp3 +0 -0
- package/sounds/en-US/current-off.mp3 +0 -0
- package/sounds/en-US/current-triggered.mp3 +0 -0
- package/sounds/en-US/current-warning.mp3 +0 -0
- package/sounds/en-US/target-away.mp3 +0 -0
- package/sounds/en-US/target-home.mp3 +0 -0
- package/sounds/en-US/target-night.mp3 +0 -0
- package/src/services/audio-service.ts +0 -133
package/AGENTS.md
CHANGED
|
@@ -9,8 +9,8 @@ This document defines the architecture, naming conventions, and rules that all c
|
|
|
9
9
|
`homebridge-securitysystem` is a Homebridge accessory plugin (not a platform plugin) that exposes a fully-featured security system to HomeKit. It is written in TypeScript with ESM modules.
|
|
10
10
|
|
|
11
11
|
The plugin:
|
|
12
|
-
- Exposes one `SecuritySystem` HAP service plus a configurable set of optional switch/sensor accessories (trip, mode, arming-lock
|
|
13
|
-
- Uses an event-driven architecture: core state changes emit domain events; side-effect services (
|
|
12
|
+
- Exposes one `SecuritySystem` HAP service plus a configurable set of optional switch/sensor accessories (trip, mode, and arming-lock switches; motion sensors).
|
|
13
|
+
- Uses an event-driven architecture: core state changes emit domain events; side-effect services (webhook, command, MQTT) listen and react.
|
|
14
14
|
- Uses an abstract `Condition` class hierarchy to encapsulate all blocking-logic decisions.
|
|
15
15
|
- Provides an optional Hono HTTP server (zod-validated routes with OpenAPI and Scalar docs) for remote control.
|
|
16
16
|
- Optionally publishes status updates over MQTT.
|
|
@@ -28,7 +28,7 @@ src/
|
|
|
28
28
|
homekit/ HomeKit service construction + characteristic registration
|
|
29
29
|
interfaces/ TypeScript interfaces (plain object shapes)
|
|
30
30
|
schemas/ Zod schemas for HTTP server request/response validation
|
|
31
|
-
services/ Stateful services (
|
|
31
|
+
services/ Stateful services (webhook, command, MQTT, storage, server, event bus)
|
|
32
32
|
tests/ Vitest test suites
|
|
33
33
|
timers/ Centralised timer/interval ownership (TimerManager)
|
|
34
34
|
types/ TypeScript enums and type aliases
|
|
@@ -69,7 +69,7 @@ All filenames use **kebab-case** with a mandatory suffix describing their kind:
|
|
|
69
69
|
| Constant object | `-constant.ts` | `homekit-constant.ts` |
|
|
70
70
|
| Utility functions | `-util.ts` | `state-util.ts` |
|
|
71
71
|
| Zod schema | `-schema.ts` | `error-schema.ts` |
|
|
72
|
-
| Service class | `-service.ts` | `
|
|
72
|
+
| Service class | `-service.ts` | `webhook-service.ts` |
|
|
73
73
|
| Handler class | `-handler.ts` | `state-handler.ts` |
|
|
74
74
|
| Condition class | `-condition.ts` | `double-knock-condition.ts` |
|
|
75
75
|
| HomeKit registrar class | `-registrar.ts` | `homekit-registrar.ts` |
|
|
@@ -139,11 +139,11 @@ The core state machine (`StateHandler`, `TripHandler`, `SwitchHandler`) never ca
|
|
|
139
139
|
|
|
140
140
|
```
|
|
141
141
|
StateHandler → bus.emit(EventType.CURRENT_CHANGED, payload)
|
|
142
|
-
↓ ↓ ↓
|
|
143
|
-
|
|
142
|
+
↓ ↓ ↓
|
|
143
|
+
WebhookService CommandService MqttService
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
`
|
|
146
|
+
`StorageService` is constructor-injected into the handlers that need it; `WebhookService`, `CommandService`, and `MqttService` are purely event-driven and call `attachToBus(bus)` during construction in `security-system.ts`.
|
|
147
147
|
|
|
148
148
|
**New side effects must follow this pattern** — never add direct calls from handlers to services. The MQTT client is disconnected on shutdown via an `api.on('shutdown', ...)` hook wired in `security-system.ts`.
|
|
149
149
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v12.0.0 - 2026-08-30
|
|
4
|
+
|
|
5
|
+
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0 -->
|
|
6
|
+
|
|
7
|
+
## What's Changed
|
|
8
|
+
### 💥 Breaking Changes
|
|
9
|
+
* Remove file logging by @MiguelRipoll23 in https://github.com/MiguelRipoll23/homebridge-securitysystem/pull/988
|
|
10
|
+
* feat: use full URL per webhook event (remove base URL) by @MiguelRipoll23 in https://github.com/MiguelRipoll23/homebridge-securitysystem/pull/992
|
|
11
|
+
### 🛠️ Other Changes
|
|
12
|
+
* Deprecate audio playback by @MiguelRipoll23 in https://github.com/MiguelRipoll23/homebridge-securitysystem/pull/989
|
|
13
|
+
* Deprecate triggered sensor by @MiguelRipoll23 in https://github.com/MiguelRipoll23/homebridge-securitysystem/pull/990
|
|
14
|
+
* docs: update AGENTS.md to match current architecture by @MiguelRipoll23 in https://github.com/MiguelRipoll23/homebridge-securitysystem/pull/995
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
**Full Changelog**: https://github.com/MiguelRipoll23/homebridge-securitysystem/compare/v11.4.1...v12.0.0
|
|
18
|
+
|
|
19
|
+
|
|
3
20
|
## v12.0.0-beta.2 - 2026-08-29
|
|
4
21
|
|
|
5
22
|
<!-- Release notes generated using configuration in .github/release.yml at v12.0.0-beta.2 -->
|
package/config.schema.json
CHANGED
|
@@ -323,23 +323,6 @@
|
|
|
323
323
|
"functionBody": "return !(model.disabled_modes || []).includes('Night');"
|
|
324
324
|
}
|
|
325
325
|
},
|
|
326
|
-
"audio_switch": {
|
|
327
|
-
"title": "Show Audio Enable Switch (Deprecated)",
|
|
328
|
-
"description": "Adds a global switch to enable or disable audio except for alarm triggered. Deprecated — audio playback is deprecated, use command hooks instead.",
|
|
329
|
-
"type": "boolean",
|
|
330
|
-
"default": false,
|
|
331
|
-
"required": false
|
|
332
|
-
},
|
|
333
|
-
"audio_switch_name": {
|
|
334
|
-
"title": "Audio Enable Switch Name (Deprecated)",
|
|
335
|
-
"description": "",
|
|
336
|
-
"type": "string",
|
|
337
|
-
"default": "Enable Audio",
|
|
338
|
-
"required": false,
|
|
339
|
-
"condition": {
|
|
340
|
-
"functionBody": "return model.audio_switch === true;"
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
326
|
"arming_sensor": {
|
|
344
327
|
"title": "Show Arming Sensor",
|
|
345
328
|
"description": "Adds a sensor that asserts when the security system is being armed.",
|
|
@@ -365,24 +348,6 @@
|
|
|
365
348
|
"functionBody": "return model.tripped_sensor === true;"
|
|
366
349
|
}
|
|
367
350
|
},
|
|
368
|
-
"triggered_sensor": {
|
|
369
|
-
"title": "Show Triggered Sensor (Deprecated)",
|
|
370
|
-
"description": "Adds a sensor that pulses at the set rate when the security system has been triggered. Deprecated — Apple already provides emergency alerts for security system accessories, so this sensor is redundant.",
|
|
371
|
-
"type": "boolean",
|
|
372
|
-
"default": false,
|
|
373
|
-
"required": false
|
|
374
|
-
},
|
|
375
|
-
"triggered_sensor_seconds": {
|
|
376
|
-
"title": "Triggered Sensor Pulse Rate (seconds) (Deprecated)",
|
|
377
|
-
"description": "Set to 0 for steady on.",
|
|
378
|
-
"type": "integer",
|
|
379
|
-
"default": 5,
|
|
380
|
-
"required": false,
|
|
381
|
-
"minimum": 0,
|
|
382
|
-
"condition": {
|
|
383
|
-
"functionBody": "return model.triggered_sensor === true;"
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
351
|
"reset_sensor": {
|
|
387
352
|
"title": "Show Triggered Reset Sensor",
|
|
388
353
|
"description": "Adds a sensor that asserts when the security system has reset after being triggered.",
|
|
@@ -390,72 +355,6 @@
|
|
|
390
355
|
"default": false,
|
|
391
356
|
"required": false
|
|
392
357
|
},
|
|
393
|
-
"audio": {
|
|
394
|
-
"title": "Play Sounds (Deprecated, local-only, ffmpeg required)",
|
|
395
|
-
"description": "Warns of pending or current events by playing sounds. Deprecated — use command hooks (command_current_*) to play audio instead, which is more flexible.",
|
|
396
|
-
"type": "boolean",
|
|
397
|
-
"default": false,
|
|
398
|
-
"required": false
|
|
399
|
-
},
|
|
400
|
-
"audio_language": {
|
|
401
|
-
"title": "Audio Language",
|
|
402
|
-
"description": "",
|
|
403
|
-
"type": "string",
|
|
404
|
-
"default": "en-US",
|
|
405
|
-
"required": false,
|
|
406
|
-
"enum": ["en-US", "de-DE"]
|
|
407
|
-
},
|
|
408
|
-
"audio_extra_variables": {
|
|
409
|
-
"title": "Audio Extra Variables",
|
|
410
|
-
"description": "Add extra environment variables to the ffplay command that will be executed",
|
|
411
|
-
"type": "array",
|
|
412
|
-
"items": {
|
|
413
|
-
"title": "Environment Variable",
|
|
414
|
-
"type": "object",
|
|
415
|
-
"properties": {
|
|
416
|
-
"key": {
|
|
417
|
-
"title": "Name",
|
|
418
|
-
"type": "string",
|
|
419
|
-
"required": true
|
|
420
|
-
},
|
|
421
|
-
"value": {
|
|
422
|
-
"title": "Value",
|
|
423
|
-
"type": "string",
|
|
424
|
-
"required": true
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
},
|
|
428
|
-
"required": false
|
|
429
|
-
},
|
|
430
|
-
"audio_path": {
|
|
431
|
-
"title": "Custom Audio Path",
|
|
432
|
-
"description": "Instructions will be created in this path.",
|
|
433
|
-
"type": "string",
|
|
434
|
-
"required": false,
|
|
435
|
-
"placeholder": "/home/user/sounds"
|
|
436
|
-
},
|
|
437
|
-
"audio_volume": {
|
|
438
|
-
"title": "Audio Volume",
|
|
439
|
-
"description": "",
|
|
440
|
-
"type": "string",
|
|
441
|
-
"required": false,
|
|
442
|
-
"default": 100,
|
|
443
|
-
"placeholder": "100"
|
|
444
|
-
},
|
|
445
|
-
"audio_arming_looped": {
|
|
446
|
-
"title": "Loop Arming Sound",
|
|
447
|
-
"description": "",
|
|
448
|
-
"type": "boolean",
|
|
449
|
-
"default": false,
|
|
450
|
-
"required": false
|
|
451
|
-
},
|
|
452
|
-
"audio_alert_looped": {
|
|
453
|
-
"title": "Loop Tripped Sound",
|
|
454
|
-
"description": "",
|
|
455
|
-
"type": "boolean",
|
|
456
|
-
"default": false,
|
|
457
|
-
"required": false
|
|
458
|
-
},
|
|
459
358
|
"server_port": {
|
|
460
359
|
"title": "Listening Port",
|
|
461
360
|
"description": "",
|
|
@@ -888,9 +787,7 @@
|
|
|
888
787
|
"type": "tabarray",
|
|
889
788
|
"title": "{{ value.label || 'Night Switch' }}",
|
|
890
789
|
"items": ["trip_night_switches[].label"]
|
|
891
|
-
}
|
|
892
|
-
"audio_switch",
|
|
893
|
-
"audio_switch_name"
|
|
790
|
+
}
|
|
894
791
|
]
|
|
895
792
|
},
|
|
896
793
|
{
|
|
@@ -908,50 +805,9 @@
|
|
|
908
805
|
"flex-direction": "row",
|
|
909
806
|
"items": ["tripped_sensor", "tripped_sensor_seconds"]
|
|
910
807
|
},
|
|
911
|
-
{
|
|
912
|
-
"type": "div",
|
|
913
|
-
"displayFlex": true,
|
|
914
|
-
"flex-flow": "row",
|
|
915
|
-
"flex-direction": "row",
|
|
916
|
-
"items": ["triggered_sensor", "triggered_sensor_seconds"]
|
|
917
|
-
},
|
|
918
808
|
"reset_sensor"
|
|
919
809
|
]
|
|
920
810
|
},
|
|
921
|
-
{
|
|
922
|
-
"type": "fieldset",
|
|
923
|
-
"title": "Audio (Deprecated)",
|
|
924
|
-
"description": "Play sounds on your connected speakers to notify events. Deprecated — use command hooks to play audio instead, which is more flexible.",
|
|
925
|
-
"expandable": true,
|
|
926
|
-
"expanded": false,
|
|
927
|
-
"items": [
|
|
928
|
-
{
|
|
929
|
-
"type": "div",
|
|
930
|
-
"displayFlex": true,
|
|
931
|
-
"flex-flow": "row wrap",
|
|
932
|
-
"flex-direction": "row",
|
|
933
|
-
"items": ["audio", "audio_language"]
|
|
934
|
-
},
|
|
935
|
-
{
|
|
936
|
-
"type": "div",
|
|
937
|
-
"displayFlex": true,
|
|
938
|
-
"flex-flow": "row wrap",
|
|
939
|
-
"flex-direction": "row",
|
|
940
|
-
"items": ["audio_path", "audio_volume"]
|
|
941
|
-
},
|
|
942
|
-
"audio_arming_looped",
|
|
943
|
-
"audio_alert_looped",
|
|
944
|
-
{
|
|
945
|
-
"key": "audio_extra_variables",
|
|
946
|
-
"type": "tabarray",
|
|
947
|
-
"title": "{{ value.key || 'Environment Variable' }}",
|
|
948
|
-
"items": [
|
|
949
|
-
"audio_extra_variables[].key",
|
|
950
|
-
"audio_extra_variables[].value"
|
|
951
|
-
]
|
|
952
|
-
}
|
|
953
|
-
]
|
|
954
|
-
},
|
|
955
811
|
{
|
|
956
812
|
"type": "fieldset",
|
|
957
813
|
"title": "Server",
|
|
@@ -8,9 +8,7 @@ export declare const DEFAULTS: {
|
|
|
8
8
|
readonly RESET_MINUTES: 10;
|
|
9
9
|
readonly DOUBLE_KNOCK_SECONDS: 90;
|
|
10
10
|
readonly TRIPPED_SENSOR_SECONDS: 5;
|
|
11
|
-
readonly TRIGGERED_SENSOR_SECONDS: 5;
|
|
12
11
|
readonly PAUSE_MINUTES: 0;
|
|
13
|
-
readonly AUDIO_LANGUAGE: 'en-US';
|
|
14
12
|
readonly TRIP_SWITCH_NAME: 'Trip';
|
|
15
13
|
readonly TRIP_HOME_SWITCH_NAME: 'Trip Home';
|
|
16
14
|
readonly TRIP_AWAY_SWITCH_NAME: 'Trip Away';
|
|
@@ -22,6 +20,5 @@ export declare const DEFAULTS: {
|
|
|
22
20
|
readonly MODE_OFF_SWITCH_NAME: 'Mode Off';
|
|
23
21
|
readonly MODE_AWAY_EXTENDED_SWITCH_NAME: 'Mode Away Extended';
|
|
24
22
|
readonly MODE_PAUSE_SWITCH_NAME: 'Mode Pause';
|
|
25
|
-
readonly AUDIO_SWITCH_NAME: 'Audio';
|
|
26
23
|
readonly MQTT_TOPIC: 'security-system/state';
|
|
27
24
|
};
|
|
@@ -8,9 +8,7 @@ export const DEFAULTS = {
|
|
|
8
8
|
RESET_MINUTES: 10,
|
|
9
9
|
DOUBLE_KNOCK_SECONDS: 90,
|
|
10
10
|
TRIPPED_SENSOR_SECONDS: 5,
|
|
11
|
-
TRIGGERED_SENSOR_SECONDS: 5,
|
|
12
11
|
PAUSE_MINUTES: 0,
|
|
13
|
-
AUDIO_LANGUAGE: 'en-US',
|
|
14
12
|
// Switch display names
|
|
15
13
|
TRIP_SWITCH_NAME: 'Trip',
|
|
16
14
|
TRIP_HOME_SWITCH_NAME: 'Trip Home',
|
|
@@ -23,7 +21,6 @@ export const DEFAULTS = {
|
|
|
23
21
|
MODE_OFF_SWITCH_NAME: 'Mode Off',
|
|
24
22
|
MODE_AWAY_EXTENDED_SWITCH_NAME: 'Mode Away Extended',
|
|
25
23
|
MODE_PAUSE_SWITCH_NAME: 'Mode Pause',
|
|
26
|
-
AUDIO_SWITCH_NAME: 'Audio',
|
|
27
24
|
// MQTT
|
|
28
25
|
MQTT_TOPIC: 'security-system/state',
|
|
29
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-constant.js","sourceRoot":"","sources":["../../src/constants/default-constant.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,iBAAiB;IACvB,aAAa,EAAE,gBAAgB;IAC/B,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"default-constant.js","sourceRoot":"","sources":["../../src/constants/default-constant.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,iBAAiB;IACvB,aAAa,EAAE,gBAAgB;IAC/B,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,CAAC;IACzB,aAAa,EAAE,CAAC;IAEhB,uBAAuB;IACvB,gBAAgB,EAAE,MAAM;IACxB,qBAAqB,EAAE,WAAW;IAClC,qBAAqB,EAAE,WAAW;IAClC,sBAAsB,EAAE,YAAY;IACpC,yBAAyB,EAAE,eAAe;IAC1C,qBAAqB,EAAE,WAAW;IAClC,qBAAqB,EAAE,WAAW;IAClC,sBAAsB,EAAE,YAAY;IACpC,oBAAoB,EAAE,UAAU;IAChC,8BAA8B,EAAE,oBAAoB;IACpD,sBAAsB,EAAE,YAAY;IAEpC,OAAO;IACP,UAAU,EAAE,uBAAuB;CAC3B,CAAC"}
|
|
@@ -15,9 +15,7 @@ export declare const SWITCH_UUIDS: {
|
|
|
15
15
|
readonly MODE_OFF: 'mode-off';
|
|
16
16
|
readonly MODE_AWAY_EXTENDED: 'mode-away-extended';
|
|
17
17
|
readonly MODE_PAUSE: 'mode-pause';
|
|
18
|
-
readonly AUDIO: 'kx82r64zN3txDXKFiX9JDi';
|
|
19
18
|
readonly ARMING_SENSOR: 'arming-motion-sensor';
|
|
20
19
|
readonly TRIPPED_SENSOR: 'siren-tripped';
|
|
21
|
-
readonly TRIGGERED_SENSOR: 'siren-triggered';
|
|
22
20
|
readonly RESET_SENSOR: 'reset-event';
|
|
23
21
|
};
|
|
@@ -15,10 +15,8 @@ export const SWITCH_UUIDS = {
|
|
|
15
15
|
MODE_OFF: 'mode-off',
|
|
16
16
|
MODE_AWAY_EXTENDED: 'mode-away-extended',
|
|
17
17
|
MODE_PAUSE: 'mode-pause',
|
|
18
|
-
AUDIO: 'kx82r64zN3txDXKFiX9JDi',
|
|
19
18
|
ARMING_SENSOR: 'arming-motion-sensor',
|
|
20
19
|
TRIPPED_SENSOR: 'siren-tripped',
|
|
21
|
-
TRIGGERED_SENSOR: 'siren-triggered',
|
|
22
20
|
RESET_SENSOR: 'reset-event',
|
|
23
21
|
};
|
|
24
22
|
//# sourceMappingURL=switch-uuid-constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-uuid-constant.js","sourceRoot":"","sources":["../../src/constants/switch-uuid-constant.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,UAAU,EAAE,YAAY;IACxB,
|
|
1
|
+
{"version":3,"file":"switch-uuid-constant.js","sourceRoot":"","sources":["../../src/constants/switch-uuid-constant.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,sBAAsB;IACrC,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,aAAa;CACnB,CAAC"}
|
|
@@ -12,9 +12,6 @@ export declare class SensorHandler {
|
|
|
12
12
|
pulseTrippedMotionSensor(): void;
|
|
13
13
|
setTrippedMotionSensor(value: boolean): void;
|
|
14
14
|
resetTrippedMotionSensor(): void;
|
|
15
|
-
pulseTriggeredMotionSensor(): void;
|
|
16
|
-
setTriggeredMotionSensor(value: boolean): void;
|
|
17
|
-
resetTriggeredMotionSensor(): void;
|
|
18
15
|
pulseResetMotionSensor(): void;
|
|
19
16
|
private scheduleReset;
|
|
20
17
|
}
|
|
@@ -35,21 +35,6 @@ export class SensorHandler {
|
|
|
35
35
|
char.updateValue(false);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
// ── Triggered sensor ───────────────────────────────────────────────────────
|
|
39
|
-
pulseTriggeredMotionSensor() {
|
|
40
|
-
this.setTriggeredMotionSensor(true);
|
|
41
|
-
this.scheduleReset(this.services.triggeredMotionSensorService);
|
|
42
|
-
}
|
|
43
|
-
setTriggeredMotionSensor(value) {
|
|
44
|
-
this.services.triggeredMotionSensorService.updateCharacteristic(this.Characteristic.MotionDetected, value);
|
|
45
|
-
}
|
|
46
|
-
resetTriggeredMotionSensor() {
|
|
47
|
-
const char = this.services.triggeredMotionSensorService
|
|
48
|
-
.getCharacteristic(this.Characteristic.MotionDetected);
|
|
49
|
-
if (char.value) {
|
|
50
|
-
char.updateValue(false);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
38
|
// ── Reset sensor ───────────────────────────────────────────────────────────
|
|
54
39
|
pulseResetMotionSensor() {
|
|
55
40
|
this.services.triggeredResetMotionSensorService.updateCharacteristic(this.Characteristic.MotionDetected, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-handler.js","sourceRoot":"","sources":["../../src/handlers/sensor-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,wDAAwD;AACxD,MAAM,OAAO,aAAa;IAEL,QAAQ;IACR,cAAc;IACd,GAAG;IAHtB,YACmB,QAAyB,EACzB,cAAyC,EACzC,GAAY;wBAFZ,QAAQ;8BACR,cAAc;mBACd,GAAG;IACnB,CAAC;IAEJ,8EAA8E;IAE9E,wBAAwB,CAAC,KAAc;QACrC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,oBAAoB,CAC1D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB;aACpD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QAE/D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,oBAAoB,CAC1D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,wBAAwB;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC/D,CAAC;IAED,sBAAsB,CAAC,KAAc;QACnC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,oBAAoB,CAC3D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,wBAAwB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,0BAA0B;aAClD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,
|
|
1
|
+
{"version":3,"file":"sensor-handler.js","sourceRoot":"","sources":["../../src/handlers/sensor-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,wDAAwD;AACxD,MAAM,OAAO,aAAa;IAEL,QAAQ;IACR,cAAc;IACd,GAAG;IAHtB,YACmB,QAAyB,EACzB,cAAyC,EACzC,GAAY;wBAFZ,QAAQ;8BACR,cAAc;mBACd,GAAG;IACnB,CAAC;IAEJ,8EAA8E;IAE9E,wBAAwB,CAAC,KAAc;QACrC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,oBAAoB,CAC1D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,uBAAuB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB;aACpD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;QAE/D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,oBAAoB,CAC1D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,wBAAwB;QACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC/D,CAAC;IAED,sBAAsB,CAAC,KAAc;QACnC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,oBAAoB,CAC3D,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,wBAAwB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,0BAA0B;aAClD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,sBAAsB;QACpB,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,oBAAoB,CAClE,IAAI,CAAC,cAAc,CAAC,cAAc,EAClC,IAAI,CACL,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAEtE,aAAa,CAAC,OAAgB;QACpC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -7,7 +7,6 @@ import type { SystemState } from '../interfaces/system-state-interface.js';
|
|
|
7
7
|
import type { SecuritySystemOptions } from '../interfaces/options-interface.js';
|
|
8
8
|
import type { EventBusService } from '../services/event-bus-service.js';
|
|
9
9
|
import type { StorageService } from '../services/storage-service.js';
|
|
10
|
-
import type { AudioService } from '../services/audio-service.js';
|
|
11
10
|
import type { SensorHandler } from './sensor-handler.js';
|
|
12
11
|
import type { TimerManager } from '../timers/timer-manager.js';
|
|
13
12
|
import type { ServiceResult } from '../types/service-result-type.js';
|
|
@@ -24,10 +23,9 @@ export declare class StateHandler {
|
|
|
24
23
|
private readonly log;
|
|
25
24
|
private readonly bus;
|
|
26
25
|
private readonly storageService;
|
|
27
|
-
private readonly audio;
|
|
28
26
|
private readonly timers;
|
|
29
27
|
private readonly sensorHandler;
|
|
30
|
-
constructor(services: ServiceRegistry, state: SystemState, options: SecuritySystemOptions, Characteristic: CharacteristicConstructor, log: Logging, bus: EventBusService, storageService: StorageService,
|
|
28
|
+
constructor(services: ServiceRegistry, state: SystemState, options: SecuritySystemOptions, Characteristic: CharacteristicConstructor, log: Logging, bus: EventBusService, storageService: StorageService, timers: TimerManager, sensorHandler: SensorHandler);
|
|
31
29
|
setCurrentState(state: SecurityState, origin: OriginType): void;
|
|
32
30
|
updateTargetState(state: SecurityState, origin: OriginType, delay: number): ServiceResult;
|
|
33
31
|
getArmingSeconds(targetState: SecurityState): number;
|
|
@@ -46,7 +44,6 @@ export declare class StateHandler {
|
|
|
46
44
|
private handleTargetStateChange;
|
|
47
45
|
private handleCurrentStateChange;
|
|
48
46
|
private handleTriggeredState;
|
|
49
|
-
private startTriggeredMotionSensor;
|
|
50
47
|
private handleArmingState;
|
|
51
48
|
private resetViaOffMode;
|
|
52
49
|
}
|
|
@@ -17,10 +17,9 @@ export class StateHandler {
|
|
|
17
17
|
log;
|
|
18
18
|
bus;
|
|
19
19
|
storageService;
|
|
20
|
-
audio;
|
|
21
20
|
timers;
|
|
22
21
|
sensorHandler;
|
|
23
|
-
constructor(services, state, options, Characteristic, log, bus, storageService,
|
|
22
|
+
constructor(services, state, options, Characteristic, log, bus, storageService, timers, sensorHandler) {
|
|
24
23
|
this.services = services;
|
|
25
24
|
this.state = state;
|
|
26
25
|
this.options = options;
|
|
@@ -28,14 +27,12 @@ export class StateHandler {
|
|
|
28
27
|
this.log = log;
|
|
29
28
|
this.bus = bus;
|
|
30
29
|
this.storageService = storageService;
|
|
31
|
-
this.audio = audio;
|
|
32
30
|
this.timers = timers;
|
|
33
31
|
this.sensorHandler = sensorHandler;
|
|
34
32
|
}
|
|
35
33
|
// ── Public API ─────────────────────────────────────────────────────────────
|
|
36
34
|
setCurrentState(state, origin) {
|
|
37
35
|
this.sensorHandler.resetArmingMotionSensor();
|
|
38
|
-
this.audio.play('current', state);
|
|
39
36
|
if (this.state.currentState === state) {
|
|
40
37
|
this.log.warn('Current mode (Already set)');
|
|
41
38
|
return;
|
|
@@ -149,7 +146,6 @@ export class StateHandler {
|
|
|
149
146
|
// Notify handlers to reset their displayed state (bus is synchronous).
|
|
150
147
|
this.bus.emit(EventType.RESET_TRIP_SWITCHES, {});
|
|
151
148
|
this.sensorHandler.resetTrippedMotionSensor();
|
|
152
|
-
this.sensorHandler.resetTriggeredMotionSensor();
|
|
153
149
|
this.bus.emit(EventType.RESET_MODE_SWITCHES, {});
|
|
154
150
|
this.bus.emit(EventType.UPDATE_MODE_SWITCHES, {});
|
|
155
151
|
this.bus.emit(EventType.TARGET_CHANGED, { state: this.state.targetState, origin });
|
|
@@ -177,7 +173,6 @@ export class StateHandler {
|
|
|
177
173
|
handleTriggeredState() {
|
|
178
174
|
this.timers.clearTrippedInterval();
|
|
179
175
|
this.sensorHandler.resetTrippedMotionSensor();
|
|
180
|
-
this.startTriggeredMotionSensor();
|
|
181
176
|
this.timers.setResetTimer(this.options.resetMinutes * 60 * 1000, () => {
|
|
182
177
|
this.log.info('Reset (Finished)');
|
|
183
178
|
this.sensorHandler.pulseResetMotionSensor();
|
|
@@ -189,15 +184,6 @@ export class StateHandler {
|
|
|
189
184
|
}
|
|
190
185
|
});
|
|
191
186
|
}
|
|
192
|
-
startTriggeredMotionSensor() {
|
|
193
|
-
const seconds = this.options.triggeredMotionSensorSeconds;
|
|
194
|
-
if (seconds === 0) {
|
|
195
|
-
this.sensorHandler.setTriggeredMotionSensor(true);
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
this.timers.setTriggeredInterval(seconds * 1000, () => this.sensorHandler.pulseTriggeredMotionSensor());
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
187
|
handleArmingState() {
|
|
202
188
|
this.sensorHandler.updateArmingMotionSensor(true);
|
|
203
189
|
this.bus.emit(EventType.ARMING, { state: this.state.targetState });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-handler.js","sourceRoot":"","sources":["../../src/handlers/state-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"state-handler.js","sourceRoot":"","sources":["../../src/handlers/state-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAEJ,QAAQ;IACR,KAAK;IACL,OAAO;IACP,cAAc;IACd,GAAG;IACH,GAAG;IACH,cAAc;IACd,MAAM;IACN,aAAa;IAThC,YACmB,QAAyB,EACzB,KAAkB,EAClB,OAA8B,EAC9B,cAAyC,EACzC,GAAY,EACZ,GAAoB,EACpB,cAA8B,EAC9B,MAAoB,EACpB,aAA4B;wBAR5B,QAAQ;qBACR,KAAK;uBACL,OAAO;8BACP,cAAc;mBACd,GAAG;mBACH,GAAG;8BACH,cAAc;sBACd,MAAM;6BACN,aAAa;IAC7B,CAAC;IAEJ,8EAA8E;IAE9E,eAAe,CAAC,KAAoB,EAAE,MAAkB;QACtD,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CACzC,IAAI,CAAC,cAAc,CAAC,0BAA0B,EAC9C,KAAK,CACN,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB,CAAC,KAAoB,EAAE,MAAkB,EAAE,KAAa;QACvE,oEAAoE;QACpE,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;YAC5F,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE9B,IAAI,MAAM,KAAK,UAAU,CAAC,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YACrE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAC5C,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAC7C,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,WAA0B;QACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,WAAW;QACT,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,qFAAqF;IACrF,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAC3E,cAAc,CAAC,WAA0B;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAqD;YAChE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,6BAA6B;YACnD,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,6BAA6B;YACnD,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,8BAA8B;SACtD,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,MAAM;YACX,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAED,wBAAwB;QACtB,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAA6B;QACjD,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,KAAsB,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IACK,uBAAuB,CAAC,KAAoB;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAAC,SAAS,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;QAEpD,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,4BAA4B,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,OAAO,yBAAyB,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACjF,IAAI,KAAK,KAAK,aAAa,CAAC,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,4CAA4C,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,uBAAuB,CAAC,MAAkB;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,uEAAuE;QACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnF,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEO,wBAAwB,CAAC,MAAkB;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,2EAA2E;YAC3E,sDAAsD;YACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;YACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;YAE5C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,eAAe;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAElE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;CACF"}
|
|
@@ -6,7 +6,6 @@ import type { ServiceRegistry } from '../interfaces/service-registry-interface.j
|
|
|
6
6
|
import type { SystemState } from '../interfaces/system-state-interface.js';
|
|
7
7
|
import type { SecuritySystemOptions } from '../interfaces/options-interface.js';
|
|
8
8
|
import type { EventBusService } from '../services/event-bus-service.js';
|
|
9
|
-
import type { AudioService } from '../services/audio-service.js';
|
|
10
9
|
import type { SensorHandler } from './sensor-handler.js';
|
|
11
10
|
import type { TimerManager } from '../timers/timer-manager.js';
|
|
12
11
|
import type { ServiceResult } from '../types/service-result-type.js';
|
|
@@ -22,11 +21,10 @@ export declare class TripHandler {
|
|
|
22
21
|
private readonly Characteristic;
|
|
23
22
|
private readonly log;
|
|
24
23
|
private readonly bus;
|
|
25
|
-
private readonly audio;
|
|
26
24
|
private readonly sensorHandler;
|
|
27
25
|
private readonly timers;
|
|
28
26
|
private readonly conditions;
|
|
29
|
-
constructor(services: ServiceRegistry, state: SystemState, options: SecuritySystemOptions, Characteristic: CharacteristicConstructor, log: Logging, bus: EventBusService,
|
|
27
|
+
constructor(services: ServiceRegistry, state: SystemState, options: SecuritySystemOptions, Characteristic: CharacteristicConstructor, log: Logging, bus: EventBusService, sensorHandler: SensorHandler, timers: TimerManager);
|
|
30
28
|
/**
|
|
31
29
|
* Evaluates all blocking conditions for a trip action without side effects.
|
|
32
30
|
* Returns a failed result with the condition's reason if any condition blocks the action.
|
|
@@ -18,18 +18,16 @@ export class TripHandler {
|
|
|
18
18
|
Characteristic;
|
|
19
19
|
log;
|
|
20
20
|
bus;
|
|
21
|
-
audio;
|
|
22
21
|
sensorHandler;
|
|
23
22
|
timers;
|
|
24
23
|
conditions;
|
|
25
|
-
constructor(services, state, options, Characteristic, log, bus,
|
|
24
|
+
constructor(services, state, options, Characteristic, log, bus, sensorHandler, timers) {
|
|
26
25
|
this.services = services;
|
|
27
26
|
this.state = state;
|
|
28
27
|
this.options = options;
|
|
29
28
|
this.Characteristic = Characteristic;
|
|
30
29
|
this.log = log;
|
|
31
30
|
this.bus = bus;
|
|
32
|
-
this.audio = audio;
|
|
33
31
|
this.sensorHandler = sensorHandler;
|
|
34
32
|
this.timers = timers;
|
|
35
33
|
const doubleKnock = new DoubleKnockCondition((seconds, onExpire) => {
|
|
@@ -166,7 +164,6 @@ export class TripHandler {
|
|
|
166
164
|
cancelTrip(origin, stateChanged) {
|
|
167
165
|
this.log.info('Security System (Cancelled)');
|
|
168
166
|
this.state.isTripping = false;
|
|
169
|
-
this.audio.stop();
|
|
170
167
|
this.bus.emit(EventType.TRIP_CANCELLED, { origin, stateChanged });
|
|
171
168
|
if (this.options.trippedMotionSensor) {
|
|
172
169
|
this.sensorHandler.resetTrippedMotionSensor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trip-handler.js","sourceRoot":"","sources":["../../src/handlers/trip-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"trip-handler.js","sourceRoot":"","sources":["../../src/handlers/trip-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,14 +138,10 @@ export class HomeKitRegistrar {
|
|
|
138
138
|
.onGet(async () => Boolean(svc.getCharacteristic(Char.On).value))
|
|
139
139
|
.onSet(async (v) => this.log.info(`Arming lock [${mode}] (${v ? 'On' : 'Off'})`));
|
|
140
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
141
|
// Motion sensors (read-only).
|
|
146
142
|
const sensorKeys = [
|
|
147
143
|
'armingMotionSensorService', 'trippedMotionSensorService',
|
|
148
|
-
'
|
|
144
|
+
'triggeredResetMotionSensorService',
|
|
149
145
|
];
|
|
150
146
|
for (const key of sensorKeys) {
|
|
151
147
|
s[key].getCharacteristic(Char.MotionDetected)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homekit-registrar.js","sourceRoot":"","sources":["../../src/homekit/homekit-registrar.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"homekit-registrar.js","sourceRoot":"","sources":["../../src/homekit/homekit-registrar.ts"],"names":[],"mappings":"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"}
|