zigbee-herdsman-converters 25.56.0 → 25.58.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 +49 -0
- package/dist/devices/eurotronic.d.ts.map +1 -1
- package/dist/devices/eurotronic.js +2 -1
- package/dist/devices/eurotronic.js.map +1 -1
- package/dist/devices/lixee.js +8 -8
- package/dist/devices/lixee.js.map +1 -1
- package/dist/devices/lumi.d.ts.map +1 -1
- package/dist/devices/lumi.js +14 -2
- package/dist/devices/lumi.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +32 -18
- package/dist/devices/philips.js.map +1 -1
- package/dist/devices/somfy.d.ts.map +1 -1
- package/dist/devices/somfy.js +7 -0
- package/dist/devices/somfy.js.map +1 -1
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +239 -24
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/third_reality.d.ts.map +1 -1
- package/dist/devices/third_reality.js +2 -0
- package/dist/devices/third_reality.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +366 -52
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/zemismart.d.ts.map +1 -1
- package/dist/devices/zemismart.js +0 -11
- package/dist/devices/zemismart.js.map +1 -1
- package/dist/lib/modernExtend.d.ts +1 -1
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +4 -1
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +19 -7
- package/dist/lib/tuya.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +1 -1
package/dist/devices/tuya.js
CHANGED
|
@@ -1232,16 +1232,96 @@ exports.definitions = [
|
|
|
1232
1232
|
e.numeric("water_consumed", ea.STATE).withUnit("m³").withDescription("Total water consumption").withValueMin(0).withValueStep(0.001),
|
|
1233
1233
|
e.numeric("month_consumption", ea.STATE).withUnit("m³").withDescription("Monthly water consumption").withValueMin(0).withValueStep(0.001),
|
|
1234
1234
|
e.numeric("daily_consumption", ea.STATE).withUnit("m³").withDescription("Daily water consumption").withValueMin(0).withValueStep(0.001),
|
|
1235
|
-
e.
|
|
1236
|
-
e
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1235
|
+
e.numeric("flow_rate", ea.STATE).withUnit("m³/h").withDescription("Instantaneous flow rate").withValueMin(0).withValueStep(0.001),
|
|
1236
|
+
e
|
|
1237
|
+
.numeric("reverse_water_consumed", ea.STATE)
|
|
1238
|
+
.withUnit("m³")
|
|
1239
|
+
.withDescription("Reverse water consumption")
|
|
1240
|
+
.withValueMin(0)
|
|
1241
|
+
.withValueStep(0.001),
|
|
1242
|
+
e.enum("report_period", ea.STATE_SET, ["1h", "2h", "3h", "4h", "6h", "8h", "12h", "24h"]).withDescription("Report period"),
|
|
1243
|
+
e.text("meter_id", ea.STATE).withDescription("Meter identification number"),
|
|
1244
|
+
e.temperature(),
|
|
1245
|
+
e.voltage(),
|
|
1246
|
+
e
|
|
1247
|
+
.enum("fault", ea.STATE, [
|
|
1248
|
+
"no_fault",
|
|
1249
|
+
"battery_alarm",
|
|
1250
|
+
"magnetism_alarm",
|
|
1251
|
+
"cover_alarm",
|
|
1252
|
+
"credit_alarm",
|
|
1253
|
+
"switch_gaps_alarm",
|
|
1254
|
+
"meter_body_alarm",
|
|
1255
|
+
"abnormal_water_alarm",
|
|
1256
|
+
"arrearage_alarm",
|
|
1257
|
+
"overflow_alarm",
|
|
1258
|
+
"revflow_alarm",
|
|
1259
|
+
"over_pre_alarm",
|
|
1260
|
+
"empty_pipe_alarm",
|
|
1261
|
+
"transducer_alarm",
|
|
1262
|
+
])
|
|
1263
|
+
.withDescription("Fault status"),
|
|
1241
1264
|
],
|
|
1242
1265
|
meta: {
|
|
1243
1266
|
tuyaDatapoints: [
|
|
1244
1267
|
[1, "water_consumed", tuya.valueConverter.divideBy1000],
|
|
1268
|
+
[
|
|
1269
|
+
2,
|
|
1270
|
+
"month_consumption",
|
|
1271
|
+
{
|
|
1272
|
+
from: (value, meta) => {
|
|
1273
|
+
const buffer = Buffer.from(value);
|
|
1274
|
+
if (buffer.length >= 8) {
|
|
1275
|
+
try {
|
|
1276
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1277
|
+
return uintValue / 1000;
|
|
1278
|
+
}
|
|
1279
|
+
catch (_error) {
|
|
1280
|
+
return null;
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
return null;
|
|
1284
|
+
},
|
|
1285
|
+
},
|
|
1286
|
+
],
|
|
1287
|
+
[
|
|
1288
|
+
3,
|
|
1289
|
+
"daily_consumption",
|
|
1290
|
+
{
|
|
1291
|
+
from: (value, meta) => {
|
|
1292
|
+
const buffer = Buffer.from(value);
|
|
1293
|
+
if (buffer.length >= 8) {
|
|
1294
|
+
try {
|
|
1295
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1296
|
+
return uintValue / 1000;
|
|
1297
|
+
}
|
|
1298
|
+
catch (_error) {
|
|
1299
|
+
return null;
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
return null;
|
|
1303
|
+
},
|
|
1304
|
+
},
|
|
1305
|
+
],
|
|
1306
|
+
[
|
|
1307
|
+
21,
|
|
1308
|
+
"flow_rate",
|
|
1309
|
+
{
|
|
1310
|
+
from: (value, meta) => {
|
|
1311
|
+
const buffer = Buffer.from(value);
|
|
1312
|
+
if (buffer.length >= 4) {
|
|
1313
|
+
try {
|
|
1314
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1315
|
+
return uintValue / 1000;
|
|
1316
|
+
}
|
|
1317
|
+
catch (_error) {
|
|
1318
|
+
return null;
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
return null;
|
|
1322
|
+
},
|
|
1323
|
+
},
|
|
1324
|
+
],
|
|
1245
1325
|
[
|
|
1246
1326
|
4,
|
|
1247
1327
|
"report_period",
|
|
@@ -1256,25 +1336,61 @@ exports.definitions = [
|
|
|
1256
1336
|
"24h": 7,
|
|
1257
1337
|
}),
|
|
1258
1338
|
],
|
|
1259
|
-
[16, "meter_id", tuya.valueConverter.raw],
|
|
1260
|
-
[21, "flow_rate", tuya.valueConverter.divideBy1000],
|
|
1261
|
-
[22, "temperature", tuya.valueConverter.divideBy100],
|
|
1262
|
-
[26, "voltage", tuya.valueConverter.divideBy100],
|
|
1263
1339
|
[
|
|
1264
1340
|
5,
|
|
1265
1341
|
"fault",
|
|
1266
1342
|
tuya.valueConverterBasic.lookup({
|
|
1267
|
-
|
|
1268
|
-
|
|
1343
|
+
0: "no_fault",
|
|
1344
|
+
1: "battery_alarm",
|
|
1345
|
+
2: "magnetism_alarm",
|
|
1346
|
+
4: "cover_alarm",
|
|
1347
|
+
8: "credit_alarm",
|
|
1348
|
+
16: "switch_gaps_alarm",
|
|
1349
|
+
32: "meter_body_alarm",
|
|
1350
|
+
64: "abnormal_water_alarm",
|
|
1351
|
+
128: "arrearage_alarm",
|
|
1352
|
+
256: "overflow_alarm",
|
|
1353
|
+
512: "revflow_alarm",
|
|
1354
|
+
1024: "over_pre_alarm",
|
|
1355
|
+
2048: "empty_pipe_alarm",
|
|
1356
|
+
4096: "transducer_alarm",
|
|
1269
1357
|
}),
|
|
1270
1358
|
],
|
|
1359
|
+
[16, "meter_id", tuya.valueConverter.raw],
|
|
1360
|
+
[
|
|
1361
|
+
18,
|
|
1362
|
+
"reverse_water_consumed",
|
|
1363
|
+
{
|
|
1364
|
+
from: (value, meta) => {
|
|
1365
|
+
const buffer = Buffer.from(value);
|
|
1366
|
+
if (buffer.length >= 4) {
|
|
1367
|
+
try {
|
|
1368
|
+
const uintValue = buffer.readUInt32BE(0);
|
|
1369
|
+
return uintValue / 1000;
|
|
1370
|
+
}
|
|
1371
|
+
catch (_error) {
|
|
1372
|
+
return null;
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
return null;
|
|
1376
|
+
},
|
|
1377
|
+
},
|
|
1378
|
+
],
|
|
1379
|
+
[22, "temperature", tuya.valueConverter.divideBy100],
|
|
1380
|
+
[26, "voltage", tuya.valueConverter.divideBy100],
|
|
1271
1381
|
],
|
|
1272
1382
|
},
|
|
1273
1383
|
options: [
|
|
1274
1384
|
exposes.options.precision("water_consumed"),
|
|
1275
1385
|
exposes.options.calibration("water_consumed"),
|
|
1386
|
+
exposes.options.precision("month_consumption"),
|
|
1387
|
+
exposes.options.calibration("month_consumption"),
|
|
1388
|
+
exposes.options.precision("daily_consumption"),
|
|
1389
|
+
exposes.options.calibration("daily_consumption"),
|
|
1276
1390
|
exposes.options.precision("flow_rate"),
|
|
1277
1391
|
exposes.options.calibration("flow_rate"),
|
|
1392
|
+
exposes.options.precision("reverse_water_consumed"),
|
|
1393
|
+
exposes.options.calibration("reverse_water_consumed"),
|
|
1278
1394
|
exposes.options.precision("temperature"),
|
|
1279
1395
|
exposes.options.calibration("temperature"),
|
|
1280
1396
|
],
|
|
@@ -1360,6 +1476,19 @@ exports.definitions = [
|
|
|
1360
1476
|
},
|
|
1361
1477
|
whiteLabel: [tuya.whitelabel("Linkoze", "LKDSZ001", "Door sensor with scene switch", ["_TZ3210_jowhpxop"])],
|
|
1362
1478
|
},
|
|
1479
|
+
{
|
|
1480
|
+
fingerprint: tuya.fingerprint("TS0203", ["_TZ3000_pjb1ua0m"]),
|
|
1481
|
+
model: "C3007",
|
|
1482
|
+
vendor: "Tuya",
|
|
1483
|
+
description: "Pressure pad sensor",
|
|
1484
|
+
extend: [
|
|
1485
|
+
m.iasZoneAlarm({
|
|
1486
|
+
zoneType: "pressure",
|
|
1487
|
+
zoneAttributes: ["alarm_1", "battery_low"],
|
|
1488
|
+
}),
|
|
1489
|
+
m.battery({ voltage: true }),
|
|
1490
|
+
],
|
|
1491
|
+
},
|
|
1363
1492
|
{
|
|
1364
1493
|
fingerprint: tuya.fingerprint("TS0021", ["_TZ3210_3ulg9kpo"]),
|
|
1365
1494
|
model: "LKWSZ211",
|
|
@@ -1939,29 +2068,62 @@ exports.definitions = [
|
|
|
1939
2068
|
description: "Window sensor with 3-state opening (DP101), optional alarm, battery",
|
|
1940
2069
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
1941
2070
|
exposes: [
|
|
1942
|
-
|
|
2071
|
+
e.enum("opening_state", ea.STATE, ["open", "closed", "tilted"]).withDescription("Opening state"),
|
|
2072
|
+
e.binary("alarm_state", ea.STATE_SET, true, false).withDescription("Alarm was triggered."),
|
|
2073
|
+
e.binary("setup_mode", ea.STATE_SET, true, false).withDescription("Set mode status"),
|
|
2074
|
+
e.binary("alarm_siren", ea.STATE_SET, true, false).withDescription("Activate the siren when the alarm is triggered."),
|
|
1943
2075
|
e
|
|
1944
|
-
.
|
|
1945
|
-
.withDescription("
|
|
1946
|
-
|
|
2076
|
+
.numeric("alarm_siren_duration", ea.STATE_SET)
|
|
2077
|
+
.withDescription("Duration of the alarm siren.")
|
|
2078
|
+
.withValueMin(5)
|
|
2079
|
+
.withValueMax(180)
|
|
2080
|
+
.withValueStep(1),
|
|
2081
|
+
e.numeric("vibration", ea.STATE).withDescription("Value of vibration."),
|
|
1947
2082
|
e
|
|
1948
|
-
.
|
|
1949
|
-
.withDescription("
|
|
2083
|
+
.numeric("vibration_limit", ea.STATE_SET)
|
|
2084
|
+
.withDescription("Limit at which a vibration is reported.")
|
|
2085
|
+
.withValueMin(0)
|
|
2086
|
+
.withValueMax(100)
|
|
2087
|
+
.withValueStep(1),
|
|
2088
|
+
e.binary("vibration_sirene", ea.STATE_SET, true, false).withDescription("Activate the siren when vibrating."),
|
|
2089
|
+
e
|
|
2090
|
+
.numeric("vibration_sirene_duration", ea.STATE_SET)
|
|
2091
|
+
.withDescription("Duration of the vibrating siren.")
|
|
2092
|
+
.withValueMin(5)
|
|
2093
|
+
.withValueMax(180)
|
|
2094
|
+
.withValueStep(1),
|
|
2095
|
+
e.binary("close_signal", ea.STATE_SET, true, false).withDescription("Enable sound when closing the window."),
|
|
2096
|
+
e
|
|
2097
|
+
.numeric("transmission_power", ea.STATE_SET)
|
|
2098
|
+
.withDescription("Transmission power 11-19. High value > battery consumption.")
|
|
2099
|
+
.withValueMin(11)
|
|
2100
|
+
.withValueMax(19)
|
|
2101
|
+
.withValueStep(1),
|
|
2102
|
+
e.binary("magnetic_status", ea.STATE, true, false).withDescription("Magnetic status."),
|
|
1950
2103
|
e.battery(),
|
|
1951
2104
|
],
|
|
1952
2105
|
meta: {
|
|
1953
|
-
// Datapoints from logs:
|
|
1954
|
-
// - 101: 0=open, 1=closed, 2=tilted
|
|
1955
|
-
// - 16 : alarm (boolean) — optional by firmware
|
|
1956
|
-
// - 102: battery percentage (0..100)
|
|
1957
2106
|
tuyaDatapoints: [
|
|
1958
|
-
[
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
2107
|
+
[
|
|
2108
|
+
101,
|
|
2109
|
+
"opening_state",
|
|
2110
|
+
tuya.valueConverterBasic.lookup({
|
|
2111
|
+
open: 0,
|
|
2112
|
+
closed: 1,
|
|
2113
|
+
tilted: 2,
|
|
2114
|
+
}),
|
|
2115
|
+
],
|
|
2116
|
+
[16, "alarm_state", tuya.valueConverter.raw],
|
|
2117
|
+
[107, "setup_mode", tuya.valueConverter.raw],
|
|
2118
|
+
[103, "alarm_siren", tuya.valueConverter.raw],
|
|
2119
|
+
[109, "alarm_siren_duration", tuya.valueConverter.raw],
|
|
2120
|
+
[102, "vibration", tuya.valueConverter.raw],
|
|
2121
|
+
[106, "vibration_limit", tuya.valueConverter.raw],
|
|
2122
|
+
[110, "vibration_sirene_duration", tuya.valueConverter.raw],
|
|
2123
|
+
[108, "vibration_sirene", tuya.valueConverter.raw],
|
|
2124
|
+
[104, "close_signal", tuya.valueConverter.raw],
|
|
2125
|
+
[105, "transmission_power", tuya.valueConverter.raw],
|
|
2126
|
+
[111, "magnetic_status", tuya.valueConverter.raw],
|
|
1965
2127
|
[2, "battery", tuya.valueConverter.raw],
|
|
1966
2128
|
],
|
|
1967
2129
|
},
|
|
@@ -2742,7 +2904,10 @@ exports.definitions = [
|
|
|
2742
2904
|
[5, "temperature", tuya.valueConverter.divideBy10],
|
|
2743
2905
|
[9, "temperature_unit", tuya.valueConverter.temperatureUnit],
|
|
2744
2906
|
[14, "battery_state", tuya.valueConverter.batteryState],
|
|
2745
|
-
|
|
2907
|
+
// https://github.com/Koenkk/zigbee-herdsman-converters/pull/8449
|
|
2908
|
+
// [15, "battery", tuya.valueConverterBasic.scale(6, 60, 0, 100)], //device reports back false scaling
|
|
2909
|
+
// https://github.com/Koenkk/zigbee2mqtt/issues/26215#issuecomment-3466490289
|
|
2910
|
+
[15, "battery", tuya.valueConverter.raw],
|
|
2746
2911
|
],
|
|
2747
2912
|
},
|
|
2748
2913
|
whiteLabel: [
|
|
@@ -4636,7 +4801,7 @@ exports.definitions = [
|
|
|
4636
4801
|
},
|
|
4637
4802
|
},
|
|
4638
4803
|
{
|
|
4639
|
-
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_myaaknbq", "_TZ3000_cpozgbrx"]),
|
|
4804
|
+
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_myaaknbq", "_TZ3000_cpozgbrx", "_TZ3000_drc9tuqb"]),
|
|
4640
4805
|
model: "TS0001_switch_module_1",
|
|
4641
4806
|
vendor: "Tuya",
|
|
4642
4807
|
description: "1 gang switch module",
|
|
@@ -4650,6 +4815,7 @@ exports.definitions = [
|
|
|
4650
4815
|
whiteLabel: [
|
|
4651
4816
|
tuya.whitelabel("PSMART", "T441", "1 gang switch module", ["_TZ3000_myaaknbq"]),
|
|
4652
4817
|
tuya.whitelabel("PSMART", "T461", "1 gang switch module", ["_TZ3000_cpozgbrx"]),
|
|
4818
|
+
tuya.whitelabel("Mercator Ikuü", "SSWM10-ZB", "1 gang switch module", ["_TZ3000_drc9tuqb"]),
|
|
4653
4819
|
],
|
|
4654
4820
|
configure: async (device, coordinatorEndpoint) => {
|
|
4655
4821
|
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
@@ -4824,6 +4990,7 @@ exports.definitions = [
|
|
|
4824
4990
|
"_TZ3000_uilitwsy",
|
|
4825
4991
|
"_TZ3000_66fekqhh",
|
|
4826
4992
|
"_TZ3000_ok0ggpk7",
|
|
4993
|
+
"_TZ3000_aknpkt02",
|
|
4827
4994
|
]),
|
|
4828
4995
|
model: "TS0003_switch_3_gang_with_backlight",
|
|
4829
4996
|
vendor: "Tuya",
|
|
@@ -4852,6 +5019,7 @@ exports.definitions = [
|
|
|
4852
5019
|
tuya.whitelabel("Zemismart", "KES-606US-L3", "3 gang switch with neutral", ["_TZ3000_uilitwsy"]),
|
|
4853
5020
|
tuya.whitelabel("AVATTO", "ZWOT16-W2", "2 gang switch and 1 socket", ["_TZ3000_66fekqhh"]),
|
|
4854
5021
|
tuya.whitelabel("Tuya", "M10Z", "2 gang switch with 20A power socket", ["_TZ3000_lubfc1t5"]),
|
|
5022
|
+
tuya.whitelabel("Zemismart", "ZMO-606-S2", "Smart 2 gangs switch with outlet", ["_TZ3000_aknpkt02"]),
|
|
4855
5023
|
],
|
|
4856
5024
|
},
|
|
4857
5025
|
{
|
|
@@ -5122,6 +5290,7 @@ exports.definitions = [
|
|
|
5122
5290
|
"_TZE200_1fuxihti",
|
|
5123
5291
|
"_TZE204_1fuxihti",
|
|
5124
5292
|
"_TZE204_57hjqelq",
|
|
5293
|
+
"_TZE204_vvvtcehj",
|
|
5125
5294
|
"_TZE200_hojryzzd",
|
|
5126
5295
|
"_TZE204_m1wl5fvq",
|
|
5127
5296
|
"_TZE200_en3wvcbx",
|
|
@@ -5188,7 +5357,7 @@ exports.definitions = [
|
|
|
5188
5357
|
{ vendor: "A-OK", model: "AM25", description: "Tubular motor" },
|
|
5189
5358
|
{ vendor: "Alutech", model: "AM/R-Sm", description: "Tubular motor" },
|
|
5190
5359
|
tuya.whitelabel("Shenzhen Golden Security Technology", "GM46", "Curtain motor", ["_TZE204_guvc7pdy"]),
|
|
5191
|
-
tuya.whitelabel("Roximo", "CRTZ01", "Curtain motor", ["_TZE204_57hjqelq"]),
|
|
5360
|
+
tuya.whitelabel("Roximo", "CRTZ01", "Curtain motor", ["_TZE204_57hjqelq", "_TZE204_vvvtcehj"]),
|
|
5192
5361
|
{ vendor: "Quoya", model: "AT8510-TY" },
|
|
5193
5362
|
tuya.whitelabel("Somgoms", "ZSTY-SM-1DMZG-US-W_1", "Curtain switch", ["_TZE200_axgvo9jh"]),
|
|
5194
5363
|
tuya.whitelabel("HUARUI", "CMD900LE", "Lithium battery intelligent curtain opening and closing motor", ["_TZE200_zxxfv8wi"]),
|
|
@@ -6079,6 +6248,7 @@ exports.definitions = [
|
|
|
6079
6248
|
"_TZE200_kds0pmmv",
|
|
6080
6249
|
"_TZE200_py4cm3he" /* model: 'TV06-Zigbee', vendor: 'Tuya' */,
|
|
6081
6250
|
"_TZE200_wsbfwodu" /* model: 'HA-08 THERMO', vendor: 'AlecoAir' */,
|
|
6251
|
+
"_TZE200_x9axofse" /* model: 'ZTRV-ZX-TV02', vendor: 'Moes' */,
|
|
6082
6252
|
]),
|
|
6083
6253
|
model: "TV02-Zigbee",
|
|
6084
6254
|
vendor: "Tuya",
|
|
@@ -6093,6 +6263,7 @@ exports.definitions = [
|
|
|
6093
6263
|
tuya.whitelabel("Moes", "TV01-ZB", "Thermostat radiator valve", ["_TZE200_e9ba97vf"]),
|
|
6094
6264
|
tuya.whitelabel("AlecoAir", "HA-08_THERMO", "Thermostat radiator valve", ["_TZE200_wsbfwodu"]),
|
|
6095
6265
|
tuya.whitelabel("GIEX", "TV06", "Thermostat radiator valve", ["_TZE200_py4cm3he"]),
|
|
6266
|
+
tuya.whitelabel("Moes", "ZTRV-ZX-TV02", "Thermostat radiator valve", ["_TZE200_x9axofse"]),
|
|
6096
6267
|
],
|
|
6097
6268
|
ota: true,
|
|
6098
6269
|
extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true, timeStart: "1970" })],
|
|
@@ -6257,7 +6428,6 @@ exports.definitions = [
|
|
|
6257
6428
|
"_TZE200_6rdj8dzm" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6258
6429
|
"_TZE200_9xfjixap" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6259
6430
|
"_TZE200_jkfbph7l" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6260
|
-
"_TZE200_p3dbf6qs" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6261
6431
|
"_TZE200_rxntag7i" /* model: 'ME168', vendor: 'AVATTO' */,
|
|
6262
6432
|
"_TZE200_yqgbrdyo",
|
|
6263
6433
|
"_TZE284_p3dbf6qs",
|
|
@@ -6279,7 +6449,6 @@ exports.definitions = [
|
|
|
6279
6449
|
description: "Thermostatic radiator valve",
|
|
6280
6450
|
whiteLabel: [
|
|
6281
6451
|
tuya.whitelabel("AVATTO", "ME167", "Thermostatic radiator valve", [
|
|
6282
|
-
"_TZE200_p3dbf6qs",
|
|
6283
6452
|
"_TZE200_bvu2wnxz",
|
|
6284
6453
|
"_TZE200_6rdj8dzm",
|
|
6285
6454
|
"_TZE200_9xfjixap",
|
|
@@ -6436,6 +6605,74 @@ exports.definitions = [
|
|
|
6436
6605
|
],
|
|
6437
6606
|
},
|
|
6438
6607
|
},
|
|
6608
|
+
{
|
|
6609
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_p3dbf6qs" /* model: 'ME167_1', vendor: 'AVATTO' */]),
|
|
6610
|
+
model: "TS0601_thermostat_5",
|
|
6611
|
+
vendor: "Tuya",
|
|
6612
|
+
description: "Thermostatic radiator valve",
|
|
6613
|
+
whiteLabel: [tuya.whitelabel("AVATTO", "ME167_1", "Thermostatic radiator valve", ["_TZE200_p3dbf6qs"])],
|
|
6614
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "2000" })],
|
|
6615
|
+
exposes: [
|
|
6616
|
+
e.child_lock(),
|
|
6617
|
+
e.battery_low(),
|
|
6618
|
+
e
|
|
6619
|
+
.climate()
|
|
6620
|
+
.withSetpoint("current_heating_setpoint", 5, 35, 1, ea.STATE_SET)
|
|
6621
|
+
.withLocalTemperature(ea.STATE)
|
|
6622
|
+
.withSystemMode(["auto", "heat", "off"], ea.STATE_SET)
|
|
6623
|
+
.withRunningState(["idle", "heat"], ea.STATE)
|
|
6624
|
+
.withPiHeatingDemand()
|
|
6625
|
+
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET),
|
|
6626
|
+
...tuya.exposes.scheduleAllDays(ea.STATE_SET, "HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C"),
|
|
6627
|
+
e
|
|
6628
|
+
.binary("scale_protection", ea.STATE_SET, "ON", "OFF")
|
|
6629
|
+
.withDescription("If the heat sink is not fully opened within " +
|
|
6630
|
+
"two weeks or is not used for a long time, the valve will be blocked due to silting up and the heat sink will not be " +
|
|
6631
|
+
"able to be used. To ensure normal use of the heat sink, the controller will automatically open the valve fully every " +
|
|
6632
|
+
'two weeks. It will run for 30 seconds per time with the screen displaying "Ad", then return to its normal working state ' +
|
|
6633
|
+
"again."),
|
|
6634
|
+
e
|
|
6635
|
+
.binary("frost_protection", ea.STATE_SET, "ON", "OFF")
|
|
6636
|
+
.withDescription("When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes."),
|
|
6637
|
+
e.numeric("error", ea.STATE).withDescription('If NTC is damaged, "Er" will be on the TRV display.'),
|
|
6638
|
+
],
|
|
6639
|
+
meta: {
|
|
6640
|
+
tuyaDatapoints: [
|
|
6641
|
+
[
|
|
6642
|
+
2,
|
|
6643
|
+
"system_mode",
|
|
6644
|
+
tuya.valueConverterBasic.lookup({
|
|
6645
|
+
auto: tuya.enum(0),
|
|
6646
|
+
heat: tuya.enum(1),
|
|
6647
|
+
off: tuya.enum(2),
|
|
6648
|
+
}),
|
|
6649
|
+
],
|
|
6650
|
+
[
|
|
6651
|
+
3,
|
|
6652
|
+
"running_state",
|
|
6653
|
+
tuya.valueConverterBasic.lookup({
|
|
6654
|
+
heat: tuya.enum(0),
|
|
6655
|
+
idle: tuya.enum(1),
|
|
6656
|
+
}),
|
|
6657
|
+
],
|
|
6658
|
+
[4, "current_heating_setpoint", tuya.valueConverter.divideBy10],
|
|
6659
|
+
[5, "local_temperature", tuya.valueConverter.divideBy10],
|
|
6660
|
+
[7, "child_lock", tuya.valueConverter.lockUnlock],
|
|
6661
|
+
[28, "schedule_wednesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1, 6)],
|
|
6662
|
+
[29, "schedule_thursday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2, 6)],
|
|
6663
|
+
[30, "schedule_friday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3, 6)],
|
|
6664
|
+
[31, "schedule_saturday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4, 6)],
|
|
6665
|
+
[32, "schedule_sunday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5, 6)],
|
|
6666
|
+
[33, "schedule_monday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6, 6)],
|
|
6667
|
+
[34, "schedule_tuesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7, 6)],
|
|
6668
|
+
[35, null, tuya.valueConverter.errorOrBatteryLow],
|
|
6669
|
+
[36, "frost_protection", tuya.valueConverter.onOff],
|
|
6670
|
+
[39, "scale_protection", tuya.valueConverter.onOff],
|
|
6671
|
+
[47, "local_temperature_calibration", tuya.valueConverter.localTempCalibration2],
|
|
6672
|
+
[101, "pi_heating_demand", tuya.valueConverter.raw],
|
|
6673
|
+
],
|
|
6674
|
+
},
|
|
6675
|
+
},
|
|
6439
6676
|
{
|
|
6440
6677
|
fingerprint: [...tuya.fingerprint("v90ladg\u0000", ["_TYST11_wv90ladg"]), ...tuya.fingerprint("TS0601", ["_TZE200_wv90ladg"])],
|
|
6441
6678
|
model: "HT-08",
|
|
@@ -7286,6 +7523,7 @@ exports.definitions = [
|
|
|
7286
7523
|
},
|
|
7287
7524
|
{
|
|
7288
7525
|
fingerprint: [
|
|
7526
|
+
{ modelID: "TS011F", applicationVersion: 192, priority: -1 },
|
|
7289
7527
|
{ modelID: "TS011F", applicationVersion: 160, priority: -1 },
|
|
7290
7528
|
{ modelID: "TS011F", applicationVersion: 100, priority: -1 },
|
|
7291
7529
|
{ modelID: "TS011F", applicationVersion: 69, priority: -1 },
|
|
@@ -7302,6 +7540,7 @@ exports.definitions = [
|
|
|
7302
7540
|
{ vendor: "BlitzWolf", model: "BW-SHP15" },
|
|
7303
7541
|
{ vendor: "AVATTO", model: "MIUCOT10Z" },
|
|
7304
7542
|
{ vendor: "NEO", model: "PLUG-001SPB2" },
|
|
7543
|
+
tuya.whitelabel("BSEED", "TS011F_plug_3_1", "Wall-mounted electrical EU/FR/UK socket with power monitoring", ["_TZ3000_2uollq9d"]),
|
|
7305
7544
|
],
|
|
7306
7545
|
ota: true,
|
|
7307
7546
|
extend: [
|
|
@@ -7312,7 +7551,7 @@ exports.definitions = [
|
|
|
7312
7551
|
childLock: true,
|
|
7313
7552
|
}),
|
|
7314
7553
|
tuya.modernExtend.electricityMeasurementPoll({
|
|
7315
|
-
metering: (device) => [100, 160].includes(device.applicationVersion) || ["1.0.5\u0000"].includes(device.softwareBuildID), // polling for energy
|
|
7554
|
+
metering: (device) => [100, 160, 192].includes(device.applicationVersion) || ["1.0.5\u0000"].includes(device.softwareBuildID), // polling for energy
|
|
7316
7555
|
}),
|
|
7317
7556
|
],
|
|
7318
7557
|
configure: async (device, coordinatorEndpoint) => {
|
|
@@ -10023,7 +10262,7 @@ exports.definitions = [
|
|
|
10023
10262
|
],
|
|
10024
10263
|
whiteLabel: [
|
|
10025
10264
|
tuya.whitelabel("Tuya", "ZG-101Z_D_1", "Smart knob", ["_TZ3000_402vrq2i"]),
|
|
10026
|
-
tuya.whitelabel("
|
|
10265
|
+
tuya.whitelabel("Moes", "ZG-101ZD", "Smart knob", ["_TZ3000_gwkzibhs"]),
|
|
10027
10266
|
],
|
|
10028
10267
|
toZigbee: [tz.tuya_operation_mode],
|
|
10029
10268
|
exposes: [
|
|
@@ -10077,13 +10316,6 @@ exports.definitions = [
|
|
|
10077
10316
|
applicationVersion: 145,
|
|
10078
10317
|
priority: 1,
|
|
10079
10318
|
},
|
|
10080
|
-
// https://github.com/Koenkk/zigbee2mqtt/issues/28149
|
|
10081
|
-
{
|
|
10082
|
-
modelID: "TS004F",
|
|
10083
|
-
manufacturerName: "_TZ3000_gwkzibhs",
|
|
10084
|
-
applicationVersion: 147,
|
|
10085
|
-
priority: 1,
|
|
10086
|
-
},
|
|
10087
10319
|
],
|
|
10088
10320
|
model: "ZG-101Z/D",
|
|
10089
10321
|
vendor: "Tuya",
|
|
@@ -11283,7 +11515,7 @@ exports.definitions = [
|
|
|
11283
11515
|
e
|
|
11284
11516
|
.numeric("static_detection_distance", ea.STATE_SET)
|
|
11285
11517
|
.withValueMin(0)
|
|
11286
|
-
.withValueMax(
|
|
11518
|
+
.withValueMax(6)
|
|
11287
11519
|
.withValueStep(0.01)
|
|
11288
11520
|
.withUnit("m")
|
|
11289
11521
|
.withDescription("Static detection distance"),
|
|
@@ -11936,7 +12168,7 @@ exports.definitions = [
|
|
|
11936
12168
|
},
|
|
11937
12169
|
},
|
|
11938
12170
|
{
|
|
11939
|
-
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_bmqxalil", "_TZ3000_w1tcofu8", "_TZ3000_ma3mhpx2"]),
|
|
12171
|
+
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_bmqxalil", "_TZ3000_w1tcofu8", "_TZ3000_ma3mhpx2", "_TZ3000_wijoqjk1"]),
|
|
11940
12172
|
model: "TS0001_switch_1_gang",
|
|
11941
12173
|
vendor: "Tuya",
|
|
11942
12174
|
description: "1-Gang switch with backlight",
|
|
@@ -12732,12 +12964,12 @@ exports.definitions = [
|
|
|
12732
12964
|
},
|
|
12733
12965
|
},
|
|
12734
12966
|
{
|
|
12735
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_ugekduaj", "_TZE200_ugekduaj", "_TZE204_loejka0i"]),
|
|
12967
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_ugekduaj", "_TZE200_ugekduaj", "_TZE204_loejka0i", "_TZE284_loejka0i"]),
|
|
12736
12968
|
model: "SDM01",
|
|
12737
12969
|
vendor: "Tuya",
|
|
12738
12970
|
description: "Smart energy monitor for 3P+N system",
|
|
12739
12971
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
12740
|
-
whiteLabel: [tuya.whitelabel("Nous", "D4Z", "Smart energy monitor for 3P+N system", ["_TZE204_loejka0i"])],
|
|
12972
|
+
whiteLabel: [tuya.whitelabel("Nous", "D4Z", "Smart energy monitor for 3P+N system", ["_TZE204_loejka0i", "_TZE284_loejka0i"])],
|
|
12741
12973
|
exposes: [
|
|
12742
12974
|
tuya.exposes.voltageWithPhase("a"),
|
|
12743
12975
|
tuya.exposes.voltageWithPhase("b"),
|
|
@@ -13715,7 +13947,7 @@ exports.definitions = [
|
|
|
13715
13947
|
},
|
|
13716
13948
|
},
|
|
13717
13949
|
{
|
|
13718
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_vmcgja59"]),
|
|
13950
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_vmcgja59", "_TZE284_vmcgja59"]),
|
|
13719
13951
|
model: "ZYXH",
|
|
13720
13952
|
vendor: "Tuya",
|
|
13721
13953
|
description: "24 gang switch",
|
|
@@ -19496,6 +19728,89 @@ exports.definitions = [
|
|
|
19496
19728
|
],
|
|
19497
19729
|
},
|
|
19498
19730
|
},
|
|
19731
|
+
{
|
|
19732
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_ilzkxrav"]),
|
|
19733
|
+
model: "TWC-R01",
|
|
19734
|
+
vendor: "Thaleos",
|
|
19735
|
+
description: "Smart thermostat for electric heater with pilot wire",
|
|
19736
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
19737
|
+
exposes: [
|
|
19738
|
+
e
|
|
19739
|
+
.climate()
|
|
19740
|
+
.withLocalTemperature(ea.STATE)
|
|
19741
|
+
.withLocalTemperatureCalibration(-8, 8, 0.5, ea.STATE_SET)
|
|
19742
|
+
.withPreset(["comfort", "eco", "antifrost", "off", "comfort_1", "comfort_2"]),
|
|
19743
|
+
e
|
|
19744
|
+
.enum("mode", ea.STATE, ["comfort", "eco", "antifrost", "off", "comfort_1", "comfort_2"])
|
|
19745
|
+
.withDescription("Current running mode")
|
|
19746
|
+
.withCategory("diagnostic"),
|
|
19747
|
+
e.binary("eco_mode", ea.STATE_SET, "ON", "OFF").withDescription("Enables/disables the weekly program."),
|
|
19748
|
+
e.open_window(),
|
|
19749
|
+
e.open_window_temperature(),
|
|
19750
|
+
e.power(),
|
|
19751
|
+
e.voltage(),
|
|
19752
|
+
e.current(),
|
|
19753
|
+
e.energy(),
|
|
19754
|
+
e.numeric("energy_today", ea.STATE).withUnit("kWh").withDescription("Energy consumed today"),
|
|
19755
|
+
e.numeric("energy_yesterday", ea.STATE).withUnit("kWh").withDescription("Energy consumed yesterday"),
|
|
19756
|
+
e
|
|
19757
|
+
.enum("device_mode_type", ea.STATE, ["four", "six"])
|
|
19758
|
+
.withDescription("Indicates the actual pilot wire mode of the thermostat")
|
|
19759
|
+
.withCategory("diagnostic"),
|
|
19760
|
+
],
|
|
19761
|
+
meta: {
|
|
19762
|
+
tuyaDatapoints: [
|
|
19763
|
+
[
|
|
19764
|
+
2,
|
|
19765
|
+
"mode",
|
|
19766
|
+
tuya.valueConverterBasic.lookup({
|
|
19767
|
+
comfort: tuya.enum(0),
|
|
19768
|
+
eco: tuya.enum(1),
|
|
19769
|
+
antifrost: tuya.enum(2),
|
|
19770
|
+
off: tuya.enum(3),
|
|
19771
|
+
comfort_1: tuya.enum(4),
|
|
19772
|
+
comfort_2: tuya.enum(5),
|
|
19773
|
+
}),
|
|
19774
|
+
],
|
|
19775
|
+
[
|
|
19776
|
+
2,
|
|
19777
|
+
"preset",
|
|
19778
|
+
tuya.valueConverterBasic.lookup({
|
|
19779
|
+
comfort: tuya.enum(0),
|
|
19780
|
+
eco: tuya.enum(1),
|
|
19781
|
+
antifrost: tuya.enum(2),
|
|
19782
|
+
off: tuya.enum(3),
|
|
19783
|
+
comfort_1: tuya.enum(4),
|
|
19784
|
+
comfort_2: tuya.enum(5),
|
|
19785
|
+
}),
|
|
19786
|
+
],
|
|
19787
|
+
[11, "power", tuya.valueConverter.raw],
|
|
19788
|
+
[16, "local_temperature", tuya.valueConverter.divideBy10],
|
|
19789
|
+
[19, "local_temperature_calibration", tuya.valueConverter.localTempCalibration2],
|
|
19790
|
+
[20, "fault", tuya.valueConverter.raw],
|
|
19791
|
+
[40, "eco_mode", tuya.valueConverter.onOff],
|
|
19792
|
+
[101, "week_program", tuya.valueConverter.raw],
|
|
19793
|
+
[102, "work_state", tuya.valueConverter.raw],
|
|
19794
|
+
[103, "week_program_1", tuya.valueConverter.raw],
|
|
19795
|
+
[104, "week_program_2", tuya.valueConverter.raw],
|
|
19796
|
+
[105, "week_program_3", tuya.valueConverter.raw],
|
|
19797
|
+
[106, "week_program_4", tuya.valueConverter.raw],
|
|
19798
|
+
[107, "week_program_5", tuya.valueConverter.raw],
|
|
19799
|
+
[108, "week_program_6", tuya.valueConverter.raw],
|
|
19800
|
+
[109, "week_program_7", tuya.valueConverter.raw],
|
|
19801
|
+
[110, "open_window", tuya.valueConverter.onOff],
|
|
19802
|
+
[111, "open_window_temperature", tuya.valueConverter.raw],
|
|
19803
|
+
[112, "window_time", tuya.valueConverter.raw],
|
|
19804
|
+
[113, "window_timeout", tuya.valueConverter.raw],
|
|
19805
|
+
[114, "device_mode_type", tuya.valueConverterBasic.lookup({ four: tuya.enum(4), six: tuya.enum(6) })],
|
|
19806
|
+
[115, "voltage", tuya.valueConverter.divideBy10],
|
|
19807
|
+
[116, "current", tuya.valueConverter.divideBy1000],
|
|
19808
|
+
[117, "energy", tuya.valueConverter.raw],
|
|
19809
|
+
[119, "energy_today", tuya.valueConverter.raw],
|
|
19810
|
+
[120, "energy_yesterday", tuya.valueConverter.raw],
|
|
19811
|
+
],
|
|
19812
|
+
},
|
|
19813
|
+
},
|
|
19499
19814
|
{
|
|
19500
19815
|
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_r3szw0xr"]),
|
|
19501
19816
|
model: "TS0601_cover_11",
|
|
@@ -19534,11 +19849,12 @@ exports.definitions = [
|
|
|
19534
19849
|
},
|
|
19535
19850
|
},
|
|
19536
19851
|
{
|
|
19537
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_k7p2q5d9"]),
|
|
19852
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_k7p2q5d9", "_TZE284_65gzcss7"]),
|
|
19538
19853
|
model: "ZS-300Z",
|
|
19539
19854
|
vendor: "Arteco",
|
|
19540
19855
|
description: "Soil moisture sensor",
|
|
19541
19856
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
19857
|
+
whiteLabel: [tuya.whitelabel("Arteco", "ZS-302Z", "Soil moisture sensor", ["_TZE284_65gzcss7"])],
|
|
19542
19858
|
exposes: [
|
|
19543
19859
|
e.enum("water_warning", ea.STATE, ["none", "alarm"]).withDescription("Water shortage warning"),
|
|
19544
19860
|
e.enum("battery_state", ea.STATE, ["low", "middle", "high"]).withDescription("low: 16.67%, middle:16.68-83.33%, high: 83.34-100%"),
|
|
@@ -19585,7 +19901,6 @@ exports.definitions = [
|
|
|
19585
19901
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
19586
19902
|
exposes: [
|
|
19587
19903
|
e.presence(),
|
|
19588
|
-
e.illuminance(),
|
|
19589
19904
|
e.battery(),
|
|
19590
19905
|
e
|
|
19591
19906
|
.numeric("fading_time", ea.STATE_SET)
|
|
@@ -19597,7 +19912,7 @@ exports.definitions = [
|
|
|
19597
19912
|
e
|
|
19598
19913
|
.numeric("static_detection_distance", ea.STATE_SET)
|
|
19599
19914
|
.withValueMin(0)
|
|
19600
|
-
.withValueMax(
|
|
19915
|
+
.withValueMax(5)
|
|
19601
19916
|
.withValueStep(0.01)
|
|
19602
19917
|
.withUnit("m")
|
|
19603
19918
|
.withDescription("Static detection distance"),
|
|
@@ -19620,7 +19935,6 @@ exports.definitions = [
|
|
|
19620
19935
|
meta: {
|
|
19621
19936
|
tuyaDatapoints: [
|
|
19622
19937
|
[1, "presence", tuya.valueConverter.trueFalse1],
|
|
19623
|
-
[106, "illuminance", tuya.valueConverter.raw],
|
|
19624
19938
|
[102, "fading_time", tuya.valueConverter.raw],
|
|
19625
19939
|
[4, "static_detection_distance", tuya.valueConverter.divideBy100],
|
|
19626
19940
|
[2, "static_detection_sensitivity", tuya.valueConverter.raw],
|