homebridge-easy-mqtt 1.4.1-beta.1 → 1.5.0-beta.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/CHANGELOG.md +8 -1
- package/README.md +84 -5
- package/config.schema.json +76 -1
- package/dist/accessory/abstract/base.d.ts +2 -2
- package/dist/accessory/abstract/base.js +5 -25
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/common.d.ts +17 -6
- package/dist/accessory/abstract/common.js +136 -28
- package/dist/accessory/abstract/common.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +2 -0
- package/dist/accessory/abstract/mqtt.js +13 -12
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/addons/filter.d.ts +0 -1
- package/dist/accessory/addons/filter.js +1 -13
- package/dist/accessory/addons/filter.js.map +1 -1
- package/dist/accessory/characteristic/characteristic.d.ts +3 -0
- package/dist/accessory/characteristic/characteristic.js +23 -0
- package/dist/accessory/characteristic/characteristic.js.map +1 -0
- package/dist/accessory/characteristic/custom.d.ts +1 -0
- package/dist/accessory/characteristic/custom.js +3 -0
- package/dist/accessory/characteristic/custom.js.map +1 -1
- package/dist/accessory/characteristic/eve.d.ts +6 -0
- package/dist/accessory/characteristic/eve.js +24 -0
- package/dist/accessory/characteristic/eve.js.map +1 -0
- package/dist/accessory/climate/active.d.ts +0 -4
- package/dist/accessory/climate/active.js +4 -36
- package/dist/accessory/climate/active.js.map +1 -1
- package/dist/accessory/climate/fan2.d.ts +1 -12
- package/dist/accessory/climate/fan2.js +22 -101
- package/dist/accessory/climate/fan2.js.map +1 -1
- package/dist/accessory/climate/heaterCooler.d.ts +1 -11
- package/dist/accessory/climate/heaterCooler.js +24 -100
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/purifier.d.ts +1 -11
- package/dist/accessory/climate/purifier.js +20 -90
- package/dist/accessory/climate/purifier.js.map +1 -1
- package/dist/accessory/climate/temperatureControl.d.ts +2 -1
- package/dist/accessory/climate/temperatureControl.js +3 -3
- package/dist/accessory/climate/temperatureControl.js.map +1 -1
- package/dist/accessory/climate/thermostat.d.ts +1 -9
- package/dist/accessory/climate/thermostat.js +24 -77
- package/dist/accessory/climate/thermostat.js.map +1 -1
- package/dist/accessory/garage.d.ts +1 -9
- package/dist/accessory/garage.js +19 -85
- package/dist/accessory/garage.js.map +1 -1
- package/dist/accessory/lock.d.ts +1 -5
- package/dist/accessory/lock.js +23 -57
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +1 -2
- package/dist/accessory/onoff/lightbulb.js +7 -13
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.d.ts +2 -4
- package/dist/accessory/onoff/onoff.js +28 -32
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/onoff/outlet.d.ts +1 -1
- package/dist/accessory/onoff/outlet.js +3 -3
- package/dist/accessory/onoff/outlet.js.map +1 -1
- package/dist/accessory/onoff/switch.d.ts +1 -2
- package/dist/accessory/onoff/switch.js +0 -3
- package/dist/accessory/onoff/switch.js.map +1 -1
- package/dist/accessory/position/blind.d.ts +1 -2
- package/dist/accessory/position/blind.js +5 -11
- package/dist/accessory/position/blind.js.map +1 -1
- package/dist/accessory/position/position.d.ts +0 -7
- package/dist/accessory/position/position.js +11 -62
- package/dist/accessory/position/position.js.map +1 -1
- package/dist/accessory/security.d.ts +3 -7
- package/dist/accessory/security.js +37 -69
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/air.d.ts +1 -5
- package/dist/accessory/sensor/air.js +14 -46
- package/dist/accessory/sensor/air.js.map +1 -1
- package/dist/accessory/sensor/carbonDioxide.d.ts +1 -1
- package/dist/accessory/sensor/carbonDioxide.js +3 -3
- package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
- package/dist/accessory/sensor/carbonMonoxide.d.ts +1 -1
- package/dist/accessory/sensor/carbonMonoxide.js +3 -3
- package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
- package/dist/accessory/sensor/contact.d.ts +1 -1
- package/dist/accessory/sensor/contact.js +18 -5
- package/dist/accessory/sensor/contact.js.map +1 -1
- package/dist/accessory/sensor/humidity.d.ts +1 -1
- package/dist/accessory/sensor/humidity.js +7 -4
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/leak.d.ts +1 -1
- package/dist/accessory/sensor/leak.js +3 -3
- package/dist/accessory/sensor/leak.js.map +1 -1
- package/dist/accessory/sensor/light.d.ts +1 -1
- package/dist/accessory/sensor/light.js +3 -3
- package/dist/accessory/sensor/light.js.map +1 -1
- package/dist/accessory/sensor/motion.d.ts +1 -1
- package/dist/accessory/sensor/motion.js +7 -4
- package/dist/accessory/sensor/motion.js.map +1 -1
- package/dist/accessory/sensor/occupancy.d.ts +1 -1
- package/dist/accessory/sensor/occupancy.js +3 -3
- package/dist/accessory/sensor/occupancy.js.map +1 -1
- package/dist/accessory/sensor/sensor.d.ts +0 -2
- package/dist/accessory/sensor/sensor.js +2 -26
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/accessory/sensor/smoke.d.ts +1 -1
- package/dist/accessory/sensor/smoke.js +3 -3
- package/dist/accessory/sensor/smoke.js.map +1 -1
- package/dist/accessory/sensor/temperature.d.ts +1 -1
- package/dist/accessory/sensor/temperature.js +7 -4
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/valve.d.ts +1 -5
- package/dist/accessory/valve.js +7 -41
- package/dist/accessory/valve.js.map +1 -1
- package/dist/homebridge/platform.js +8 -4
- 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 +19 -5
- package/dist/i18n/en.js +20 -6
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +19 -5
- package/dist/i18n/i18n.d.ts +19 -5
- package/dist/i18n/it.d.ts +19 -5
- package/dist/i18n/ro.d.ts +19 -5
- package/dist/i18n/template.d.ts +19 -5
- package/dist/i18n/vi.d.ts +19 -5
- package/dist/model/enums.d.ts +12 -1
- package/dist/model/enums.js +12 -0
- package/dist/model/enums.js.map +1 -1
- package/dist/model/history.d.ts +32 -0
- package/dist/model/history.js +128 -0
- package/dist/model/history.js.map +1 -0
- package/dist/model/mqtt.d.ts +1 -0
- package/dist/model/mqtt.js +37 -11
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +15 -3
- package/package.json +2 -1
|
@@ -4,47 +4,15 @@ import { HKCharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class ActiveClimateAccessory extends TemperatureControlAccessory {
|
|
5
5
|
constructor(dependency) {
|
|
6
6
|
super(dependency);
|
|
7
|
-
this.setup(HKCharacteristicKey.Active, dependency.Characteristic.Active.INACTIVE, 'topicGetActive', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.Active, 'valueStateActive', strings.active.active, strings.active.notActive), true, 'topicSetActive', this.
|
|
8
|
-
this.setup(HKCharacteristicKey.LockPhysicalControls, dependency.Characteristic.LockPhysicalControls.CONTROL_LOCK_DISABLED, 'topicGetLockPhysicalControls', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.LockPhysicalControls, 'valueControlLock', strings.active.controlsLocked, strings.active.controlsUnLocked), false, 'topicSetLockPhysicalControls', this.
|
|
7
|
+
this.setup(HKCharacteristicKey.Active, dependency.Characteristic.Active.INACTIVE, 'topicGetActive', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.Active, 'valueStateActive', strings.active.active, strings.active.notActive), true, 'topicSetActive', this.bindOnSetBoolean(HKCharacteristicKey.Active, 'topicSetActive', 'valueStateActive', 'valueStateInactive', dependency.Characteristic.Active.ACTIVE, strings.active.activeSet, strings.active.inactiveSet));
|
|
8
|
+
this.setup(HKCharacteristicKey.LockPhysicalControls, dependency.Characteristic.LockPhysicalControls.CONTROL_LOCK_DISABLED, 'topicGetLockPhysicalControls', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.LockPhysicalControls, 'valueControlLock', strings.active.controlsLocked, strings.active.controlsUnLocked), false, 'topicSetLockPhysicalControls', this.bindOnSetBoolean(HKCharacteristicKey.LockPhysicalControls, 'topicSetLockPhysicalControls', 'valueControlLock', 'valueControlUnlock', dependency.Characteristic.LockPhysicalControls.CONTROL_LOCK_ENABLED, strings.active.controlsLockFuture, strings.active.controlsUnlockFuture));
|
|
9
9
|
let rotationLogString = strings.active.rotationValueUpdate;
|
|
10
10
|
if (!dependency.config.maximumRotationSpeed || !this.assertType('number', 'maximumRotationSpeed')) {
|
|
11
11
|
dependency.config.maximumRotationSpeed = 100;
|
|
12
12
|
rotationLogString = strings.active.rotationPercentUpdate;
|
|
13
13
|
}
|
|
14
|
-
this.setup(HKCharacteristicKey.RotationSpeed, 0, 'topicGetRotationSpeed', this.bindOnUpdateNumeric(HKCharacteristicKey.RotationSpeed, rotationLogString), false, 'topicSetRotationSpeed', this.
|
|
15
|
-
this.setup(HKCharacteristicKey.SwingMode, dependency.Characteristic.SwingMode.SWING_DISABLED, 'topicGetSwingMode', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.SwingMode, 'valueSwingEnabled', strings.active.swingEnabled, strings.active.swingDisabled), false, 'topicSetSwingMode', this.
|
|
16
|
-
}
|
|
17
|
-
async onSetActive(value) {
|
|
18
|
-
if (!this.assert('valueStateActive', 'valueStateInactive')) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const active = value === this.Characteristic.Active.ACTIVE;
|
|
22
|
-
const logString = active ? strings.active.activeSet : strings.active.inactiveSet;
|
|
23
|
-
const publish = active ? this.config.valueStateActive : this.config.valueStateInactive;
|
|
24
|
-
this.onSet(HKCharacteristicKey.Active, value, publish, 'topicSetActive', logString);
|
|
25
|
-
}
|
|
26
|
-
async onSetLockControls(value) {
|
|
27
|
-
if (!this.assert('valueControlLock', 'valueControlUnlock')) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const lock = value === this.Characteristic.LockPhysicalControls.CONTROL_LOCK_ENABLED;
|
|
31
|
-
const logString = lock ? strings.active.controlsLockFuture : strings.active.controlsUnlockFuture;
|
|
32
|
-
const publish = lock ? this.config.valueControlLock : this.config.valueControlUnlock;
|
|
33
|
-
this.onSet(HKCharacteristicKey.LockPhysicalControls, value, publish, 'topicSetLockPhysicalControls', logString);
|
|
34
|
-
}
|
|
35
|
-
async onSetRotationSpeed(value) {
|
|
36
|
-
const isPercent = this.config.maximumRotationSpeed === undefined || this.config.maximumRotationSpeed === 100;
|
|
37
|
-
const logString = (isPercent ? strings.active.rotationPercentSet : strings.active.rotationValueSet).replace('%d', value.toString());
|
|
38
|
-
this.onSet(HKCharacteristicKey.RotationSpeed, value, value, 'topicSetRotationSpeed', logString);
|
|
39
|
-
}
|
|
40
|
-
async onSetSwingMode(value) {
|
|
41
|
-
if (!this.assert('valueSwingEnabled', 'valueSwingDisabled')) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const swing = value === this.Characteristic.SwingMode.SWING_ENABLED;
|
|
45
|
-
const logString = swing ? strings.active.swingEnabledFuture : strings.active.swingDisabledFuture;
|
|
46
|
-
const publish = swing ? this.config.valueSwingEnabled : this.config.valueSwingDisabled;
|
|
47
|
-
this.onSet(HKCharacteristicKey.SwingMode, value, publish, 'topicSetSwingMode', logString);
|
|
14
|
+
this.setup(HKCharacteristicKey.RotationSpeed, 0, 'topicGetRotationSpeed', this.bindOnUpdateNumeric(HKCharacteristicKey.RotationSpeed, rotationLogString), false, 'topicSetRotationSpeed', this.bindOnSetPercentOrValue(HKCharacteristicKey.RotationSpeed, 'topicSetRotationSpeed', dependency.config.maximumRotationSpeed, strings.active.rotationPercentSet, strings.active.rotationValueSet))?.setProps({ maxValue: dependency.config.maximumRotationSpeed });
|
|
15
|
+
this.setup(HKCharacteristicKey.SwingMode, dependency.Characteristic.SwingMode.SWING_DISABLED, 'topicGetSwingMode', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.SwingMode, 'valueSwingEnabled', strings.active.swingEnabled, strings.active.swingDisabled), false, 'topicSetSwingMode', this.bindOnSetBoolean(HKCharacteristicKey.SwingMode, 'topicSetSwingMode', 'valueSwingEnabled', 'valueSwingDisabled', dependency.Characteristic.SwingMode.SWING_ENABLED, strings.active.swingEnabledFuture, strings.active.swingDisabledFuture));
|
|
48
16
|
}
|
|
49
17
|
}
|
|
50
18
|
//# sourceMappingURL=active.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active.js","sourceRoot":"","sources":["../../../src/accessory/climate/active.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"active.js","sourceRoot":"","sources":["../../../src/accessory/climate/active.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,6 @@ import { ActiveClimateAccessory } from './active.js';
|
|
|
2
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
3
3
|
import { FanV2Config, MQTTAccessoryDependency } from '../../model/types.js';
|
|
4
4
|
export declare class FanV2Accessory extends ActiveClimateAccessory<FanV2Config> {
|
|
5
|
-
private readonly CURRENT_STATE_MAP;
|
|
6
|
-
private readonly TARGET_STATE_MAP;
|
|
7
|
-
constructor(dependency: MQTTAccessoryDependency<FanV2Config>);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
9
|
-
|
|
10
|
-
private onTargetStateUpdate;
|
|
11
|
-
private onSetTargetState;
|
|
12
|
-
private onSetDirection;
|
|
13
|
-
private fromCVState;
|
|
14
|
-
private toCurrentCVState;
|
|
15
|
-
private toTargetCVState;
|
|
16
|
-
private stateStringForCurrentCV;
|
|
17
|
-
private stateStringForTargetCV;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<FanV2Config>);
|
|
18
7
|
}
|
|
@@ -2,121 +2,42 @@ import { ActiveClimateAccessory } from './active.js';
|
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
3
|
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class FanV2Accessory extends ActiveClimateAccessory {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
getAccessoryType() {
|
|
6
|
+
return AccessoryType.Fanv2;
|
|
7
|
+
}
|
|
7
8
|
constructor(dependency) {
|
|
8
9
|
super(dependency);
|
|
9
|
-
|
|
10
|
+
const currentStates = new Map([
|
|
10
11
|
['valueModeInactive', dependency.Characteristic.CurrentFanState.INACTIVE],
|
|
11
12
|
['valueModeIdle', dependency.Characteristic.CurrentFanState.IDLE],
|
|
12
13
|
['valueModeBlowing', dependency.Characteristic.CurrentFanState.BLOWING_AIR],
|
|
13
14
|
]);
|
|
14
|
-
this.
|
|
15
|
-
['valueModeManual', dependency.Characteristic.TargetFanState.MANUAL],
|
|
16
|
-
['valueModeAuto', dependency.Characteristic.TargetFanState.AUTO],
|
|
17
|
-
]);
|
|
18
|
-
const validCurrentStates = Array.from(this.CURRENT_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
15
|
+
const validCurrentStates = Array.from(currentStates.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
19
16
|
if (dependency.config.topicGetCurrentFanState !== undefined && validCurrentStates.length === 0) {
|
|
20
17
|
this.log.error(strings.fanv2.noCurrentStateValues, this.name);
|
|
21
18
|
return;
|
|
22
19
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
const currentStrings = new Map([
|
|
21
|
+
[dependency.Characteristic.CurrentFanState.INACTIVE, strings.fanv2.stateInactive],
|
|
22
|
+
[dependency.Characteristic.CurrentFanState.IDLE, strings.fanv2.stateIdle],
|
|
23
|
+
[dependency.Characteristic.CurrentFanState.BLOWING_AIR, strings.fanv2.stateBlowing],
|
|
24
|
+
]);
|
|
25
|
+
this.setup(HKCharacteristicKey.CurrentFanState, currentStates.get(validCurrentStates[0]), 'topicGetCurrentFanState', this.bindOnUpdateState(HKCharacteristicKey.CurrentFanState, currentStates, currentStrings, strings.fanv2.stateUnknown), false)?.setProps({ validValues: validCurrentStates.map((key) => currentStates.get(key)) });
|
|
26
|
+
const targetStates = new Map([
|
|
27
|
+
['valueModeManual', dependency.Characteristic.TargetFanState.MANUAL],
|
|
28
|
+
['valueModeAuto', dependency.Characteristic.TargetFanState.AUTO],
|
|
29
|
+
]);
|
|
30
|
+
const validTargetStates = Array.from(targetStates.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
26
31
|
if (dependency.config.topicGetTargetFanState !== undefined && validTargetStates.length === 0) {
|
|
27
32
|
this.log.error(strings.fanv2.noTargetStateValues, this.name);
|
|
28
33
|
return;
|
|
29
34
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
async onCurrentStateUpdate(_topic, value) {
|
|
38
|
-
const state = this.toCurrentCVState(value);
|
|
39
|
-
if (state === undefined) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.onUpdate(HKCharacteristicKey.CurrentFanState, state, this.stateStringForCurrentCV(state));
|
|
43
|
-
}
|
|
44
|
-
async onTargetStateUpdate(_topic, value) {
|
|
45
|
-
const state = this.toTargetCVState(value);
|
|
46
|
-
if (state === undefined) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
this.onUpdate(HKCharacteristicKey.TargetFanState, state, this.stateStringForTargetCV(state));
|
|
50
|
-
}
|
|
51
|
-
async onSetTargetState(value) {
|
|
52
|
-
const target = this.fromCVState(value);
|
|
53
|
-
if (target === undefined) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.onSet(HKCharacteristicKey.TargetFanState, value, target, 'topicSetTargetFanState', this.stateStringForTargetCV(value));
|
|
57
|
-
}
|
|
58
|
-
async onSetDirection(value) {
|
|
59
|
-
if (!this.assert('valueDirectionClockwise', 'valueDirectionCounterClockwise')) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const clockwise = value === this.Characteristic.RotationDirection.CLOCKWISE;
|
|
63
|
-
const logString = clockwise ? strings.fanv2.setDirectionClockwise : strings.fanv2.setDirectionCounterClockwise;
|
|
64
|
-
const publish = clockwise ? this.config.valueDirectionClockwise : this.config.valueDirectionCounterClockwise;
|
|
65
|
-
this.onSet(HKCharacteristicKey.RotationDirection, value, publish, 'topicSetRotationDirection', logString);
|
|
66
|
-
}
|
|
67
|
-
fromCVState(value) {
|
|
68
|
-
let primative = undefined;
|
|
69
|
-
this.TARGET_STATE_MAP.forEach((test, key) => {
|
|
70
|
-
if (value === test) {
|
|
71
|
-
primative = this.getPrimitiveValue(key);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
if (primative === undefined) {
|
|
75
|
-
this.log.error(strings.fanv2.badValue, this.name, `'${value}'`);
|
|
76
|
-
}
|
|
77
|
-
return primative;
|
|
78
|
-
}
|
|
79
|
-
toCurrentCVState(value) {
|
|
80
|
-
switch (value) {
|
|
81
|
-
case this.getPrimitiveValue('valueModeInactive', false):
|
|
82
|
-
return this.CURRENT_STATE_MAP.get('valueModeInactive');
|
|
83
|
-
case this.getPrimitiveValue('valueModeIdle', false):
|
|
84
|
-
return this.CURRENT_STATE_MAP.get('valueModeIdle');
|
|
85
|
-
case this.getPrimitiveValue('valueModeBlowing', false):
|
|
86
|
-
return this.CURRENT_STATE_MAP.get('valueModeBlowing');
|
|
87
|
-
}
|
|
88
|
-
this.logIfDesired(strings.fanv2.unknownValue, `'${value}'`);
|
|
89
|
-
}
|
|
90
|
-
toTargetCVState(value) {
|
|
91
|
-
switch (value) {
|
|
92
|
-
case this.getPrimitiveValue('valueModeAuto', false):
|
|
93
|
-
return this.TARGET_STATE_MAP.get('valueModeAuto');
|
|
94
|
-
case this.getPrimitiveValue('valueModeManual', false):
|
|
95
|
-
return this.TARGET_STATE_MAP.get('valueModeManual');
|
|
96
|
-
}
|
|
97
|
-
this.logIfDesired(strings.fanv2.unknownValue, `'${value}'`);
|
|
98
|
-
}
|
|
99
|
-
stateStringForCurrentCV(state) {
|
|
100
|
-
switch (state) {
|
|
101
|
-
case this.Characteristic.CurrentFanState.INACTIVE:
|
|
102
|
-
return strings.fanv2.stateInactive;
|
|
103
|
-
case this.Characteristic.CurrentFanState.IDLE:
|
|
104
|
-
return strings.fanv2.stateIdle;
|
|
105
|
-
case this.Characteristic.CurrentFanState.BLOWING_AIR:
|
|
106
|
-
return strings.fanv2.stateBlowing;
|
|
107
|
-
default:
|
|
108
|
-
return strings.fanv2.stateUnknown;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
stateStringForTargetCV(state) {
|
|
112
|
-
switch (state) {
|
|
113
|
-
case this.Characteristic.TargetFanState.AUTO:
|
|
114
|
-
return strings.fanv2.stateAuto;
|
|
115
|
-
case this.Characteristic.TargetFanState.MANUAL:
|
|
116
|
-
return strings.fanv2.stateManual;
|
|
117
|
-
default:
|
|
118
|
-
return strings.fanv2.stateUnknown;
|
|
119
|
-
}
|
|
35
|
+
const targetStrings = new Map([
|
|
36
|
+
[dependency.Characteristic.TargetFanState.AUTO, strings.fanv2.stateAuto],
|
|
37
|
+
[dependency.Characteristic.TargetFanState.MANUAL, strings.fanv2.stateManual],
|
|
38
|
+
]);
|
|
39
|
+
this.setup(HKCharacteristicKey.TargetFanState, targetStates.get(validTargetStates[0]), 'topicGetTargetFanState', this.bindOnUpdateState(HKCharacteristicKey.TargetFanState, targetStates, targetStrings, strings.fanv2.stateUnknown), false, 'topicSetTargetFanState', this.bindOnSetState(HKCharacteristicKey.TargetFanState, 'topicSetTargetFanState', targetStates, targetStrings, strings.fanv2.badValue))?.setProps({ validValues: validTargetStates.map((key) => targetStates.get(key)) });
|
|
40
|
+
this.setup(HKCharacteristicKey.RotationDirection, dependency.Characteristic.RotationDirection.CLOCKWISE, 'topicGetRotationDirection', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.RotationDirection, 'valueDirectionClockwise', strings.fanv2.clockwise, strings.fanv2.counterClockwise), false, 'topicSetRotationDirection', this.bindOnSetBoolean(HKCharacteristicKey.RotationDirection, 'topicSetRotationDirection', 'valueDirectionClockwise', 'valueDirectionCounterClockwise', dependency.Characteristic.RotationDirection.CLOCKWISE, strings.fanv2.setDirectionClockwise, strings.fanv2.setDirectionCounterClockwise));
|
|
120
41
|
}
|
|
121
42
|
}
|
|
122
43
|
//# sourceMappingURL=fan2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fan2.js","sourceRoot":"","sources":["../../../src/accessory/climate/fan2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fan2.js","sourceRoot":"","sources":["../../../src/accessory/climate/fan2.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,6 @@ import { ActiveClimateAccessory } from './active.js';
|
|
|
2
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
3
3
|
import { HeaterCoolerConfig, MQTTAccessoryDependency } from '../../model/types.js';
|
|
4
4
|
export declare class HeaterCoolerAccessory extends ActiveClimateAccessory<HeaterCoolerConfig> {
|
|
5
|
-
private readonly CURRENT_STATE_MAP;
|
|
6
|
-
private readonly TARGET_STATE_MAP;
|
|
7
|
-
constructor(dependency: MQTTAccessoryDependency<HeaterCoolerConfig>);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
9
|
-
|
|
10
|
-
private onTargetStateUpdate;
|
|
11
|
-
private onSetTargetState;
|
|
12
|
-
private fromCVState;
|
|
13
|
-
private toCurrentCVState;
|
|
14
|
-
private toTargetCVState;
|
|
15
|
-
private stateStringForCurrentCV;
|
|
16
|
-
private stateStringForTargetCV;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<HeaterCoolerConfig>);
|
|
17
7
|
}
|
|
@@ -3,123 +3,47 @@ import { FilterMaintenance } from '../addons/filter.js';
|
|
|
3
3
|
import { strings } from '../../i18n/i18n.js';
|
|
4
4
|
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
5
5
|
export class HeaterCoolerAccessory extends ActiveClimateAccessory {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
getAccessoryType() {
|
|
7
|
+
return AccessoryType.HeaterCooler;
|
|
8
|
+
}
|
|
8
9
|
constructor(dependency) {
|
|
9
10
|
super(dependency);
|
|
10
11
|
this.setupTemperatureControlCharacteristics();
|
|
11
|
-
|
|
12
|
+
const currentStates = new Map([
|
|
12
13
|
['valueModeInactive', dependency.Characteristic.CurrentHeaterCoolerState.INACTIVE],
|
|
13
14
|
['valueModeIdle', dependency.Characteristic.CurrentHeaterCoolerState.IDLE],
|
|
14
15
|
['valueModeHeat', dependency.Characteristic.CurrentHeaterCoolerState.HEATING],
|
|
15
16
|
['valueModeCool', dependency.Characteristic.CurrentHeaterCoolerState.COOLING],
|
|
16
17
|
]);
|
|
17
|
-
this.
|
|
18
|
-
['valueModeAuto', dependency.Characteristic.TargetHeaterCoolerState.AUTO],
|
|
19
|
-
['valueModeHeat', dependency.Characteristic.TargetHeaterCoolerState.HEAT],
|
|
20
|
-
['valueModeCool', dependency.Characteristic.TargetHeaterCoolerState.COOL],
|
|
21
|
-
]);
|
|
22
|
-
const validCurrentStates = Array.from(this.CURRENT_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
18
|
+
const validCurrentStates = Array.from(currentStates.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
23
19
|
if (validCurrentStates.length === 0) {
|
|
24
20
|
this.log.error(strings.heaterCooler.noStateValues, this.name);
|
|
25
21
|
return;
|
|
26
22
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
const currentStrings = new Map([
|
|
24
|
+
[dependency.Characteristic.CurrentHeaterCoolerState.INACTIVE, strings.heaterCooler.stateInactive],
|
|
25
|
+
[dependency.Characteristic.CurrentHeaterCoolerState.IDLE, strings.heaterCooler.stateIdle],
|
|
26
|
+
[dependency.Characteristic.CurrentHeaterCoolerState.HEATING, strings.heaterCooler.stateHeating],
|
|
27
|
+
[dependency.Characteristic.CurrentHeaterCoolerState.COOLING, strings.heaterCooler.stateCooling],
|
|
28
|
+
]);
|
|
29
|
+
this.setup(HKCharacteristicKey.CurrentHeaterCoolerState, currentStates.get(validCurrentStates[0]), 'topicGetCurrentHeaterCoolerState', this.bindOnUpdateState(HKCharacteristicKey.CurrentHeaterCoolerState, currentStates, currentStrings, strings.heaterCooler.unknownValue), true)?.setProps({ validValues: validCurrentStates.map((key) => currentStates.get(key)) });
|
|
30
|
+
const targetStates = new Map([
|
|
31
|
+
['valueModeAuto', dependency.Characteristic.TargetHeaterCoolerState.AUTO],
|
|
32
|
+
['valueModeHeat', dependency.Characteristic.TargetHeaterCoolerState.HEAT],
|
|
33
|
+
['valueModeCool', dependency.Characteristic.TargetHeaterCoolerState.COOL],
|
|
34
|
+
]);
|
|
35
|
+
const validTargetStates = Array.from(targetStates.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
30
36
|
if (validTargetStates.length === 0) {
|
|
31
37
|
this.log.error(strings.heaterCooler.noStateValues, this.name);
|
|
32
38
|
return;
|
|
33
39
|
}
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
const targetStrings = new Map([
|
|
41
|
+
[dependency.Characteristic.TargetHeaterCoolerState.AUTO, strings.heaterCooler.stateAuto],
|
|
42
|
+
[dependency.Characteristic.TargetHeaterCoolerState.HEAT, strings.heaterCooler.stateHeat],
|
|
43
|
+
[dependency.Characteristic.TargetHeaterCoolerState.COOL, strings.heaterCooler.stateCool],
|
|
44
|
+
]);
|
|
45
|
+
this.setup(HKCharacteristicKey.TargetHeaterCoolerState, targetStates.get(validTargetStates[0]), 'topicGetTargetHeaterCoolerState', this.bindOnUpdateState(HKCharacteristicKey.TargetHeaterCoolerState, targetStates, targetStrings, strings.heaterCooler.unknownValue), true, 'topicSetTargetHeaterCoolerState', this.bindOnSetState(HKCharacteristicKey.TargetHeaterCoolerState, 'topicSetTargetHeaterCoolerState', targetStates, targetStrings, strings.heaterCooler.badValue))?.setProps({ validValues: validTargetStates.map((key) => targetStates.get(key)) });
|
|
36
46
|
this.addTopicHandlers(FilterMaintenance.topicHandlers(dependency.Service, this, dependency.config));
|
|
37
47
|
}
|
|
38
|
-
getAccessoryType() {
|
|
39
|
-
return AccessoryType.HeaterCooler;
|
|
40
|
-
}
|
|
41
|
-
async onCurrentStateUpdate(_topic, value) {
|
|
42
|
-
const state = this.toCurrentCVState(value);
|
|
43
|
-
if (state === undefined) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
this.onUpdate(HKCharacteristicKey.CurrentHeaterCoolerState, state, this.stateStringForCurrentCV(state));
|
|
47
|
-
}
|
|
48
|
-
async onTargetStateUpdate(_topic, value) {
|
|
49
|
-
const state = this.toTargetCVState(value);
|
|
50
|
-
if (state === undefined) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.onUpdate(HKCharacteristicKey.TargetHeaterCoolerState, state, this.stateStringForTargetCV(state));
|
|
54
|
-
}
|
|
55
|
-
async onSetTargetState(value) {
|
|
56
|
-
const target = this.fromCVState(value);
|
|
57
|
-
if (target === undefined) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
this.onSet(HKCharacteristicKey.TargetHeaterCoolerState, value, target, 'topicSetTargetHeaterCoolerState', this.stateStringForTargetCV(value));
|
|
61
|
-
}
|
|
62
|
-
fromCVState(value) {
|
|
63
|
-
let primative = undefined;
|
|
64
|
-
this.TARGET_STATE_MAP.forEach((test, key) => {
|
|
65
|
-
if (value === test) {
|
|
66
|
-
primative = this.getPrimitiveValue(key);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
if (primative === undefined) {
|
|
70
|
-
this.log.error(strings.heaterCooler.badValue, this.name, `'${value}'`);
|
|
71
|
-
}
|
|
72
|
-
return primative;
|
|
73
|
-
}
|
|
74
|
-
toCurrentCVState(value) {
|
|
75
|
-
switch (value) {
|
|
76
|
-
case this.getPrimitiveValue('valueModeInactive', false):
|
|
77
|
-
return this.CURRENT_STATE_MAP.get('valueModeInactive');
|
|
78
|
-
case this.getPrimitiveValue('valueModeIdle', false):
|
|
79
|
-
return this.CURRENT_STATE_MAP.get('valueModeIdle');
|
|
80
|
-
case this.getPrimitiveValue('valueModeHeat', false):
|
|
81
|
-
return this.CURRENT_STATE_MAP.get('valueModeHeat');
|
|
82
|
-
case this.getPrimitiveValue('valueModeCool', false):
|
|
83
|
-
return this.CURRENT_STATE_MAP.get('valueModeCool');
|
|
84
|
-
}
|
|
85
|
-
this.logIfDesired(strings.heaterCooler.unknownValue, `'${value}'`);
|
|
86
|
-
}
|
|
87
|
-
toTargetCVState(value) {
|
|
88
|
-
switch (value) {
|
|
89
|
-
case this.getPrimitiveValue('valueModeAuto', false):
|
|
90
|
-
return this.TARGET_STATE_MAP.get('valueModeAuto');
|
|
91
|
-
case this.getPrimitiveValue('valueModeHeat', false):
|
|
92
|
-
return this.TARGET_STATE_MAP.get('valueModeHeat');
|
|
93
|
-
case this.getPrimitiveValue('valueModeCool', false):
|
|
94
|
-
return this.TARGET_STATE_MAP.get('valueModeCool');
|
|
95
|
-
}
|
|
96
|
-
this.logIfDesired(strings.heaterCooler.unknownValue, `'${value}'`);
|
|
97
|
-
}
|
|
98
|
-
stateStringForCurrentCV(state) {
|
|
99
|
-
switch (state) {
|
|
100
|
-
case this.Characteristic.CurrentHeaterCoolerState.INACTIVE:
|
|
101
|
-
return strings.heaterCooler.stateInactive;
|
|
102
|
-
case this.Characteristic.CurrentHeaterCoolerState.IDLE:
|
|
103
|
-
return strings.heaterCooler.stateIdle;
|
|
104
|
-
case this.Characteristic.CurrentHeaterCoolerState.HEATING:
|
|
105
|
-
return strings.heaterCooler.stateHeating;
|
|
106
|
-
case this.Characteristic.CurrentHeaterCoolerState.COOLING:
|
|
107
|
-
return strings.heaterCooler.stateCooling;
|
|
108
|
-
default:
|
|
109
|
-
return strings.heaterCooler.stateUnknown;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
stateStringForTargetCV(state) {
|
|
113
|
-
switch (state) {
|
|
114
|
-
case this.Characteristic.TargetHeaterCoolerState.AUTO:
|
|
115
|
-
return strings.heaterCooler.stateAuto;
|
|
116
|
-
case this.Characteristic.TargetHeaterCoolerState.HEAT:
|
|
117
|
-
return strings.heaterCooler.stateHeat;
|
|
118
|
-
case this.Characteristic.TargetHeaterCoolerState.COOL:
|
|
119
|
-
return strings.heaterCooler.stateCool;
|
|
120
|
-
default:
|
|
121
|
-
return strings.heaterCooler.stateUnknown;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
48
|
}
|
|
125
49
|
//# sourceMappingURL=heaterCooler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heaterCooler.js","sourceRoot":"","sources":["../../../src/accessory/climate/heaterCooler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heaterCooler.js","sourceRoot":"","sources":["../../../src/accessory/climate/heaterCooler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,6 @@ import { ActiveClimateAccessory } from './active.js';
|
|
|
2
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
3
3
|
import { MQTTAccessoryDependency, PurifierConfig } from '../../model/types.js';
|
|
4
4
|
export declare class PurifierAccessory extends ActiveClimateAccessory<PurifierConfig> {
|
|
5
|
-
private readonly CURRENT_STATE_MAP;
|
|
6
|
-
private readonly TARGET_STATE_MAP;
|
|
7
|
-
constructor(dependency: MQTTAccessoryDependency<PurifierConfig>);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
9
|
-
|
|
10
|
-
private onTargetStateUpdate;
|
|
11
|
-
private onSetTargetState;
|
|
12
|
-
private fromCVState;
|
|
13
|
-
private toCurrentCVState;
|
|
14
|
-
private toTargetCVState;
|
|
15
|
-
private stateStringForCurrentCV;
|
|
16
|
-
private stateStringForTargetCV;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<PurifierConfig>);
|
|
17
7
|
}
|