homebridge-easy-mqtt 1.4.0-beta.16 → 1.4.0-beta.3
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 +7 -10
- package/README.md +25 -246
- package/config.schema.json +400 -1991
- package/dist/accessory/abstract/base.js +2 -2
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/helper.d.ts +0 -1
- package/dist/accessory/abstract/helper.js +0 -19
- package/dist/accessory/abstract/helper.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +26 -15
- package/dist/accessory/abstract/mqtt.js +148 -29
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/climate/{temperatureControl.d.ts → climate.d.ts} +2 -3
- package/dist/accessory/climate/{temperatureControl.js → climate.js} +5 -7
- package/dist/accessory/climate/climate.js.map +1 -0
- package/dist/accessory/climate/heaterCooler.d.ts +6 -2
- package/dist/accessory/climate/heaterCooler.js +37 -5
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/thermostat.d.ts +2 -2
- package/dist/accessory/climate/thermostat.js +2 -3
- package/dist/accessory/climate/thermostat.js.map +1 -1
- 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/sensor/sensor.js +2 -2
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/homebridge/platform.js +3 -5
- 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 +0 -155
- package/dist/i18n/en.js +1 -156
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +0 -155
- package/dist/i18n/i18n.d.ts +1 -157
- package/dist/i18n/i18n.js +0 -6
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/i18n/template.d.ts +0 -155
- package/dist/model/enums.d.ts +2 -39
- package/dist/model/enums.js +0 -39
- package/dist/model/enums.js.map +1 -1
- package/dist/model/mqtt.d.ts +4 -5
- package/dist/model/mqtt.js +25 -41
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +24 -115
- package/package.json +1 -1
- package/dist/accessory/abstract/common.d.ts +0 -42
- package/dist/accessory/abstract/common.js +0 -158
- package/dist/accessory/abstract/common.js.map +0 -1
- package/dist/accessory/addons/addon.d.ts +0 -24
- package/dist/accessory/addons/addon.js +0 -52
- package/dist/accessory/addons/addon.js.map +0 -1
- package/dist/accessory/addons/filter.d.ts +0 -11
- package/dist/accessory/addons/filter.js +0 -37
- package/dist/accessory/addons/filter.js.map +0 -1
- package/dist/accessory/climate/active.d.ts +0 -11
- package/dist/accessory/climate/active.js +0 -44
- package/dist/accessory/climate/active.js.map +0 -1
- package/dist/accessory/climate/fan2.d.ts +0 -20
- package/dist/accessory/climate/fan2.js +0 -122
- package/dist/accessory/climate/fan2.js.map +0 -1
- package/dist/accessory/climate/purifier.d.ts +0 -19
- package/dist/accessory/climate/purifier.js +0 -114
- package/dist/accessory/climate/purifier.js.map +0 -1
- package/dist/accessory/climate/temperatureControl.js.map +0 -1
- package/dist/accessory/garage.d.ts +0 -17
- package/dist/accessory/garage.js +0 -110
- package/dist/accessory/garage.js.map +0 -1
- package/dist/accessory/sensor/air.d.ts +0 -14
- package/dist/accessory/sensor/air.js +0 -94
- package/dist/accessory/sensor/air.js.map +0 -1
- package/dist/accessory/valve.d.ts +0 -14
- package/dist/accessory/valve.js +0 -71
- package/dist/accessory/valve.js.map +0 -1
- package/dist/i18n/ro.d.ts +0 -846
- package/dist/i18n/ro.js +0 -381
- package/dist/i18n/ro.js.map +0 -1
- package/dist/tools/properties.d.ts +0 -11
- package/dist/tools/properties.js +0 -73
- package/dist/tools/properties.js.map +0 -1
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Characteristic, CharacteristicSetHandler, CharacteristicValue, PrimitiveTypes, Service } from 'homebridge';
|
|
2
|
-
import { CharacteristicKey } from '../../model/enums.js';
|
|
3
|
-
import { CharacteristicType, TemperatureConfig } from '../../model/types.js';
|
|
4
|
-
import { Log, LogType } from '../../tools/log.js';
|
|
5
|
-
import { Assertable } from '../../tools/validation.js';
|
|
6
|
-
import { Properties } from '../../tools/properties.js';
|
|
7
|
-
type OnUpdateHandler = (topic: string, value: PrimitiveTypes) => (Promise<void>);
|
|
8
|
-
export type TopicHandler = {
|
|
9
|
-
topic: string;
|
|
10
|
-
handler: OnUpdateHandler;
|
|
11
|
-
};
|
|
12
|
-
export type PublishHandler = (topic: string, value: PrimitiveTypes) => void;
|
|
13
|
-
export declare abstract class Common<C extends Assertable> {
|
|
14
|
-
readonly name: string;
|
|
15
|
-
private _properties;
|
|
16
|
-
readonly topicHandlers: TopicHandler[];
|
|
17
|
-
constructor(name: string);
|
|
18
|
-
protected abstract get service(): Service;
|
|
19
|
-
protected abstract get Characteristic(): CharacteristicType;
|
|
20
|
-
protected abstract get log(): Log;
|
|
21
|
-
protected abstract get disableLogging(): boolean;
|
|
22
|
-
protected abstract get config(): C;
|
|
23
|
-
protected abstract get identifier(): string;
|
|
24
|
-
protected abstract get useStoredProperties(): boolean;
|
|
25
|
-
protected abstract publish(rawTopic: string, value: PrimitiveTypes): void;
|
|
26
|
-
protected get properties(): Properties;
|
|
27
|
-
protected assert(...keys: (keyof C)[]): boolean;
|
|
28
|
-
protected getRawValue(property: keyof C, assert?: boolean): string | undefined;
|
|
29
|
-
protected getPrimitiveValue(property: keyof C, assert?: boolean): PrimitiveTypes | undefined;
|
|
30
|
-
protected addTopicHandlers(topicHandlers: TopicHandler[]): void;
|
|
31
|
-
protected setupCharacteristic(characteristicKey: CharacteristicKey, defaultValue: CharacteristicValue, getTopicKey: keyof C, onUpdateHandler: OnUpdateHandler, assertGetTopic?: boolean, setTopicKey?: keyof C | undefined, onSetHandler?: CharacteristicSetHandler | undefined): Characteristic | undefined;
|
|
32
|
-
private setupCharacteristicOnGet;
|
|
33
|
-
protected setupCharacteristicOnSet(characteristicKey: CharacteristicKey, setTopicKey?: keyof C | undefined, onSetHandler?: CharacteristicSetHandler | undefined): void;
|
|
34
|
-
protected bindOnUpdateNumeric(charKey: CharacteristicKey, logTemplate: string): OnUpdateHandler;
|
|
35
|
-
protected bindOnUpdateNumericBoolean(charKey: CharacteristicKey, valueKey: keyof C, logTrue: string, logFalse: string): OnUpdateHandler;
|
|
36
|
-
protected bindTemperatureUpdate<C extends TemperatureConfig>(config: C, charKey: CharacteristicKey, logTemplate: string): OnUpdateHandler;
|
|
37
|
-
protected onUpdate(key: CharacteristicKey, value: CharacteristicValue, logString?: string | undefined): boolean;
|
|
38
|
-
protected onSet(key: CharacteristicKey, value: CharacteristicValue, publish: PrimitiveTypes, topic: keyof C, logString: string | undefined): void;
|
|
39
|
-
protected logIfDesired(message: string, ...parameters: string[]): void;
|
|
40
|
-
protected logIfDesired(level: LogType, message: string, ...parameters: string[]): void;
|
|
41
|
-
}
|
|
42
|
-
export {};
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { strings } from '../../i18n/i18n.js';
|
|
2
|
-
import { TemperatureUnits } from '../../model/enums.js';
|
|
3
|
-
import { LogType } from '../../tools/log.js';
|
|
4
|
-
import { toNumber, toPrimitive } from '../../tools/primitive.js';
|
|
5
|
-
import { assert } from '../../tools/validation.js';
|
|
6
|
-
import { toCelsius } from '../../tools/temperature.js';
|
|
7
|
-
import { Properties } from '../../tools/properties.js';
|
|
8
|
-
export class Common {
|
|
9
|
-
name;
|
|
10
|
-
_properties = undefined;
|
|
11
|
-
topicHandlers = [];
|
|
12
|
-
constructor(name) {
|
|
13
|
-
this.name = name;
|
|
14
|
-
}
|
|
15
|
-
get properties() {
|
|
16
|
-
if (this._properties === undefined) {
|
|
17
|
-
this._properties = new Properties(this.identifier, this.useStoredProperties);
|
|
18
|
-
}
|
|
19
|
-
return this._properties;
|
|
20
|
-
}
|
|
21
|
-
assert(...keys) {
|
|
22
|
-
return assert(this.log, this.name, this.config, ...keys);
|
|
23
|
-
}
|
|
24
|
-
getRawValue(property, assert = true) {
|
|
25
|
-
if (!property.toString().startsWith('value')) {
|
|
26
|
-
throw new Error(`Trying to fetch value with unexpected property name '${property.toString()}'`);
|
|
27
|
-
}
|
|
28
|
-
if (assert && !this.assert(property)) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
return this.config[property];
|
|
32
|
-
}
|
|
33
|
-
getPrimitiveValue(property, assert = true) {
|
|
34
|
-
const stringValue = this.getRawValue(property, assert);
|
|
35
|
-
return stringValue ? toPrimitive(stringValue) : undefined;
|
|
36
|
-
}
|
|
37
|
-
addTopicHandlers(topicHandlers) {
|
|
38
|
-
this.topicHandlers.push(...topicHandlers);
|
|
39
|
-
}
|
|
40
|
-
setupCharacteristic(characteristicKey, defaultValue, getTopicKey, onUpdateHandler, assertGetTopic = false, setTopicKey = undefined, onSetHandler = undefined) {
|
|
41
|
-
const characteristic = this.setupCharacteristicOnGet(characteristicKey, defaultValue, getTopicKey, onUpdateHandler, assertGetTopic);
|
|
42
|
-
if (!characteristic) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
this.setupCharacteristicOnSet(characteristicKey, setTopicKey, onSetHandler);
|
|
46
|
-
}
|
|
47
|
-
setupCharacteristicOnGet(characteristicKey, defaultValue, getTopicKey, onUpdateHandler, assertGetTopic = false) {
|
|
48
|
-
if (!getTopicKey.toString().startsWith('topic')) {
|
|
49
|
-
throw new Error(`Trying to fetch topic with unexpected property name '${getTopicKey.toString()}'`);
|
|
50
|
-
}
|
|
51
|
-
if (assertGetTopic) {
|
|
52
|
-
this.assert(getTopicKey);
|
|
53
|
-
}
|
|
54
|
-
if (this.config[getTopicKey] === undefined) {
|
|
55
|
-
for (const characteristic of this.service.characteristics) {
|
|
56
|
-
if (characteristic.UUID === this.Characteristic[characteristicKey].UUID) {
|
|
57
|
-
this.service.removeCharacteristic(characteristic);
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const startingValue = (this.useStoredProperties && this.properties.get(characteristicKey)) ?? defaultValue;
|
|
64
|
-
const characteristic = this.service.getCharacteristic(this.Characteristic[characteristicKey]);
|
|
65
|
-
characteristic.setValue(startingValue);
|
|
66
|
-
this.properties.set(characteristicKey, startingValue);
|
|
67
|
-
characteristic.onGet(async () => {
|
|
68
|
-
return this.properties.get(characteristicKey) ?? null;
|
|
69
|
-
});
|
|
70
|
-
this.topicHandlers.push({ topic: this.config[getTopicKey], handler: onUpdateHandler });
|
|
71
|
-
return characteristic;
|
|
72
|
-
}
|
|
73
|
-
setupCharacteristicOnSet(characteristicKey, setTopicKey = undefined, onSetHandler = undefined) {
|
|
74
|
-
if (setTopicKey === undefined) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
if (!setTopicKey.toString().startsWith('topic')) {
|
|
78
|
-
throw new Error(`Trying to fetch topic with unexpected property name '${setTopicKey.toString()}'`);
|
|
79
|
-
}
|
|
80
|
-
if (!onSetHandler) {
|
|
81
|
-
throw new Error(`Missing onSetHandler for topic '${setTopicKey.toString()}'`);
|
|
82
|
-
}
|
|
83
|
-
const characteristic = this.service.getCharacteristic(this.Characteristic[characteristicKey]);
|
|
84
|
-
characteristic.onSet(onSetHandler);
|
|
85
|
-
}
|
|
86
|
-
bindOnUpdateNumeric(charKey, logTemplate) {
|
|
87
|
-
return (async (_topic, value) => {
|
|
88
|
-
if (typeof value !== 'number') {
|
|
89
|
-
this.log.error(strings.characteristic.badValue, this.name, charKey, `'${value.toString()}'`);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const logString = logTemplate.replace('%d', value.toString());
|
|
93
|
-
this.onUpdate(charKey, value, logString);
|
|
94
|
-
}).bind(this);
|
|
95
|
-
}
|
|
96
|
-
bindOnUpdateNumericBoolean(charKey, valueKey, logTrue, logFalse) {
|
|
97
|
-
return (async (_topic, value) => {
|
|
98
|
-
const numeric = value === this.getPrimitiveValue(valueKey) ? 1 : 0;
|
|
99
|
-
this.onUpdate(charKey, numeric, numeric ? logTrue : logFalse);
|
|
100
|
-
}).bind(this);
|
|
101
|
-
}
|
|
102
|
-
bindTemperatureUpdate(config, charKey, logTemplate) {
|
|
103
|
-
return (async (_topic, value) => {
|
|
104
|
-
if (typeof value !== 'number') {
|
|
105
|
-
this.log.error(strings.climate.badTemperatureValue, this.name, `'${value}'`);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const units = config.temperatureUnits ?? TemperatureUnits.CELSIUS;
|
|
109
|
-
const temperature = toCelsius(toNumber(value), units);
|
|
110
|
-
const logString = logTemplate.replace('%d°%s', `${value}°${units}`);
|
|
111
|
-
this.onUpdate(charKey, temperature, logString);
|
|
112
|
-
}).bind(this);
|
|
113
|
-
}
|
|
114
|
-
onUpdate(key, value, logString = undefined) {
|
|
115
|
-
if (value === this.properties.get(key)) {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
this.properties.set(key, value);
|
|
119
|
-
this.service.updateCharacteristic(this.Characteristic[key], value);
|
|
120
|
-
if (logString) {
|
|
121
|
-
this.logIfDesired(logString);
|
|
122
|
-
}
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
onSet(key, value, publish, topic, logString) {
|
|
126
|
-
if (!this.assert(topic)) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
if (logString && value !== this.properties.get(key)) {
|
|
130
|
-
this.logIfDesired(logString);
|
|
131
|
-
}
|
|
132
|
-
this.properties.set(key, value);
|
|
133
|
-
this.service.updateCharacteristic(this.Characteristic[key], value);
|
|
134
|
-
this.publish(this.config[topic], publish);
|
|
135
|
-
}
|
|
136
|
-
logIfDesired(levelOrMessage, ...rest) {
|
|
137
|
-
if (this.disableLogging) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
if (typeof levelOrMessage === 'string') {
|
|
141
|
-
this.log.always(levelOrMessage, this.name, ...rest);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const [message, ...parameters] = rest;
|
|
145
|
-
switch (levelOrMessage) {
|
|
146
|
-
case LogType.WARNING:
|
|
147
|
-
this.log.warning(message, this.name, ...parameters);
|
|
148
|
-
break;
|
|
149
|
-
case LogType.ERROR:
|
|
150
|
-
this.log.error(message, this.name, ...parameters);
|
|
151
|
-
break;
|
|
152
|
-
default:
|
|
153
|
-
this.log.always(message, this.name, ...parameters);
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/accessory/abstract/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { PrimitiveTypes, Service } from 'homebridge';
|
|
2
|
-
import { Common } from '../abstract/common.js';
|
|
3
|
-
import { AddonType } from '../../model/enums.js';
|
|
4
|
-
import { AddonConfig, CharacteristicType, MQTTAccessoryConfig } from '../../model/types.js';
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
6
|
-
import { MQTTAccessory } from '../abstract/mqtt.js';
|
|
7
|
-
type AddonConstructor<C extends AddonConfig, A extends Addon<C>> = new (service: Service, parentAccessory: MQTTAccessory<MQTTAccessoryConfig>, config: C) => A;
|
|
8
|
-
type AddonServiceType = typeof import('homebridge').Service[AddonType];
|
|
9
|
-
export declare abstract class Addon<C extends AddonConfig> extends Common<C> {
|
|
10
|
-
private readonly parentAccessory;
|
|
11
|
-
private readonly addonService;
|
|
12
|
-
private readonly addonConfig;
|
|
13
|
-
static new<C extends AddonConfig, A extends Addon<C>>(parentAccessory: MQTTAccessory<MQTTAccessoryConfig>, addonServiceInstance: AddonServiceType, config: C, required: (keyof C)[], constructor: AddonConstructor<C, A>): A | undefined;
|
|
14
|
-
protected constructor(parentAccessory: MQTTAccessory<MQTTAccessoryConfig>, addonService: Service, addonConfig: C);
|
|
15
|
-
protected get service(): Service;
|
|
16
|
-
protected get Characteristic(): CharacteristicType;
|
|
17
|
-
protected get log(): Log;
|
|
18
|
-
protected get disableLogging(): boolean;
|
|
19
|
-
protected get config(): C;
|
|
20
|
-
protected get identifier(): string;
|
|
21
|
-
protected get useStoredProperties(): boolean;
|
|
22
|
-
protected publish(rawTopic: string, value: PrimitiveTypes): void;
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Common } from '../abstract/common.js';
|
|
2
|
-
import { assert } from '../../tools/validation.js';
|
|
3
|
-
export class Addon extends Common {
|
|
4
|
-
parentAccessory;
|
|
5
|
-
addonService;
|
|
6
|
-
addonConfig;
|
|
7
|
-
static new(parentAccessory, addonServiceInstance, config, required, constructor) {
|
|
8
|
-
const existingAddonService = parentAccessory.platformAccessory.getService(addonServiceInstance);
|
|
9
|
-
if (required.filter((key) => config[key] !== undefined).length === 0 || !assert(parentAccessory.log, parentAccessory.name, config, ...required)) {
|
|
10
|
-
if (existingAddonService !== undefined) {
|
|
11
|
-
parentAccessory.platformAccessory.removeService(existingAddonService);
|
|
12
|
-
}
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const addonService = existingAddonService ?? parentAccessory.platformAccessory.addService(addonServiceInstance);
|
|
16
|
-
if (existingAddonService === undefined) {
|
|
17
|
-
parentAccessory.service.addLinkedService(addonService);
|
|
18
|
-
}
|
|
19
|
-
return new constructor(addonService, parentAccessory, config);
|
|
20
|
-
}
|
|
21
|
-
constructor(parentAccessory, addonService, addonConfig) {
|
|
22
|
-
super(parentAccessory.name);
|
|
23
|
-
this.parentAccessory = parentAccessory;
|
|
24
|
-
this.addonService = addonService;
|
|
25
|
-
this.addonConfig = addonConfig;
|
|
26
|
-
}
|
|
27
|
-
get service() {
|
|
28
|
-
return this.addonService;
|
|
29
|
-
}
|
|
30
|
-
get Characteristic() {
|
|
31
|
-
return this.parentAccessory.Characteristic;
|
|
32
|
-
}
|
|
33
|
-
get log() {
|
|
34
|
-
return this.parentAccessory.log;
|
|
35
|
-
}
|
|
36
|
-
get disableLogging() {
|
|
37
|
-
return this.parentAccessory.disableLogging;
|
|
38
|
-
}
|
|
39
|
-
get config() {
|
|
40
|
-
return this.addonConfig;
|
|
41
|
-
}
|
|
42
|
-
get identifier() {
|
|
43
|
-
return `${this.parentAccessory.identifier}:${this.addonService.UUID}`;
|
|
44
|
-
}
|
|
45
|
-
get useStoredProperties() {
|
|
46
|
-
return this.parentAccessory.useStoredProperties;
|
|
47
|
-
}
|
|
48
|
-
publish(rawTopic, value) {
|
|
49
|
-
return this.parentAccessory.publish(rawTopic, value);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=addon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addon.js","sourceRoot":"","sources":["../../../src/accessory/addons/addon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM/C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAYnD,MAAM,OAAgB,KAA6B,SAAQ,MAAS;IA6B/C;IACA;IACA;IA7BnB,MAAM,CAAC,GAAG,CACR,eAAmD,EACnD,oBAAsC,EACtC,MAAS,EACT,QAAqB,EACrB,WAAmC;QAGnC,MAAM,oBAAoB,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAEhG,IAAI,QAAQ,CAAC,MAAM,CAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAClJ,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACvC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACxE,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,oBAAoB,IAAI,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAEhH,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,YACmB,eAAmD,EACnD,YAAqB,EACrB,WAAc;QAE/B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAJX,oBAAe,GAAf,eAAe,CAAoC;QACnD,iBAAY,GAAZ,YAAY,CAAS;QACrB,gBAAW,GAAX,WAAW,CAAG;IAGjC,CAAC;IAED,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;IAC7C,CAAC;IAED,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;IAC7C,CAAC;IAED,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAc,UAAU;QACtB,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,IAAc,mBAAmB;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAES,OAAO,CAAC,QAAgB,EAAE,KAAqB;QACvD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Service } from 'homebridge';
|
|
2
|
-
import { Addon } from './addon.js';
|
|
3
|
-
import { TopicHandler } from '../abstract/common.js';
|
|
4
|
-
import { FilterMaintenanceConfig, MQTTAccessoryConfig, ServiceType } from '../../model/types.js';
|
|
5
|
-
import { MQTTAccessory } from '../abstract/mqtt.js';
|
|
6
|
-
export declare class FilterMaintenance extends Addon<FilterMaintenanceConfig> {
|
|
7
|
-
static topicHandlers(Service: ServiceType, parentAccessory: MQTTAccessory<MQTTAccessoryConfig>, config: FilterMaintenanceConfig): TopicHandler[];
|
|
8
|
-
constructor(service: Service, parentAccessory: MQTTAccessory<MQTTAccessoryConfig>, config: FilterMaintenanceConfig);
|
|
9
|
-
private onChangeIndicationUpdate;
|
|
10
|
-
private onResetIndication;
|
|
11
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Addon } from './addon.js';
|
|
2
|
-
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AddonType, CharacteristicKey } from '../../model/enums.js';
|
|
4
|
-
import { LogType } from '../../tools/log.js';
|
|
5
|
-
export class FilterMaintenance extends Addon {
|
|
6
|
-
static topicHandlers(Service, parentAccessory, config) {
|
|
7
|
-
const FilterMaintenanceService = Service[AddonType.FilterMaintenance];
|
|
8
|
-
const filterMaintenance = Addon.new(parentAccessory, FilterMaintenanceService, config, ['topicGetFilterChangeIndication'], FilterMaintenance);
|
|
9
|
-
return filterMaintenance?.topicHandlers ?? [];
|
|
10
|
-
}
|
|
11
|
-
constructor(service, parentAccessory, config) {
|
|
12
|
-
super(parentAccessory, service, config);
|
|
13
|
-
this.setupCharacteristic(CharacteristicKey.FilterChangeIndication, this.Characteristic.FilterChangeIndication.FILTER_OK, 'topicGetFilterChangeIndication', this.onChangeIndicationUpdate.bind(this));
|
|
14
|
-
this.setupCharacteristic(CharacteristicKey.FilterLifeLevel, 100, 'topicGetFilterLifeLevel', this.bindOnUpdateNumeric(CharacteristicKey.FilterLifeLevel, strings.filter.level));
|
|
15
|
-
this.setupCharacteristicOnSet(CharacteristicKey.ResetFilterIndication, 'topicResetFilterIndication', this.onResetIndication.bind(this));
|
|
16
|
-
}
|
|
17
|
-
async onChangeIndicationUpdate(topic, value) {
|
|
18
|
-
const indication = value === this.getPrimitiveValue('valueFilterChange') ? 1 : 0;
|
|
19
|
-
if (!this.onUpdate(CharacteristicKey.FilterChangeIndication, indication)) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (indication === this.Characteristic.FilterChangeIndication.FILTER_OK) {
|
|
23
|
-
this.logIfDesired(strings.filter.ok);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
this.logIfDesired(LogType.WARNING, strings.filter.change);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
async onResetIndication(value) {
|
|
30
|
-
if (!this.assert('valueFilterReset')) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
this.onSet(CharacteristicKey.ResetFilterIndication, value, this.config.valueFilterReset, 'topicResetFilterIndication', strings.filter.reset);
|
|
34
|
-
this.properties.set(CharacteristicKey.ResetFilterIndication, 0);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/accessory/addons/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,OAAO,iBAAkB,SAAQ,KAA8B;IAEnE,MAAM,CAAC,aAAa,CAClB,OAAoB,EACpB,eAAmD,EACnD,MAA+B;QAE/B,MAAM,wBAAwB,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,iBAAiB,GACrB,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,gCAAgC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtH,OAAO,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,YACE,OAAgB,EAChB,eAAmD,EACnD,MAA+B;QAE/B,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,EACrH,gCAAgC,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAC7D,yBAAyB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhH,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAa,EAAE,KAAqB;QAEzE,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,UAAU,CAAC,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QAExD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7I,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
|
-
import { TemperatureControlAccessory } from './temperatureControl.js';
|
|
3
|
-
import { CharacteristicType, ActiveClimateConfig, ServiceType } from '../../model/types.js';
|
|
4
|
-
import { Log } from '../../tools/log.js';
|
|
5
|
-
export declare abstract class ActiveClimateAccessory<C extends ActiveClimateConfig = ActiveClimateConfig> extends TemperatureControlAccessory<C> {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
7
|
-
private onSetActive;
|
|
8
|
-
private onSetLockControls;
|
|
9
|
-
private onSetRotationSpeed;
|
|
10
|
-
private onSetSwingMode;
|
|
11
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { TemperatureControlAccessory } from './temperatureControl.js';
|
|
2
|
-
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { CharacteristicKey } from '../../model/enums.js';
|
|
4
|
-
export class ActiveClimateAccessory extends TemperatureControlAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setupCharacteristic(CharacteristicKey.Active, Characteristic.Active.INACTIVE, 'topicGetActive', this.bindOnUpdateNumericBoolean(CharacteristicKey.Active, 'valueStateActive', strings.heaterCooler.active, strings.heaterCooler.notActive), true, 'topicSetActive', this.onSetActive.bind(this));
|
|
8
|
-
this.setupCharacteristic(CharacteristicKey.LockPhysicalControls, Characteristic.LockPhysicalControls.CONTROL_LOCK_DISABLED, 'topicGetLockPhysicalControls', this.bindOnUpdateNumericBoolean(CharacteristicKey.LockPhysicalControls, 'valueControlLock', strings.heaterCooler.controlsLocked, strings.heaterCooler.controlsUnLocked), false, 'topicSetLockPhysicalControls', this.onSetLockControls.bind(this));
|
|
9
|
-
this.setupCharacteristic(CharacteristicKey.RotationSpeed, 0, 'topicGetRotationSpeed', this.bindOnUpdateNumeric(CharacteristicKey.RotationSpeed, strings.heaterCooler.rotationUpdate), false, 'topicSetRotationSpeed', this.onSetRotationSpeed.bind(this));
|
|
10
|
-
this.setupCharacteristic(CharacteristicKey.SwingMode, Characteristic.SwingMode.SWING_DISABLED, 'topicGetSwingMode', this.bindOnUpdateNumericBoolean(CharacteristicKey.SwingMode, 'valueSwingEnabled', strings.heaterCooler.swingEnabled, strings.heaterCooler.swingDisabled), false, 'topicSetSwingMode', this.onSetSwingMode.bind(this));
|
|
11
|
-
}
|
|
12
|
-
async onSetActive(value) {
|
|
13
|
-
if (!this.assert('valueStateActive', 'valueStateInactive')) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const active = value === this.Characteristic.Active.ACTIVE;
|
|
17
|
-
const logString = active ? strings.heaterCooler.activeSet : strings.heaterCooler.inactiveSet;
|
|
18
|
-
const publish = active ? this.config.valueStateActive : this.config.valueStateInactive;
|
|
19
|
-
this.onSet(CharacteristicKey.Active, value, publish, 'topicSetActive', logString);
|
|
20
|
-
}
|
|
21
|
-
async onSetLockControls(value) {
|
|
22
|
-
if (!this.assert('valueControlLock', 'valueControlUnlock')) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const lock = value === this.Characteristic.LockPhysicalControls.CONTROL_LOCK_ENABLED;
|
|
26
|
-
const logString = lock ? strings.heaterCooler.controlsLockFuture : strings.heaterCooler.controlsUnlockFuture;
|
|
27
|
-
const publish = lock ? this.config.valueControlLock : this.config.valueControlUnlock;
|
|
28
|
-
this.onSet(CharacteristicKey.LockPhysicalControls, value, publish, 'topicSetLockPhysicalControls', logString);
|
|
29
|
-
}
|
|
30
|
-
async onSetRotationSpeed(value) {
|
|
31
|
-
const logString = strings.heaterCooler.rotationSet.replace('%d', value.toString());
|
|
32
|
-
this.onSet(CharacteristicKey.RotationSpeed, value, value, 'topicSetRotationSpeed', logString);
|
|
33
|
-
}
|
|
34
|
-
async onSetSwingMode(value) {
|
|
35
|
-
if (!this.assert('valueSwingEnabled', 'valueSwingDisabled')) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const swing = value === this.Characteristic.SwingMode.SWING_ENABLED;
|
|
39
|
-
const logString = swing ? strings.heaterCooler.swingEnabledFuture : strings.heaterCooler.swingDisabledFuture;
|
|
40
|
-
const publish = swing ? this.config.valueSwingEnabled : this.config.valueSwingDisabled;
|
|
41
|
-
this.onSet(CharacteristicKey.SwingMode, value, publish, 'topicSetSwingMode', logString);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=active.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"active.js","sourceRoot":"","sources":["../../../src/accessory/climate/active.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAgB,sBAA4E,SAAQ,2BAA8B;IAEtI,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,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAC/E,gBAAgB,EAChB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAChJ,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB,CAAC,qBAAqB,EACxH,8BAA8B,EAC9B,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,oBAAoB,EAAE,kBAAkB,EAC1D,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAC7E,KAAK,EACL,8BAA8B,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAClE,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACzD,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAC9H,uBAAuB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,cAAc,EAC3F,mBAAmB,EACnB,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,EAC9E,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,EACxE,KAAK,EACL,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CACpD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAA0B;QAElD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;QAC7F,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QAExD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,oBAAoB,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAmB,CAAC;QACvF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,CAAC,CAAC;IAChH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAA0B;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,EAAE,KAAe,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAC1G,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAA0B;QAErD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC;QACpE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC;QAC7G,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAmB,CAAC;QACzF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAC1F,CAAC;CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
|
-
import { ActiveClimateAccessory } from './active.js';
|
|
3
|
-
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import { CharacteristicType, ServiceType, FanV2Config } from '../../model/types.js';
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
6
|
-
export declare class FanV2Accessory extends ActiveClimateAccessory<FanV2Config> {
|
|
7
|
-
private readonly CURRENT_STATE_MAP;
|
|
8
|
-
private readonly TARGET_STATE_MAP;
|
|
9
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: FanV2Config, log: Log, isGrouped: boolean);
|
|
10
|
-
protected getAccessoryType(): AccessoryType;
|
|
11
|
-
private onCurrentStateUpdate;
|
|
12
|
-
private onTargetStateUpdate;
|
|
13
|
-
private onSetTargetState;
|
|
14
|
-
private onSetDirection;
|
|
15
|
-
private fromCVState;
|
|
16
|
-
private toCurrentCVState;
|
|
17
|
-
private toTargetCVState;
|
|
18
|
-
private stateStringForCurrentCV;
|
|
19
|
-
private stateStringForTargetCV;
|
|
20
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { ActiveClimateAccessory } from './active.js';
|
|
2
|
-
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
|
|
4
|
-
export class FanV2Accessory extends ActiveClimateAccessory {
|
|
5
|
-
CURRENT_STATE_MAP;
|
|
6
|
-
TARGET_STATE_MAP;
|
|
7
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
8
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
9
|
-
this.CURRENT_STATE_MAP = new Map([
|
|
10
|
-
['valueModeInactive', Characteristic.CurrentFanState.INACTIVE],
|
|
11
|
-
['valueModeIdle', Characteristic.CurrentFanState.IDLE],
|
|
12
|
-
['valueModeBlowing', Characteristic.CurrentFanState.BLOWING_AIR],
|
|
13
|
-
]);
|
|
14
|
-
this.TARGET_STATE_MAP = new Map([
|
|
15
|
-
['valueModeAuto', Characteristic.TargetFanState.AUTO],
|
|
16
|
-
['valueModeManual', Characteristic.TargetFanState.MANUAL],
|
|
17
|
-
]);
|
|
18
|
-
const validCurrentStates = Array.from(this.CURRENT_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
19
|
-
if (config.topicGetCurrentFanState !== undefined && validCurrentStates.length === 0) {
|
|
20
|
-
this.log.error(strings.fanv2.noCurrentStateValues, this.name);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
this.setupCharacteristic(CharacteristicKey.CurrentFanState, this.CURRENT_STATE_MAP.get(validCurrentStates[0]), 'topicGetCurrentFanState', this.onCurrentStateUpdate.bind(this), false)
|
|
24
|
-
?.setProps({ validValues: validCurrentStates.map((key) => this.CURRENT_STATE_MAP.get(key)) });
|
|
25
|
-
const validTargetStates = Array.from(this.TARGET_STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
|
|
26
|
-
if (config.topicGetTargetFanState !== undefined && validTargetStates.length === 0) {
|
|
27
|
-
this.log.error(strings.fanv2.noTargetStateValues, this.name);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
this.setupCharacteristic(CharacteristicKey.TargetFanState, this.TARGET_STATE_MAP.get(validTargetStates[0]), 'topicGetTargetFanState', this.onTargetStateUpdate.bind(this), false, 'topicSetTargetFanState', this.onSetTargetState.bind(this))
|
|
31
|
-
?.setProps({ validValues: validTargetStates.map((key) => this.TARGET_STATE_MAP.get(key)) });
|
|
32
|
-
this.setupCharacteristic(CharacteristicKey.RotationDirection, Characteristic.RotationDirection.CLOCKWISE, 'topicGetRotationDirection', this.bindOnUpdateNumericBoolean(CharacteristicKey.RotationDirection, 'valueDirectionCounterClockwise', strings.fanv2.clockwise, strings.fanv2.counterClockwise), false, 'topicSetRotationDirection', this.onSetDirection.bind(this));
|
|
33
|
-
}
|
|
34
|
-
getAccessoryType() {
|
|
35
|
-
return AccessoryType.Fanv2;
|
|
36
|
-
}
|
|
37
|
-
async onCurrentStateUpdate(_topic, value) {
|
|
38
|
-
const state = this.toCurrentCVState(value);
|
|
39
|
-
if (state === undefined) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.onUpdate(CharacteristicKey.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(CharacteristicKey.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(CharacteristicKey.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(CharacteristicKey.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
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=fan2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fan2.js","sourceRoot":"","sources":["../../../src/accessory/climate/fan2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,cAAe,SAAQ,sBAAmC;IAEpD,iBAAiB,CAAiC;IAClD,gBAAgB,CAAiC;IAElE,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EACtF,MAAmB,EAAE,GAAQ,EAAE,SAAkB;QACjD,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAC;YAC/B,CAAC,mBAAmB,EAAE,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC9D,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC;YACtD,CAAC,kBAAkB,EAAE,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC;SACjE,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC;YAC9B,CAAC,eAAe,EAAE,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC;YACrD,CAAC,iBAAiB,EAAE,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QACjI,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAE,EAC5G,yBAAyB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;YACvE,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAC;QAEjG,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QAC/H,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAE,EACzG,wBAAwB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EACpE,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAC;QAE/F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,cAAc,CAAC,iBAAiB,CAAC,SAAS,EACtG,2BAA2B,EAC3B,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,gCAAgC,EACnG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAC1D,KAAK,EACL,2BAA2B,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5D,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,KAAqB;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,KAAqB;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAA0B;QAEvD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5H,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAA0B;QAErD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,EAAE,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC;QAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC;QAC/G,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,8BAA+B,CAAC;QAC/G,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,SAAS,CAAC,CAAC;IAG1G,CAAC;IAEO,WAAW,CAAC,KAA0B;QAE5C,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,gBAAgB,CAAC,KAAqB;QAC5C,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,KAAK,CAAC;gBACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACzD,KAAK,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC;gBACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,CAAC;gBACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,eAAe,CAAC,KAAqB;QAC3C,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC;gBACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,CAAC;gBACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,uBAAuB,CAAC,KAA0B;QACxD,QAAO,KAAK,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ;gBAC/C,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YACrC,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI;gBAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACjC,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,WAAW;gBAClD,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YACpC;gBACE,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,KAA0B;QACvD,QAAO,KAAK,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI;gBAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACjC,KAAK,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM;gBAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YACnC;gBACE,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
|
-
import { ActiveClimateAccessory } from './active.js';
|
|
3
|
-
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import { CharacteristicType, ServiceType, PurifierConfig } from '../../model/types.js';
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
6
|
-
export declare class PurifierAccessory extends ActiveClimateAccessory<PurifierConfig> {
|
|
7
|
-
private readonly CURRENT_STATE_MAP;
|
|
8
|
-
private readonly TARGET_STATE_MAP;
|
|
9
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: PurifierConfig, log: Log, isGrouped: boolean);
|
|
10
|
-
protected getAccessoryType(): AccessoryType;
|
|
11
|
-
private onCurrentStateUpdate;
|
|
12
|
-
private onTargetStateUpdate;
|
|
13
|
-
private onSetTargetState;
|
|
14
|
-
private fromCVState;
|
|
15
|
-
private toCurrentCVState;
|
|
16
|
-
private toTargetCVState;
|
|
17
|
-
private stateStringForCurrentCV;
|
|
18
|
-
private stateStringForTargetCV;
|
|
19
|
-
}
|