zigbee-herdsman-converters 25.53.0 → 25.55.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 +47 -0
- package/dist/converters/fromZigbee.d.ts.map +1 -1
- package/dist/converters/fromZigbee.js +22 -1
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/devices/frient.d.ts.map +1 -1
- package/dist/devices/frient.js +3 -2
- package/dist/devices/frient.js.map +1 -1
- package/dist/devices/innr.d.ts.map +1 -1
- package/dist/devices/innr.js +14 -0
- package/dist/devices/innr.js.map +1 -1
- package/dist/devices/lixee.d.ts.map +1 -1
- package/dist/devices/lixee.js +10 -5
- package/dist/devices/lixee.js.map +1 -1
- package/dist/devices/lumi.d.ts.map +1 -1
- package/dist/devices/lumi.js +0 -1
- package/dist/devices/lumi.js.map +1 -1
- package/dist/devices/moes.d.ts.map +1 -1
- package/dist/devices/moes.js +138 -0
- package/dist/devices/moes.js.map +1 -1
- package/dist/devices/nous.d.ts.map +1 -1
- package/dist/devices/nous.js +59 -0
- package/dist/devices/nous.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +14 -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 +80 -0
- package/dist/devices/schneider_electric.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +107 -31
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/weten.js +1 -1
- package/dist/devices/weten.js.map +1 -1
- package/dist/devices/woox.js +1 -1
- package/dist/devices/woox.js.map +1 -1
- package/dist/devices/zemismart.d.ts.map +1 -1
- package/dist/devices/zemismart.js +34 -0
- package/dist/devices/zemismart.js.map +1 -1
- package/dist/lib/exposes.js +1 -1
- package/dist/lib/exposes.js.map +1 -1
- package/dist/lib/generateDefinition.d.ts.map +1 -1
- package/dist/lib/generateDefinition.js +0 -3
- package/dist/lib/generateDefinition.js.map +1 -1
- package/dist/lib/lumi.js +4 -4
- package/dist/lib/lumi.js.map +1 -1
- package/dist/lib/modernExtend.d.ts +1 -0
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +53 -0
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/ota.d.ts.map +1 -1
- package/dist/lib/ota.js +3 -6
- package/dist/lib/ota.js.map +1 -1
- package/dist/lib/store.d.ts +2 -2
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +21 -14
- package/dist/lib/store.js.map +1 -1
- package/dist/lib/tuya.d.ts +5 -3
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +6 -4
- package/dist/lib/tuya.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +6 -5
package/dist/devices/tuya.js
CHANGED
|
@@ -1229,34 +1229,47 @@ exports.definitions = [
|
|
|
1229
1229
|
description: "Ultrasonic water meter",
|
|
1230
1230
|
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
1231
1231
|
exposes: [
|
|
1232
|
-
|
|
1233
|
-
e
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
e
|
|
1241
|
-
.numeric("flow_rate", ea.STATE)
|
|
1242
|
-
.withUnit("m³/h")
|
|
1243
|
-
.withDescription("Instantaneous water flow rate")
|
|
1244
|
-
.withValueMin(0)
|
|
1245
|
-
.withValueStep(0.001),
|
|
1246
|
-
// Temperature sensor
|
|
1247
|
-
e.temperature(),
|
|
1248
|
-
// Voltage monitoring
|
|
1249
|
-
e.voltage(),
|
|
1232
|
+
e.numeric("water_consumed", ea.STATE).withUnit("m³").withDescription("Total water consumption").withValueMin(0).withValueStep(0.001),
|
|
1233
|
+
e.numeric("month_consumption", ea.STATE).withUnit("m³").withDescription("Monthly water consumption").withValueMin(0).withValueStep(0.001),
|
|
1234
|
+
e.numeric("daily_consumption", ea.STATE).withUnit("m³").withDescription("Daily water consumption").withValueMin(0).withValueStep(0.001),
|
|
1235
|
+
e.enum("report_period", ea.ALL, ["1h", "2h", "3h", "4h", "6h", "8h", "12h", "24h"]).withDescription("Report period (1h–24h)"),
|
|
1236
|
+
e.text("meter_id", ea.STATE).withDescription("Meter identification SN"),
|
|
1237
|
+
e.numeric("flow_rate", ea.STATE).withUnit("m³/h").withDescription("Instantaneous water flow rate").withValueMin(0).withValueStep(0.001),
|
|
1238
|
+
e.temperature().withDescription("Working temperature"),
|
|
1239
|
+
e.voltage().withDescription("Power supply voltage"),
|
|
1240
|
+
e.enum("fault", ea.STATE, ["empty_pipe", "no_fault"]).withDescription("Fault status"),
|
|
1250
1241
|
],
|
|
1251
1242
|
meta: {
|
|
1252
1243
|
tuyaDatapoints: [
|
|
1253
1244
|
[1, "water_consumed", tuya.valueConverter.divideBy1000],
|
|
1245
|
+
[
|
|
1246
|
+
4,
|
|
1247
|
+
"report_period",
|
|
1248
|
+
tuya.valueConverterBasic.lookup({
|
|
1249
|
+
"1h": 0,
|
|
1250
|
+
"2h": 1,
|
|
1251
|
+
"3h": 2,
|
|
1252
|
+
"4h": 3,
|
|
1253
|
+
"6h": 4,
|
|
1254
|
+
"8h": 5,
|
|
1255
|
+
"12h": 6,
|
|
1256
|
+
"24h": 7,
|
|
1257
|
+
}),
|
|
1258
|
+
],
|
|
1259
|
+
[16, "meter_id", tuya.valueConverter.raw],
|
|
1254
1260
|
[21, "flow_rate", tuya.valueConverter.divideBy1000],
|
|
1255
1261
|
[22, "temperature", tuya.valueConverter.divideBy100],
|
|
1256
1262
|
[26, "voltage", tuya.valueConverter.divideBy100],
|
|
1263
|
+
[
|
|
1264
|
+
5,
|
|
1265
|
+
"fault",
|
|
1266
|
+
tuya.valueConverterBasic.lookup({
|
|
1267
|
+
empty_pipe: 6144,
|
|
1268
|
+
no_fault: 0,
|
|
1269
|
+
}),
|
|
1270
|
+
],
|
|
1257
1271
|
],
|
|
1258
1272
|
},
|
|
1259
|
-
// Optional: Add device-specific options
|
|
1260
1273
|
options: [
|
|
1261
1274
|
exposes.options.precision("water_consumed"),
|
|
1262
1275
|
exposes.options.calibration("water_consumed"),
|
|
@@ -2490,7 +2503,7 @@ exports.definitions = [
|
|
|
2490
2503
|
"_TZ3000_n0lphcok",
|
|
2491
2504
|
"_TZ3000_r80pzsb9",
|
|
2492
2505
|
]),
|
|
2493
|
-
...tuya.fingerprint("TS0001", ["_TZ3000_n0lphcok"]),
|
|
2506
|
+
...tuya.fingerprint("TS0001", ["_TZ3000_n0lphcok", "_TZ3000_wn65ixz9"]),
|
|
2494
2507
|
],
|
|
2495
2508
|
model: "TS0207_repeater",
|
|
2496
2509
|
vendor: "Tuya",
|
|
@@ -4461,6 +4474,7 @@ exports.definitions = [
|
|
|
4461
4474
|
"_TZ3000_g92baclx",
|
|
4462
4475
|
"_TZ3000_qlai3277",
|
|
4463
4476
|
"_TZ3000_qaabwu5c",
|
|
4477
|
+
"_TZ3000_qorepo2x",
|
|
4464
4478
|
"_TZ3000_ikuxinvo",
|
|
4465
4479
|
"_TZ3000_hzlsaltw",
|
|
4466
4480
|
"_TZ3000_jsfzkftc",
|
|
@@ -6739,7 +6753,7 @@ exports.definitions = [
|
|
|
6739
6753
|
},
|
|
6740
6754
|
},
|
|
6741
6755
|
{
|
|
6742
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qyr2m29i", "_TZE204_ltwbm23f"]),
|
|
6756
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qyr2m29i", "_TZE204_ltwbm23f", "_TZE284_ltwbm23f"]),
|
|
6743
6757
|
model: "TRV602Z",
|
|
6744
6758
|
vendor: "Tuya",
|
|
6745
6759
|
description: "Thermostatic radiator valve.",
|
|
@@ -7192,16 +7206,18 @@ exports.definitions = [
|
|
|
7192
7206
|
tuya.whitelabel("Nous", "A7Z", "Smart Zigbee Socket", ["_TZ3210_rwmitwj4"]),
|
|
7193
7207
|
tuya.whitelabel("Zbeacon", "TS011F_plug_1_1", "Smart plug (with power monitoring)", ["Zbeacon"]),
|
|
7194
7208
|
tuya.whitelabel("NEO", "NAS-WR01B", "Smart plug (with electrical measurements)", ["_TZ3000_gjnozsaz"]),
|
|
7209
|
+
tuya.whitelabel("GreenSun", "HSC-ZW-EU", "Outdoor Smart Plug (with power monitoring)", ["_TZ3000_cicwjqth"]),
|
|
7195
7210
|
],
|
|
7196
7211
|
ota: true,
|
|
7197
7212
|
extend: [
|
|
7198
7213
|
tuya.modernExtend.tuyaOnOff({
|
|
7199
7214
|
electricalMeasurements: true,
|
|
7200
7215
|
electricalMeasurementsFzConverter: fzLocal.TS011F_electrical_measurement,
|
|
7201
|
-
|
|
7202
|
-
|
|
7203
|
-
|
|
7204
|
-
|
|
7216
|
+
// Conditional features
|
|
7217
|
+
powerOutageMemory: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
|
|
7218
|
+
indicatorMode: (manufacturerName) => manufacturerName === "_TZ3000_ww6drja5",
|
|
7219
|
+
childLock: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
|
|
7220
|
+
onOffCountdown: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
|
|
7205
7221
|
}),
|
|
7206
7222
|
],
|
|
7207
7223
|
configure: async (device, coordinatorEndpoint) => {
|
|
@@ -7214,14 +7230,14 @@ exports.definitions = [
|
|
|
7214
7230
|
await reporting.rmsVoltage(endpoint, { change: 5 });
|
|
7215
7231
|
await reporting.rmsCurrent(endpoint, { change: 50 });
|
|
7216
7232
|
}
|
|
7217
|
-
if (!["_TZ3000_0zfrhq4i", "_TZ3000_okaz9tjs", "_TZ3000_typdpbpg", "_TZ3000_ww6drja5", "Zbeacon"].includes(device.manufacturerName)) {
|
|
7233
|
+
if (!["_TZ3000_0zfrhq4i", "_TZ3000_okaz9tjs", "_TZ3000_typdpbpg", "_TZ3000_ww6drja5", "Zbeacon", "_TZ3000_cicwjqth"].includes(device.manufacturerName)) {
|
|
7218
7234
|
// Gives INVALID_DATA_TYPE error for _TZ3000_0zfrhq4i (as well as a few others in issue 20028)
|
|
7219
7235
|
// https://github.com/Koenkk/zigbee2mqtt/discussions/19680#discussioncomment-7667035
|
|
7220
7236
|
// Don't do this for `_TZ3000_gjnozsaz` (was previously in the list, but removed after:
|
|
7221
7237
|
// https://github.com/Koenkk/zigbee2mqtt/issues/28729#issuecomment-3370261334
|
|
7222
7238
|
await reporting.activePower(endpoint, { change: 10 });
|
|
7223
7239
|
}
|
|
7224
|
-
const acCurrentDivisor = device.manufacturerName
|
|
7240
|
+
const acCurrentDivisor = ["_TZ3000_typdpbpg"].includes(device.manufacturerName) ? 2000 : 1000;
|
|
7225
7241
|
endpoint.saveClusterAttributeKeyValue("haElectricalMeasurement", {
|
|
7226
7242
|
acCurrentDivisor,
|
|
7227
7243
|
acCurrentMultiplier: 1,
|
|
@@ -9105,6 +9121,65 @@ exports.definitions = [
|
|
|
9105
9121
|
],
|
|
9106
9122
|
extend: [tuya.modernExtend.tuyaBase({ timeStart: "2000" })],
|
|
9107
9123
|
},
|
|
9124
|
+
{
|
|
9125
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_agcxaw3f"]),
|
|
9126
|
+
model: "BOT-R15W",
|
|
9127
|
+
vendor: "Tuya",
|
|
9128
|
+
description: "Beok wall thermostat (battery powered)",
|
|
9129
|
+
extend: [
|
|
9130
|
+
tuya.modernExtend.tuyaBase({
|
|
9131
|
+
dp: true,
|
|
9132
|
+
respondToMcuVersionResponse: true,
|
|
9133
|
+
timeStart: "1970",
|
|
9134
|
+
}),
|
|
9135
|
+
],
|
|
9136
|
+
exposes: [
|
|
9137
|
+
e.child_lock(),
|
|
9138
|
+
e
|
|
9139
|
+
.climate()
|
|
9140
|
+
.withSystemMode(["off", "heat"], ea.STATE_SET)
|
|
9141
|
+
.withPreset(["manual", "auto", "mixed", "away"])
|
|
9142
|
+
.withSetpoint("current_heating_setpoint", 5, 35, 0.5, ea.STATE_SET)
|
|
9143
|
+
.withRunningState(["idle", "heat"], ea.STATE)
|
|
9144
|
+
.withLocalTemperature(ea.STATE)
|
|
9145
|
+
.withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET),
|
|
9146
|
+
e.binary("frost_protection", ea.STATE_SET, "ON", "OFF").withDescription("Antifreeze function"),
|
|
9147
|
+
e
|
|
9148
|
+
.max_temperature_limit()
|
|
9149
|
+
.withUnit("°C")
|
|
9150
|
+
.withValueMin(15)
|
|
9151
|
+
.withValueMax(90)
|
|
9152
|
+
.withValueStep(0.5)
|
|
9153
|
+
.withPreset("default", 60, "Default value")
|
|
9154
|
+
.withDescription("Maximum upper temperature"),
|
|
9155
|
+
e
|
|
9156
|
+
.numeric("temperature_delta", ea.STATE_SET)
|
|
9157
|
+
.withUnit("°C")
|
|
9158
|
+
.withValueMax(10)
|
|
9159
|
+
.withValueMin(0.5)
|
|
9160
|
+
.withValueStep(0.5)
|
|
9161
|
+
.withPreset("default", 1, "Default value")
|
|
9162
|
+
.withDescription("Delta between local temp and setpoint to trigger heat"),
|
|
9163
|
+
e.binary("factory_reset", ea.STATE_SET, "ON", "OFF").withDescription("Full factory reset, use with caution!"),
|
|
9164
|
+
e.battery(),
|
|
9165
|
+
],
|
|
9166
|
+
meta: {
|
|
9167
|
+
tuyaDatapoints: [
|
|
9168
|
+
[1, "system_mode", tuya.valueConverterBasic.lookup({ heat: true, off: false })],
|
|
9169
|
+
[2, "current_heating_setpoint", tuya.valueConverter.divideBy10],
|
|
9170
|
+
[3, "local_temperature", tuya.valueConverter.divideBy10],
|
|
9171
|
+
[4, "preset", tuya.valueConverterBasic.lookup({ manual: tuya.enum(0), auto: tuya.enum(1), mixed: tuya.enum(2), away: tuya.enum(3) })],
|
|
9172
|
+
[9, "child_lock", tuya.valueConverter.lockUnlock],
|
|
9173
|
+
[15, "max_temperature_limit", tuya.valueConverter.divideBy10],
|
|
9174
|
+
[19, "local_temperature_calibration", tuya.valueConverter.localTempCalibration3],
|
|
9175
|
+
[101, "running_state", tuya.valueConverterBasic.lookup({ heat: tuya.enum(1), idle: tuya.enum(0) })],
|
|
9176
|
+
[102, "frost_protection", tuya.valueConverter.onOff],
|
|
9177
|
+
[103, "factory_reset", tuya.valueConverter.onOff],
|
|
9178
|
+
[107, "temperature_delta", tuya.valueConverter.divideBy10],
|
|
9179
|
+
[113, "battery", tuya.valueConverter.raw],
|
|
9180
|
+
],
|
|
9181
|
+
},
|
|
9182
|
+
},
|
|
9108
9183
|
{
|
|
9109
9184
|
fingerprint: tuya.fingerprint("TS0601", [
|
|
9110
9185
|
"_TZE200_viy9ihs7",
|
|
@@ -9366,7 +9441,7 @@ exports.definitions = [
|
|
|
9366
9441
|
extend: [m.illuminance()],
|
|
9367
9442
|
},
|
|
9368
9443
|
{
|
|
9369
|
-
fingerprint: tuya.fingerprint("TS0222", ["_TZ3000_8uxxzz4b", "
|
|
9444
|
+
fingerprint: tuya.fingerprint("TS0222", ["_TZ3000_8uxxzz4b", "_TZ3000_9kbbfeho", "_TZ3000_l6rsaipj"]),
|
|
9370
9445
|
model: "TS0222_light",
|
|
9371
9446
|
vendor: "Tuya",
|
|
9372
9447
|
description: "Light sensor",
|
|
@@ -9389,7 +9464,7 @@ exports.definitions = [
|
|
|
9389
9464
|
extend: [m.illuminance()],
|
|
9390
9465
|
},
|
|
9391
9466
|
{
|
|
9392
|
-
fingerprint: tuya.fingerprint("TS0222", ["_TYZB01_4mdqxxnn", "_TYZB01_m6ec2pgj", "_TZ3000_do6txrcw", "_TZ3000_7kscdesh"]),
|
|
9467
|
+
fingerprint: tuya.fingerprint("TS0222", ["_TYZB01_4mdqxxnn", "_TYZB01_m6ec2pgj", "_TZ3000_do6txrcw", "_TZ3000_7kscdesh", "_TZ3000_hy6ncvmw"]),
|
|
9393
9468
|
model: "TS0222",
|
|
9394
9469
|
vendor: "Tuya",
|
|
9395
9470
|
description: "Light intensity sensor",
|
|
@@ -18525,7 +18600,7 @@ exports.definitions = [
|
|
|
18525
18600
|
},
|
|
18526
18601
|
{
|
|
18527
18602
|
zigbeeModel: ["ZG-223Z"],
|
|
18528
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_jsaqgakf", "_TZE200_u6x1zyv2"]),
|
|
18603
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_jsaqgakf", "_TZE200_u6x1zyv2", "_TZE200_2pddnnrk"]),
|
|
18529
18604
|
model: "ZG-223Z",
|
|
18530
18605
|
vendor: "HOBEIAN",
|
|
18531
18606
|
description: "Rainwater detection sensor",
|
|
@@ -19257,11 +19332,12 @@ exports.definitions = [
|
|
|
19257
19332
|
],
|
|
19258
19333
|
},
|
|
19259
19334
|
{
|
|
19260
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_3regm3h6"]),
|
|
19335
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_3regm3h6", "_TZE204_0hcjew5p"]),
|
|
19261
19336
|
model: "_TZE204_3regm3h6",
|
|
19262
19337
|
vendor: "Tuya",
|
|
19263
19338
|
description: "Smart thermostat for electric radiator with pilot wire",
|
|
19264
19339
|
extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "1970" })],
|
|
19340
|
+
whiteLabel: [tuya.whitelabel("THALEOS", "TH-P1Z", "Smart thermostat for electric heater", ["_TZE204_0hcjew5p"])],
|
|
19265
19341
|
exposes: [
|
|
19266
19342
|
e.binary("state", ea.STATE_SET, "ON", "OFF").withDescription("Turn the heater on or off").withCategory("config"),
|
|
19267
19343
|
e.child_lock(),
|