@zwave-js/config 12.12.0 → 13.0.0-beta.4
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/build/ConfigManager.d.ts +0 -69
- package/build/ConfigManager.d.ts.map +1 -1
- package/build/ConfigManager.js +1 -542
- package/build/ConfigManager.js.map +1 -1
- package/build/JsonTemplate.js +2 -3
- package/build/JsonTemplate.js.map +1 -1
- package/build/Logic.js +2 -3
- package/build/Logic.js.map +1 -1
- package/build/Manufacturers.js +2 -3
- package/build/Manufacturers.js.map +1 -1
- package/build/devices/ConditionalItem.js +4 -5
- package/build/devices/ConditionalItem.js.map +1 -1
- package/build/devices/ConditionalPrimitive.d.ts.map +1 -1
- package/build/devices/ConditionalPrimitive.js +2 -2
- package/build/devices/ConditionalPrimitive.js.map +1 -1
- package/build/devices/DeviceConfig.d.ts +0 -1
- package/build/devices/DeviceConfig.d.ts.map +1 -1
- package/build/devices/DeviceConfig.js +5 -5
- package/build/devices/DeviceConfig.js.map +1 -1
- package/build/devices/DeviceMetadata.d.ts.map +1 -1
- package/build/devices/ParamInformation.d.ts.map +1 -1
- package/build/devices/ParamInformation.js +2 -2
- package/build/devices/ParamInformation.js.map +1 -1
- package/build/index.d.ts +0 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +0 -6
- package/build/index.js.map +1 -1
- package/build/index_safe.d.ts +0 -6
- package/build/index_safe.d.ts.map +1 -1
- package/build/index_safe.js +0 -6
- package/build/index_safe.js.map +1 -1
- package/build/utils.js +6 -6
- package/build/utils.js.map +1 -1
- package/build/utils_safe.js +3 -3
- package/build/utils_safe.js.map +1 -1
- package/config/devices/0x0060/an158.json +14 -20
- package/config/devices/0x0063/59350_59372_59373_zwa3016.json +92 -0
- package/config/devices/0x010f/fgrm222_0_24.23.json +18 -1
- package/config/devices/0x0129/ntb612-zw2.json +1 -1
- package/config/devices/0x0129/ntb622-zw2.json +1 -1
- package/config/devices/0x0129/ntb632-zw2.json +1 -1
- package/config/devices/0x0129/ntb642-zw2.json +1 -1
- package/config/devices/0x0129/ntm612-zw2.json +1 -1
- package/config/devices/0x0129/ntm617-zw2.json +1 -1
- package/config/devices/0x0129/ntm622-zw2.json +1 -1
- package/config/devices/0x0129/ntm627-zw2.json +1 -1
- package/config/devices/0x0129/ntm632-zw2.json +1 -1
- package/config/devices/0x0129/ntm637-zw2.json +1 -1
- package/config/devices/0x0129/ntm642-zw2.json +1 -1
- package/config/devices/0x0129/ntm647-zw2.json +1 -1
- package/config/devices/0x0129/ntt610.json +1 -2
- package/config/devices/0x0129/ntt612-zw2.json +1 -1
- package/config/devices/0x0129/ntt622-zw2.json +1 -1
- package/config/devices/0x0129/templates/yale_template.json +22 -7
- package/config/devices/0x0129/yrc_yrd_226_246_256_446-zw2.json +11 -1
- package/config/devices/0x0129/yrd4x0-f-zw3.json +109 -0
- package/config/devices/0x0148/cometz_700.json +49 -0
- package/config/devices/0x014a/gdzw7-eco.json +78 -0
- package/config/devices/0x014f/{gd00z-7.json → gd00z-6-7-8.json} +1 -1
- package/config/devices/0x015f/mh-s412-5102.json +213 -59
- package/config/devices/0x027a/templates/zooz_template.json +32 -0
- package/config/devices/0x027a/zen30.json +67 -15
- package/config/devices/0x027a/zen32.json +1 -2
- package/config/devices/0x027a/zse11.json +10 -0
- package/config/devices/0x0346/flood_freeze_sensor.json +77 -0
- package/config/devices/0x0458/61303_zw3010.json +73 -0
- package/config/manufacturers.json +1 -0
- package/package.json +11 -10
- package/build/DeviceClasses.d.ts +0 -26
- package/build/DeviceClasses.d.ts.map +0 -1
- package/build/DeviceClasses.js +0 -127
- package/build/DeviceClasses.js.map +0 -1
- package/build/Indicators.d.ts +0 -15
- package/build/Indicators.d.ts.map +0 -1
- package/build/Indicators.js +0 -47
- package/build/Indicators.js.map +0 -1
- package/build/Meters.d.ts +0 -15
- package/build/Meters.d.ts.map +0 -1
- package/build/Meters.js +0 -44
- package/build/Meters.js.map +0 -1
- package/build/Notifications.d.ts +0 -71
- package/build/Notifications.d.ts.map +0 -1
- package/build/Notifications.js +0 -223
- package/build/Notifications.js.map +0 -1
- package/build/Scales.d.ts +0 -15
- package/build/Scales.d.ts.map +0 -1
- package/build/Scales.js +0 -37
- package/build/Scales.js.map +0 -1
- package/build/SensorTypes.d.ts +0 -11
- package/build/SensorTypes.d.ts.map +0 -1
- package/build/SensorTypes.js +0 -48
- package/build/SensorTypes.js.map +0 -1
- package/config/deviceClasses.json +0 -447
- package/config/indicators.json +0 -166
- package/config/meters.json +0 -47
- package/config/scales.json +0 -85
- package/config/sensorTypes.json +0 -707
package/build/Notifications.js
DELETED
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationParameterWithEnum = exports.NotificationParameterWithValue = exports.NotificationParameterWithCommandClass = exports.NotificationParameterWithDuration = exports.NotificationParameter = exports.NotificationEvent = exports.NotificationState = exports.NotificationVariable = exports.Notification = void 0;
|
|
4
|
-
const safe_1 = require("@zwave-js/shared/safe");
|
|
5
|
-
const typeguards_1 = require("alcalzone-shared/typeguards");
|
|
6
|
-
const utils_safe_1 = require("./utils_safe");
|
|
7
|
-
class Notification {
|
|
8
|
-
constructor(id, definition) {
|
|
9
|
-
this.id = id;
|
|
10
|
-
this.name = definition.name;
|
|
11
|
-
this.variables = (0, typeguards_1.isArray)(definition.variables)
|
|
12
|
-
? definition.variables.map((v) => new NotificationVariable(v))
|
|
13
|
-
: [];
|
|
14
|
-
const events = new Map();
|
|
15
|
-
if ((0, typeguards_1.isObject)(definition.events)) {
|
|
16
|
-
for (const [eventId, eventDefinition] of Object.entries(definition.events)) {
|
|
17
|
-
if (!utils_safe_1.hexKeyRegexNDigits.test(eventId)) {
|
|
18
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid key "${eventId}" in notification ${(0, safe_1.num2hex)(id)}. Notification events must have lowercase hexadecimal IDs.`);
|
|
19
|
-
}
|
|
20
|
-
const eventIdNum = parseInt(eventId.slice(2), 16);
|
|
21
|
-
events.set(eventIdNum, new NotificationEvent(eventIdNum, eventDefinition));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
this.events = events;
|
|
25
|
-
}
|
|
26
|
-
id;
|
|
27
|
-
name;
|
|
28
|
-
variables;
|
|
29
|
-
events;
|
|
30
|
-
lookupValue(value) {
|
|
31
|
-
// Events are easier to look up, do that first
|
|
32
|
-
if (this.events.has(value)) {
|
|
33
|
-
const { id, ...event } = this.events.get(value);
|
|
34
|
-
return {
|
|
35
|
-
type: "event",
|
|
36
|
-
...event,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// Then try to find a variable with a matching state
|
|
40
|
-
const variable = this.variables.find((v) => v.states.has(value));
|
|
41
|
-
if (variable) {
|
|
42
|
-
const state = variable.states.get(value);
|
|
43
|
-
return {
|
|
44
|
-
type: "state",
|
|
45
|
-
value,
|
|
46
|
-
idle: variable.idle,
|
|
47
|
-
label: state.label,
|
|
48
|
-
description: state.description,
|
|
49
|
-
variableName: variable.name,
|
|
50
|
-
parameter: state.parameter,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.Notification = Notification;
|
|
56
|
-
class NotificationVariable {
|
|
57
|
-
constructor(definition) {
|
|
58
|
-
this.name = definition.name;
|
|
59
|
-
// By default all notification variables may return to idle
|
|
60
|
-
// Otherwise it must be specified explicitly using `idle: false`
|
|
61
|
-
this.idle = definition.idle !== false;
|
|
62
|
-
if (!(0, typeguards_1.isObject)(definition.states)) {
|
|
63
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `the variable definition for ${this.name} is not an object`);
|
|
64
|
-
}
|
|
65
|
-
const states = new Map();
|
|
66
|
-
for (const [stateId, stateDefinition] of Object.entries(definition.states)) {
|
|
67
|
-
if (!utils_safe_1.hexKeyRegexNDigits.test(stateId)) {
|
|
68
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid key "${stateId}" in notification variable ${this.name}. Notification states must have lowercase hexadecimal IDs.`);
|
|
69
|
-
}
|
|
70
|
-
const stateIdNum = parseInt(stateId.slice(2), 16);
|
|
71
|
-
states.set(stateIdNum, new NotificationState(stateIdNum, stateDefinition));
|
|
72
|
-
}
|
|
73
|
-
this.states = states;
|
|
74
|
-
}
|
|
75
|
-
name;
|
|
76
|
-
/** Whether the variable may be reset to idle */
|
|
77
|
-
idle;
|
|
78
|
-
states;
|
|
79
|
-
}
|
|
80
|
-
exports.NotificationVariable = NotificationVariable;
|
|
81
|
-
class NotificationState {
|
|
82
|
-
constructor(id, definition) {
|
|
83
|
-
this.id = id;
|
|
84
|
-
if (typeof definition.label !== "string") {
|
|
85
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, safe_1.num2hex)(id)} has a non-string label`);
|
|
86
|
-
}
|
|
87
|
-
this.label = definition.label;
|
|
88
|
-
if (definition.description != undefined
|
|
89
|
-
&& typeof definition.description !== "string") {
|
|
90
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, safe_1.num2hex)(id)} has a non-string description`);
|
|
91
|
-
}
|
|
92
|
-
this.description = definition.description;
|
|
93
|
-
if (definition.params != undefined) {
|
|
94
|
-
if (!(0, typeguards_1.isObject)(definition.params)) {
|
|
95
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter definition of notification state ${(0, safe_1.num2hex)(id)} must be an object`);
|
|
96
|
-
}
|
|
97
|
-
else if (typeof definition.params.type !== "string") {
|
|
98
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter type of notification state ${(0, safe_1.num2hex)(id)} must be a string`);
|
|
99
|
-
}
|
|
100
|
-
this.parameter = new NotificationParameter(definition.params);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
id;
|
|
104
|
-
label;
|
|
105
|
-
description;
|
|
106
|
-
parameter;
|
|
107
|
-
}
|
|
108
|
-
exports.NotificationState = NotificationState;
|
|
109
|
-
class NotificationEvent {
|
|
110
|
-
constructor(id, definition) {
|
|
111
|
-
this.id = id;
|
|
112
|
-
this.label = definition.label;
|
|
113
|
-
this.description = definition.description;
|
|
114
|
-
if (definition.params != undefined) {
|
|
115
|
-
if (!(0, typeguards_1.isObject)(definition.params)) {
|
|
116
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter definition of notification event ${(0, safe_1.num2hex)(id)} must be an object`);
|
|
117
|
-
}
|
|
118
|
-
else if (typeof definition.params.type !== "string") {
|
|
119
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter type of notification event ${(0, safe_1.num2hex)(id)} must be a string`);
|
|
120
|
-
}
|
|
121
|
-
this.parameter = new NotificationParameter(definition.params);
|
|
122
|
-
}
|
|
123
|
-
if (definition.idleVariables != undefined) {
|
|
124
|
-
if (!(0, typeguards_1.isArray)(definition.idleVariables)
|
|
125
|
-
|| !definition.idleVariables.every((n) => typeof n === "number"
|
|
126
|
-
|| (typeof n === "string"
|
|
127
|
-
&& utils_safe_1.hexKeyRegexNDigits.test(n)))) {
|
|
128
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The idleVariables definition of notification event ${(0, safe_1.num2hex)(id)} must be an array of numbers (may be hexadecimal)`);
|
|
129
|
-
}
|
|
130
|
-
this.idleVariables = definition.idleVariables.map((n) => typeof n === "string" ? parseInt(n, 16) : n);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
id;
|
|
134
|
-
label;
|
|
135
|
-
description;
|
|
136
|
-
parameter;
|
|
137
|
-
idleVariables;
|
|
138
|
-
}
|
|
139
|
-
exports.NotificationEvent = NotificationEvent;
|
|
140
|
-
class NotificationParameter {
|
|
141
|
-
constructor(definition) {
|
|
142
|
-
// Allow subclassing
|
|
143
|
-
if (new.target !== NotificationParameter)
|
|
144
|
-
return;
|
|
145
|
-
// Return the correct subclass
|
|
146
|
-
switch (definition.type) {
|
|
147
|
-
case "duration":
|
|
148
|
-
return new NotificationParameterWithDuration(definition);
|
|
149
|
-
case "commandclass":
|
|
150
|
-
return new NotificationParameterWithCommandClass(definition);
|
|
151
|
-
case "value":
|
|
152
|
-
return new NotificationParameterWithValue(definition);
|
|
153
|
-
case "enum":
|
|
154
|
-
return new NotificationParameterWithEnum(definition);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
exports.NotificationParameter = NotificationParameter;
|
|
159
|
-
/** Marks a notification that contains a duration */
|
|
160
|
-
class NotificationParameterWithDuration {
|
|
161
|
-
constructor(_definition) {
|
|
162
|
-
// nothing to do
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
exports.NotificationParameterWithDuration = NotificationParameterWithDuration;
|
|
166
|
-
/** Marks a notification that contains a CC */
|
|
167
|
-
class NotificationParameterWithCommandClass {
|
|
168
|
-
constructor(_definition) {
|
|
169
|
-
// nothing to do
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
exports.NotificationParameterWithCommandClass = NotificationParameterWithCommandClass;
|
|
173
|
-
/** Marks a notification that contains a named value */
|
|
174
|
-
class NotificationParameterWithValue {
|
|
175
|
-
constructor(definition) {
|
|
176
|
-
if (typeof definition.name !== "string") {
|
|
177
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `Missing property name definition for Notification parameter with type: "value"!`);
|
|
178
|
-
}
|
|
179
|
-
this.propertyName = definition.name;
|
|
180
|
-
}
|
|
181
|
-
propertyName;
|
|
182
|
-
}
|
|
183
|
-
exports.NotificationParameterWithValue = NotificationParameterWithValue;
|
|
184
|
-
/** Marks a notification that contains an enumeration of values */
|
|
185
|
-
class NotificationParameterWithEnum {
|
|
186
|
-
constructor(definition) {
|
|
187
|
-
if (!(0, typeguards_1.isObject)(definition.values)) {
|
|
188
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `Found a non-object definition for enum values`);
|
|
189
|
-
}
|
|
190
|
-
const values = new Map();
|
|
191
|
-
for (const [enumValue, enumLabel] of Object.entries(definition.values)) {
|
|
192
|
-
if (!utils_safe_1.hexKeyRegexNDigits.test(enumValue)) {
|
|
193
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid enum value "${enumValue}". All enum values must be defined in hexadecimal.`);
|
|
194
|
-
}
|
|
195
|
-
else if (typeof enumLabel !== "string") {
|
|
196
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid label for enum value "${enumValue}". All enum labels must be defined as strings.`);
|
|
197
|
-
}
|
|
198
|
-
values.set(parseInt(enumValue, 16), enumLabel);
|
|
199
|
-
}
|
|
200
|
-
this.values = values;
|
|
201
|
-
if (definition.default != undefined) {
|
|
202
|
-
let defaultVal;
|
|
203
|
-
if (typeof definition.default === "number") {
|
|
204
|
-
defaultVal = definition.default;
|
|
205
|
-
}
|
|
206
|
-
else if (typeof definition.default === "string"
|
|
207
|
-
&& utils_safe_1.hexKeyRegexNDigits.test(definition.default)) {
|
|
208
|
-
defaultVal = parseInt(definition.default, 16);
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The default value for an event parameter enum must be a number or a string in hexadecimal format`);
|
|
212
|
-
}
|
|
213
|
-
if (!values.has(defaultVal)) {
|
|
214
|
-
(0, utils_safe_1.throwInvalidConfig)("notifications", `The default value for an event parameter enum must be one of the defined values`);
|
|
215
|
-
}
|
|
216
|
-
this.default = defaultVal;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
values;
|
|
220
|
-
default;
|
|
221
|
-
}
|
|
222
|
-
exports.NotificationParameterWithEnum = NotificationParameterWithEnum;
|
|
223
|
-
//# sourceMappingURL=Notifications.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Notifications.js","sourceRoot":"","sources":["../src/Notifications.ts"],"names":[],"mappings":"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"}
|
package/build/Scales.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type JSONObject } from "@zwave-js/shared/safe";
|
|
2
|
-
export type ScaleGroup = ReadonlyMap<number, Scale> & {
|
|
3
|
-
/** The name of the scale group if it is named */
|
|
4
|
-
readonly name?: string;
|
|
5
|
-
};
|
|
6
|
-
export type NamedScalesGroupMap = ReadonlyMap<string, ScaleGroup>;
|
|
7
|
-
export declare function getDefaultScale(scale: number): Scale;
|
|
8
|
-
export declare class Scale {
|
|
9
|
-
constructor(key: number, definition: JSONObject);
|
|
10
|
-
readonly key: number;
|
|
11
|
-
readonly unit: string | undefined;
|
|
12
|
-
readonly label: string;
|
|
13
|
-
readonly description: string | undefined;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=Scales.d.ts.map
|
package/build/Scales.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Scales.d.ts","sourceRoot":"","sources":["../src/Scales.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAW,MAAM,uBAAuB,CAAC;AAGjE,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG;IACrD,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAElE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAKpD;AAED,qBAAa,KAAK;gBACE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAgCtD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD"}
|
package/build/Scales.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Scale = exports.getDefaultScale = void 0;
|
|
4
|
-
const safe_1 = require("@zwave-js/shared/safe");
|
|
5
|
-
const utils_safe_1 = require("./utils_safe");
|
|
6
|
-
function getDefaultScale(scale) {
|
|
7
|
-
return new Scale(scale, {
|
|
8
|
-
unit: undefined,
|
|
9
|
-
label: "Unknown",
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
exports.getDefaultScale = getDefaultScale;
|
|
13
|
-
class Scale {
|
|
14
|
-
constructor(key, definition) {
|
|
15
|
-
this.key = key;
|
|
16
|
-
if (typeof definition.label !== "string") {
|
|
17
|
-
(0, utils_safe_1.throwInvalidConfig)("named scales", `The label for scale ${(0, safe_1.num2hex)(key)} is not a string!`);
|
|
18
|
-
}
|
|
19
|
-
this.label = definition.label;
|
|
20
|
-
if (definition.unit != undefined
|
|
21
|
-
&& typeof definition.unit !== "string") {
|
|
22
|
-
(0, utils_safe_1.throwInvalidConfig)("named scales", `The unit for scale ${(0, safe_1.num2hex)(key)} is not a string!`);
|
|
23
|
-
}
|
|
24
|
-
this.unit = definition.unit;
|
|
25
|
-
if (definition.description != undefined
|
|
26
|
-
&& typeof definition.description !== "string") {
|
|
27
|
-
(0, utils_safe_1.throwInvalidConfig)("named scales", `The description for scale ${(0, safe_1.num2hex)(key)} is not a string!`);
|
|
28
|
-
}
|
|
29
|
-
this.description = definition.description;
|
|
30
|
-
}
|
|
31
|
-
key;
|
|
32
|
-
unit;
|
|
33
|
-
label;
|
|
34
|
-
description;
|
|
35
|
-
}
|
|
36
|
-
exports.Scale = Scale;
|
|
37
|
-
//# sourceMappingURL=Scales.js.map
|
package/build/Scales.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Scales.js","sourceRoot":"","sources":["../src/Scales.ts"],"names":[],"mappings":";;;AAAA,gDAAiE;AACjE,6CAAkD;AAQlD,SAAgB,eAAe,CAAC,KAAa;IAC5C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KAChB,CAAC,CAAC;AACJ,CAAC;AALD,0CAKC;AAED,MAAa,KAAK;IACjB,YAAmB,GAAW,EAAE,UAAsB;QACrD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAA,+BAAkB,EACjB,cAAc,EACd,uBAAuB,IAAA,cAAO,EAAC,GAAG,CAAC,mBAAmB,CACtD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IACC,UAAU,CAAC,IAAI,IAAI,SAAS;eACzB,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EACrC,CAAC;YACF,IAAA,+BAAkB,EACjB,cAAc,EACd,sBAAsB,IAAA,cAAO,EAAC,GAAG,CAAC,mBAAmB,CACrD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IACC,UAAU,CAAC,WAAW,IAAI,SAAS;eAChC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,EAC5C,CAAC;YACF,IAAA,+BAAkB,EACjB,cAAc,EACd,6BAA6B,IAAA,cAAO,EAAC,GAAG,CAAC,mBAAmB,CAC5D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC3C,CAAC;IAEe,GAAG,CAAS;IACZ,IAAI,CAAqB;IACzB,KAAK,CAAS;IACd,WAAW,CAAqB;CAChD;AArCD,sBAqCC"}
|
package/build/SensorTypes.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type JSONObject } from "@zwave-js/shared/safe";
|
|
2
|
-
import type { ConfigManager } from "./ConfigManager";
|
|
3
|
-
import { type ScaleGroup } from "./Scales";
|
|
4
|
-
export type SensorTypeMap = ReadonlyMap<number, SensorType>;
|
|
5
|
-
export declare class SensorType {
|
|
6
|
-
constructor(manager: ConfigManager, key: number, definition: JSONObject);
|
|
7
|
-
readonly key: number;
|
|
8
|
-
readonly label: string;
|
|
9
|
-
readonly scales: ScaleGroup;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=SensorTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SensorTypes.d.ts","sourceRoot":"","sources":["../src/SensorTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAW,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAI5D,qBAAa,UAAU;gBAErB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU;IA+DvB,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,UAAU,CAAC;CACnC"}
|
package/build/SensorTypes.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SensorType = void 0;
|
|
4
|
-
const safe_1 = require("@zwave-js/core/safe");
|
|
5
|
-
const safe_2 = require("@zwave-js/shared/safe");
|
|
6
|
-
const typeguards_1 = require("alcalzone-shared/typeguards");
|
|
7
|
-
const Scales_1 = require("./Scales");
|
|
8
|
-
const utils_safe_1 = require("./utils_safe");
|
|
9
|
-
const namedScalesMarker = "$SCALES:";
|
|
10
|
-
class SensorType {
|
|
11
|
-
constructor(manager, key, definition) {
|
|
12
|
-
this.key = key;
|
|
13
|
-
if (typeof definition.label !== "string") {
|
|
14
|
-
(0, utils_safe_1.throwInvalidConfig)("sensor types", `label for ${(0, safe_2.num2hex)(key)} is not a string`);
|
|
15
|
-
}
|
|
16
|
-
this.label = definition.label;
|
|
17
|
-
if (typeof definition.scales === "string"
|
|
18
|
-
&& definition.scales.startsWith(namedScalesMarker)) {
|
|
19
|
-
// This is referencing a named scale
|
|
20
|
-
const scaleName = definition.scales.slice(namedScalesMarker.length);
|
|
21
|
-
const scales = manager.lookupNamedScaleGroup(scaleName);
|
|
22
|
-
if (!scales) {
|
|
23
|
-
throw new safe_1.ZWaveError(`Sensor type ${(0, safe_2.num2hex)(key)} is referencing non-existing named scale "${scaleName}"!`, safe_1.ZWaveErrorCodes.Config_Invalid);
|
|
24
|
-
}
|
|
25
|
-
this.scales = scales;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// This is an inline scale definition
|
|
29
|
-
const scales = new Map();
|
|
30
|
-
if (!(0, typeguards_1.isObject)(definition.scales)) {
|
|
31
|
-
(0, utils_safe_1.throwInvalidConfig)("sensor types", `scale definition for ${(0, safe_2.num2hex)(key)} is not an object`);
|
|
32
|
-
}
|
|
33
|
-
for (const [scaleKey, scaleDefinition] of Object.entries(definition.scales)) {
|
|
34
|
-
if (!utils_safe_1.hexKeyRegexNDigits.test(scaleKey)) {
|
|
35
|
-
(0, utils_safe_1.throwInvalidConfig)("sensor types", `found invalid key "${scaleKey}" in sensor type ${(0, safe_2.num2hex)(key)}. Sensor scales must have lowercase hexadecimal IDs.`);
|
|
36
|
-
}
|
|
37
|
-
const scaleKeyNum = parseInt(scaleKey.slice(2), 16);
|
|
38
|
-
scales.set(scaleKeyNum, new Scales_1.Scale(scaleKeyNum, scaleDefinition));
|
|
39
|
-
}
|
|
40
|
-
this.scales = scales;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
key;
|
|
44
|
-
label;
|
|
45
|
-
scales;
|
|
46
|
-
}
|
|
47
|
-
exports.SensorType = SensorType;
|
|
48
|
-
//# sourceMappingURL=SensorTypes.js.map
|
package/build/SensorTypes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SensorTypes.js","sourceRoot":"","sources":["../src/SensorTypes.ts"],"names":[],"mappings":";;;AAAA,8CAAkE;AAClE,gDAAiE;AACjE,4DAAuD;AAEvD,qCAAkD;AAClD,6CAAsE;AAItE,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAErC,MAAa,UAAU;IACtB,YACC,OAAsB,EACtB,GAAW,EACX,UAAsB;QAEtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAA,+BAAkB,EACjB,cAAc,EACd,aAAa,IAAA,cAAO,EAAC,GAAG,CAAC,kBAAkB,CAC3C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE9B,IACC,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ;eAClC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,EACjD,CAAC;YACF,oCAAoC;YACpC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,iBAAU,CACnB,eACC,IAAA,cAAO,EACN,GAAG,CAEL,6CAA6C,SAAS,IAAI,EAC1D,sBAAe,CAAC,cAAc,CAC9B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,qCAAqC;YACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;YACxC,IAAI,CAAC,IAAA,qBAAQ,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,IAAA,+BAAkB,EACjB,cAAc,EACd,wBAAwB,IAAA,cAAO,EAAC,GAAG,CAAC,mBAAmB,CACvD,CAAC;YACH,CAAC;YACD,KACC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAClD,UAAU,CAAC,MAAM,CACjB,EACA,CAAC;gBACF,IAAI,CAAC,+BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,IAAA,+BAAkB,EACjB,cAAc,EACd,sBAAsB,QAAQ,oBAC7B,IAAA,cAAO,EACN,GAAG,CAEL,uDAAuD,CACvD,CAAC;gBACH,CAAC;gBACD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,GAAG,CACT,WAAW,EACX,IAAI,cAAK,CAAC,WAAW,EAAE,eAAsB,CAAC,CAC9C,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;IACF,CAAC;IAEe,GAAG,CAAS;IACZ,KAAK,CAAS;IACd,MAAM,CAAa;CACnC;AAtED,gCAsEC"}
|