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.
- package/.github/workflows/bump-version.yml +1 -1
- package/.gitignore +127 -0
- package/AGENTS.md +7 -7
- package/CHANGELOG.md +30 -0
- package/config.schema.json +1 -145
- 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/conditions/already-triggered-condition.d.ts +0 -10
- package/dist/conditions/already-triggered-condition.js +0 -22
- package/dist/conditions/already-triggered-condition.js.map +0 -1
- package/dist/conditions/arming-in-progress-condition.d.ts +0 -10
- package/dist/conditions/arming-in-progress-condition.js +0 -21
- package/dist/conditions/arming-in-progress-condition.js.map +0 -1
- package/dist/conditions/arming-lock-condition.d.ts +0 -13
- package/dist/conditions/arming-lock-condition.js +0 -50
- package/dist/conditions/arming-lock-condition.js.map +0 -1
- package/dist/conditions/condition.d.ts +0 -22
- package/dist/conditions/condition.js +0 -19
- package/dist/conditions/condition.js.map +0 -1
- package/dist/conditions/double-knock-condition.d.ts +0 -24
- package/dist/conditions/double-knock-condition.js +0 -73
- package/dist/conditions/double-knock-condition.js.map +0 -1
- package/dist/conditions/not-armed-condition.d.ts +0 -10
- package/dist/conditions/not-armed-condition.js +0 -26
- package/dist/conditions/not-armed-condition.js.map +0 -1
- package/dist/conditions/trigger-already-running-condition.d.ts +0 -10
- package/dist/conditions/trigger-already-running-condition.js +0 -21
- package/dist/conditions/trigger-already-running-condition.js.map +0 -1
- package/dist/constants/default-constant.d.ts +0 -27
- package/dist/constants/default-constant.js +0 -30
- package/dist/constants/default-constant.js.map +0 -1
- package/dist/constants/homekit-constant.d.ts +0 -4
- package/dist/constants/homekit-constant.js +0 -5
- package/dist/constants/homekit-constant.js.map +0 -1
- package/dist/constants/switch-uuid-constant.d.ts +0 -23
- package/dist/constants/switch-uuid-constant.js +0 -24
- package/dist/constants/switch-uuid-constant.js.map +0 -1
- package/dist/handlers/sensor-handler.d.ts +0 -20
- package/dist/handlers/sensor-handler.js +0 -66
- package/dist/handlers/sensor-handler.js.map +0 -1
- package/dist/handlers/state-handler.d.ts +0 -52
- package/dist/handlers/state-handler.js +0 -213
- package/dist/handlers/state-handler.js.map +0 -1
- package/dist/handlers/switch-handler.d.ts +0 -35
- package/dist/handlers/switch-handler.js +0 -134
- package/dist/handlers/switch-handler.js.map +0 -1
- package/dist/handlers/trip-handler.d.ts +0 -51
- package/dist/handlers/trip-handler.js +0 -198
- package/dist/handlers/trip-handler.js.map +0 -1
- package/dist/homekit/homekit-registrar.d.ts +0 -19
- package/dist/homekit/homekit-registrar.js +0 -156
- package/dist/homekit/homekit-registrar.js.map +0 -1
- package/dist/homekit/service-factory.d.ts +0 -9
- package/dist/homekit/service-factory.js +0 -124
- package/dist/homekit/service-factory.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js.map +0 -1
- package/dist/interfaces/condition-context-interface.d.ts +0 -16
- package/dist/interfaces/condition-context-interface.js +0 -2
- package/dist/interfaces/condition-context-interface.js.map +0 -1
- package/dist/interfaces/hap-types-interface.d.ts +0 -9
- package/dist/interfaces/hap-types-interface.js +0 -2
- package/dist/interfaces/hap-types-interface.js.map +0 -1
- package/dist/interfaces/mqtt-status-payload-interface.d.ts +0 -6
- package/dist/interfaces/mqtt-status-payload-interface.js +0 -2
- package/dist/interfaces/mqtt-status-payload-interface.js.map +0 -1
- package/dist/interfaces/options-interface.d.ts +0 -103
- package/dist/interfaces/options-interface.js +0 -2
- package/dist/interfaces/options-interface.js.map +0 -1
- package/dist/interfaces/persisted-state-interface.d.ts +0 -6
- package/dist/interfaces/persisted-state-interface.js +0 -2
- package/dist/interfaces/persisted-state-interface.js.map +0 -1
- package/dist/interfaces/service-registry-interface.d.ts +0 -33
- package/dist/interfaces/service-registry-interface.js +0 -2
- package/dist/interfaces/service-registry-interface.js.map +0 -1
- package/dist/interfaces/system-state-interface.d.ts +0 -15
- package/dist/interfaces/system-state-interface.js +0 -2
- package/dist/interfaces/system-state-interface.js.map +0 -1
- package/dist/schemas/arming-lock-schema.d.ts +0 -10
- package/dist/schemas/arming-lock-schema.js +0 -12
- package/dist/schemas/arming-lock-schema.js.map +0 -1
- package/dist/schemas/error-schema.d.ts +0 -4
- package/dist/schemas/error-schema.js +0 -7
- package/dist/schemas/error-schema.js.map +0 -1
- package/dist/schemas/mode-request-schema.d.ts +0 -10
- package/dist/schemas/mode-request-schema.js +0 -18
- package/dist/schemas/mode-request-schema.js.map +0 -1
- package/dist/schemas/status-response-schema.d.ts +0 -7
- package/dist/schemas/status-response-schema.js +0 -10
- package/dist/schemas/status-response-schema.js.map +0 -1
- package/dist/schemas/trip-mode-request-schema.d.ts +0 -9
- package/dist/schemas/trip-mode-request-schema.js +0 -24
- package/dist/schemas/trip-mode-request-schema.js.map +0 -1
- package/dist/security-system.d.ts +0 -22
- package/dist/security-system.js +0 -154
- package/dist/security-system.js.map +0 -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/dist/services/command-service.d.ts +0 -16
- package/dist/services/command-service.js +0 -65
- package/dist/services/command-service.js.map +0 -1
- package/dist/services/configuration-service.d.ts +0 -25
- package/dist/services/configuration-service.js +0 -218
- package/dist/services/configuration-service.js.map +0 -1
- package/dist/services/event-bus-service.d.ts +0 -12
- package/dist/services/event-bus-service.js +0 -17
- package/dist/services/event-bus-service.js.map +0 -1
- package/dist/services/mqtt-service.d.ts +0 -16
- package/dist/services/mqtt-service.js +0 -97
- package/dist/services/mqtt-service.js.map +0 -1
- package/dist/services/server-service.d.ts +0 -28
- package/dist/services/server-service.js +0 -275
- package/dist/services/server-service.js.map +0 -1
- package/dist/services/storage-service.d.ts +0 -14
- package/dist/services/storage-service.js +0 -70
- package/dist/services/storage-service.js.map +0 -1
- package/dist/services/webhook-service.d.ts +0 -16
- package/dist/services/webhook-service.js +0 -68
- package/dist/services/webhook-service.js.map +0 -1
- package/dist/tests/conditions.test.d.ts +0 -1
- package/dist/tests/conditions.test.js +0 -148
- package/dist/tests/conditions.test.js.map +0 -1
- package/dist/tests/mqtt-service.test.d.ts +0 -1
- package/dist/tests/mqtt-service.test.js +0 -167
- package/dist/tests/mqtt-service.test.js.map +0 -1
- package/dist/tests/server-service.test.d.ts +0 -1
- package/dist/tests/server-service.test.js +0 -187
- package/dist/tests/server-service.test.js.map +0 -1
- package/dist/tests/state-handler.test.d.ts +0 -1
- package/dist/tests/state-handler.test.js +0 -273
- package/dist/tests/state-handler.test.js.map +0 -1
- package/dist/tests/switch-handler.test.d.ts +0 -1
- package/dist/tests/switch-handler.test.js +0 -267
- package/dist/tests/switch-handler.test.js.map +0 -1
- package/dist/tests/trip-handler.test.d.ts +0 -1
- package/dist/tests/trip-handler.test.js +0 -289
- package/dist/tests/trip-handler.test.js.map +0 -1
- package/dist/timers/timer-manager.d.ts +0 -34
- package/dist/timers/timer-manager.js +0 -132
- package/dist/timers/timer-manager.js.map +0 -1
- package/dist/types/event-payload-map-type.d.ts +0 -14
- package/dist/types/event-payload-map-type.js +0 -2
- package/dist/types/event-payload-map-type.js.map +0 -1
- package/dist/types/event-type.d.ts +0 -38
- package/dist/types/event-type.js +0 -17
- package/dist/types/event-type.js.map +0 -1
- package/dist/types/mode-type.d.ts +0 -4
- package/dist/types/mode-type.js +0 -2
- package/dist/types/mode-type.js.map +0 -1
- package/dist/types/origin-type.d.ts +0 -9
- package/dist/types/origin-type.js +0 -11
- package/dist/types/origin-type.js.map +0 -1
- package/dist/types/security-state-type.d.ts +0 -11
- package/dist/types/security-state-type.js +0 -13
- package/dist/types/security-state-type.js.map +0 -1
- package/dist/types/service-result-type.d.ts +0 -4
- package/dist/types/service-result-type.js +0 -2
- package/dist/types/service-result-type.js.map +0 -1
- package/dist/utils/arming-util.d.ts +0 -19
- package/dist/utils/arming-util.js +0 -24
- package/dist/utils/arming-util.js.map +0 -1
- package/dist/utils/state-util.d.ts +0 -8
- package/dist/utils/state-util.js +0 -29
- package/dist/utils/state-util.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
|
@@ -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":"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"}
|
package/dist/index.d.ts
DELETED
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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hap-types-interface.js","sourceRoot":"","sources":["../../src/interfaces/hap-types-interface.ts"],"names":[],"mappings":""}
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options-interface.js","sourceRoot":"","sources":["../../src/interfaces/options-interface.ts"],"names":[],"mappings":""}
|
|
@@ -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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-state-interface.js","sourceRoot":"","sources":["../../src/interfaces/system-state-interface.ts"],"names":[],"mappings":""}
|