zigbee-herdsman-converters 25.53.0 → 25.54.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/converters/fromZigbee.d.ts.map +1 -1
  3. package/dist/converters/fromZigbee.js +21 -0
  4. package/dist/converters/fromZigbee.js.map +1 -1
  5. package/dist/devices/frient.d.ts.map +1 -1
  6. package/dist/devices/frient.js +3 -2
  7. package/dist/devices/frient.js.map +1 -1
  8. package/dist/devices/innr.d.ts.map +1 -1
  9. package/dist/devices/innr.js +14 -0
  10. package/dist/devices/innr.js.map +1 -1
  11. package/dist/devices/lixee.d.ts.map +1 -1
  12. package/dist/devices/lixee.js +10 -5
  13. package/dist/devices/lixee.js.map +1 -1
  14. package/dist/devices/moes.d.ts.map +1 -1
  15. package/dist/devices/moes.js +138 -0
  16. package/dist/devices/moes.js.map +1 -1
  17. package/dist/devices/nous.d.ts.map +1 -1
  18. package/dist/devices/nous.js +59 -0
  19. package/dist/devices/nous.js.map +1 -1
  20. package/dist/devices/philips.d.ts.map +1 -1
  21. package/dist/devices/philips.js +7 -0
  22. package/dist/devices/philips.js.map +1 -1
  23. package/dist/devices/schneider_electric.d.ts.map +1 -1
  24. package/dist/devices/schneider_electric.js +80 -0
  25. package/dist/devices/schneider_electric.js.map +1 -1
  26. package/dist/devices/tuya.d.ts.map +1 -1
  27. package/dist/devices/tuya.js +47 -31
  28. package/dist/devices/tuya.js.map +1 -1
  29. package/dist/devices/woox.js +1 -1
  30. package/dist/devices/woox.js.map +1 -1
  31. package/dist/devices/zemismart.d.ts.map +1 -1
  32. package/dist/devices/zemismart.js +34 -0
  33. package/dist/devices/zemismart.js.map +1 -1
  34. package/dist/lib/exposes.js +1 -1
  35. package/dist/lib/exposes.js.map +1 -1
  36. package/dist/lib/generateDefinition.d.ts.map +1 -1
  37. package/dist/lib/generateDefinition.js +0 -3
  38. package/dist/lib/generateDefinition.js.map +1 -1
  39. package/dist/lib/modernExtend.d.ts +1 -0
  40. package/dist/lib/modernExtend.d.ts.map +1 -1
  41. package/dist/lib/modernExtend.js +53 -0
  42. package/dist/lib/modernExtend.js.map +1 -1
  43. package/dist/lib/ota.d.ts.map +1 -1
  44. package/dist/lib/ota.js +3 -6
  45. package/dist/lib/ota.js.map +1 -1
  46. package/dist/lib/tuya.d.ts +5 -3
  47. package/dist/lib/tuya.d.ts.map +1 -1
  48. package/dist/lib/tuya.js +6 -4
  49. package/dist/lib/tuya.js.map +1 -1
  50. package/dist/models-index.json +1 -1
  51. package/package.json +4 -3
@@ -1229,34 +1229,47 @@ exports.definitions = [
1229
1229
  description: "Ultrasonic water meter",
1230
1230
  extend: [tuya.modernExtend.tuyaBase({ dp: true })],
1231
1231
  exposes: [
1232
- // Water consumption sensor
1233
- e
1234
- .numeric("water_consumed", ea.STATE)
1235
- .withUnit("")
1236
- .withDescription("Total water consumption")
1237
- .withValueMin(0)
1238
- .withValueStep(0.001),
1239
- // Flow rate sensor
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",
@@ -6739,7 +6752,7 @@ exports.definitions = [
6739
6752
  },
6740
6753
  },
6741
6754
  {
6742
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qyr2m29i", "_TZE204_ltwbm23f"]),
6755
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qyr2m29i", "_TZE204_ltwbm23f", "_TZE284_ltwbm23f"]),
6743
6756
  model: "TRV602Z",
6744
6757
  vendor: "Tuya",
6745
6758
  description: "Thermostatic radiator valve.",
@@ -7192,16 +7205,18 @@ exports.definitions = [
7192
7205
  tuya.whitelabel("Nous", "A7Z", "Smart Zigbee Socket", ["_TZ3210_rwmitwj4"]),
7193
7206
  tuya.whitelabel("Zbeacon", "TS011F_plug_1_1", "Smart plug (with power monitoring)", ["Zbeacon"]),
7194
7207
  tuya.whitelabel("NEO", "NAS-WR01B", "Smart plug (with electrical measurements)", ["_TZ3000_gjnozsaz"]),
7208
+ tuya.whitelabel("GreenSun", "HSC-ZW-EU", "Outdoor Smart Plug (with power monitoring)", ["_TZ3000_cicwjqth"]),
7195
7209
  ],
7196
7210
  ota: true,
7197
7211
  extend: [
7198
7212
  tuya.modernExtend.tuyaOnOff({
7199
7213
  electricalMeasurements: true,
7200
7214
  electricalMeasurementsFzConverter: fzLocal.TS011F_electrical_measurement,
7201
- powerOutageMemory: true,
7202
- indicatorMode: (manufacturerName) => manufacturerName !== "_TZ3000_ww6drja5",
7203
- childLock: true,
7204
- onOffCountdown: true,
7215
+ // Conditional features
7216
+ powerOutageMemory: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
7217
+ indicatorMode: (manufacturerName) => manufacturerName === "_TZ3000_ww6drja5",
7218
+ childLock: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
7219
+ onOffCountdown: (manufacturerName) => manufacturerName !== "_TZ3000_cicwjqth",
7205
7220
  }),
7206
7221
  ],
7207
7222
  configure: async (device, coordinatorEndpoint) => {
@@ -7214,14 +7229,14 @@ exports.definitions = [
7214
7229
  await reporting.rmsVoltage(endpoint, { change: 5 });
7215
7230
  await reporting.rmsCurrent(endpoint, { change: 50 });
7216
7231
  }
7217
- if (!["_TZ3000_0zfrhq4i", "_TZ3000_okaz9tjs", "_TZ3000_typdpbpg", "_TZ3000_ww6drja5", "Zbeacon"].includes(device.manufacturerName)) {
7232
+ if (!["_TZ3000_0zfrhq4i", "_TZ3000_okaz9tjs", "_TZ3000_typdpbpg", "_TZ3000_ww6drja5", "Zbeacon", "_TZ3000_cicwjqth"].includes(device.manufacturerName)) {
7218
7233
  // Gives INVALID_DATA_TYPE error for _TZ3000_0zfrhq4i (as well as a few others in issue 20028)
7219
7234
  // https://github.com/Koenkk/zigbee2mqtt/discussions/19680#discussioncomment-7667035
7220
7235
  // Don't do this for `_TZ3000_gjnozsaz` (was previously in the list, but removed after:
7221
7236
  // https://github.com/Koenkk/zigbee2mqtt/issues/28729#issuecomment-3370261334
7222
7237
  await reporting.activePower(endpoint, { change: 10 });
7223
7238
  }
7224
- const acCurrentDivisor = device.manufacturerName === "_TZ3000_typdpbpg" ? 2000 : 1000;
7239
+ const acCurrentDivisor = ["_TZ3000_typdpbpg"].includes(device.manufacturerName) ? 2000 : 1000;
7225
7240
  endpoint.saveClusterAttributeKeyValue("haElectricalMeasurement", {
7226
7241
  acCurrentDivisor,
7227
7242
  acCurrentMultiplier: 1,
@@ -9366,7 +9381,7 @@ exports.definitions = [
9366
9381
  extend: [m.illuminance()],
9367
9382
  },
9368
9383
  {
9369
- fingerprint: tuya.fingerprint("TS0222", ["_TZ3000_8uxxzz4b", "_TZ3000_hy6ncvmw", "_TZ3000_9kbbfeho", "_TZ3000_l6rsaipj"]),
9384
+ fingerprint: tuya.fingerprint("TS0222", ["_TZ3000_8uxxzz4b", "_TZ3000_9kbbfeho", "_TZ3000_l6rsaipj"]),
9370
9385
  model: "TS0222_light",
9371
9386
  vendor: "Tuya",
9372
9387
  description: "Light sensor",
@@ -9389,7 +9404,7 @@ exports.definitions = [
9389
9404
  extend: [m.illuminance()],
9390
9405
  },
9391
9406
  {
9392
- fingerprint: tuya.fingerprint("TS0222", ["_TYZB01_4mdqxxnn", "_TYZB01_m6ec2pgj", "_TZ3000_do6txrcw", "_TZ3000_7kscdesh"]),
9407
+ fingerprint: tuya.fingerprint("TS0222", ["_TYZB01_4mdqxxnn", "_TYZB01_m6ec2pgj", "_TZ3000_do6txrcw", "_TZ3000_7kscdesh", "_TZ3000_hy6ncvmw"]),
9393
9408
  model: "TS0222",
9394
9409
  vendor: "Tuya",
9395
9410
  description: "Light intensity sensor",
@@ -18525,7 +18540,7 @@ exports.definitions = [
18525
18540
  },
18526
18541
  {
18527
18542
  zigbeeModel: ["ZG-223Z"],
18528
- fingerprint: tuya.fingerprint("TS0601", ["_TZE200_jsaqgakf", "_TZE200_u6x1zyv2"]),
18543
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE200_jsaqgakf", "_TZE200_u6x1zyv2", "_TZE200_2pddnnrk"]),
18529
18544
  model: "ZG-223Z",
18530
18545
  vendor: "HOBEIAN",
18531
18546
  description: "Rainwater detection sensor",
@@ -19257,11 +19272,12 @@ exports.definitions = [
19257
19272
  ],
19258
19273
  },
19259
19274
  {
19260
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_3regm3h6"]),
19275
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_3regm3h6", "_TZE204_0hcjew5p"]),
19261
19276
  model: "_TZE204_3regm3h6",
19262
19277
  vendor: "Tuya",
19263
19278
  description: "Smart thermostat for electric radiator with pilot wire",
19264
19279
  extend: [tuya.modernExtend.tuyaBase({ dp: true, timeStart: "1970" })],
19280
+ whiteLabel: [tuya.whitelabel("THALEOS", "TH-P1Z", "Smart thermostat for electric heater", ["_TZE204_0hcjew5p"])],
19265
19281
  exposes: [
19266
19282
  e.binary("state", ea.STATE_SET, "ON", "OFF").withDescription("Turn the heater on or off").withCategory("config"),
19267
19283
  e.child_lock(),