homebridge-easy-mqtt 1.4.0-beta.2 → 1.4.0-beta.21
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/CHANGELOG.md +21 -3
- package/README.md +271 -24
- package/config.schema.json +2309 -342
- package/dist/accessory/abstract/base.js +5 -5
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/common.d.ts +42 -0
- package/dist/accessory/abstract/common.js +169 -0
- package/dist/accessory/abstract/common.js.map +1 -0
- package/dist/accessory/abstract/helper.d.ts +1 -0
- package/dist/accessory/abstract/helper.js +25 -0
- package/dist/accessory/abstract/helper.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +15 -26
- package/dist/accessory/abstract/mqtt.js +29 -148
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/addons/addon.d.ts +24 -0
- package/dist/accessory/addons/addon.js +52 -0
- package/dist/accessory/addons/addon.js.map +1 -0
- package/dist/accessory/addons/filter.d.ts +11 -0
- package/dist/accessory/addons/filter.js +37 -0
- package/dist/accessory/addons/filter.js.map +1 -0
- package/dist/accessory/climate/active.d.ts +11 -0
- package/dist/accessory/climate/active.js +44 -0
- package/dist/accessory/climate/active.js.map +1 -0
- package/dist/accessory/climate/fan2.d.ts +20 -0
- package/dist/accessory/climate/fan2.js +122 -0
- package/dist/accessory/climate/fan2.js.map +1 -0
- package/dist/accessory/climate/heaterCooler.d.ts +2 -6
- package/dist/accessory/climate/heaterCooler.js +7 -39
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/purifier.d.ts +19 -0
- package/dist/accessory/climate/purifier.js +114 -0
- package/dist/accessory/climate/purifier.js.map +1 -0
- package/dist/accessory/climate/{climate.d.ts → temperatureControl.d.ts} +4 -3
- package/dist/accessory/climate/temperatureControl.js +35 -0
- package/dist/accessory/climate/temperatureControl.js.map +1 -0
- package/dist/accessory/climate/thermostat.d.ts +2 -2
- package/dist/accessory/climate/thermostat.js +11 -10
- package/dist/accessory/climate/thermostat.js.map +1 -1
- package/dist/accessory/garage.d.ts +17 -0
- package/dist/accessory/garage.js +110 -0
- package/dist/accessory/garage.js.map +1 -0
- package/dist/accessory/lock.d.ts +2 -2
- package/dist/accessory/lock.js +3 -3
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.js +4 -4
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.js +1 -1
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/onoff/outlet.js +1 -1
- package/dist/accessory/onoff/outlet.js.map +1 -1
- package/dist/accessory/position/blind.d.ts +10 -0
- package/dist/accessory/position/blind.js +22 -0
- package/dist/accessory/position/blind.js.map +1 -0
- package/dist/accessory/position/position.d.ts +14 -0
- package/dist/accessory/position/position.js +80 -0
- package/dist/accessory/position/position.js.map +1 -0
- package/dist/accessory/security.js +4 -4
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/air.d.ts +14 -0
- package/dist/accessory/sensor/air.js +96 -0
- package/dist/accessory/sensor/air.js.map +1 -0
- package/dist/accessory/sensor/carbonDioxide.js +3 -3
- package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
- package/dist/accessory/sensor/carbonMonoxide.js +3 -3
- package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
- package/dist/accessory/sensor/contact.js +1 -1
- package/dist/accessory/sensor/contact.js.map +1 -1
- package/dist/accessory/sensor/humidity.js +1 -1
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/leak.js +1 -1
- package/dist/accessory/sensor/leak.js.map +1 -1
- package/dist/accessory/sensor/light.d.ts +9 -0
- package/dist/accessory/sensor/light.js +13 -0
- package/dist/accessory/sensor/light.js.map +1 -0
- package/dist/accessory/sensor/motion.js +1 -1
- package/dist/accessory/sensor/motion.js.map +1 -1
- package/dist/accessory/sensor/occupancy.js +1 -1
- package/dist/accessory/sensor/occupancy.js.map +1 -1
- package/dist/accessory/sensor/sensor.js +4 -4
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/accessory/sensor/smoke.js +1 -1
- package/dist/accessory/sensor/smoke.js.map +1 -1
- package/dist/accessory/sensor/temperature.js +1 -1
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/valve.d.ts +14 -0
- package/dist/accessory/valve.js +71 -0
- package/dist/accessory/valve.js.map +1 -0
- package/dist/homebridge/platform.js +5 -3
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/en.d.ts +203 -0
- package/dist/i18n/en.js +226 -23
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +468 -0
- package/dist/i18n/fr.js +265 -0
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/i18n.d.ts +206 -1
- package/dist/i18n/i18n.js +12 -0
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/i18n/ro.d.ts +889 -0
- package/dist/i18n/ro.js +381 -0
- package/dist/i18n/ro.js.map +1 -0
- package/dist/i18n/template.d.ts +205 -2
- package/dist/i18n/template.js +3 -3
- package/dist/i18n/template.js.map +1 -1
- package/dist/i18n/vi.d.ts +1034 -0
- package/dist/i18n/vi.js +526 -0
- package/dist/i18n/vi.js.map +1 -0
- package/dist/model/enums.d.ts +49 -5
- package/dist/model/enums.js +50 -5
- package/dist/model/enums.js.map +1 -1
- package/dist/model/mqtt.d.ts +5 -4
- package/dist/model/mqtt.js +41 -25
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +141 -24
- package/dist/tools/properties.d.ts +11 -0
- package/dist/tools/properties.js +73 -0
- package/dist/tools/properties.js.map +1 -0
- package/dist/tools/temperature.d.ts +7 -3
- package/dist/tools/temperature.js +20 -9
- package/dist/tools/temperature.js.map +1 -1
- package/package.json +1 -1
- package/dist/accessory/climate/climate.js +0 -31
- package/dist/accessory/climate/climate.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { BaseAccessory } from '../abstract/base.js';
|
|
3
|
+
import { CharacteristicType, PositionConfig, ServiceType } from '../../model/types.js';
|
|
4
|
+
import { Log } from '../../tools/log.js';
|
|
5
|
+
export declare abstract class PositionAccessory<C extends PositionConfig = PositionConfig> extends BaseAccessory<C> {
|
|
6
|
+
private readonly STATE_MAP;
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
8
|
+
private onSetTargetPosition;
|
|
9
|
+
private onSetHoldPosition;
|
|
10
|
+
private onPositionStateUpdate;
|
|
11
|
+
private onObstructionUpdate;
|
|
12
|
+
private toCVState;
|
|
13
|
+
private stateStringForCV;
|
|
14
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BaseAccessory } from '../abstract/base.js';
|
|
2
|
+
import { strings } from '../../i18n/i18n.js';
|
|
3
|
+
import { CharacteristicKey } from '../../model/enums.js';
|
|
4
|
+
import { LogType } from '../../tools/log.js';
|
|
5
|
+
export class PositionAccessory extends BaseAccessory {
|
|
6
|
+
STATE_MAP;
|
|
7
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
8
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
9
|
+
this.setup(CharacteristicKey.CurrentPosition, 0, 'topicGetCurrentPosition', this.bindOnUpdateNumeric(CharacteristicKey.CurrentPosition, strings.position.current), true);
|
|
10
|
+
this.setup(CharacteristicKey.TargetPosition, 0, 'topicGetTargetPosition', this.bindOnUpdateNumeric(CharacteristicKey.TargetPosition, strings.position.target), true, 'topicSetTargetPosition', this.onSetTargetPosition.bind(this));
|
|
11
|
+
this.STATE_MAP = new Map([
|
|
12
|
+
['valuePositionDecreasing', Characteristic.PositionState.DECREASING],
|
|
13
|
+
['valuePositionIncreasing', Characteristic.PositionState.INCREASING],
|
|
14
|
+
['valuePositionStopped', Characteristic.PositionState.STOPPED],
|
|
15
|
+
]);
|
|
16
|
+
const validStates = Array.from(this.STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
17
|
+
if (validStates.length === 0) {
|
|
18
|
+
this.log.error(strings.position.noPositionValues, this.name);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.setup(CharacteristicKey.PositionState, Characteristic.PositionState.STOPPED, 'topicGetPositionState', this.onPositionStateUpdate.bind(this), true)?.setProps({ validValues: validStates.map((key) => this.STATE_MAP.get(key)) });
|
|
22
|
+
this.setupSet(CharacteristicKey.HoldPosition, 'topicSetHoldPosition', this.onSetHoldPosition.bind(this));
|
|
23
|
+
this.setup(CharacteristicKey.ObstructionDetected, false, 'topicGetObstructionDetected', this.onObstructionUpdate.bind(this), false);
|
|
24
|
+
}
|
|
25
|
+
async onSetTargetPosition(value) {
|
|
26
|
+
const logString = strings.position.targetSet.replace('%d', value.toString());
|
|
27
|
+
this.onSet(CharacteristicKey.TargetPosition, value, value, 'topicSetTargetPosition', logString);
|
|
28
|
+
}
|
|
29
|
+
async onSetHoldPosition(value) {
|
|
30
|
+
if (!this.assert('valuePositionHold', 'valuePositionResume')) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const publish = value ? this.config.valuePositionHold : this.config.valuePositionResume;
|
|
34
|
+
const logString = value ? strings.position.hold : strings.position.resume;
|
|
35
|
+
this.onSet(CharacteristicKey.HoldPosition, value, publish, 'topicSetHoldPosition', logString);
|
|
36
|
+
}
|
|
37
|
+
async onPositionStateUpdate(topic, value) {
|
|
38
|
+
const current = this.toCVState(value);
|
|
39
|
+
if (current === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.onUpdate(CharacteristicKey.PositionState, current, this.stateStringForCV(current));
|
|
43
|
+
}
|
|
44
|
+
async onObstructionUpdate(topic, value) {
|
|
45
|
+
const obstructed = value === this.getPrimitiveValue('valuePositionObstructed');
|
|
46
|
+
if (!this.onUpdate(CharacteristicKey.ObstructionDetected, obstructed)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (obstructed) {
|
|
50
|
+
this.logIfDesired(LogType.ERROR, strings.position.obstructed);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.logIfDesired(strings.position.unobstructed);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
toCVState(value) {
|
|
57
|
+
switch (value) {
|
|
58
|
+
case this.getPrimitiveValue('valuePositionDecreasing', false):
|
|
59
|
+
return this.STATE_MAP.get('valuePositionDecreasing');
|
|
60
|
+
case this.getPrimitiveValue('valuePositionIncreasing', false):
|
|
61
|
+
return this.STATE_MAP.get('valuePositionIncreasing');
|
|
62
|
+
case this.getPrimitiveValue('valuePositionStopped', false):
|
|
63
|
+
return this.STATE_MAP.get('valuePositionStopped');
|
|
64
|
+
}
|
|
65
|
+
this.logIfDesired(strings.position.unknownValue, `'${value}'`);
|
|
66
|
+
}
|
|
67
|
+
stateStringForCV(state) {
|
|
68
|
+
switch (state) {
|
|
69
|
+
case this.Characteristic.PositionState.DECREASING:
|
|
70
|
+
return strings.position.stateDecreasing;
|
|
71
|
+
case this.Characteristic.PositionState.INCREASING:
|
|
72
|
+
return strings.position.stateIncreasing;
|
|
73
|
+
case this.Characteristic.PositionState.STOPPED:
|
|
74
|
+
return strings.position.stateStopped;
|
|
75
|
+
default:
|
|
76
|
+
return strings.position.stateUnknown;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/accessory/position/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,11 @@ export class SecuritySystemAccessory extends BaseAccessory {
|
|
|
18
18
|
this.log.error(strings.security.noStateValues, this.name);
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
this.
|
|
21
|
+
this.setup(CharacteristicKey.SecuritySystemCurrentState, Characteristic.SecuritySystemCurrentState.DISARMED, 'topicGetCurrentSecurityState', this.onCurrentStateUpdate.bind(this), true)?.setProps({ validValues: validCurrentStates.map((key) => this.STATE_MAP.get(key)) });
|
|
22
22
|
const validTargetStates = validCurrentStates.filter((key) => key !== 'valueAlarmTriggered');
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
23
|
+
this.setup(CharacteristicKey.SecuritySystemTargetState, Characteristic.SecuritySystemTargetState.DISARM, 'topicGetTargetSecurityState', this.onTargetStateUpdate.bind(this), true, 'topicSetTargetSecurityState', this.onSetTargetState.bind(this))?.setProps({ validValues: validTargetStates.map((key) => this.STATE_MAP.get(key)) });
|
|
24
|
+
this.setup(CharacteristicKey.StatusTampered, Characteristic.StatusTampered.NOT_TAMPERED, 'topicGetStatusTampered', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusTampered, 'valueTampered', strings.error.isTampered, strings.error.notTampered), false);
|
|
25
|
+
this.setup(CharacteristicKey.StatusFault, Characteristic.StatusFault.NO_FAULT, 'topicGetStatusFault', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusFault, 'valueFault', strings.error.hasFault, strings.error.noFault), false);
|
|
26
26
|
}
|
|
27
27
|
getAccessoryType() {
|
|
28
28
|
return AccessoryType.SecuritySystem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/accessory/security.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAO,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,OAAO,uBAAwB,SAAQ,aAA6B;IAEvD,SAAS,CAAoC;IAE9D,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAsB,EAAE,GAAQ,EAAE,SAAkB;QACtJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;YACvB,CAAC,cAAc,EAAE,cAAc,CAAC,0BAA0B,CAAC,QAAQ,CAAC;YACpE,CAAC,cAAc,EAAE,cAAc,CAAC,0BAA0B,CAAC,QAAQ,CAAC;YACpE,CAAC,eAAe,EAAE,cAAc,CAAC,0BAA0B,CAAC,SAAS,CAAC;YACtE,CAAC,aAAa,EAAE,cAAc,CAAC,0BAA0B,CAAC,QAAQ,CAAC;YACnE,CAAC,qBAAqB,EAAE,cAAc,CAAC,0BAA0B,CAAC,eAAe,CAAC;SACnF,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QACzH,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/accessory/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { SensorAccessory } from './sensor.js';
|
|
3
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
+
import { CharacteristicType, AirSensorConfig, ServiceType } from '../../model/types.js';
|
|
5
|
+
import { Log } from '../../tools/log.js';
|
|
6
|
+
export declare class AirSensorAccessory extends SensorAccessory<AirSensorConfig> {
|
|
7
|
+
private readonly STATE_MAP;
|
|
8
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: AirSensorConfig, log: Log, isGrouped: boolean);
|
|
9
|
+
protected getAccessoryType(): AccessoryType;
|
|
10
|
+
private onAirQualityUpdate;
|
|
11
|
+
private toCVState;
|
|
12
|
+
private qualityStringForCV;
|
|
13
|
+
private logTemplateForDensityKey;
|
|
14
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { SensorAccessory } from './sensor.js';
|
|
2
|
+
import { strings } from '../../i18n/i18n.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
4
|
+
const MAX_DENSITY = 5000;
|
|
5
|
+
export class AirSensorAccessory extends SensorAccessory {
|
|
6
|
+
STATE_MAP;
|
|
7
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
8
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
9
|
+
this.STATE_MAP = new Map([
|
|
10
|
+
['valueAQUnknown', Characteristic.AirQuality.UNKNOWN],
|
|
11
|
+
['valueAQExcellent', Characteristic.AirQuality.EXCELLENT],
|
|
12
|
+
['valueAQGood', Characteristic.AirQuality.GOOD],
|
|
13
|
+
['valueAQFair', Characteristic.AirQuality.FAIR],
|
|
14
|
+
['valueAQInferior', Characteristic.AirQuality.INFERIOR],
|
|
15
|
+
['valueAQPoor', Characteristic.AirQuality.POOR],
|
|
16
|
+
]);
|
|
17
|
+
const validStates = Array.from(this.STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
18
|
+
if (validStates.length === 0 || (validStates.length === 1 && validStates[0] === 'valueAQUnknown')) {
|
|
19
|
+
this.log.error(strings.sensor.air.noStateValues, this.name);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this.setup(CharacteristicKey.AirQuality, Characteristic.AirQuality.UNKNOWN, 'topicGetAirQuality', this.onAirQualityUpdate.bind(this), true)?.setProps({ validValues: validStates.map((key) => this.STATE_MAP.get(key)) });
|
|
23
|
+
const densityMap = new Map([
|
|
24
|
+
['topicGetNitrogenDioxideDensity', CharacteristicKey.NitrogenDioxideDensity],
|
|
25
|
+
['topicGetOzoneDensity', CharacteristicKey.OzoneDensity],
|
|
26
|
+
['topicGetPM10Density', CharacteristicKey.PM10Density],
|
|
27
|
+
['topicGetPM2_5Density', CharacteristicKey.PM2_5Density],
|
|
28
|
+
['topicGetSulphurDioxideDensity', CharacteristicKey.SulphurDioxideDensity],
|
|
29
|
+
['topicGetVOCDensity', CharacteristicKey.VOCDensity],
|
|
30
|
+
]);
|
|
31
|
+
densityMap.forEach((key, topic) => {
|
|
32
|
+
this.setup(key, 0, topic, this.bindOnUpdateNumeric(key, this.logTemplateForDensityKey(key)), false)
|
|
33
|
+
?.setProps({ maxValue: MAX_DENSITY });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
getAccessoryType() {
|
|
37
|
+
return AccessoryType.AirQualitySensor;
|
|
38
|
+
}
|
|
39
|
+
async onAirQualityUpdate(topic, value) {
|
|
40
|
+
const current = this.toCVState(value);
|
|
41
|
+
this.onUpdate(CharacteristicKey.AirQuality, current, this.qualityStringForCV(current));
|
|
42
|
+
}
|
|
43
|
+
toCVState(value) {
|
|
44
|
+
switch (value) {
|
|
45
|
+
case this.getPrimitiveValue('valueAQUnknown', false):
|
|
46
|
+
return this.STATE_MAP.get('valueAQUnknown');
|
|
47
|
+
case this.getPrimitiveValue('valueAQExcellent', false):
|
|
48
|
+
return this.STATE_MAP.get('valueAQExcellent');
|
|
49
|
+
case this.getPrimitiveValue('valueAQGood', false):
|
|
50
|
+
return this.STATE_MAP.get('valueAQGood');
|
|
51
|
+
case this.getPrimitiveValue('valueAQFair', false):
|
|
52
|
+
return this.STATE_MAP.get('valueAQFair');
|
|
53
|
+
case this.getPrimitiveValue('valueAQInferior', false):
|
|
54
|
+
return this.STATE_MAP.get('valueAQInferior');
|
|
55
|
+
case this.getPrimitiveValue('valueAQPoor', false):
|
|
56
|
+
return this.STATE_MAP.get('valueAQPoor');
|
|
57
|
+
}
|
|
58
|
+
this.logIfDesired(strings.sensor.air.unknownValue, `'${value}'`);
|
|
59
|
+
return this.STATE_MAP.get('valueAQUnknown');
|
|
60
|
+
}
|
|
61
|
+
qualityStringForCV(state) {
|
|
62
|
+
switch (state) {
|
|
63
|
+
case this.Characteristic.AirQuality.EXCELLENT:
|
|
64
|
+
return strings.sensor.air.qualityExcellent;
|
|
65
|
+
case this.Characteristic.AirQuality.GOOD:
|
|
66
|
+
return strings.sensor.air.qualityGood;
|
|
67
|
+
case this.Characteristic.AirQuality.FAIR:
|
|
68
|
+
return strings.sensor.air.qualityFair;
|
|
69
|
+
case this.Characteristic.AirQuality.INFERIOR:
|
|
70
|
+
return strings.sensor.air.qualityInferior;
|
|
71
|
+
case this.Characteristic.AirQuality.POOR:
|
|
72
|
+
return strings.sensor.air.qualityPoor;
|
|
73
|
+
case this.Characteristic.AirQuality.UNKNOWN:
|
|
74
|
+
default:
|
|
75
|
+
return strings.sensor.air.qualityUnknown;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
logTemplateForDensityKey(key) {
|
|
79
|
+
switch (key) {
|
|
80
|
+
case CharacteristicKey.NitrogenDioxideDensity:
|
|
81
|
+
return strings.sensor.air.densityNitrogen;
|
|
82
|
+
case CharacteristicKey.OzoneDensity:
|
|
83
|
+
return strings.sensor.air.densityOzone;
|
|
84
|
+
case CharacteristicKey.PM10Density:
|
|
85
|
+
return strings.sensor.air.densityPM10;
|
|
86
|
+
case CharacteristicKey.PM2_5Density:
|
|
87
|
+
return strings.sensor.air.densityPM2_5;
|
|
88
|
+
case CharacteristicKey.SulphurDioxideDensity:
|
|
89
|
+
return strings.sensor.air.densitySulphur;
|
|
90
|
+
case CharacteristicKey.VOCDensity:
|
|
91
|
+
return strings.sensor.air.densityVOC;
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Missing log template for density key '${key}'`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=air.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"air.js","sourceRoot":"","sources":["../../../src/accessory/sensor/air.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class CO2SensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.CarbonDioxideDetected, Characteristic.CarbonDioxideDetected.CO2_LEVELS_NORMAL, 'topicGetCarbonDioxideDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.CarbonDioxideDetected, 'valueCarbonDioxideDetected', strings.sensor.carbonDioxide.active, strings.sensor.carbonDioxide.inactive), true);
|
|
8
|
+
this.setup(CharacteristicKey.CarbonDioxideLevel, 0, 'topicGetCarbonDioxideLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonDioxideLevel, strings.sensor.carbonDioxide.level), false);
|
|
9
|
+
this.setup(CharacteristicKey.CarbonDioxidePeakLevel, 0, 'topicGetCarbonDioxidePeakLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonDioxidePeakLevel, strings.sensor.carbonDioxide.peakLevel), false);
|
|
10
10
|
}
|
|
11
11
|
getAccessoryType() {
|
|
12
12
|
return AccessoryType.CarbonDioxideSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carbonDioxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonDioxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,kBAAmB,SAAQ,eAAgC;IAEtE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAuB,EAAE,GAAQ,EAAE,SAAkB;QACvJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"carbonDioxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonDioxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,kBAAmB,SAAQ,eAAgC;IAEtE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAuB,EAAE,GAAQ,EAAE,SAAkB;QACvJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,cAAc,CAAC,qBAAqB,CAAC,iBAAiB,EACxG,+BAA+B,EAC/B,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,qBAAqB,EACvC,4BAA4B,EAC5B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAC7E,IAAI,CAAC,CAAC;QAER,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAChD,4BAA4B,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAE3I,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,EACpD,gCAAgC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACzJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,mBAAmB,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -4,9 +4,9 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class COSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.CarbonMonoxideDetected, Characteristic.CarbonMonoxideDetected.CO_LEVELS_NORMAL, 'topicGetCarbonMonoxideDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.CarbonMonoxideDetected, 'valueCarbonMonoxideDetected', strings.sensor.carbonMonoxide.active, strings.sensor.carbonMonoxide.inactive), true);
|
|
8
|
+
this.setup(CharacteristicKey.CarbonMonoxideLevel, 0, 'topicGetCarbonMonoxideLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonMonoxideLevel, strings.sensor.carbonMonoxide.level), false);
|
|
9
|
+
this.setup(CharacteristicKey.CarbonMonoxidePeakLevel, 0, 'topicGetCarbonMonoxidePeakLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonMonoxidePeakLevel, strings.sensor.carbonMonoxide.peakLevel), false);
|
|
10
10
|
}
|
|
11
11
|
getAccessoryType() {
|
|
12
12
|
return AccessoryType.CarbonMonoxideSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carbonMonoxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonMonoxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,iBAAkB,SAAQ,eAA+B;IAEpE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAsB,EAAE,GAAQ,EAAE,SAAkB;QACtJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"carbonMonoxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonMonoxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,iBAAkB,SAAQ,eAA+B;IAEpE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAsB,EAAE,GAAQ,EAAE,SAAkB;QACtJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,cAAc,CAAC,sBAAsB,CAAC,gBAAgB,EACzG,gCAAgC,EAChC,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,sBAAsB,EACxC,6BAA6B,EAC7B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAC/E,IAAI,CAAC,CAAC;QAER,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,EACjD,6BAA6B,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAE9I,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,EACrD,iCAAiC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5J,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class ContactSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.ContactSensorState, Characteristic.ContactSensorState.CONTACT_NOT_DETECTED, 'topicGetContactSensorState', this.onContactStateUpdate.bind(this), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.ContactSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../src/accessory/sensor/contact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,sBAAuB,SAAQ,eAAoC;IAE9E,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA2B,EAAE,GAAQ,EAAE,SAAkB;QACjJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../src/accessory/sensor/contact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,sBAAuB,SAAQ,eAAoC;IAE9E,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA2B,EAAE,GAAQ,EAAE,SAAkB;QACjJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC,oBAAoB,EACrG,4BAA4B,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,KAAqB;QACrE,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1I,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class HumiditySensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.CurrentRelativeHumidity, 0, 'topicGetCurrentRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.CurrentRelativeHumidity, strings.climate.humidityUpdate), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.HumiditySensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humidity.js","sourceRoot":"","sources":["../../../src/accessory/sensor/humidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,uBAAwB,SAAQ,eAAqC;IAEhF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA4B,EAAE,GAAQ,EAAE,SAAkB;QAClJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"humidity.js","sourceRoot":"","sources":["../../../src/accessory/sensor/humidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,uBAAwB,SAAQ,eAAqC;IAEhF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA4B,EAAE,GAAQ,EAAE,SAAkB;QAClJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,EACrD,iCAAiC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IAClJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,cAAc,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class LeakSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.LeakDetected, Characteristic.LeakDetected.LEAK_NOT_DETECTED, 'topicGetLeakDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.LeakDetected, 'valueLeakDetected', strings.sensor.leak.active, strings.sensor.leak.inactive), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.LeakSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leak.js","sourceRoot":"","sources":["../../../src/accessory/sensor/leak.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,mBAAoB,SAAQ,eAAiC;IAExE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAwB,EAAE,GAAQ,EAAE,SAAkB;QACxJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"leak.js","sourceRoot":"","sources":["../../../src/accessory/sensor/leak.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,mBAAoB,SAAQ,eAAiC;IAExE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAwB,EAAE,GAAQ,EAAE,SAAkB;QACxJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,YAAY,CAAC,iBAAiB,EACtF,sBAAsB,EACtB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1J,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,UAAU,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { SensorAccessory } from './sensor.js';
|
|
3
|
+
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
+
import { CharacteristicType, LightSensorConfig, ServiceType } from '../../model/types.js';
|
|
5
|
+
import { Log } from '../../tools/log.js';
|
|
6
|
+
export declare class LightSensorAccessory extends SensorAccessory<LightSensorConfig> {
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightSensorConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SensorAccessory } from './sensor.js';
|
|
2
|
+
import { strings } from '../../i18n/i18n.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
4
|
+
export class LightSensorAccessory extends SensorAccessory {
|
|
5
|
+
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
+
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
+
this.setup(CharacteristicKey.CurrentAmbientLightLevel, 0.0001, 'topicGetCurrentAmbientLightLevel', this.bindOnUpdateNumeric(CharacteristicKey.CurrentAmbientLightLevel, strings.sensor.light.level), true);
|
|
8
|
+
}
|
|
9
|
+
getAccessoryType() {
|
|
10
|
+
return AccessoryType.LightSensor;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=light.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/accessory/sensor/light.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAE1E,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAyB,EAAE,GAAQ,EAAE,SAAkB;QACzJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CACR,iBAAiB,CAAC,wBAAwB,EAAE,MAAM,EAClD,kCAAkC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACpI,IAAI,CAAC,CAAC;IACV,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class MotionSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.MotionDetected, false, 'topicGetMotionDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.MotionDetected, 'valueMotionDetected', strings.sensor.motion.active, strings.sensor.motion.inactive), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.MotionSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../../src/accessory/sensor/motion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,qBAAsB,SAAQ,eAAmC;IAE5E,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA0B,EAAE,GAAQ,EAAE,SAAkB;QAChJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../../src/accessory/sensor/motion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,qBAAsB,SAAQ,eAAmC;IAE5E,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA0B,EAAE,GAAQ,EAAE,SAAkB;QAChJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAChD,wBAAwB,EACxB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,cAAc,EAAE,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtJ,IAAI,CAAC,CAAC;IACV,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class OccupancySensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.OccupancyDetected, Characteristic.OccupancyDetected.OCCUPANCY_NOT_DETECTED, 'topicGetOccupancyDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.OccupancyDetected, 'valueOccupancyDetected', strings.sensor.occupancy.active, strings.sensor.occupancy.inactive), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.OccupancySensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"occupancy.js","sourceRoot":"","sources":["../../../src/accessory/sensor/occupancy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,wBAAyB,SAAQ,eAAsC;IAElF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA6B,EAAE,GAAQ,EAAE,SAAkB;QACnJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"occupancy.js","sourceRoot":"","sources":["../../../src/accessory/sensor/occupancy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,wBAAyB,SAAQ,eAAsC;IAElF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA6B,EAAE,GAAQ,EAAE,SAAkB;QACnJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB,CAAC,sBAAsB,EACrG,2BAA2B,EAC3B,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,iBAAiB,EACnC,wBAAwB,EACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EACrE,IAAI,CAAC,CAAC;IACV,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,eAAe,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -5,11 +5,11 @@ import { LogType } from '../../tools/log.js';
|
|
|
5
5
|
export class SensorAccessory extends BaseAccessory {
|
|
6
6
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
7
7
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
8
|
+
this.setup(CharacteristicKey.StatusTampered, Characteristic.StatusTampered.NOT_TAMPERED, 'topicGetStatusTampered', this.onTamperedUpdate.bind(this), false);
|
|
9
|
+
this.setup(CharacteristicKey.StatusFault, Characteristic.StatusFault.NO_FAULT, 'topicGetStatusFault', this.onFaultUpdate.bind(this), false);
|
|
10
10
|
}
|
|
11
11
|
async onTamperedUpdate(topic, value) {
|
|
12
|
-
const tampered = value === this.getPrimitiveValue('valueTampered');
|
|
12
|
+
const tampered = value === this.getPrimitiveValue('valueTampered') ? 1 : 0;
|
|
13
13
|
if (!this.onUpdate(CharacteristicKey.StatusTampered, tampered)) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
@@ -21,7 +21,7 @@ export class SensorAccessory extends BaseAccessory {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
async onFaultUpdate(topic, value) {
|
|
24
|
-
const fault = value === this.getPrimitiveValue('valueFault');
|
|
24
|
+
const fault = value === this.getPrimitiveValue('valueFault') ? 1 : 0;
|
|
25
25
|
if (!this.onUpdate(CharacteristicKey.StatusFault, fault)) {
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../../src/accessory/sensor/sensor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAgB,eAAuD,SAAQ,aAAgB;IAEnG,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ,EAAE,SAAkB;QACzI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../../src/accessory/sensor/sensor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAgB,eAAuD,SAAQ,aAAgB;IAEnG,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ,EAAE,SAAkB;QACzI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,YAAY,EACrF,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAErE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,QAAQ,EAC3E,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,KAAqB;QAEjE,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,KAAqB;QAE9D,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class SmokeSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.SmokeDetected, Characteristic.SmokeDetected.SMOKE_NOT_DETECTED, 'topicGetSmokeDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.SmokeDetected, 'valueSmokeDetected', strings.sensor.smoke.active, strings.sensor.smoke.inactive), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.SmokeSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/accessory/sensor/smoke.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAE1E,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAyB,EAAE,GAAQ,EAAE,SAAkB;QACzJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/accessory/sensor/smoke.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAE1E,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAyB,EAAE,GAAQ,EAAE,SAAkB;QACzJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,kBAAkB,EACzF,uBAAuB,EACvB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAClJ,IAAI,CAAC,CAAC;IACV,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class TemperatureSensorAccessory extends SensorAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.
|
|
7
|
+
this.setup(CharacteristicKey.CurrentTemperature, 0, 'topicGetCurrentTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.CurrentTemperature, strings.climate.temperatureUpdate), true);
|
|
8
8
|
}
|
|
9
9
|
getAccessoryType() {
|
|
10
10
|
return AccessoryType.TemperatureSensor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../src/accessory/sensor/temperature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,0BAA2B,SAAQ,eAAwC;IAEtF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA+B,EAAE,GAAQ,EAAE,SAAkB;QACrJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../src/accessory/sensor/temperature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,0BAA2B,SAAQ,eAAwC;IAEtF,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA+B,EAAE,GAAQ,EAAE,SAAkB;QACrJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAAE,4BAA4B,EAC9E,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IACvH,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,iBAAiB,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { BaseAccessory } from './abstract/base.js';
|
|
3
|
+
import { AccessoryType } from '../model/enums.js';
|
|
4
|
+
import { CharacteristicType, ValveConfig, ServiceType } from '../model/types.js';
|
|
5
|
+
import { Log } from '../tools/log.js';
|
|
6
|
+
export declare class ValveAccessory extends BaseAccessory<ValveConfig> {
|
|
7
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: ValveConfig, log: Log, isGrouped: boolean);
|
|
8
|
+
protected getAccessoryType(): AccessoryType;
|
|
9
|
+
private onFaultUpdate;
|
|
10
|
+
private onSetActive;
|
|
11
|
+
private onSetSetDuration;
|
|
12
|
+
private onSetIsConfigured;
|
|
13
|
+
private toValveTypeCV;
|
|
14
|
+
}
|