zigbee-herdsman-converters 23.35.0 → 23.37.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.
@@ -5992,6 +5992,101 @@ exports.definitions = [
5992
5992
  ],
5993
5993
  },
5994
5994
  },
5995
+ {
5996
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_xalsoe3m"]),
5997
+ model: "ZHT-002",
5998
+ vendor: "Moes",
5999
+ description: "ZHT series thermostat",
6000
+ fromZigbee: [tuya.fz.datapoints],
6001
+ toZigbee: [tuya.tz.datapoints],
6002
+ onEvent: tuya.onEventSetTime,
6003
+ configure: tuya.configureMagicPacket,
6004
+ exposes: [
6005
+ e.binary("state", ea.STATE_SET, "ON", "OFF").withDescription("Turn the thermostat ON/OFF"),
6006
+ e.child_lock(),
6007
+ e.binary("system_mode", ea.STATE_SET, "Auto", "Manual").withDescription("Manual = Manual or Schedule = Auto"),
6008
+ e.eco_mode(),
6009
+ e.temperature_sensor_select(["IN", "AL", "OU"]).withLabel("Sensor").withDescription("Choose which sensor to use. Default: AL"),
6010
+ e.enum("valve_state", ea.STATE, ["close", "open"]).withDescription("State of the valve"),
6011
+ e
6012
+ .text("workdays_schedule", ea.STATE_SET)
6013
+ .withDescription('Workdays schedule, 4 entries max, example: "06:00/20°C 11:20/22°C 16:59/15°C 22:00/25°C"'),
6014
+ e.min_temperature().withValueMin(0).withValueMax(20),
6015
+ e.max_temperature().withValueMin(20).withValueMax(50),
6016
+ e
6017
+ .climate()
6018
+ .withLocalTemperature(ea.STATE)
6019
+ .withSetpoint("current_heating_setpoint", 0, 50, 1, ea.STATE_SET)
6020
+ .withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET),
6021
+ e
6022
+ .numeric("max_temperature_limit", ea.STATE_SET)
6023
+ .withDescription("Max temperature limit")
6024
+ .withValueMin(25)
6025
+ .withValueMax(70)
6026
+ .withValueStep(1),
6027
+ e
6028
+ .numeric("deadzone_temperature", ea.STATE_SET)
6029
+ .withValueMax(5)
6030
+ .withValueMin(1)
6031
+ .withValueStep(1)
6032
+ .withPreset("default", 1, "Default value")
6033
+ .withDescription("The difference between the local temperature that triggers heating and the set temperature"),
6034
+ e.enum("working_day", ea.STATE_SET, ["disabled", "5-2", "6-1", "7"]).withDescription("Workday setting"),
6035
+ ],
6036
+ meta: {
6037
+ tuyaDatapoints: [
6038
+ [1, "state", tuya.valueConverter.onOff],
6039
+ [2, "system_mode", tuya.valueConverterBasic.lookup({ auto: tuya.enum(0), manual: tuya.enum(1) })],
6040
+ [16, "local_temperature", tuya.valueConverter.divideBy10],
6041
+ [18, "min_temperature", tuya.valueConverter.raw],
6042
+ [19, "local_temperature_calibration", tuya.valueConverter.localTemperatureCalibration],
6043
+ [
6044
+ 23,
6045
+ "working_day",
6046
+ tuya.valueConverterBasic.lookup((_, device) => {
6047
+ if (device.manufacturerName === "_TZE204_xalsoe3m") {
6048
+ return {
6049
+ disabled: tuya.enum(0),
6050
+ "5-2": tuya.enum(1),
6051
+ "6-1": tuya.enum(2),
6052
+ "7": tuya.enum(3),
6053
+ };
6054
+ }
6055
+ return {
6056
+ disabled: tuya.enum(0),
6057
+ "5-2": tuya.enum(2),
6058
+ "6-1": tuya.enum(1),
6059
+ "7": tuya.enum(3),
6060
+ };
6061
+ }),
6062
+ ],
6063
+ [
6064
+ 32,
6065
+ "sensor",
6066
+ tuya.valueConverterBasic.lookup({
6067
+ IN: tuya.enum(0),
6068
+ AL: tuya.enum(2),
6069
+ OU: tuya.enum(1),
6070
+ }),
6071
+ ],
6072
+ [34, "max_temperature", tuya.valueConverter.raw],
6073
+ [39, "child_lock", tuya.valueConverter.lockUnlock],
6074
+ [40, "eco_mode", tuya.valueConverter.onOff],
6075
+ [
6076
+ 47,
6077
+ "valve_state",
6078
+ tuya.valueConverterBasic.lookup({
6079
+ closed: tuya.enum(0),
6080
+ open: tuya.enum(1),
6081
+ }),
6082
+ ],
6083
+ [50, "current_heating_setpoint", tuya.valueConverter.raw],
6084
+ [68, "programming_mode", tuya.valueConverter.raw],
6085
+ [101, "max_temperature_limit", tuya.valueConverter.raw],
6086
+ [102, "deadzone_temperature", tuya.valueConverter.raw],
6087
+ ],
6088
+ },
6089
+ },
5995
6090
  {
5996
6091
  fingerprint: tuya.fingerprint("TS0601", ["_TZE284_ymldrmzx"]),
5997
6092
  model: "TRV603-WZ",
@@ -8695,6 +8790,7 @@ exports.definitions = [
8695
8790
  fz.tuya_operation_mode,
8696
8791
  fz.battery,
8697
8792
  ],
8793
+ whiteLabel: [tuya.whitelabel("Tuya", "ZG-101Z_D", "Smart knob", ["_TZ3000_402vrq2i"])],
8698
8794
  toZigbee: [tz.tuya_operation_mode],
8699
8795
  exposes: [
8700
8796
  e.action([
@@ -10158,6 +10254,60 @@ exports.definitions = [
10158
10254
  ],
10159
10255
  },
10160
10256
  },
10257
+ {
10258
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE284_eaet5qt5", "_TZE284_fhvpaltk"]),
10259
+ model: "TS0601_water_switch",
10260
+ vendor: "Tuya",
10261
+ description: "Dual water valve",
10262
+ fromZigbee: [tuya.fz.datapoints, fz.battery],
10263
+ toZigbee: [tuya.tz.datapoints],
10264
+ onEvent: tuya.onEventSetTime,
10265
+ configure: tuya.configureMagicPacket,
10266
+ exposes: [
10267
+ e.enum("valve_status", ea.STATE, ["manual", "auto", "idle"]).withDescription("Valve 1 status (manual, auto, idle)").withEndpoint("l1"),
10268
+ e.enum("valve_status", ea.STATE, ["manual", "auto", "idle"]).withDescription("Valve 2 status (manual, auto, idle)").withEndpoint("l2"),
10269
+ e.switch().withEndpoint("l1").withDescription("Valve 1 on/off").withLabel("Valve 1"),
10270
+ e.switch().withEndpoint("l2").withDescription("Valve 2 on/off").withLabel("Valve 2"),
10271
+ e
10272
+ .numeric("countdown", ea.STATE_SET)
10273
+ .withUnit("min")
10274
+ .withDescription("Valve 1 countdown in minutes")
10275
+ .withValueMin(0)
10276
+ .withValueMax(1440)
10277
+ .withEndpoint("l1"),
10278
+ e
10279
+ .numeric("countdown", ea.STATE_SET)
10280
+ .withUnit("min")
10281
+ .withDescription("Valve 2 countdown in minutes")
10282
+ .withValueMin(0)
10283
+ .withValueMax(1440)
10284
+ .withEndpoint("l2"),
10285
+ e.numeric("valve_duration", ea.STATE).withUnit("s").withDescription("Valve 1 irrigation last duration in seconds").withEndpoint("l1"),
10286
+ e.numeric("valve_duration", ea.STATE).withUnit("s").withDescription("Valve 2 irrigation last duration in seconds").withEndpoint("l2"),
10287
+ e.battery(),
10288
+ e.battery_voltage(),
10289
+ ],
10290
+ meta: {
10291
+ tuyaSendCommand: "sendData",
10292
+ tuyaDatapoints: [
10293
+ [1, "state_l1", tuya.valueConverter.onOff], // Valve 1 on/off
10294
+ [2, "state_l2", tuya.valueConverter.onOff], // Valve 2 on/off
10295
+ [13, "countdown_l1", tuya.valueConverter.raw], // Valve 1 countdown
10296
+ [14, "countdown_l2", tuya.valueConverter.raw], // Valve 2 countdown
10297
+ [25, "valve_duration_l1", tuya.valueConverter.raw], // Valve 1 duration
10298
+ [26, "valve_duration_l2", tuya.valueConverter.raw], // Valve 2 duration
10299
+ [104, "valve_status_l1", tuya.valueConverterBasic.lookup({ manual: 0, auto: 1, idle: 2 })], // Valve 1 status
10300
+ [105, "valve_status_l2", tuya.valueConverterBasic.lookup({ manual: 0, auto: 1, idle: 2 })], // Valve 2 status
10301
+ ],
10302
+ multiEndpoint: true, // Enable multi-endpoint support
10303
+ },
10304
+ endpoint: (device) => {
10305
+ return {
10306
+ l1: 1, // Valve 1 uses endpoint 1
10307
+ l2: 1, // Valve 2 also uses endpoint 1
10308
+ };
10309
+ },
10310
+ },
10161
10311
  {
10162
10312
  fingerprint: tuya.fingerprint("TS0601", ["_TZE200_r32ctezx", "_TZE204_r32ctezx"]),
10163
10313
  model: "TS0601_fan_switch",
@@ -13777,7 +13927,6 @@ exports.definitions = [
13777
13927
  fromZigbee: [tuya.fz.datapoints, tuya.fz.gateway_connection_status],
13778
13928
  toZigbee: [tuya.tz.datapoints],
13779
13929
  configure: tuya.configureMagicPacket,
13780
- whiteLabel: [{ vendor: "XOCA", model: "DAC4121C" }],
13781
13930
  exposes: [e.current(), e.power(), e.voltage(), e.energy(), e.text("meter_id", ea.STATE).withDescription("Meter ID (ID of device)")],
13782
13931
  meta: {
13783
13932
  tuyaDatapoints: [
@@ -15783,6 +15932,7 @@ exports.definitions = [
15783
15932
  Tempoary: tuya.enum(2),
15784
15933
  }),
15785
15934
  ],
15935
+ [113, "humidity", tuya.valueConverter.raw],
15786
15936
  ],
15787
15937
  },
15788
15938
  },
@@ -15828,7 +15978,7 @@ exports.definitions = [
15828
15978
  [2, "valve_2", tuya.valueConverter.onOff],
15829
15979
  [
15830
15980
  105,
15831
- "valve_1",
15981
+ "valve_2",
15832
15982
  tuya.valueConverterBasic.lookup({
15833
15983
  OFF: tuya.enum(2),
15834
15984
  ON: tuya.enum(0),
@@ -16831,5 +16981,95 @@ exports.definitions = [
16831
16981
  ],
16832
16982
  },
16833
16983
  },
16984
+ {
16985
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_jcwbwckh"]),
16986
+ model: "ZBN-JT-63",
16987
+ vendor: "Tuya",
16988
+ description: "Din rail switch with power monitoring",
16989
+ fromZigbee: [tuya.fz.datapoints],
16990
+ toZigbee: [tuya.tz.datapoints],
16991
+ exposes: [
16992
+ tuya.exposes.switch(),
16993
+ e.numeric("power", ea.STATE).withDescription("power").withUnit("W").withDescription("Instantaneous measured power"),
16994
+ e.numeric("current", ea.STATE).withDescription("current").withUnit("A").withDescription("Instantaneous measured electrical current"),
16995
+ e.numeric("voltage", ea.STATE).withDescription("voltage").withUnit("V").withDescription("Measured electrical potential value"),
16996
+ e.numeric("energy", ea.STATE).withDescription("energy").withUnit("kWh").withDescription("Consumed energy"),
16997
+ e.enum("power_outage_memory", ea.STATE_SET, ["on", "off", "restore"]).withDescription("Recover state after power outage"),
16998
+ e
16999
+ .enum("fault", ea.STATE, [
17000
+ "clear",
17001
+ "short_circuit_alarm",
17002
+ "surge_alarm",
17003
+ "overload_alarm",
17004
+ "leakagecurr_alarm",
17005
+ "temp_dif_fault",
17006
+ "fire_alarm",
17007
+ "high_power_alarm",
17008
+ "self_test_alarm",
17009
+ "ov_cr",
17010
+ "unbalance_alarm",
17011
+ "ov_vol",
17012
+ "undervoltage_alarm",
17013
+ "miss_phase_alarm",
17014
+ "outage_alarm",
17015
+ "magnetism_alarm",
17016
+ "credit_alarm",
17017
+ "no_balance_alarm",
17018
+ ])
17019
+ .withDescription("Fault status of the device (clear = nothing)"),
17020
+ e.text("meter_id", ea.STATE).withDescription("Meter ID (ID of device)"),
17021
+ ],
17022
+ meta: {
17023
+ tuyaDatapoints: [
17024
+ [1, "energy", tuya.valueConverter.divideBy100],
17025
+ [3, null, null],
17026
+ [4, null, null],
17027
+ [6, null, tuya.valueConverter.phaseVariant3],
17028
+ [
17029
+ 10,
17030
+ "fault",
17031
+ tuya.valueConverterBasic.lookup({
17032
+ clear: 0,
17033
+ ov_cr: 1,
17034
+ unbalance_alarm: 2,
17035
+ ov_vol: 4,
17036
+ undervoltage_alarm: 8,
17037
+ miss_phase_alarm: 16,
17038
+ outage_alarm: 32,
17039
+ magnetism_alarm: 64,
17040
+ terminal_alarm: 128,
17041
+ cover_alarm: 256,
17042
+ credit_alarm: 512,
17043
+ no_balance_alarm: 1024,
17044
+ battery_alarm: 2048,
17045
+ meter_hardware_alarm: 4096,
17046
+ }),
17047
+ ],
17048
+ [16, "state", tuya.valueConverter.onOff],
17049
+ [
17050
+ 18,
17051
+ "meter_id",
17052
+ {
17053
+ from: (v) => {
17054
+ if (typeof v === "object") {
17055
+ const buf = Buffer.from([v[0], v[1], v[2], v[3]]);
17056
+ return buf.readUInt32BE();
17057
+ }
17058
+ return v;
17059
+ },
17060
+ },
17061
+ ],
17062
+ [
17063
+ 23,
17064
+ "power_outage_memory",
17065
+ tuya.valueConverterBasic.lookup({
17066
+ on: 0,
17067
+ off: 1,
17068
+ restore: 2,
17069
+ }),
17070
+ ],
17071
+ ],
17072
+ },
17073
+ },
16834
17074
  ];
16835
17075
  //# sourceMappingURL=tuya.js.map