zigbee-herdsman-converters 25.55.0 → 25.57.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 +51 -0
- package/dist/devices/lixee.js +8 -8
- package/dist/devices/lixee.js.map +1 -1
- package/dist/devices/owon.d.ts.map +1 -1
- package/dist/devices/owon.js +23 -0
- package/dist/devices/owon.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +39 -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 +290 -24
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +249 -60
- 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.map +1 -1
- package/dist/lib/modernExtend.js +3 -1
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +3 -1
- 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,79 @@ 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
|
-
|
|
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(),
|
|
1240
1246
|
e.enum("fault", ea.STATE, ["empty_pipe", "no_fault"]).withDescription("Fault status"),
|
|
1241
1247
|
],
|
|
1242
1248
|
meta: {
|
|
1243
1249
|
tuyaDatapoints: [
|
|
1244
1250
|
[1, "water_consumed", tuya.valueConverter.divideBy1000],
|
|
1251
|
+
[
|
|
1252
|
+
2,
|
|
1253
|
+
"month_consumption",
|
|
1254
|
+
{
|
|
1255
|
+
from: (value, meta) => {
|
|
1256
|
+
const buffer = Buffer.from(value);
|
|
1257
|
+
if (buffer.length >= 8) {
|
|
1258
|
+
try {
|
|
1259
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1260
|
+
return uintValue / 1000;
|
|
1261
|
+
}
|
|
1262
|
+
catch (_error) {
|
|
1263
|
+
return null;
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
return null;
|
|
1267
|
+
},
|
|
1268
|
+
},
|
|
1269
|
+
],
|
|
1270
|
+
[
|
|
1271
|
+
3,
|
|
1272
|
+
"daily_consumption",
|
|
1273
|
+
{
|
|
1274
|
+
from: (value, meta) => {
|
|
1275
|
+
const buffer = Buffer.from(value);
|
|
1276
|
+
if (buffer.length >= 8) {
|
|
1277
|
+
try {
|
|
1278
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1279
|
+
return uintValue / 1000;
|
|
1280
|
+
}
|
|
1281
|
+
catch (_error) {
|
|
1282
|
+
return null;
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
return null;
|
|
1286
|
+
},
|
|
1287
|
+
},
|
|
1288
|
+
],
|
|
1289
|
+
[
|
|
1290
|
+
21,
|
|
1291
|
+
"flow_rate",
|
|
1292
|
+
{
|
|
1293
|
+
from: (value, meta) => {
|
|
1294
|
+
const buffer = Buffer.from(value);
|
|
1295
|
+
if (buffer.length >= 4) {
|
|
1296
|
+
try {
|
|
1297
|
+
const uintValue = buffer.slice(-4).readUInt32BE(0);
|
|
1298
|
+
return uintValue / 1000;
|
|
1299
|
+
}
|
|
1300
|
+
catch (_error) {
|
|
1301
|
+
return null;
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
return null;
|
|
1305
|
+
},
|
|
1306
|
+
},
|
|
1307
|
+
],
|
|
1245
1308
|
[
|
|
1246
1309
|
4,
|
|
1247
1310
|
"report_period",
|
|
@@ -1256,25 +1319,42 @@ exports.definitions = [
|
|
|
1256
1319
|
"24h": 7,
|
|
1257
1320
|
}),
|
|
1258
1321
|
],
|
|
1322
|
+
[5, "fault", tuya.valueConverterBasic.lookup({ empty_pipe: 6144, no_fault: 0 })],
|
|
1259
1323
|
[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
1324
|
[
|
|
1264
|
-
|
|
1265
|
-
"
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1325
|
+
18,
|
|
1326
|
+
"reverse_water_consumed",
|
|
1327
|
+
{
|
|
1328
|
+
from: (value, meta) => {
|
|
1329
|
+
const buffer = Buffer.from(value);
|
|
1330
|
+
if (buffer.length >= 4) {
|
|
1331
|
+
try {
|
|
1332
|
+
const uintValue = buffer.readUInt32BE(0);
|
|
1333
|
+
return uintValue / 1000;
|
|
1334
|
+
}
|
|
1335
|
+
catch (_error) {
|
|
1336
|
+
return null;
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
return null;
|
|
1340
|
+
},
|
|
1341
|
+
},
|
|
1270
1342
|
],
|
|
1343
|
+
[22, "temperature", tuya.valueConverter.divideBy100],
|
|
1344
|
+
[26, "voltage", tuya.valueConverter.divideBy100],
|
|
1271
1345
|
],
|
|
1272
1346
|
},
|
|
1273
1347
|
options: [
|
|
1274
1348
|
exposes.options.precision("water_consumed"),
|
|
1275
1349
|
exposes.options.calibration("water_consumed"),
|
|
1350
|
+
exposes.options.precision("month_consumption"),
|
|
1351
|
+
exposes.options.calibration("month_consumption"),
|
|
1352
|
+
exposes.options.precision("daily_consumption"),
|
|
1353
|
+
exposes.options.calibration("daily_consumption"),
|
|
1276
1354
|
exposes.options.precision("flow_rate"),
|
|
1277
1355
|
exposes.options.calibration("flow_rate"),
|
|
1356
|
+
exposes.options.precision("reverse_water_consumed"),
|
|
1357
|
+
exposes.options.calibration("reverse_water_consumed"),
|
|
1278
1358
|
exposes.options.precision("temperature"),
|
|
1279
1359
|
exposes.options.calibration("temperature"),
|
|
1280
1360
|
],
|
|
@@ -1939,29 +2019,62 @@ exports.definitions = [
|
|
|
1939
2019
|
description: "Window sensor with 3-state opening (DP101), optional alarm, battery",
|
|
1940
2020
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
1941
2021
|
exposes: [
|
|
1942
|
-
|
|
2022
|
+
e.enum("opening_state", ea.STATE, ["open", "closed", "tilted"]).withDescription("Opening state"),
|
|
2023
|
+
e.binary("alarm_state", ea.STATE_SET, true, false).withDescription("Alarm was triggered."),
|
|
2024
|
+
e.binary("setup_mode", ea.STATE_SET, true, false).withDescription("Set mode status"),
|
|
2025
|
+
e.binary("alarm_siren", ea.STATE_SET, true, false).withDescription("Activate the siren when the alarm is triggered."),
|
|
1943
2026
|
e
|
|
1944
|
-
.
|
|
1945
|
-
.withDescription("
|
|
1946
|
-
|
|
2027
|
+
.numeric("alarm_siren_duration", ea.STATE_SET)
|
|
2028
|
+
.withDescription("Duration of the alarm siren.")
|
|
2029
|
+
.withValueMin(5)
|
|
2030
|
+
.withValueMax(180)
|
|
2031
|
+
.withValueStep(1),
|
|
2032
|
+
e.numeric("vibration", ea.STATE).withDescription("Value of vibration."),
|
|
1947
2033
|
e
|
|
1948
|
-
.
|
|
1949
|
-
.withDescription("
|
|
2034
|
+
.numeric("vibration_limit", ea.STATE_SET)
|
|
2035
|
+
.withDescription("Limit at which a vibration is reported.")
|
|
2036
|
+
.withValueMin(0)
|
|
2037
|
+
.withValueMax(100)
|
|
2038
|
+
.withValueStep(1),
|
|
2039
|
+
e.binary("vibration_sirene", ea.STATE_SET, true, false).withDescription("Activate the siren when vibrating."),
|
|
2040
|
+
e
|
|
2041
|
+
.numeric("vibration_sirene_duration", ea.STATE_SET)
|
|
2042
|
+
.withDescription("Duration of the vibrating siren.")
|
|
2043
|
+
.withValueMin(5)
|
|
2044
|
+
.withValueMax(180)
|
|
2045
|
+
.withValueStep(1),
|
|
2046
|
+
e.binary("close_signal", ea.STATE_SET, true, false).withDescription("Enable sound when closing the window."),
|
|
2047
|
+
e
|
|
2048
|
+
.numeric("transmission_power", ea.STATE_SET)
|
|
2049
|
+
.withDescription("Transmission power 11-19. High value > battery consumption.")
|
|
2050
|
+
.withValueMin(11)
|
|
2051
|
+
.withValueMax(19)
|
|
2052
|
+
.withValueStep(1),
|
|
2053
|
+
e.binary("magnetic_status", ea.STATE, true, false).withDescription("Magnetic status."),
|
|
1950
2054
|
e.battery(),
|
|
1951
2055
|
],
|
|
1952
2056
|
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
2057
|
tuyaDatapoints: [
|
|
1958
|
-
[
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
2058
|
+
[
|
|
2059
|
+
101,
|
|
2060
|
+
"opening_state",
|
|
2061
|
+
tuya.valueConverterBasic.lookup({
|
|
2062
|
+
open: 0,
|
|
2063
|
+
closed: 1,
|
|
2064
|
+
tilted: 2,
|
|
2065
|
+
}),
|
|
2066
|
+
],
|
|
2067
|
+
[16, "alarm_state", tuya.valueConverter.raw],
|
|
2068
|
+
[107, "setup_mode", tuya.valueConverter.raw],
|
|
2069
|
+
[103, "alarm_siren", tuya.valueConverter.raw],
|
|
2070
|
+
[109, "alarm_siren_duration", tuya.valueConverter.raw],
|
|
2071
|
+
[102, "vibration", tuya.valueConverter.raw],
|
|
2072
|
+
[106, "vibration_limit", tuya.valueConverter.raw],
|
|
2073
|
+
[110, "vibration_sirene_duration", tuya.valueConverter.raw],
|
|
2074
|
+
[108, "vibration_sirene", tuya.valueConverter.raw],
|
|
2075
|
+
[104, "close_signal", tuya.valueConverter.raw],
|
|
2076
|
+
[105, "transmission_power", tuya.valueConverter.raw],
|
|
2077
|
+
[111, "magnetic_status", tuya.valueConverter.raw],
|
|
1965
2078
|
[2, "battery", tuya.valueConverter.raw],
|
|
1966
2079
|
],
|
|
1967
2080
|
},
|
|
@@ -1985,6 +2098,7 @@ exports.definitions = [
|
|
|
1985
2098
|
"_TZ3000_kycczpw8",
|
|
1986
2099
|
"_TZ3000_46t1rvdu",
|
|
1987
2100
|
"_TZ3000_bhcpnvud",
|
|
2101
|
+
"_TZ3000_i9oy2rdq",
|
|
1988
2102
|
]),
|
|
1989
2103
|
...tuya.fingerprint("TS000F", [
|
|
1990
2104
|
"_TZ3000_hktqahrq",
|
|
@@ -2741,7 +2855,10 @@ exports.definitions = [
|
|
|
2741
2855
|
[5, "temperature", tuya.valueConverter.divideBy10],
|
|
2742
2856
|
[9, "temperature_unit", tuya.valueConverter.temperatureUnit],
|
|
2743
2857
|
[14, "battery_state", tuya.valueConverter.batteryState],
|
|
2744
|
-
|
|
2858
|
+
// https://github.com/Koenkk/zigbee-herdsman-converters/pull/8449
|
|
2859
|
+
// [15, "battery", tuya.valueConverterBasic.scale(6, 60, 0, 100)], //device reports back false scaling
|
|
2860
|
+
// https://github.com/Koenkk/zigbee2mqtt/issues/26215#issuecomment-3466490289
|
|
2861
|
+
[15, "battery", tuya.valueConverter.raw],
|
|
2745
2862
|
],
|
|
2746
2863
|
},
|
|
2747
2864
|
whiteLabel: [
|
|
@@ -4011,7 +4128,7 @@ exports.definitions = [
|
|
|
4011
4128
|
{ vendor: "Smart9", model: "S9TSZGB" },
|
|
4012
4129
|
{ vendor: "Lonsonho", model: "TS0041" },
|
|
4013
4130
|
{ vendor: "Benexmart", model: "ZM-sui1" },
|
|
4014
|
-
tuya.whitelabel("Tuya", "SH-SC07", "Button scene switch", ["_TZ3000_mrpevh8p"]),
|
|
4131
|
+
tuya.whitelabel("Tuya", "SH-SC07", "Button scene switch", ["_TZ3000_mrpevh8p", "_TZ3000_5bpeda8u"]),
|
|
4015
4132
|
tuya.whitelabel("Tuya", "MINI-ZSB", "Smart button", ["_TZ3000_qgwcxxws"]),
|
|
4016
4133
|
tuya.whitelabel("Nous", "LZ4", "Wireless switch button", ["_TZ3000_6km7djcm"]),
|
|
4017
4134
|
tuya.whitelabel("Marmitek", "Push_LE", "Smart switch", ["_TZ3000_4upl1fcj"]),
|
|
@@ -4101,7 +4218,8 @@ exports.definitions = [
|
|
|
4101
4218
|
{ vendor: "Moes", model: "ZT-SY-EU-G-4S-WH-MS" },
|
|
4102
4219
|
{ vendor: "Nedis", model: "ZBWS40WT" },
|
|
4103
4220
|
tuya.whitelabel("Moes", "ZT-SR-EU4", "Star Ring 4 Gang Scene Switch", ["_TZ3000_a4xycprs"]),
|
|
4104
|
-
tuya.whitelabel("Tuya", "TS0044_1", "Zigbee 4 button remote - 12 scene", ["_TZ3000_dziaict4", "
|
|
4221
|
+
tuya.whitelabel("Tuya", "TS0044_1", "Zigbee 4 button remote - 12 scene", ["_TZ3000_dziaict4", "_TZ3000_j61x9rxn"]),
|
|
4222
|
+
tuya.whitelabel("iHseno", "_TZ3000_mh9px7cq", "Zigbee 4 button remote - 12 scene", ["_TZ3000_mh9px7cq"]),
|
|
4105
4223
|
tuya.whitelabel("Tuya", "TM-YKQ004", "Zigbee 4 button remote - 12 scene", ["_TZ3000_u3nv1jwk"]),
|
|
4106
4224
|
tuya.whitelabel("HOBEIAN", "ZG-101ZS", "Star Ring 4 Gang Scene Switch", ["_TZ3000_bgtzm4ny"]),
|
|
4107
4225
|
tuya.whitelabel("Moes", "XH-SY-04Z", "4 button portable remote control", ["_TZ3000_kfu8zapd"]),
|
|
@@ -4634,7 +4752,7 @@ exports.definitions = [
|
|
|
4634
4752
|
},
|
|
4635
4753
|
},
|
|
4636
4754
|
{
|
|
4637
|
-
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_myaaknbq", "_TZ3000_cpozgbrx"]),
|
|
4755
|
+
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_myaaknbq", "_TZ3000_cpozgbrx", "_TZ3000_drc9tuqb"]),
|
|
4638
4756
|
model: "TS0001_switch_module_1",
|
|
4639
4757
|
vendor: "Tuya",
|
|
4640
4758
|
description: "1 gang switch module",
|
|
@@ -4648,6 +4766,7 @@ exports.definitions = [
|
|
|
4648
4766
|
whiteLabel: [
|
|
4649
4767
|
tuya.whitelabel("PSMART", "T441", "1 gang switch module", ["_TZ3000_myaaknbq"]),
|
|
4650
4768
|
tuya.whitelabel("PSMART", "T461", "1 gang switch module", ["_TZ3000_cpozgbrx"]),
|
|
4769
|
+
tuya.whitelabel("Mercator Ikuü", "SSWM10-ZB", "1 gang switch module", ["_TZ3000_drc9tuqb"]),
|
|
4651
4770
|
],
|
|
4652
4771
|
configure: async (device, coordinatorEndpoint) => {
|
|
4653
4772
|
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
@@ -4822,6 +4941,7 @@ exports.definitions = [
|
|
|
4822
4941
|
"_TZ3000_uilitwsy",
|
|
4823
4942
|
"_TZ3000_66fekqhh",
|
|
4824
4943
|
"_TZ3000_ok0ggpk7",
|
|
4944
|
+
"_TZ3000_aknpkt02",
|
|
4825
4945
|
]),
|
|
4826
4946
|
model: "TS0003_switch_3_gang_with_backlight",
|
|
4827
4947
|
vendor: "Tuya",
|
|
@@ -4850,6 +4970,7 @@ exports.definitions = [
|
|
|
4850
4970
|
tuya.whitelabel("Zemismart", "KES-606US-L3", "3 gang switch with neutral", ["_TZ3000_uilitwsy"]),
|
|
4851
4971
|
tuya.whitelabel("AVATTO", "ZWOT16-W2", "2 gang switch and 1 socket", ["_TZ3000_66fekqhh"]),
|
|
4852
4972
|
tuya.whitelabel("Tuya", "M10Z", "2 gang switch with 20A power socket", ["_TZ3000_lubfc1t5"]),
|
|
4973
|
+
tuya.whitelabel("Zemismart", "ZMO-606-S2", "Smart 2 gangs switch with outlet", ["_TZ3000_aknpkt02"]),
|
|
4853
4974
|
],
|
|
4854
4975
|
},
|
|
4855
4976
|
{
|
|
@@ -4910,13 +5031,14 @@ exports.definitions = [
|
|
|
4910
5031
|
},
|
|
4911
5032
|
},
|
|
4912
5033
|
{
|
|
4913
|
-
fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_4o16jdca", "_TZ3000_odzoiovu", "_TZ3000_hbic3ka3", "_TZ3000_lvhy15ix"]),
|
|
5034
|
+
fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_4o16jdca", "_TZ3000_odzoiovu", "_TZ3000_hbic3ka3", "_TZ3000_lvhy15ix", "_TZ3000_mhhxxjrs"]),
|
|
4914
5035
|
model: "TS0003_switch_module_2",
|
|
4915
5036
|
vendor: "Tuya",
|
|
4916
5037
|
description: "3 gang switch module",
|
|
4917
5038
|
extend: [
|
|
4918
5039
|
tuya.modernExtend.tuyaOnOff({
|
|
4919
5040
|
switchType: true,
|
|
5041
|
+
onOffCountdown: true,
|
|
4920
5042
|
indicatorMode: true,
|
|
4921
5043
|
endpoints: ["l1", "l2", "l3"],
|
|
4922
5044
|
}),
|
|
@@ -4931,7 +5053,10 @@ exports.definitions = [
|
|
|
4931
5053
|
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ["genOnOff"]);
|
|
4932
5054
|
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["genOnOff"]);
|
|
4933
5055
|
},
|
|
4934
|
-
whiteLabel: [
|
|
5056
|
+
whiteLabel: [
|
|
5057
|
+
tuya.whitelabel("AVATTO", "ZWSM16-3-Zigbee", "3 gang switch module", ["_TZ3000_hbic3ka3"]),
|
|
5058
|
+
tuya.whitelabel("iHseno", "_TZ3000_mhhxxjrs", "3 gang switch module", ["_TZ3000_mhhxxjrs"]),
|
|
5059
|
+
],
|
|
4935
5060
|
},
|
|
4936
5061
|
{
|
|
4937
5062
|
fingerprint: tuya.fingerprint("TS0003", ["_TZ3000_pf7swkqp"]),
|
|
@@ -5038,7 +5163,7 @@ exports.definitions = [
|
|
|
5038
5163
|
{ vendor: "Moes", model: "ZM-104-M" },
|
|
5039
5164
|
tuya.whitelabel("AVATTO", "ZWSM16-1-Zigbee", "1 gang switch module", ["_TZ3000_4rbqgcuv"]),
|
|
5040
5165
|
],
|
|
5041
|
-
extend: [tuya.modernExtend.tuyaOnOff({ switchType: true, onOffCountdown: true })],
|
|
5166
|
+
extend: [tuya.modernExtend.tuyaOnOff({ switchType: true, onOffCountdown: true, indicatorMode: true })],
|
|
5042
5167
|
configure: async (device, coordinatorEndpoint) => {
|
|
5043
5168
|
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
5044
5169
|
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ["genOnOff"]);
|
|
@@ -5116,6 +5241,7 @@ exports.definitions = [
|
|
|
5116
5241
|
"_TZE200_1fuxihti",
|
|
5117
5242
|
"_TZE204_1fuxihti",
|
|
5118
5243
|
"_TZE204_57hjqelq",
|
|
5244
|
+
"_TZE204_vvvtcehj",
|
|
5119
5245
|
"_TZE200_hojryzzd",
|
|
5120
5246
|
"_TZE204_m1wl5fvq",
|
|
5121
5247
|
"_TZE200_en3wvcbx",
|
|
@@ -5182,7 +5308,7 @@ exports.definitions = [
|
|
|
5182
5308
|
{ vendor: "A-OK", model: "AM25", description: "Tubular motor" },
|
|
5183
5309
|
{ vendor: "Alutech", model: "AM/R-Sm", description: "Tubular motor" },
|
|
5184
5310
|
tuya.whitelabel("Shenzhen Golden Security Technology", "GM46", "Curtain motor", ["_TZE204_guvc7pdy"]),
|
|
5185
|
-
tuya.whitelabel("Roximo", "CRTZ01", "Curtain motor", ["_TZE204_57hjqelq"]),
|
|
5311
|
+
tuya.whitelabel("Roximo", "CRTZ01", "Curtain motor", ["_TZE204_57hjqelq", "_TZE204_vvvtcehj"]),
|
|
5186
5312
|
{ vendor: "Quoya", model: "AT8510-TY" },
|
|
5187
5313
|
tuya.whitelabel("Somgoms", "ZSTY-SM-1DMZG-US-W_1", "Curtain switch", ["_TZE200_axgvo9jh"]),
|
|
5188
5314
|
tuya.whitelabel("HUARUI", "CMD900LE", "Lithium battery intelligent curtain opening and closing motor", ["_TZE200_zxxfv8wi"]),
|
|
@@ -6251,7 +6377,6 @@ exports.definitions = [
|
|
|
6251
6377
|
"_TZE200_6rdj8dzm" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6252
6378
|
"_TZE200_9xfjixap" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6253
6379
|
"_TZE200_jkfbph7l" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6254
|
-
"_TZE200_p3dbf6qs" /* model: 'ME167', vendor: 'AVATTO' */,
|
|
6255
6380
|
"_TZE200_rxntag7i" /* model: 'ME168', vendor: 'AVATTO' */,
|
|
6256
6381
|
"_TZE200_yqgbrdyo",
|
|
6257
6382
|
"_TZE284_p3dbf6qs",
|
|
@@ -6273,7 +6398,6 @@ exports.definitions = [
|
|
|
6273
6398
|
description: "Thermostatic radiator valve",
|
|
6274
6399
|
whiteLabel: [
|
|
6275
6400
|
tuya.whitelabel("AVATTO", "ME167", "Thermostatic radiator valve", [
|
|
6276
|
-
"_TZE200_p3dbf6qs",
|
|
6277
6401
|
"_TZE200_bvu2wnxz",
|
|
6278
6402
|
"_TZE200_6rdj8dzm",
|
|
6279
6403
|
"_TZE200_9xfjixap",
|
|
@@ -6354,7 +6478,7 @@ exports.definitions = [
|
|
|
6354
6478
|
},
|
|
6355
6479
|
},
|
|
6356
6480
|
{
|
|
6357
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_pcdmj88b"]),
|
|
6481
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_pcdmj88b", "_TZE284_pcdmj88b"]),
|
|
6358
6482
|
model: "TS0601_thermostat_4",
|
|
6359
6483
|
vendor: "Tuya",
|
|
6360
6484
|
description: "Thermostatic radiator valve",
|
|
@@ -6430,6 +6554,74 @@ exports.definitions = [
|
|
|
6430
6554
|
],
|
|
6431
6555
|
},
|
|
6432
6556
|
},
|
|
6557
|
+
{
|
|
6558
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_p3dbf6qs" /* model: 'ME167_1', vendor: 'AVATTO' */]),
|
|
6559
|
+
model: "TS0601_thermostat_5",
|
|
6560
|
+
vendor: "Tuya",
|
|
6561
|
+
description: "Thermostatic radiator valve",
|
|
6562
|
+
whiteLabel: [tuya.whitelabel("AVATTO", "ME167_1", "Thermostatic radiator valve", ["_TZE200_p3dbf6qs"])],
|
|
6563
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "2000" })],
|
|
6564
|
+
exposes: [
|
|
6565
|
+
e.child_lock(),
|
|
6566
|
+
e.battery_low(),
|
|
6567
|
+
e
|
|
6568
|
+
.climate()
|
|
6569
|
+
.withSetpoint("current_heating_setpoint", 5, 35, 1, ea.STATE_SET)
|
|
6570
|
+
.withLocalTemperature(ea.STATE)
|
|
6571
|
+
.withSystemMode(["auto", "heat", "off"], ea.STATE_SET)
|
|
6572
|
+
.withRunningState(["idle", "heat"], ea.STATE)
|
|
6573
|
+
.withPiHeatingDemand()
|
|
6574
|
+
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET),
|
|
6575
|
+
...tuya.exposes.scheduleAllDays(ea.STATE_SET, "HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C"),
|
|
6576
|
+
e
|
|
6577
|
+
.binary("scale_protection", ea.STATE_SET, "ON", "OFF")
|
|
6578
|
+
.withDescription("If the heat sink is not fully opened within " +
|
|
6579
|
+
"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 " +
|
|
6580
|
+
"able to be used. To ensure normal use of the heat sink, the controller will automatically open the valve fully every " +
|
|
6581
|
+
'two weeks. It will run for 30 seconds per time with the screen displaying "Ad", then return to its normal working state ' +
|
|
6582
|
+
"again."),
|
|
6583
|
+
e
|
|
6584
|
+
.binary("frost_protection", ea.STATE_SET, "ON", "OFF")
|
|
6585
|
+
.withDescription("When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes."),
|
|
6586
|
+
e.numeric("error", ea.STATE).withDescription('If NTC is damaged, "Er" will be on the TRV display.'),
|
|
6587
|
+
],
|
|
6588
|
+
meta: {
|
|
6589
|
+
tuyaDatapoints: [
|
|
6590
|
+
[
|
|
6591
|
+
2,
|
|
6592
|
+
"system_mode",
|
|
6593
|
+
tuya.valueConverterBasic.lookup({
|
|
6594
|
+
auto: tuya.enum(0),
|
|
6595
|
+
heat: tuya.enum(1),
|
|
6596
|
+
off: tuya.enum(2),
|
|
6597
|
+
}),
|
|
6598
|
+
],
|
|
6599
|
+
[
|
|
6600
|
+
3,
|
|
6601
|
+
"running_state",
|
|
6602
|
+
tuya.valueConverterBasic.lookup({
|
|
6603
|
+
heat: tuya.enum(0),
|
|
6604
|
+
idle: tuya.enum(1),
|
|
6605
|
+
}),
|
|
6606
|
+
],
|
|
6607
|
+
[4, "current_heating_setpoint", tuya.valueConverter.divideBy10],
|
|
6608
|
+
[5, "local_temperature", tuya.valueConverter.divideBy10],
|
|
6609
|
+
[7, "child_lock", tuya.valueConverter.lockUnlock],
|
|
6610
|
+
[28, "schedule_wednesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1, 6)],
|
|
6611
|
+
[29, "schedule_thursday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2, 6)],
|
|
6612
|
+
[30, "schedule_friday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3, 6)],
|
|
6613
|
+
[31, "schedule_saturday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4, 6)],
|
|
6614
|
+
[32, "schedule_sunday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5, 6)],
|
|
6615
|
+
[33, "schedule_monday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6, 6)],
|
|
6616
|
+
[34, "schedule_tuesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7, 6)],
|
|
6617
|
+
[35, null, tuya.valueConverter.errorOrBatteryLow],
|
|
6618
|
+
[36, "frost_protection", tuya.valueConverter.onOff],
|
|
6619
|
+
[39, "scale_protection", tuya.valueConverter.onOff],
|
|
6620
|
+
[47, "local_temperature_calibration", tuya.valueConverter.localTempCalibration2],
|
|
6621
|
+
[101, "pi_heating_demand", tuya.valueConverter.raw],
|
|
6622
|
+
],
|
|
6623
|
+
},
|
|
6624
|
+
},
|
|
6433
6625
|
{
|
|
6434
6626
|
fingerprint: [...tuya.fingerprint("v90ladg\u0000", ["_TYST11_wv90ladg"]), ...tuya.fingerprint("TS0601", ["_TZE200_wv90ladg"])],
|
|
6435
6627
|
model: "HT-08",
|
|
@@ -10017,7 +10209,7 @@ exports.definitions = [
|
|
|
10017
10209
|
],
|
|
10018
10210
|
whiteLabel: [
|
|
10019
10211
|
tuya.whitelabel("Tuya", "ZG-101Z_D_1", "Smart knob", ["_TZ3000_402vrq2i"]),
|
|
10020
|
-
tuya.whitelabel("
|
|
10212
|
+
tuya.whitelabel("Moes", "ZG-101ZD", "Smart knob", ["_TZ3000_gwkzibhs"]),
|
|
10021
10213
|
],
|
|
10022
10214
|
toZigbee: [tz.tuya_operation_mode],
|
|
10023
10215
|
exposes: [
|
|
@@ -10071,13 +10263,6 @@ exports.definitions = [
|
|
|
10071
10263
|
applicationVersion: 145,
|
|
10072
10264
|
priority: 1,
|
|
10073
10265
|
},
|
|
10074
|
-
// https://github.com/Koenkk/zigbee2mqtt/issues/28149
|
|
10075
|
-
{
|
|
10076
|
-
modelID: "TS004F",
|
|
10077
|
-
manufacturerName: "_TZ3000_gwkzibhs",
|
|
10078
|
-
applicationVersion: 147,
|
|
10079
|
-
priority: 1,
|
|
10080
|
-
},
|
|
10081
10266
|
],
|
|
10082
10267
|
model: "ZG-101Z/D",
|
|
10083
10268
|
vendor: "Tuya",
|
|
@@ -10197,6 +10382,7 @@ exports.definitions = [
|
|
|
10197
10382
|
"_TZE200_ztc6ggyl",
|
|
10198
10383
|
"_TZE200_sgpeacqp",
|
|
10199
10384
|
"_TZE204_fwondbzy",
|
|
10385
|
+
"_TZE284_fwondbzy",
|
|
10200
10386
|
]),
|
|
10201
10387
|
model: "TS0601_smart_human_presence_sensor_1",
|
|
10202
10388
|
vendor: "Tuya",
|
|
@@ -11276,7 +11462,7 @@ exports.definitions = [
|
|
|
11276
11462
|
e
|
|
11277
11463
|
.numeric("static_detection_distance", ea.STATE_SET)
|
|
11278
11464
|
.withValueMin(0)
|
|
11279
|
-
.withValueMax(
|
|
11465
|
+
.withValueMax(6)
|
|
11280
11466
|
.withValueStep(0.01)
|
|
11281
11467
|
.withUnit("m")
|
|
11282
11468
|
.withDescription("Static detection distance"),
|
|
@@ -11929,7 +12115,7 @@ exports.definitions = [
|
|
|
11929
12115
|
},
|
|
11930
12116
|
},
|
|
11931
12117
|
{
|
|
11932
|
-
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_bmqxalil", "_TZ3000_w1tcofu8"]),
|
|
12118
|
+
fingerprint: tuya.fingerprint("TS0001", ["_TZ3000_bmqxalil", "_TZ3000_w1tcofu8", "_TZ3000_ma3mhpx2", "_TZ3000_wijoqjk1"]),
|
|
11933
12119
|
model: "TS0001_switch_1_gang",
|
|
11934
12120
|
vendor: "Tuya",
|
|
11935
12121
|
description: "1-Gang switch with backlight",
|
|
@@ -12725,12 +12911,12 @@ exports.definitions = [
|
|
|
12725
12911
|
},
|
|
12726
12912
|
},
|
|
12727
12913
|
{
|
|
12728
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_ugekduaj", "_TZE200_ugekduaj", "_TZE204_loejka0i"]),
|
|
12914
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_ugekduaj", "_TZE200_ugekduaj", "_TZE204_loejka0i", "_TZE284_loejka0i"]),
|
|
12729
12915
|
model: "SDM01",
|
|
12730
12916
|
vendor: "Tuya",
|
|
12731
12917
|
description: "Smart energy monitor for 3P+N system",
|
|
12732
12918
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
12733
|
-
whiteLabel: [tuya.whitelabel("Nous", "D4Z", "Smart energy monitor for 3P+N system", ["_TZE204_loejka0i"])],
|
|
12919
|
+
whiteLabel: [tuya.whitelabel("Nous", "D4Z", "Smart energy monitor for 3P+N system", ["_TZE204_loejka0i", "_TZE284_loejka0i"])],
|
|
12734
12920
|
exposes: [
|
|
12735
12921
|
tuya.exposes.voltageWithPhase("a"),
|
|
12736
12922
|
tuya.exposes.voltageWithPhase("b"),
|
|
@@ -14831,13 +15017,14 @@ exports.definitions = [
|
|
|
14831
15017
|
},
|
|
14832
15018
|
},
|
|
14833
15019
|
{
|
|
14834
|
-
fingerprint: tuya.fingerprint("TS0004", ["_TZ3000_5ajpkyq6"]),
|
|
15020
|
+
fingerprint: tuya.fingerprint("TS0004", ["_TZ3000_5ajpkyq6", "_TZ3000_knoj8lpk"]),
|
|
14835
15021
|
model: "TS0004_switch_module_2",
|
|
14836
15022
|
vendor: "Tuya",
|
|
14837
15023
|
description: "4 gang switch module",
|
|
14838
15024
|
extend: [
|
|
14839
15025
|
tuya.modernExtend.tuyaOnOff({
|
|
14840
15026
|
switchType: true,
|
|
15027
|
+
onOffCountdown: true,
|
|
14841
15028
|
indicatorMode: true,
|
|
14842
15029
|
endpoints: ["l1", "l2", "l3", "l4"],
|
|
14843
15030
|
}),
|
|
@@ -14853,7 +15040,10 @@ exports.definitions = [
|
|
|
14853
15040
|
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ["genOnOff"]);
|
|
14854
15041
|
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ["genOnOff"]);
|
|
14855
15042
|
},
|
|
14856
|
-
whiteLabel: [
|
|
15043
|
+
whiteLabel: [
|
|
15044
|
+
tuya.whitelabel("AVATTO", "ZWSM16-4-Zigbee", "4 gang switch module", ["_TZ3000_5ajpkyq6"]),
|
|
15045
|
+
tuya.whitelabel("iHseno", "_TZ3000_knoj8lpk", "4 gang switch module", ["_TZ3000_knoj8lpk"]),
|
|
15046
|
+
],
|
|
14857
15047
|
},
|
|
14858
15048
|
{
|
|
14859
15049
|
fingerprint: tuya.fingerprint("TS1002", ["_TZ3000_etufnltx"]),
|
|
@@ -19523,11 +19713,12 @@ exports.definitions = [
|
|
|
19523
19713
|
},
|
|
19524
19714
|
},
|
|
19525
19715
|
{
|
|
19526
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_k7p2q5d9"]),
|
|
19716
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_k7p2q5d9", "_TZE284_65gzcss7"]),
|
|
19527
19717
|
model: "ZS-300Z",
|
|
19528
19718
|
vendor: "Arteco",
|
|
19529
19719
|
description: "Soil moisture sensor",
|
|
19530
19720
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
19721
|
+
whiteLabel: [tuya.whitelabel("Arteco", "ZS-302Z", "Soil moisture sensor", ["_TZE284_65gzcss7"])],
|
|
19531
19722
|
exposes: [
|
|
19532
19723
|
e.enum("water_warning", ea.STATE, ["none", "alarm"]).withDescription("Water shortage warning"),
|
|
19533
19724
|
e.enum("battery_state", ea.STATE, ["low", "middle", "high"]).withDescription("low: 16.67%, middle:16.68-83.33%, high: 83.34-100%"),
|
|
@@ -19574,7 +19765,6 @@ exports.definitions = [
|
|
|
19574
19765
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
19575
19766
|
exposes: [
|
|
19576
19767
|
e.presence(),
|
|
19577
|
-
e.illuminance(),
|
|
19578
19768
|
e.battery(),
|
|
19579
19769
|
e
|
|
19580
19770
|
.numeric("fading_time", ea.STATE_SET)
|
|
@@ -19586,7 +19776,7 @@ exports.definitions = [
|
|
|
19586
19776
|
e
|
|
19587
19777
|
.numeric("static_detection_distance", ea.STATE_SET)
|
|
19588
19778
|
.withValueMin(0)
|
|
19589
|
-
.withValueMax(
|
|
19779
|
+
.withValueMax(5)
|
|
19590
19780
|
.withValueStep(0.01)
|
|
19591
19781
|
.withUnit("m")
|
|
19592
19782
|
.withDescription("Static detection distance"),
|
|
@@ -19609,7 +19799,6 @@ exports.definitions = [
|
|
|
19609
19799
|
meta: {
|
|
19610
19800
|
tuyaDatapoints: [
|
|
19611
19801
|
[1, "presence", tuya.valueConverter.trueFalse1],
|
|
19612
|
-
[106, "illuminance", tuya.valueConverter.raw],
|
|
19613
19802
|
[102, "fading_time", tuya.valueConverter.raw],
|
|
19614
19803
|
[4, "static_detection_distance", tuya.valueConverter.divideBy100],
|
|
19615
19804
|
[2, "static_detection_sensitivity", tuya.valueConverter.raw],
|