zigbee-herdsman-converters 25.30.0 → 25.32.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 +32 -0
- package/dist/converters/fromZigbee.d.ts.map +1 -1
- package/dist/converters/fromZigbee.js +4 -0
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/converters/toZigbee.d.ts.map +1 -1
- package/dist/converters/toZigbee.js +5 -0
- package/dist/converters/toZigbee.js.map +1 -1
- package/dist/devices/inovelli.d.ts.map +1 -1
- package/dist/devices/inovelli.js +3 -2
- package/dist/devices/inovelli.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +7 -0
- package/dist/devices/philips.js.map +1 -1
- package/dist/devices/schneider_electric.d.ts.map +1 -1
- package/dist/devices/schneider_electric.js +13 -0
- package/dist/devices/schneider_electric.js.map +1 -1
- package/dist/devices/shelly.d.ts.map +1 -1
- package/dist/devices/shelly.js +11 -0
- package/dist/devices/shelly.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +5 -2
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/ubisys.d.ts.map +1 -1
- package/dist/devices/ubisys.js +69 -80
- package/dist/devices/ubisys.js.map +1 -1
- package/dist/devices/yokis.d.ts.map +1 -1
- package/dist/devices/yokis.js +450 -49
- package/dist/devices/yokis.js.map +1 -1
- package/dist/devices/zemismart.d.ts.map +1 -1
- package/dist/devices/zemismart.js +24 -8
- package/dist/devices/zemismart.js.map +1 -1
- package/dist/devices/zigbeetlc.d.ts.map +1 -1
- package/dist/devices/zigbeetlc.js +10 -1
- package/dist/devices/zigbeetlc.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +1 -1
package/dist/devices/yokis.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.definitions = void 0;
|
|
37
37
|
const zigbee_herdsman_1 = require("zigbee-herdsman");
|
|
38
38
|
const tz = __importStar(require("../converters/toZigbee"));
|
|
39
|
+
const constants_1 = require("../lib/constants");
|
|
39
40
|
const exposes = __importStar(require("../lib/exposes"));
|
|
40
41
|
const logger_1 = require("../lib/logger");
|
|
41
42
|
const m = __importStar(require("../lib/modernExtend"));
|
|
@@ -66,6 +67,15 @@ const inputModeEnum = {
|
|
|
66
67
|
relay: 0x03,
|
|
67
68
|
fp_in: 0x04, // Fil pilote
|
|
68
69
|
};
|
|
70
|
+
// pilotwireOrderEnun (manuSpecificYokisPilotWire)
|
|
71
|
+
const pilotwireOrderEnun = {
|
|
72
|
+
stop: 0x00,
|
|
73
|
+
frost_off: 0x01,
|
|
74
|
+
eco: 0x02,
|
|
75
|
+
confort_2: 0x03,
|
|
76
|
+
confort_1: 0x04,
|
|
77
|
+
confort: 0x05,
|
|
78
|
+
};
|
|
69
79
|
const YokisClustersDefinition = {
|
|
70
80
|
manuSpecificYokisDevice: {
|
|
71
81
|
ID: 0xfc01,
|
|
@@ -472,7 +482,7 @@ const YokisClustersDefinition = {
|
|
|
472
482
|
ID: 0x00,
|
|
473
483
|
parameters: [
|
|
474
484
|
// Order to be set: 0x00 -> Stop, 0x01 -> Frost-off, 0x02 -> Eco, 0x03 -> Confort-2, 0x04 -> Confort-1, 0x05 -> Confort
|
|
475
|
-
{ name: "
|
|
485
|
+
{ name: "order", type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
|
|
476
486
|
],
|
|
477
487
|
},
|
|
478
488
|
// Toggle between order by respecting the scrolling order.
|
|
@@ -820,6 +830,19 @@ const yokisExtendChecks = {
|
|
|
820
830
|
},
|
|
821
831
|
};
|
|
822
832
|
},
|
|
833
|
+
parsePilotwireOrder: (input) => {
|
|
834
|
+
if (!input) {
|
|
835
|
+
throw new Error("MISSING_INPUT");
|
|
836
|
+
}
|
|
837
|
+
if (!Object.keys(pilotwireOrderEnun).includes(input)) {
|
|
838
|
+
throw new Error("INVALID_ORDER_ACTION");
|
|
839
|
+
}
|
|
840
|
+
return {
|
|
841
|
+
payload: {
|
|
842
|
+
order: utils.getFromLookup(input, pilotwireOrderEnun),
|
|
843
|
+
},
|
|
844
|
+
};
|
|
845
|
+
},
|
|
823
846
|
log: (key, value, payload) => {
|
|
824
847
|
logger_1.logger.debug(`Invoked converter with key: '${key}'`, NS);
|
|
825
848
|
logger_1.logger.debug(`Invoked converter with values:${JSON.stringify(value)}`, NS);
|
|
@@ -1293,6 +1316,50 @@ const yokisCommandsExtend = {
|
|
|
1293
1316
|
isModernExtend: true,
|
|
1294
1317
|
};
|
|
1295
1318
|
},
|
|
1319
|
+
// biome-ignore lint/style/useNamingConvention: The current naming convention is currently matching the Yokis documentation
|
|
1320
|
+
pilotwire_setOrder: () => {
|
|
1321
|
+
const exposes = e
|
|
1322
|
+
.enum("pilotwire_set_order", ea.SET, Object.keys(pilotwireOrderEnun))
|
|
1323
|
+
.withDescription("Set the device in the specified order.")
|
|
1324
|
+
.withCategory("config");
|
|
1325
|
+
const toZigbee = [
|
|
1326
|
+
{
|
|
1327
|
+
key: ["pilotwire_set_order"],
|
|
1328
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1329
|
+
utils.assertString(value);
|
|
1330
|
+
const commandWrapper = yokisExtendChecks.parsePilotwireOrder(value);
|
|
1331
|
+
yokisExtendChecks.log(key, value, commandWrapper.payload);
|
|
1332
|
+
await entity.command("manuSpecificYokisPilotWire", "setOrder", commandWrapper.payload);
|
|
1333
|
+
},
|
|
1334
|
+
},
|
|
1335
|
+
];
|
|
1336
|
+
return {
|
|
1337
|
+
exposes: [exposes],
|
|
1338
|
+
toZigbee,
|
|
1339
|
+
isModernExtend: true,
|
|
1340
|
+
};
|
|
1341
|
+
},
|
|
1342
|
+
// biome-ignore lint/style/useNamingConvention: The current naming convention is currently matching the Yokis documentation
|
|
1343
|
+
pilotwire_toggleOrder: () => {
|
|
1344
|
+
const exposes = e
|
|
1345
|
+
.enum("pilotwire_toggle_order", ea.SET, ["pilotwire_toggle_order"])
|
|
1346
|
+
.withDescription("Toggle between order by respecting the scrolling order")
|
|
1347
|
+
.withCategory("config");
|
|
1348
|
+
const toZigbee = [
|
|
1349
|
+
{
|
|
1350
|
+
key: ["pilotwire_toggle_order"],
|
|
1351
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1352
|
+
yokisExtendChecks.log(key, value);
|
|
1353
|
+
await entity.command("manuSpecificYokisPilotWire", "toggleOrder", {});
|
|
1354
|
+
},
|
|
1355
|
+
},
|
|
1356
|
+
];
|
|
1357
|
+
return {
|
|
1358
|
+
exposes: [exposes],
|
|
1359
|
+
toZigbee,
|
|
1360
|
+
isModernExtend: true,
|
|
1361
|
+
};
|
|
1362
|
+
},
|
|
1296
1363
|
};
|
|
1297
1364
|
// Yokis specific definition
|
|
1298
1365
|
// Yokis does not support the timer OnOff cluster. It uses a custom cluster instead.
|
|
@@ -1339,12 +1406,7 @@ const YokisInputExtend = [
|
|
|
1339
1406
|
lookup: inputModeEnum,
|
|
1340
1407
|
cluster: "manuSpecificYokisInput",
|
|
1341
1408
|
attribute: "inputMode",
|
|
1342
|
-
description:
|
|
1343
|
-
- 0 -> Unknown
|
|
1344
|
-
- 1 -> Push button
|
|
1345
|
-
- 2 -> Switch
|
|
1346
|
-
- 3 -> Relay
|
|
1347
|
-
- 4 -> FP_IN`,
|
|
1409
|
+
description: "Indicate how the input should be handled",
|
|
1348
1410
|
entityCategory: "config",
|
|
1349
1411
|
}),
|
|
1350
1412
|
// InputMode
|
|
@@ -1353,9 +1415,7 @@ const YokisInputExtend = [
|
|
|
1353
1415
|
lookup: { nc: 0x00, no: 0x01 },
|
|
1354
1416
|
cluster: "manuSpecificYokisInput",
|
|
1355
1417
|
attribute: "contactMode",
|
|
1356
|
-
description:
|
|
1357
|
-
- 0 -> NC
|
|
1358
|
-
- 1 -> NO`,
|
|
1418
|
+
description: "Indicate the contact nature of the entry",
|
|
1359
1419
|
entityCategory: "config",
|
|
1360
1420
|
}),
|
|
1361
1421
|
// LastLocalCommandState
|
|
@@ -1610,10 +1670,7 @@ const yokisLightControlExtend = [
|
|
|
1610
1670
|
lookup: { timer: 0x00, staircase: 0x01, pulse: 0x02 },
|
|
1611
1671
|
cluster: "manuSpecificYokisLightControl",
|
|
1612
1672
|
attribute: "operatingMode",
|
|
1613
|
-
description:
|
|
1614
|
-
- 0x00 -> Timer
|
|
1615
|
-
- 0x01 -> Staircase
|
|
1616
|
-
- 0x02 -> Pulse`,
|
|
1673
|
+
description: "Indicates the operating mode",
|
|
1617
1674
|
entityCategory: "config",
|
|
1618
1675
|
}),
|
|
1619
1676
|
// stopAnnounce
|
|
@@ -1713,11 +1770,7 @@ const yokisLightControlExtend = [
|
|
|
1713
1770
|
lookup: stateAfterBlinkEnum,
|
|
1714
1771
|
cluster: "manuSpecificYokisLightControl",
|
|
1715
1772
|
attribute: "stateAfterBlink",
|
|
1716
|
-
description:
|
|
1717
|
-
- 0x00 -> State before blinking
|
|
1718
|
-
- 0x01 -> OFF
|
|
1719
|
-
- 0x02 -> ON
|
|
1720
|
-
- 0x03 -> Infinite blinking`,
|
|
1773
|
+
description: "Indicate which state must be apply after a blink sequence",
|
|
1721
1774
|
entityCategory: "config",
|
|
1722
1775
|
}),
|
|
1723
1776
|
// eNcCommand
|
|
@@ -2113,14 +2166,261 @@ When a cluster is specified, the channel will only “control” the device bind
|
|
|
2113
2166
|
}),
|
|
2114
2167
|
];
|
|
2115
2168
|
*/
|
|
2169
|
+
// biome-ignore lint/correctness/noUnusedVariables: Placeholder for potential futur implementation
|
|
2116
2170
|
const YokisLoadManagerExtend = [
|
|
2117
|
-
//
|
|
2171
|
+
// Not implemented (probably never will)
|
|
2118
2172
|
];
|
|
2119
2173
|
const YokisPilotWireExtend = [
|
|
2120
|
-
//
|
|
2174
|
+
// Actual Order
|
|
2175
|
+
m.enumLookup({
|
|
2176
|
+
name: "actual_order",
|
|
2177
|
+
lookup: {
|
|
2178
|
+
stop: 0x00,
|
|
2179
|
+
frost_off: 0x01,
|
|
2180
|
+
eco: 0x02,
|
|
2181
|
+
confort_2: 0x03,
|
|
2182
|
+
confort_1: 0x04,
|
|
2183
|
+
confort: 0x05,
|
|
2184
|
+
shortcut_error: 0x06,
|
|
2185
|
+
temperature_error: 0x07,
|
|
2186
|
+
},
|
|
2187
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2188
|
+
attribute: "actualOrder",
|
|
2189
|
+
description: "Represent the actual order used by the device",
|
|
2190
|
+
access: "STATE_GET",
|
|
2191
|
+
reporting: { min: constants_1.repInterval.MINUTE, max: constants_1.repInterval.HOUR, change: 1 },
|
|
2192
|
+
entityCategory: "diagnostic",
|
|
2193
|
+
}),
|
|
2194
|
+
// Order timer
|
|
2195
|
+
m.numeric({
|
|
2196
|
+
name: "order_timer",
|
|
2197
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2198
|
+
attribute: "orderTimer",
|
|
2199
|
+
description: "Define the “Order” embedded timer duration. This timer is set when the device changes its order (in second). After that duration, the device is set back to its fallback order.",
|
|
2200
|
+
valueMin: 0x00000000,
|
|
2201
|
+
valueMax: 0xffffffff,
|
|
2202
|
+
valueStep: 1,
|
|
2203
|
+
// reporting: {min: repInterval.SECONDS_5, max: repInterval.MINUTES_15, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2204
|
+
entityCategory: "config",
|
|
2205
|
+
}),
|
|
2206
|
+
// Pre-Order timer
|
|
2207
|
+
m.numeric({
|
|
2208
|
+
name: "pre_order_timer",
|
|
2209
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2210
|
+
attribute: "preOrderTimer",
|
|
2211
|
+
description: "Define the duration before an order is set. This timer is used when a new order is asked, it corresponds to the time before this order is applied. The duration is set in second.",
|
|
2212
|
+
valueMin: 0x00000000,
|
|
2213
|
+
valueMax: 0xffffffff,
|
|
2214
|
+
valueStep: 1,
|
|
2215
|
+
// reporting: {min: repInterval.SECONDS_5, max: repInterval.MINUTES_15, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2216
|
+
entityCategory: "config",
|
|
2217
|
+
}),
|
|
2218
|
+
// Timer unit
|
|
2219
|
+
m.enumLookup({
|
|
2220
|
+
name: "timer_unit",
|
|
2221
|
+
lookup: {
|
|
2222
|
+
second: 0x00,
|
|
2223
|
+
minutes: 0x01,
|
|
2224
|
+
},
|
|
2225
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2226
|
+
attribute: "timerUnit",
|
|
2227
|
+
description: "Represent the actual unit used for local command configuration",
|
|
2228
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2229
|
+
entityCategory: "config",
|
|
2230
|
+
}),
|
|
2231
|
+
// Led mode
|
|
2232
|
+
m.enumLookup({
|
|
2233
|
+
name: "led_mode",
|
|
2234
|
+
lookup: {
|
|
2235
|
+
led_on: 0x00,
|
|
2236
|
+
led_off: 0x01,
|
|
2237
|
+
},
|
|
2238
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2239
|
+
attribute: "ledMode",
|
|
2240
|
+
description: `Define the product’s LED behavior:
|
|
2241
|
+
- 0x00 -> LED is always ON and blink during radio activity (default)
|
|
2242
|
+
- 0x01 -> LED is only OFF during few seconds after a mode transition`,
|
|
2243
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2244
|
+
entityCategory: "config",
|
|
2245
|
+
}),
|
|
2246
|
+
// Pilot-wire relay mode
|
|
2247
|
+
m.enumLookup({
|
|
2248
|
+
name: "pilot_wire_relay_mode",
|
|
2249
|
+
lookup: {
|
|
2250
|
+
relay_on: 0x00,
|
|
2251
|
+
relay_off: 0x01,
|
|
2252
|
+
},
|
|
2253
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2254
|
+
attribute: "pilotWireRelayMode",
|
|
2255
|
+
description: `Define if the product must be set into pilot wire relay mode:
|
|
2256
|
+
- 0x00 -> Relay mode is deactivated (default)
|
|
2257
|
+
- 0x01 -> Relay mode is activated`,
|
|
2258
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2259
|
+
entityCategory: "config",
|
|
2260
|
+
}),
|
|
2261
|
+
// Order scrolling mode
|
|
2262
|
+
m.enumLookup({
|
|
2263
|
+
name: "order_scrolling_mode",
|
|
2264
|
+
lookup: {
|
|
2265
|
+
forward: 0x00,
|
|
2266
|
+
backward: 0x01,
|
|
2267
|
+
},
|
|
2268
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2269
|
+
attribute: "orderScrollingMode",
|
|
2270
|
+
description: `Define the order scrolling sense:
|
|
2271
|
+
- 0x00 -> Forward : Confort -> Confort – 1 -> Confort – 2 -> Eco -> Hors-Gel -> Arrêt (default)
|
|
2272
|
+
- 0x01 -> Backward : Arrêt -> Hors-Gel -> Eco -> Confort – 2 -> Confort – 1 -> Confort`,
|
|
2273
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2274
|
+
entityCategory: "config",
|
|
2275
|
+
}),
|
|
2276
|
+
// Order number supported
|
|
2277
|
+
m.enumLookup({
|
|
2278
|
+
name: "order_number_supported",
|
|
2279
|
+
lookup: {
|
|
2280
|
+
four_orders: 0x00,
|
|
2281
|
+
six_orders: 0x01,
|
|
2282
|
+
},
|
|
2283
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2284
|
+
attribute: "orderNumberSupported",
|
|
2285
|
+
description: `Define the number of orders supported by the device:
|
|
2286
|
+
- 0x00 -> 4 orders (Confort, Eco, Hors-Gel, Arrêt)
|
|
2287
|
+
- 0x01 -> 6 orders (Confort, Confort – 1, Confort – 2, Eco, Hors-Gel, Arrêt) - (default)`,
|
|
2288
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2289
|
+
entityCategory: "config",
|
|
2290
|
+
}),
|
|
2291
|
+
// Fallback Order
|
|
2292
|
+
m.enumLookup({
|
|
2293
|
+
name: "fallback_order",
|
|
2294
|
+
lookup: pilotwireOrderEnun,
|
|
2295
|
+
cluster: "manuSpecificYokisPilotWire",
|
|
2296
|
+
attribute: "fallbackOrder",
|
|
2297
|
+
description: "Represent the fallback order used by the device after the end of an order timer is reached",
|
|
2298
|
+
// reporting: {min: repInterval.MINUTE, max: repInterval.HOUR, change: 1}, // we probably dont need to do a reporting for configuration attribute
|
|
2299
|
+
entityCategory: "config",
|
|
2300
|
+
}),
|
|
2301
|
+
yokisCommandsExtend.pilotwire_setOrder(),
|
|
2302
|
+
yokisCommandsExtend.pilotwire_toggleOrder(),
|
|
2121
2303
|
];
|
|
2304
|
+
// biome-ignore lint/correctness/noUnusedVariables: Placeholder for potential futur implementation
|
|
2122
2305
|
const YokisStatsExtend = [
|
|
2123
|
-
//
|
|
2306
|
+
// Not implemented (probably never will)
|
|
2307
|
+
];
|
|
2308
|
+
const YokisTemperatureMeasurementExtend = [
|
|
2309
|
+
// currentValue > this is probably redundant with msTemperatureMeasurement
|
|
2310
|
+
m.numeric({
|
|
2311
|
+
name: "current_value",
|
|
2312
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2313
|
+
attribute: "currentValue",
|
|
2314
|
+
description: "This attribute represents the last value measured.",
|
|
2315
|
+
access: "STATE_GET",
|
|
2316
|
+
entityCategory: "diagnostic",
|
|
2317
|
+
//endpointNames: ["9"],
|
|
2318
|
+
unit: "°C",
|
|
2319
|
+
valueMin: -50.0,
|
|
2320
|
+
valueMax: 120.0,
|
|
2321
|
+
valueStep: 0.01,
|
|
2322
|
+
scale: 100,
|
|
2323
|
+
// reporting: {min: "10_SECONDS", max: "1_HOUR", change: 100},
|
|
2324
|
+
}),
|
|
2325
|
+
m.numeric({
|
|
2326
|
+
name: "min_measured_value",
|
|
2327
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2328
|
+
attribute: "minMeasuredValue",
|
|
2329
|
+
description: "Represent the minimal value set since the last power-on/reset.",
|
|
2330
|
+
access: "STATE_GET",
|
|
2331
|
+
entityCategory: "diagnostic",
|
|
2332
|
+
//endpointNames: ["9"],
|
|
2333
|
+
unit: "°C",
|
|
2334
|
+
valueMin: -50.0,
|
|
2335
|
+
valueMax: 120.0,
|
|
2336
|
+
valueStep: 0.01,
|
|
2337
|
+
scale: 100,
|
|
2338
|
+
}),
|
|
2339
|
+
m.numeric({
|
|
2340
|
+
name: "max_measured_value",
|
|
2341
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2342
|
+
attribute: "maxMeasuredValue",
|
|
2343
|
+
description: "Represent the maximal value set since the last power-on/reset.",
|
|
2344
|
+
access: "STATE_GET",
|
|
2345
|
+
entityCategory: "diagnostic",
|
|
2346
|
+
//endpointNames: ["9"],
|
|
2347
|
+
unit: "°C",
|
|
2348
|
+
valueMin: -50.0,
|
|
2349
|
+
valueMax: 120.0,
|
|
2350
|
+
valueStep: 0.01,
|
|
2351
|
+
scale: 100,
|
|
2352
|
+
}),
|
|
2353
|
+
m.numeric({
|
|
2354
|
+
name: "offset",
|
|
2355
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2356
|
+
attribute: "offset",
|
|
2357
|
+
description: "Represent the offset applicated to the temperature measured.",
|
|
2358
|
+
entityCategory: "config",
|
|
2359
|
+
//endpointNames: ["9"],
|
|
2360
|
+
unit: "°C",
|
|
2361
|
+
valueMin: -50.0,
|
|
2362
|
+
valueMax: 50.0,
|
|
2363
|
+
valueStep: 0.1,
|
|
2364
|
+
scale: 10,
|
|
2365
|
+
}),
|
|
2366
|
+
m.numeric({
|
|
2367
|
+
name: "samplingPeriod",
|
|
2368
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2369
|
+
attribute: "samplingPeriod",
|
|
2370
|
+
description: "Represent the sampling period used to process the temperature measurement.",
|
|
2371
|
+
entityCategory: "config",
|
|
2372
|
+
//endpointNames: ["9"],
|
|
2373
|
+
unit: "s",
|
|
2374
|
+
valueMin: 1,
|
|
2375
|
+
valueMax: 120,
|
|
2376
|
+
valueStep: 1,
|
|
2377
|
+
}),
|
|
2378
|
+
m.numeric({
|
|
2379
|
+
name: "samplingNumber",
|
|
2380
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2381
|
+
attribute: "samplingNumber",
|
|
2382
|
+
description: "Represents the sampling number to sense per sampling period defined before.",
|
|
2383
|
+
entityCategory: "config",
|
|
2384
|
+
//endpointNames: ["9"],
|
|
2385
|
+
valueMin: 1,
|
|
2386
|
+
valueMax: 20,
|
|
2387
|
+
valueStep: 1,
|
|
2388
|
+
}),
|
|
2389
|
+
m.numeric({
|
|
2390
|
+
name: "deltaTemp",
|
|
2391
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2392
|
+
attribute: "deltaTemp",
|
|
2393
|
+
description: "Represents the temperature variation to request a new temperature sending through reports.",
|
|
2394
|
+
entityCategory: "config",
|
|
2395
|
+
//endpointNames: ["9"],
|
|
2396
|
+
unit: "°C",
|
|
2397
|
+
valueMin: 0,
|
|
2398
|
+
valueMax: 10,
|
|
2399
|
+
valueStep: 0.1,
|
|
2400
|
+
scale: 10,
|
|
2401
|
+
}),
|
|
2402
|
+
m.numeric({
|
|
2403
|
+
name: "minimalSendingPeriod",
|
|
2404
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2405
|
+
attribute: "minimalSendingPeriod",
|
|
2406
|
+
description: "Represents the minimal sending period that the device must respect before sending a new value through reporting.",
|
|
2407
|
+
entityCategory: "config",
|
|
2408
|
+
//endpointNames: ["9"],
|
|
2409
|
+
valueMin: 0,
|
|
2410
|
+
valueMax: 65535,
|
|
2411
|
+
valueStep: 1,
|
|
2412
|
+
}),
|
|
2413
|
+
m.numeric({
|
|
2414
|
+
name: "maximalSendingPeriod",
|
|
2415
|
+
cluster: "manuSpecificYokisTemperatureMeasurement",
|
|
2416
|
+
attribute: "maximalSendingPeriod",
|
|
2417
|
+
description: "Represents the maximal sending period. The device must send a new value through reporting before the end of this period.",
|
|
2418
|
+
entityCategory: "config",
|
|
2419
|
+
//endpointNames: ["9"],
|
|
2420
|
+
valueMin: 0,
|
|
2421
|
+
valueMax: 65535,
|
|
2422
|
+
valueStep: 1,
|
|
2423
|
+
}),
|
|
2124
2424
|
];
|
|
2125
2425
|
// #endregion
|
|
2126
2426
|
exports.definitions = [
|
|
@@ -2145,8 +2445,6 @@ exports.definitions = [
|
|
|
2145
2445
|
...YokisDeviceExtend,
|
|
2146
2446
|
...YokisInputExtend,
|
|
2147
2447
|
...YokisEntryExtend,
|
|
2148
|
-
...YokisLoadManagerExtend, // Pending implementation
|
|
2149
|
-
...YokisStatsExtend, // Pending implementation
|
|
2150
2448
|
],
|
|
2151
2449
|
},
|
|
2152
2450
|
{
|
|
@@ -2159,7 +2457,7 @@ exports.definitions = [
|
|
|
2159
2457
|
{
|
|
2160
2458
|
model: "MTR1300EB-UP",
|
|
2161
2459
|
vendor: "YOKIS",
|
|
2162
|
-
description: "Remote power switch with timer 1300W",
|
|
2460
|
+
description: "Remote power switch with timer 1300W with screw terminals",
|
|
2163
2461
|
fingerprint: [{ modelID: "MTR1300EB-UP" }],
|
|
2164
2462
|
},
|
|
2165
2463
|
],
|
|
@@ -2178,8 +2476,6 @@ exports.definitions = [
|
|
|
2178
2476
|
...YokisDeviceExtend,
|
|
2179
2477
|
...YokisInputExtend,
|
|
2180
2478
|
...YokisEntryExtend,
|
|
2181
|
-
...YokisLoadManagerExtend, // Pending implementation
|
|
2182
|
-
...YokisStatsExtend, // Pending implementation
|
|
2183
2479
|
],
|
|
2184
2480
|
},
|
|
2185
2481
|
{
|
|
@@ -2203,8 +2499,6 @@ exports.definitions = [
|
|
|
2203
2499
|
...YokisDeviceExtend,
|
|
2204
2500
|
...YokisInputExtend,
|
|
2205
2501
|
...YokisEntryExtend,
|
|
2206
|
-
...YokisLoadManagerExtend, // Pending implementation
|
|
2207
|
-
...YokisStatsExtend, // Pending implementation
|
|
2208
2502
|
],
|
|
2209
2503
|
},
|
|
2210
2504
|
{
|
|
@@ -2234,8 +2528,6 @@ exports.definitions = [
|
|
|
2234
2528
|
...YokisDeviceExtend,
|
|
2235
2529
|
...YokisInputExtend,
|
|
2236
2530
|
...YokisEntryExtend,
|
|
2237
|
-
...YokisLoadManagerExtend, // Pending implementation
|
|
2238
|
-
...YokisStatsExtend, // Pending implementation
|
|
2239
2531
|
],
|
|
2240
2532
|
},
|
|
2241
2533
|
{
|
|
@@ -2260,8 +2552,6 @@ exports.definitions = [
|
|
|
2260
2552
|
...YokisDeviceExtend,
|
|
2261
2553
|
...YokisInputExtend,
|
|
2262
2554
|
...YokisEntryExtend,
|
|
2263
|
-
...YokisLoadManagerExtend, // Pending implementation
|
|
2264
|
-
...YokisStatsExtend, // Pending implementation
|
|
2265
2555
|
],
|
|
2266
2556
|
},
|
|
2267
2557
|
{
|
|
@@ -2286,7 +2576,6 @@ exports.definitions = [
|
|
|
2286
2576
|
// ...YokisDeviceExtend,
|
|
2287
2577
|
// ...YokisInputExtend,
|
|
2288
2578
|
// ...YokisChannelExtend,
|
|
2289
|
-
...YokisPilotWireExtend,
|
|
2290
2579
|
],
|
|
2291
2580
|
},
|
|
2292
2581
|
{
|
|
@@ -2311,7 +2600,6 @@ exports.definitions = [
|
|
|
2311
2600
|
// ...YokisDeviceExtend,
|
|
2312
2601
|
// ...YokisInputExtend,
|
|
2313
2602
|
// ...YokisChannelExtend,
|
|
2314
|
-
...YokisPilotWireExtend,
|
|
2315
2603
|
],
|
|
2316
2604
|
},
|
|
2317
2605
|
{
|
|
@@ -2336,7 +2624,6 @@ exports.definitions = [
|
|
|
2336
2624
|
// ...YokisDeviceExtend,
|
|
2337
2625
|
// ...YokisInputExtend,
|
|
2338
2626
|
// ...YokisChannelExtend,
|
|
2339
|
-
...YokisPilotWireExtend,
|
|
2340
2627
|
],
|
|
2341
2628
|
},
|
|
2342
2629
|
{
|
|
@@ -2361,7 +2648,6 @@ exports.definitions = [
|
|
|
2361
2648
|
// ...YokisDeviceExtend,
|
|
2362
2649
|
// ...YokisInputExtend,
|
|
2363
2650
|
// ...YokisChannelExtend,
|
|
2364
|
-
...YokisPilotWireExtend,
|
|
2365
2651
|
],
|
|
2366
2652
|
},
|
|
2367
2653
|
{
|
|
@@ -2379,6 +2665,7 @@ exports.definitions = [
|
|
|
2379
2665
|
m.deviceAddCustomCluster("manuSpecificYokisChannel", YokisClustersDefinition.manuSpecificYokisChannel),
|
|
2380
2666
|
m.deviceAddCustomCluster("manuSpecificYokisPilotWire", YokisClustersDefinition.manuSpecificYokisPilotWire), // Pending implementation
|
|
2381
2667
|
m.deviceAddCustomCluster("manuSpecificYokisTemperatureMeasurement", YokisClustersDefinition.manuSpecificYokisTemperatureMeasurement), // Pending implementation
|
|
2668
|
+
//m.deviceEndpoints({endpoints: {"1": 1, "9": 9}}),
|
|
2382
2669
|
m.identify(),
|
|
2383
2670
|
m.commandsOnOff(),
|
|
2384
2671
|
m.commandsLevelCtrl(),
|
|
@@ -2386,7 +2673,15 @@ exports.definitions = [
|
|
|
2386
2673
|
// ...YokisDeviceExtend,
|
|
2387
2674
|
// ...YokisInputExtend,
|
|
2388
2675
|
// ...YokisChannelExtend,
|
|
2389
|
-
...YokisPilotWireExtend,
|
|
2676
|
+
// ...YokisPilotWireExtend,
|
|
2677
|
+
m.temperature({ reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 } }), // Slow update to save some battery
|
|
2678
|
+
m.battery({
|
|
2679
|
+
percentage: false,
|
|
2680
|
+
lowStatus: true,
|
|
2681
|
+
percentageReporting: false,
|
|
2682
|
+
lowStatusReportingConfig: { min: "1_HOUR", max: "MAX", change: 10 },
|
|
2683
|
+
}), // Yokis only provides low level status
|
|
2684
|
+
...YokisTemperatureMeasurementExtend,
|
|
2390
2685
|
],
|
|
2391
2686
|
},
|
|
2392
2687
|
{
|
|
@@ -2411,7 +2706,7 @@ exports.definitions = [
|
|
|
2411
2706
|
// ...YokisDeviceExtend,
|
|
2412
2707
|
// ...YokisInputExtend,
|
|
2413
2708
|
// ...YokisChannelExtend,
|
|
2414
|
-
...YokisPilotWireExtend,
|
|
2709
|
+
// ...YokisPilotWireExtend,
|
|
2415
2710
|
],
|
|
2416
2711
|
},
|
|
2417
2712
|
{
|
|
@@ -2436,7 +2731,6 @@ exports.definitions = [
|
|
|
2436
2731
|
// ...YokisDeviceExtend,
|
|
2437
2732
|
// ...YokisInputExtend,
|
|
2438
2733
|
// ...YokisChannelExtend,
|
|
2439
|
-
...YokisPilotWireExtend,
|
|
2440
2734
|
],
|
|
2441
2735
|
},
|
|
2442
2736
|
{
|
|
@@ -2461,15 +2755,34 @@ exports.definitions = [
|
|
|
2461
2755
|
// ...YokisDeviceExtend,
|
|
2462
2756
|
// ...YokisInputExtend,
|
|
2463
2757
|
// ...YokisChannelExtend,
|
|
2464
|
-
...YokisPilotWireExtend,
|
|
2465
2758
|
],
|
|
2466
2759
|
},
|
|
2467
2760
|
{
|
|
2468
2761
|
// TLM1-UP
|
|
2469
|
-
zigbeeModel: ["TLM1-UP", "
|
|
2762
|
+
zigbeeModel: ["TLM1-UP", "TLM1T503-UP", "TLM1TNO-UP", "TLM1TDK-UP"],
|
|
2470
2763
|
model: "TLM1-UP",
|
|
2471
2764
|
vendor: "YOKIS",
|
|
2472
2765
|
description: "Wall-mounted 1-button transmitter",
|
|
2766
|
+
whiteLabel: [
|
|
2767
|
+
{
|
|
2768
|
+
model: "TLM1T503-UP",
|
|
2769
|
+
vendor: "YOKIS",
|
|
2770
|
+
description: "Wall-mounted 1-button transmitter (503 format)",
|
|
2771
|
+
fingerprint: [{ modelID: "TLM1T503-UP" }],
|
|
2772
|
+
},
|
|
2773
|
+
{
|
|
2774
|
+
model: "TLM1TNO-UP",
|
|
2775
|
+
vendor: "YOKIS",
|
|
2776
|
+
description: "Wall-mounted 1-button transmitter (NO format)",
|
|
2777
|
+
fingerprint: [{ modelID: "TLM1TNO-UP" }],
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
model: "TLM1TDK-UP",
|
|
2781
|
+
vendor: "YOKIS",
|
|
2782
|
+
description: "Wall-mounted 1-button transmitter (DK format)",
|
|
2783
|
+
fingerprint: [{ modelID: "TLM1TDK-UP" }],
|
|
2784
|
+
},
|
|
2785
|
+
],
|
|
2473
2786
|
extend: [
|
|
2474
2787
|
m.deviceAddCustomCluster("manuSpecificYokisDevice", YokisClustersDefinition.manuSpecificYokisDevice),
|
|
2475
2788
|
m.deviceAddCustomCluster("manuSpecificYokisInput", YokisClustersDefinition.manuSpecificYokisInput),
|
|
@@ -2477,8 +2790,8 @@ exports.definitions = [
|
|
|
2477
2790
|
m.deviceAddCustomCluster("manuSpecificYokisDimmer", YokisClustersDefinition.manuSpecificYokisDimmer),
|
|
2478
2791
|
m.deviceAddCustomCluster("manuSpecificYokisWindowCovering", YokisClustersDefinition.manuSpecificYokisWindowCovering), // Pending implementation
|
|
2479
2792
|
m.deviceAddCustomCluster("manuSpecificYokisChannel", YokisClustersDefinition.manuSpecificYokisChannel),
|
|
2480
|
-
m.deviceAddCustomCluster("manuSpecificYokisPilotWire", YokisClustersDefinition.manuSpecificYokisPilotWire),
|
|
2481
|
-
m.deviceAddCustomCluster("manuSpecificYokisTemperatureMeasurement", YokisClustersDefinition.manuSpecificYokisTemperatureMeasurement),
|
|
2793
|
+
m.deviceAddCustomCluster("manuSpecificYokisPilotWire", YokisClustersDefinition.manuSpecificYokisPilotWire),
|
|
2794
|
+
m.deviceAddCustomCluster("manuSpecificYokisTemperatureMeasurement", YokisClustersDefinition.manuSpecificYokisTemperatureMeasurement),
|
|
2482
2795
|
m.identify(),
|
|
2483
2796
|
m.commandsOnOff(),
|
|
2484
2797
|
m.commandsLevelCtrl(),
|
|
@@ -2486,15 +2799,37 @@ exports.definitions = [
|
|
|
2486
2799
|
// ...YokisDeviceExtend,
|
|
2487
2800
|
// ...YokisInputExtend,
|
|
2488
2801
|
// ...YokisChannelExtend,
|
|
2489
|
-
...YokisPilotWireExtend,
|
|
2802
|
+
// ...YokisPilotWireExtend,
|
|
2803
|
+
m.temperature({ reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 } }), // Slow update to save some battery
|
|
2804
|
+
m.battery({
|
|
2805
|
+
percentage: false,
|
|
2806
|
+
lowStatus: true,
|
|
2807
|
+
percentageReporting: false,
|
|
2808
|
+
lowStatusReportingConfig: { min: "1_HOUR", max: "MAX", change: 10 },
|
|
2809
|
+
}), // Yokis only provides low level status
|
|
2810
|
+
...YokisTemperatureMeasurementExtend,
|
|
2490
2811
|
],
|
|
2491
2812
|
},
|
|
2492
2813
|
{
|
|
2493
2814
|
// TLM2-UP
|
|
2494
|
-
zigbeeModel: ["TLM2-UP", "
|
|
2815
|
+
zigbeeModel: ["TLM2-UP", "TLM2T503-UP", "TLM2TNO-UP"],
|
|
2495
2816
|
model: "TLM2-UP",
|
|
2496
2817
|
vendor: "YOKIS",
|
|
2497
2818
|
description: "Wall-mounted 2-button transmitter",
|
|
2819
|
+
whiteLabel: [
|
|
2820
|
+
{
|
|
2821
|
+
model: "TLM2T503-UP",
|
|
2822
|
+
vendor: "YOKIS",
|
|
2823
|
+
description: "Wall-mounted 2-button transmitter (503 format)",
|
|
2824
|
+
fingerprint: [{ modelID: "TLM2T503-UP" }],
|
|
2825
|
+
},
|
|
2826
|
+
{
|
|
2827
|
+
model: "TLM2TNO-UP",
|
|
2828
|
+
vendor: "YOKIS",
|
|
2829
|
+
description: "Wall-mounted 2-button transmitter (NO format)",
|
|
2830
|
+
fingerprint: [{ modelID: "TLM2TNO-UP" }],
|
|
2831
|
+
},
|
|
2832
|
+
],
|
|
2498
2833
|
extend: [
|
|
2499
2834
|
m.deviceAddCustomCluster("manuSpecificYokisDevice", YokisClustersDefinition.manuSpecificYokisDevice),
|
|
2500
2835
|
m.deviceAddCustomCluster("manuSpecificYokisInput", YokisClustersDefinition.manuSpecificYokisInput),
|
|
@@ -2512,15 +2847,43 @@ exports.definitions = [
|
|
|
2512
2847
|
// ...YokisDeviceExtend,
|
|
2513
2848
|
// ...YokisInputExtend,
|
|
2514
2849
|
// ...YokisChannelExtend,
|
|
2515
|
-
...YokisPilotWireExtend,
|
|
2850
|
+
// ...YokisPilotWireExtend,
|
|
2851
|
+
m.temperature({ reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 } }), // Slow update to save some battery
|
|
2852
|
+
m.battery({
|
|
2853
|
+
percentage: false,
|
|
2854
|
+
lowStatus: true,
|
|
2855
|
+
percentageReporting: false,
|
|
2856
|
+
lowStatusReportingConfig: { min: "1_HOUR", max: "MAX", change: 10 },
|
|
2857
|
+
}), // Yokis only provides low level status
|
|
2858
|
+
...YokisTemperatureMeasurementExtend,
|
|
2516
2859
|
],
|
|
2517
2860
|
},
|
|
2518
2861
|
{
|
|
2519
2862
|
// TLM4-UP
|
|
2520
|
-
zigbeeModel: ["TLM4-UP", "
|
|
2863
|
+
zigbeeModel: ["TLM4-UP", "TLM4T503-UP", "TLM4TNO-UP", "TLM4TDK-UP"],
|
|
2521
2864
|
model: "TLM4-UP",
|
|
2522
2865
|
vendor: "YOKIS",
|
|
2523
2866
|
description: "Wall-mounted 4-button transmitter",
|
|
2867
|
+
whiteLabel: [
|
|
2868
|
+
{
|
|
2869
|
+
model: "TLM4T503-UP",
|
|
2870
|
+
vendor: "YOKIS",
|
|
2871
|
+
description: "Wall-mounted 4-button transmitter (503 format)",
|
|
2872
|
+
fingerprint: [{ modelID: "TLM4T503-UP" }],
|
|
2873
|
+
},
|
|
2874
|
+
{
|
|
2875
|
+
model: "TLM4TNO-UP",
|
|
2876
|
+
vendor: "YOKIS",
|
|
2877
|
+
description: "Wall-mounted 4-button transmitter (NO format)",
|
|
2878
|
+
fingerprint: [{ modelID: "TLM4TNO-UP" }],
|
|
2879
|
+
},
|
|
2880
|
+
{
|
|
2881
|
+
model: "TLM4TDK-UP",
|
|
2882
|
+
vendor: "YOKIS",
|
|
2883
|
+
description: "Wall-mounted 4-button transmitter (DK format)",
|
|
2884
|
+
fingerprint: [{ modelID: "TLM4TDK-UP" }],
|
|
2885
|
+
},
|
|
2886
|
+
],
|
|
2524
2887
|
extend: [
|
|
2525
2888
|
m.deviceAddCustomCluster("manuSpecificYokisDevice", YokisClustersDefinition.manuSpecificYokisDevice),
|
|
2526
2889
|
m.deviceAddCustomCluster("manuSpecificYokisInput", YokisClustersDefinition.manuSpecificYokisInput),
|
|
@@ -2538,7 +2901,15 @@ exports.definitions = [
|
|
|
2538
2901
|
// ...YokisDeviceExtend,
|
|
2539
2902
|
// ...YokisInputExtend,
|
|
2540
2903
|
// ...YokisChannelExtend,
|
|
2541
|
-
...YokisPilotWireExtend,
|
|
2904
|
+
// ...YokisPilotWireExtend,
|
|
2905
|
+
m.temperature({ reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 } }), // Slow update to save some battery
|
|
2906
|
+
m.battery({
|
|
2907
|
+
percentage: false,
|
|
2908
|
+
lowStatus: true,
|
|
2909
|
+
percentageReporting: false,
|
|
2910
|
+
lowStatusReportingConfig: { min: "1_HOUR", max: "MAX", change: 10 },
|
|
2911
|
+
}), // Yokis only provides low level status
|
|
2912
|
+
...YokisTemperatureMeasurementExtend,
|
|
2542
2913
|
],
|
|
2543
2914
|
},
|
|
2544
2915
|
{
|
|
@@ -2564,7 +2935,37 @@ exports.definitions = [
|
|
|
2564
2935
|
// ...YokisDeviceExtend,
|
|
2565
2936
|
// ...YokisInputExtend,
|
|
2566
2937
|
// ...YokisChannelExtend,
|
|
2938
|
+
// ...YokisPilotWireExtend,
|
|
2939
|
+
m.temperature({ reporting: { min: "5_MINUTES", max: "1_HOUR", change: 10 } }), // Slow update to save some battery
|
|
2940
|
+
m.battery({
|
|
2941
|
+
percentage: false,
|
|
2942
|
+
lowStatus: true,
|
|
2943
|
+
percentageReporting: false,
|
|
2944
|
+
lowStatusReportingConfig: { min: "1_HOUR", max: "MAX", change: 10 },
|
|
2945
|
+
}), // Yokis only provides low level status
|
|
2946
|
+
...YokisTemperatureMeasurementExtend,
|
|
2947
|
+
],
|
|
2948
|
+
},
|
|
2949
|
+
{
|
|
2950
|
+
// MFP-UP
|
|
2951
|
+
zigbeeModel: ["MFP-UP"],
|
|
2952
|
+
model: "MFP-UP",
|
|
2953
|
+
vendor: "YOKIS",
|
|
2954
|
+
description: "Remote module for pilot wire heating system",
|
|
2955
|
+
extend: [
|
|
2956
|
+
m.deviceAddCustomCluster("manuSpecificYokisDevice", YokisClustersDefinition.manuSpecificYokisDevice),
|
|
2957
|
+
m.deviceAddCustomCluster("manuSpecificYokisInput", YokisClustersDefinition.manuSpecificYokisInput),
|
|
2958
|
+
m.deviceAddCustomCluster("manuSpecificYokisEntryConfigurator", YokisClustersDefinition.manuSpecificYokisEntryConfigurator),
|
|
2959
|
+
m.deviceAddCustomCluster("manuSpecificYokisSubSystem", YokisClustersDefinition.manuSpecificYokisSubSystem),
|
|
2960
|
+
m.deviceAddCustomCluster("manuSpecificYokisPilotWire", YokisClustersDefinition.manuSpecificYokisPilotWire),
|
|
2961
|
+
m.deviceAddCustomCluster("manuSpecificYokisStats", YokisClustersDefinition.manuSpecificYokisStats), // Pending implementation
|
|
2962
|
+
m.identify(),
|
|
2963
|
+
m.electricityMeter({ voltage: false }),
|
|
2964
|
+
...YokisSubSystemExtend,
|
|
2567
2965
|
...YokisPilotWireExtend,
|
|
2966
|
+
...YokisDeviceExtend,
|
|
2967
|
+
// ...YokisInputExtend,
|
|
2968
|
+
// ...YokisEntryExtend,
|
|
2568
2969
|
],
|
|
2569
2970
|
},
|
|
2570
2971
|
];
|