zigbee-herdsman-converters 25.105.0 → 25.107.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 +53 -0
- package/dist/converters/fromZigbee.d.ts +1 -0
- package/dist/converters/fromZigbee.d.ts.map +1 -1
- package/dist/converters/fromZigbee.js +16 -5
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/devices/custom_devices_diy.d.ts.map +1 -1
- package/dist/devices/custom_devices_diy.js +5 -0
- package/dist/devices/custom_devices_diy.js.map +1 -1
- package/dist/devices/dresden_elektronik.d.ts.map +1 -1
- package/dist/devices/dresden_elektronik.js +48 -2
- package/dist/devices/dresden_elektronik.js.map +1 -1
- package/dist/devices/engo.d.ts.map +1 -1
- package/dist/devices/engo.js +179 -0
- package/dist/devices/engo.js.map +1 -1
- package/dist/devices/heiman.d.ts.map +1 -1
- package/dist/devices/heiman.js +94 -23
- package/dist/devices/heiman.js.map +1 -1
- package/dist/devices/ledvance.d.ts.map +1 -1
- package/dist/devices/ledvance.js +7 -0
- package/dist/devices/ledvance.js.map +1 -1
- package/dist/devices/ls.d.ts.map +1 -1
- package/dist/devices/ls.js +63 -0
- package/dist/devices/ls.js.map +1 -1
- package/dist/devices/lumi.d.ts.map +1 -1
- package/dist/devices/lumi.js +5 -3
- package/dist/devices/lumi.js.map +1 -1
- package/dist/devices/niko.d.ts.map +1 -1
- package/dist/devices/niko.js +144 -33
- package/dist/devices/niko.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +7 -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 +66 -36
- package/dist/devices/schneider_electric.js.map +1 -1
- package/dist/devices/sinope.js +1 -1
- package/dist/devices/sinope.js.map +1 -1
- package/dist/devices/siterwell.d.ts.map +1 -1
- package/dist/devices/siterwell.js +1 -0
- package/dist/devices/siterwell.js.map +1 -1
- package/dist/devices/sonoff.d.ts +1 -0
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +16 -0
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/sunricher.d.ts.map +1 -1
- package/dist/devices/sunricher.js +13 -0
- package/dist/devices/sunricher.js.map +1 -1
- package/dist/devices/third_reality.js +4 -4
- package/dist/devices/third_reality.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +511 -7
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/yale.d.ts.map +1 -1
- package/dist/devices/yale.js +7 -0
- package/dist/devices/yale.js.map +1 -1
- package/dist/lib/exposes.d.ts.map +1 -1
- package/dist/lib/exposes.js +1 -1
- package/dist/lib/exposes.js.map +1 -1
- package/dist/lib/generateDefinition.js +367 -14
- package/dist/lib/generateDefinition.js.map +1 -1
- package/dist/lib/modernExtend.d.ts +5 -1
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +28 -3
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/ota.d.ts.map +1 -1
- package/dist/lib/ota.js +7 -1
- package/dist/lib/ota.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +3 -3
package/dist/devices/tuya.js
CHANGED
|
@@ -3009,7 +3009,7 @@ exports.definitions = [
|
|
|
3009
3009
|
]),
|
|
3010
3010
|
tuya.whitelabel("MiBoxer", "E3-ZR", "3 in 1 LED Controller", ["_TZB210_wy1pyu1q", "_TZB210_yatkpuha"]),
|
|
3011
3011
|
tuya.whitelabel("MiBoxer", "SZ5", "5 in 1 LED Controller", ["_TZB210_w9hcix2r"]),
|
|
3012
|
-
tuya.whitelabel("MiBoxer", "FUT037Z+", "RGB led controller", ["_TZB210_417ikxay", "_TZB210_wxazcmsh"]),
|
|
3012
|
+
tuya.whitelabel("MiBoxer", "FUT037Z+", "RGB led controller", ["_TZB210_417ikxay", "_TZB210_wxazcmsh", "_TZB210_u3ri0968"]),
|
|
3013
3013
|
tuya.whitelabel("MiBoxer", "FUT039Z", "RGB+CCT LED controller", ["_TZ3210_jicmoite", "_TZB210_rs0ufzwg"]),
|
|
3014
3014
|
tuya.whitelabel("MiBoxer", "FUT066Z", "RGB+CCT LED Downlight", ["_TZ3210_zrvxvydd"]),
|
|
3015
3015
|
tuya.whitelabel("MiBoxer", "FUT068ZR", "RGB+CCT LED Downlight", ["_TZB210_endmggws"]),
|
|
@@ -6043,7 +6043,7 @@ exports.definitions = [
|
|
|
6043
6043
|
onOffCountdown: (m) => m !== "_TZ3000_xfxpoxe0",
|
|
6044
6044
|
indicatorMode: (m) => m !== "_TZ3000_xfxpoxe0",
|
|
6045
6045
|
powerOutageMemory: true,
|
|
6046
|
-
backlightModeOffOn:
|
|
6046
|
+
backlightModeOffOn: (m) => m === "_TZ3000_xfxpoxe0",
|
|
6047
6047
|
}),
|
|
6048
6048
|
],
|
|
6049
6049
|
configure: async (device, coordinatorEndpoint) => {
|
|
@@ -9638,10 +9638,9 @@ exports.definitions = [
|
|
|
9638
9638
|
extend: [
|
|
9639
9639
|
m.deviceEndpoints({ endpoints: { l1: 1, l2: 2, l3: 3, l4: 4 } }),
|
|
9640
9640
|
tuya.modernExtend.tuyaOnOff({
|
|
9641
|
-
powerOnBehavior2:
|
|
9641
|
+
powerOnBehavior2: true,
|
|
9642
9642
|
backlightModeOffOn: true,
|
|
9643
9643
|
endpoints: ["l1", "l2", "l3", "l4"],
|
|
9644
|
-
powerOutageMemory: (m) => m === "_TZ3000_r9e2w7dn",
|
|
9645
9644
|
switchType: (m) => m === "_TZ3000_r9e2w7dn",
|
|
9646
9645
|
}),
|
|
9647
9646
|
],
|
|
@@ -11556,7 +11555,7 @@ exports.definitions = [
|
|
|
11556
11555
|
},
|
|
11557
11556
|
},
|
|
11558
11557
|
{
|
|
11559
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qasjif9e", "_TZE204_ztqnh5cg", "_TZE204_iadro9bf", "_TZE284_iadro9bf"]),
|
|
11558
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_qasjif9e", "_TZE200_qasjif9e", "_TZE204_ztqnh5cg", "_TZE204_iadro9bf", "_TZE284_iadro9bf"]),
|
|
11560
11559
|
model: "ZY-M100-S_2",
|
|
11561
11560
|
vendor: "Tuya",
|
|
11562
11561
|
description: "Mini human breathe sensor",
|
|
@@ -14834,6 +14833,20 @@ exports.definitions = [
|
|
|
14834
14833
|
],
|
|
14835
14834
|
},
|
|
14836
14835
|
},
|
|
14836
|
+
{
|
|
14837
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_w2vunxzm"]),
|
|
14838
|
+
model: "_TZE204_w2vunxzm",
|
|
14839
|
+
vendor: "Tuya",
|
|
14840
|
+
description: "Pressure sensor",
|
|
14841
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
14842
|
+
exposes: [e.pressure(), e.temperature()],
|
|
14843
|
+
meta: {
|
|
14844
|
+
tuyaDatapoints: [
|
|
14845
|
+
[101, "pressure", tuya.valueConverter.divideBy10],
|
|
14846
|
+
[8, "temperature", tuya.valueConverter.divideBy100],
|
|
14847
|
+
],
|
|
14848
|
+
},
|
|
14849
|
+
},
|
|
14837
14850
|
{
|
|
14838
14851
|
fingerprint: tuya.fingerprint("TS0601", ["_TZE204_sooucan5", "_TZE204_oqtpvx51"]),
|
|
14839
14852
|
model: "YXZBRB58",
|
|
@@ -18746,11 +18759,12 @@ exports.definitions = [
|
|
|
18746
18759
|
},
|
|
18747
18760
|
},
|
|
18748
18761
|
{
|
|
18749
|
-
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_kyyu8rbj"]),
|
|
18762
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_kyyu8rbj", "_TZE204_7yyuo8sr"]),
|
|
18750
18763
|
model: "ME201WZ",
|
|
18751
18764
|
vendor: "Tuya",
|
|
18752
18765
|
description: "Water level sensor",
|
|
18753
18766
|
extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true })],
|
|
18767
|
+
whiteLabel: [tuya.whitelabel("Tuya", "872WZ", "Water level sensor", ["_TZE204_7yyuo8sr"])],
|
|
18754
18768
|
exposes: [
|
|
18755
18769
|
e.numeric("liquid_level_percent", ea.STATE).withUnit("%").withDescription("Liquid level ratio"),
|
|
18756
18770
|
e.numeric("liquid_depth", ea.STATE).withUnit("m").withDescription("Liquid Depth"),
|
|
@@ -19683,6 +19697,84 @@ exports.definitions = [
|
|
|
19683
19697
|
],
|
|
19684
19698
|
},
|
|
19685
19699
|
},
|
|
19700
|
+
{
|
|
19701
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_cgr0rhza"]),
|
|
19702
|
+
model: "TS0601_thermostat_6",
|
|
19703
|
+
vendor: "Tuya",
|
|
19704
|
+
description: "Thermostatic radiator valve",
|
|
19705
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true, forceTimeUpdates: true })],
|
|
19706
|
+
exposes: [
|
|
19707
|
+
e.child_lock(),
|
|
19708
|
+
e.battery(),
|
|
19709
|
+
e.open_window(),
|
|
19710
|
+
e.window_detection(),
|
|
19711
|
+
e.battery_low(),
|
|
19712
|
+
e
|
|
19713
|
+
.climate()
|
|
19714
|
+
.withSetpoint("current_heating_setpoint", 5, 35, 0.5, ea.STATE_SET)
|
|
19715
|
+
.withLocalTemperature(ea.STATE)
|
|
19716
|
+
.withPreset(["manual", "schedule", "eco", "comfort", "antifrost", "off"])
|
|
19717
|
+
.withSystemMode(["off", "heat"], ea.STATE)
|
|
19718
|
+
.withLocalTemperatureCalibration(-12, 12, 1, ea.STATE_SET),
|
|
19719
|
+
...tuya.exposes.scheduleAllDays(ea.STATE_SET, "HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C HH:MM/C"),
|
|
19720
|
+
e.comfort_temperature().withValueMin(5).withValueMax(35),
|
|
19721
|
+
e.eco_temperature().withValueMin(5).withValueMax(35),
|
|
19722
|
+
e
|
|
19723
|
+
.binary("scale_protection", ea.STATE_SET, "ON", "OFF")
|
|
19724
|
+
.withDescription("If the heat sink is not fully opened within " +
|
|
19725
|
+
"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 " +
|
|
19726
|
+
"able to be used. To ensure normal use of the heat sink, the controller will automatically open the valve fully every " +
|
|
19727
|
+
'two weeks. It will run for 30 seconds per time with the screen displaying "Ad", then return to its normal working state ' +
|
|
19728
|
+
"again."),
|
|
19729
|
+
e
|
|
19730
|
+
.binary("frost_protection", ea.STATE_SET, "ON", "OFF")
|
|
19731
|
+
.withDescription("When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes."),
|
|
19732
|
+
e.numeric("error", ea.STATE).withDescription('If NTC is damaged, "Er" will be on the TRV display.'),
|
|
19733
|
+
],
|
|
19734
|
+
meta: {
|
|
19735
|
+
tuyaDatapoints: [
|
|
19736
|
+
[
|
|
19737
|
+
2,
|
|
19738
|
+
"preset",
|
|
19739
|
+
tuya.valueConverterBasic.lookup({
|
|
19740
|
+
manual: tuya.enum(0),
|
|
19741
|
+
schedule: tuya.enum(1),
|
|
19742
|
+
eco: tuya.enum(2),
|
|
19743
|
+
comfort: tuya.enum(3),
|
|
19744
|
+
antifrost: tuya.enum(4),
|
|
19745
|
+
off: tuya.enum(5),
|
|
19746
|
+
}),
|
|
19747
|
+
],
|
|
19748
|
+
[4, "current_heating_setpoint", tuya.valueConverter.divideBy10],
|
|
19749
|
+
[5, "local_temperature", tuya.valueConverter.divideBy10],
|
|
19750
|
+
[6, "battery", tuya.valueConverter.raw],
|
|
19751
|
+
[7, "child_lock", tuya.valueConverter.lockUnlock],
|
|
19752
|
+
[8, "window_detection", tuya.valueConverter.onOff],
|
|
19753
|
+
[14, "open_window", tuya.valueConverter.onOff],
|
|
19754
|
+
[24, "comfort_temperature", tuya.valueConverter.divideBy10],
|
|
19755
|
+
[25, "eco_temperature", tuya.valueConverter.divideBy10],
|
|
19756
|
+
[28, "schedule_monday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(1)],
|
|
19757
|
+
[29, "schedule_tuesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(2)],
|
|
19758
|
+
[30, "schedule_wednesday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(3)],
|
|
19759
|
+
[31, "schedule_thursday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(4)],
|
|
19760
|
+
[32, "schedule_friday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(5)],
|
|
19761
|
+
[33, "schedule_saturday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(6)],
|
|
19762
|
+
[34, "schedule_sunday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
|
|
19763
|
+
[35, "fault_alarm", tuya.valueConverter.errorOrBatteryLow],
|
|
19764
|
+
[36, "frost_protection", tuya.valueConverter.onOff],
|
|
19765
|
+
[39, "scale_protection", tuya.valueConverter.onOff],
|
|
19766
|
+
[47, "local_temperature_calibration", tuya.valueConverter.localTempCalibration2],
|
|
19767
|
+
[
|
|
19768
|
+
49,
|
|
19769
|
+
"system_mode",
|
|
19770
|
+
tuya.valueConverterBasic.lookup({
|
|
19771
|
+
off: tuya.enum(0),
|
|
19772
|
+
heat: tuya.enum(1),
|
|
19773
|
+
}),
|
|
19774
|
+
],
|
|
19775
|
+
],
|
|
19776
|
+
},
|
|
19777
|
+
},
|
|
19686
19778
|
{
|
|
19687
19779
|
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_wem3gxyx"]),
|
|
19688
19780
|
model: "AE-940K",
|
|
@@ -22755,7 +22847,7 @@ exports.definitions = [
|
|
|
22755
22847
|
e
|
|
22756
22848
|
.numeric("soil_fertility_warning_setting", ea.STATE_SET)
|
|
22757
22849
|
.withValueMin(100)
|
|
22758
|
-
.withValueMax(
|
|
22850
|
+
.withValueMax(5000)
|
|
22759
22851
|
.withValueStep(1)
|
|
22760
22852
|
.withUnit("μS/cm")
|
|
22761
22853
|
.withDescription("When the soil fertility value is lower than what threshold should a warning be issued"),
|
|
@@ -23076,5 +23168,417 @@ exports.definitions = [
|
|
|
23076
23168
|
],
|
|
23077
23169
|
},
|
|
23078
23170
|
},
|
|
23171
|
+
{
|
|
23172
|
+
fingerprint: tuya.fingerprint("TS0601", ["_TZE284_vceqncho"]),
|
|
23173
|
+
model: "ZIS-01P",
|
|
23174
|
+
vendor: "Novato",
|
|
23175
|
+
description: "Dual-tech presence sensor (PIR + radar)",
|
|
23176
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23177
|
+
exposes: [
|
|
23178
|
+
e.occupancy(),
|
|
23179
|
+
e
|
|
23180
|
+
.numeric("presence_distance", ea.STATE_SET)
|
|
23181
|
+
.withUnit("m")
|
|
23182
|
+
.withDescription("Detection distance")
|
|
23183
|
+
.withValueMin(1)
|
|
23184
|
+
.withValueMax(3)
|
|
23185
|
+
.withValueStep(1),
|
|
23186
|
+
e
|
|
23187
|
+
.numeric("presence_sensitivity", ea.STATE_SET)
|
|
23188
|
+
.withDescription("Presence detection sensitivity")
|
|
23189
|
+
.withValueMin(1)
|
|
23190
|
+
.withValueMax(3)
|
|
23191
|
+
.withValueStep(1),
|
|
23192
|
+
e.binary("radar_switch", ea.STATE_SET, "ON", "OFF").withDescription("Enable/disable radar detection"),
|
|
23193
|
+
e.numeric("pir_sensitivity", ea.STATE_SET).withDescription("PIR sensor sensitivity").withValueMin(1).withValueMax(3).withValueStep(1),
|
|
23194
|
+
e
|
|
23195
|
+
.numeric("delay_time", ea.STATE_SET)
|
|
23196
|
+
.withUnit("s")
|
|
23197
|
+
.withDescription("Delay time before reporting no presence")
|
|
23198
|
+
.withValueMin(10)
|
|
23199
|
+
.withValueMax(600),
|
|
23200
|
+
e.binary("led_switch", ea.STATE_SET, "ON", "OFF").withDescription("Enable/disable LED indicator"),
|
|
23201
|
+
e.illuminance().withUnit("lx"),
|
|
23202
|
+
e.battery().withUnit("%"),
|
|
23203
|
+
e.numeric("radar_threshold", ea.STATE_SET).withDescription("Radar detection threshold").withValueMin(5).withValueMax(50).withValueStep(1),
|
|
23204
|
+
],
|
|
23205
|
+
meta: {
|
|
23206
|
+
tuyaDatapoints: [
|
|
23207
|
+
[1, "occupancy", tuya.valueConverter.trueFalse1],
|
|
23208
|
+
[102, "presence_distance", tuya.valueConverter.raw],
|
|
23209
|
+
[103, "presence_sensitivity", tuya.valueConverter.raw],
|
|
23210
|
+
[104, "radar_switch", tuya.valueConverter.onOff],
|
|
23211
|
+
[105, "pir_sensitivity", tuya.valueConverter.raw],
|
|
23212
|
+
[106, "delay_time", tuya.valueConverter.raw],
|
|
23213
|
+
[107, "led_switch", tuya.valueConverter.onOff],
|
|
23214
|
+
[108, "illuminance", tuya.valueConverter.raw],
|
|
23215
|
+
[109, "battery", tuya.valueConverter.raw],
|
|
23216
|
+
[164, "radar_threshold", tuya.valueConverter.raw],
|
|
23217
|
+
],
|
|
23218
|
+
},
|
|
23219
|
+
},
|
|
23220
|
+
{
|
|
23221
|
+
fingerprint: tuya.fingerprint("Excellux", ["DHT0001", "DHTA001"]),
|
|
23222
|
+
model: "FEDHT-01",
|
|
23223
|
+
vendor: "Excellux",
|
|
23224
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23225
|
+
description: "HT sensor with temperature and humidity",
|
|
23226
|
+
exposes: [
|
|
23227
|
+
e
|
|
23228
|
+
.enum("temperature_warning", ea.STATE, ["none", "low", "high"])
|
|
23229
|
+
.withDescription("Temperature warning.low :temperature is lower than v0 and v1.high:temperature is higher than v0 and v1"),
|
|
23230
|
+
e
|
|
23231
|
+
.enum("humidity_warning", ea.STATE, ["none", "low", "high"])
|
|
23232
|
+
.withDescription("Humidity warning.low :humidity is lower than v0 and v1.high:humidity is higher than v0 and v1"),
|
|
23233
|
+
e.numeric("battery", ea.STATE).withValueMin(1).withValueMax(100).withValueStep(1).withUnit("%").withDescription("Battery percentage"),
|
|
23234
|
+
e.temperature(),
|
|
23235
|
+
e.humidity(),
|
|
23236
|
+
e
|
|
23237
|
+
.numeric("sampling_interval", ea.STATE_SET)
|
|
23238
|
+
.withValueMin(5)
|
|
23239
|
+
.withValueMax(1200)
|
|
23240
|
+
.withValueStep(5)
|
|
23241
|
+
.withUnit("S")
|
|
23242
|
+
.withDescription("sampling interval"),
|
|
23243
|
+
e
|
|
23244
|
+
.numeric("temperature_calibration", ea.STATE_SET)
|
|
23245
|
+
.withValueMin(-2)
|
|
23246
|
+
.withValueMax(2)
|
|
23247
|
+
.withValueStep(0.1)
|
|
23248
|
+
.withUnit("°C")
|
|
23249
|
+
.withDescription("Temperature calibration"),
|
|
23250
|
+
e
|
|
23251
|
+
.numeric("temperature_v0_set", ea.STATE_SET)
|
|
23252
|
+
.withValueMin(-40)
|
|
23253
|
+
.withValueMax(85)
|
|
23254
|
+
.withValueStep(0.1)
|
|
23255
|
+
.withUnit("°C")
|
|
23256
|
+
.withDescription("Temperature v0 threshold setting"),
|
|
23257
|
+
e
|
|
23258
|
+
.numeric("temperature_v1_set", ea.STATE_SET)
|
|
23259
|
+
.withValueMin(-40)
|
|
23260
|
+
.withValueMax(85)
|
|
23261
|
+
.withValueStep(0.1)
|
|
23262
|
+
.withUnit("°C")
|
|
23263
|
+
.withDescription("Temperature v1 threshold setting"),
|
|
23264
|
+
e
|
|
23265
|
+
.numeric("humidity_calibration", ea.STATE_SET)
|
|
23266
|
+
.withValueMin(-10)
|
|
23267
|
+
.withValueMax(10)
|
|
23268
|
+
.withValueStep(1)
|
|
23269
|
+
.withUnit("%")
|
|
23270
|
+
.withDescription("Humidity calibration"),
|
|
23271
|
+
e
|
|
23272
|
+
.numeric("humidity_v0_set", ea.STATE_SET)
|
|
23273
|
+
.withValueMin(0)
|
|
23274
|
+
.withValueMax(100)
|
|
23275
|
+
.withValueStep(1)
|
|
23276
|
+
.withUnit("%")
|
|
23277
|
+
.withDescription("Humidity v0 threshold setting"),
|
|
23278
|
+
e
|
|
23279
|
+
.numeric("humidity_v1_set", ea.STATE_SET)
|
|
23280
|
+
.withValueMin(0)
|
|
23281
|
+
.withValueMax(100)
|
|
23282
|
+
.withValueStep(1)
|
|
23283
|
+
.withUnit("%")
|
|
23284
|
+
.withDescription("Humidity v1 threshold setting"),
|
|
23285
|
+
],
|
|
23286
|
+
meta: {
|
|
23287
|
+
tuyaDatapoints: [
|
|
23288
|
+
[4, "battery", tuya.valueConverter.raw],
|
|
23289
|
+
[5, "temperature", tuya.valueConverter.divideBy100],
|
|
23290
|
+
[101, "sampling_interval", tuya.valueConverter.raw],
|
|
23291
|
+
[114, "temperature_calibration", tuya.valueConverter.divideBy10],
|
|
23292
|
+
[115, "temperature_v0_set", tuya.valueConverter.divideBy100],
|
|
23293
|
+
[116, "temperature_v1_set", tuya.valueConverter.divideBy100],
|
|
23294
|
+
[117, "temperature_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23295
|
+
[118, "humidity", tuya.valueConverter.divideBy100],
|
|
23296
|
+
[119, "humidity_calibration", tuya.valueConverter.divideBy100],
|
|
23297
|
+
[120, "humidity_v0_set", tuya.valueConverter.divideBy100],
|
|
23298
|
+
[121, "humidity_v1_set", tuya.valueConverter.divideBy100],
|
|
23299
|
+
[122, "humidity_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23300
|
+
],
|
|
23301
|
+
},
|
|
23302
|
+
},
|
|
23303
|
+
{
|
|
23304
|
+
fingerprint: tuya.fingerprint("Excellux", ["NTCHT01"]),
|
|
23305
|
+
model: "NTCHT-01",
|
|
23306
|
+
vendor: "Excellux",
|
|
23307
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23308
|
+
description: "Probe Temperature and ht(humidity and temperature) Sensor",
|
|
23309
|
+
exposes: [
|
|
23310
|
+
e
|
|
23311
|
+
.enum("probe_temperature_warning", ea.STATE, ["none", "low", "high"])
|
|
23312
|
+
.withDescription("Probe temperature sensor warning.low :temperature is lower than v0 and v1.high:temperature is higher than v0 and v1"),
|
|
23313
|
+
e
|
|
23314
|
+
.enum("temperature_warning", ea.STATE, ["none", "low", "high"])
|
|
23315
|
+
.withDescription("Temperature warning.low :temperature is lower than v0 and v1.high:temperature is higher than v0 and v1"),
|
|
23316
|
+
e
|
|
23317
|
+
.enum("humidity_warning", ea.STATE, ["none", "low", "high"])
|
|
23318
|
+
.withDescription("Humidity warning.low :humidity is lower than v0 and v1.high:humidity is higher than v0 and v1"),
|
|
23319
|
+
e.numeric("battery", ea.STATE).withValueMin(1).withValueMax(100).withValueStep(1).withUnit("%").withDescription("Battery percentage"),
|
|
23320
|
+
e
|
|
23321
|
+
.numeric("probe_temperature", ea.STATE)
|
|
23322
|
+
.withValueMin(-40)
|
|
23323
|
+
.withValueMax(120)
|
|
23324
|
+
.withValueStep(1)
|
|
23325
|
+
.withUnit("°C")
|
|
23326
|
+
.withDescription("Probe temperature sensor"),
|
|
23327
|
+
e.temperature(),
|
|
23328
|
+
e.humidity(),
|
|
23329
|
+
e
|
|
23330
|
+
.numeric("sampling_interval", ea.STATE_SET)
|
|
23331
|
+
.withValueMin(5)
|
|
23332
|
+
.withValueMax(1200)
|
|
23333
|
+
.withValueStep(5)
|
|
23334
|
+
.withUnit("S")
|
|
23335
|
+
.withDescription("sampling interval"),
|
|
23336
|
+
e
|
|
23337
|
+
.numeric("probe_temperature_calibration", ea.STATE_SET)
|
|
23338
|
+
.withValueMin(-2)
|
|
23339
|
+
.withValueMax(2)
|
|
23340
|
+
.withValueStep(0.1)
|
|
23341
|
+
.withUnit("°C")
|
|
23342
|
+
.withDescription("Probe temperature sensor calibration"),
|
|
23343
|
+
e
|
|
23344
|
+
.numeric("probe_temperature_v0_set", ea.STATE_SET)
|
|
23345
|
+
.withValueMin(-40)
|
|
23346
|
+
.withValueMax(125)
|
|
23347
|
+
.withValueStep(1)
|
|
23348
|
+
.withUnit("°C")
|
|
23349
|
+
.withDescription("Probe temperature sensor v0 threshold setting"),
|
|
23350
|
+
e
|
|
23351
|
+
.numeric("probe_temperature_v1_set", ea.STATE_SET)
|
|
23352
|
+
.withValueMin(-40)
|
|
23353
|
+
.withValueMax(125)
|
|
23354
|
+
.withValueStep(1)
|
|
23355
|
+
.withUnit("°C")
|
|
23356
|
+
.withDescription("Probe temperature sensor v1 threshold setting"),
|
|
23357
|
+
e
|
|
23358
|
+
.numeric("temperature_calibration", ea.STATE_SET)
|
|
23359
|
+
.withValueMin(-2)
|
|
23360
|
+
.withValueMax(2)
|
|
23361
|
+
.withValueStep(0.1)
|
|
23362
|
+
.withUnit("°C")
|
|
23363
|
+
.withDescription("Temperature calibration"),
|
|
23364
|
+
e
|
|
23365
|
+
.numeric("temperature_v0_set", ea.STATE_SET)
|
|
23366
|
+
.withValueMin(-40)
|
|
23367
|
+
.withValueMax(85)
|
|
23368
|
+
.withValueStep(1)
|
|
23369
|
+
.withUnit("°C")
|
|
23370
|
+
.withDescription("Temperature v0 threshold setting"),
|
|
23371
|
+
e
|
|
23372
|
+
.numeric("temperature_v1_set", ea.STATE_SET)
|
|
23373
|
+
.withValueMin(-40)
|
|
23374
|
+
.withValueMax(85)
|
|
23375
|
+
.withValueStep(1)
|
|
23376
|
+
.withUnit("°C")
|
|
23377
|
+
.withDescription("Temperature v1 threshold setting"),
|
|
23378
|
+
e
|
|
23379
|
+
.numeric("humidity_calibration", ea.STATE_SET)
|
|
23380
|
+
.withValueMin(-10)
|
|
23381
|
+
.withValueMax(10)
|
|
23382
|
+
.withValueStep(1)
|
|
23383
|
+
.withUnit("%")
|
|
23384
|
+
.withDescription("Humidity calibration"),
|
|
23385
|
+
e
|
|
23386
|
+
.numeric("humidity_v0_set", ea.STATE_SET)
|
|
23387
|
+
.withValueMin(0)
|
|
23388
|
+
.withValueMax(100)
|
|
23389
|
+
.withValueStep(1)
|
|
23390
|
+
.withUnit("%")
|
|
23391
|
+
.withDescription("Humidity v0 threshold setting"),
|
|
23392
|
+
e
|
|
23393
|
+
.numeric("humidity_v1_set", ea.STATE_SET)
|
|
23394
|
+
.withValueMin(0)
|
|
23395
|
+
.withValueMax(100)
|
|
23396
|
+
.withValueStep(1)
|
|
23397
|
+
.withUnit("%")
|
|
23398
|
+
.withDescription("Humidity v1 threshold setting"),
|
|
23399
|
+
],
|
|
23400
|
+
meta: {
|
|
23401
|
+
tuyaDatapoints: [
|
|
23402
|
+
[1, "probe_temperature", tuya.valueConverter.divideBy10],
|
|
23403
|
+
[4, "battery", tuya.valueConverter.raw],
|
|
23404
|
+
[5, "temperature", tuya.valueConverter.divideBy100],
|
|
23405
|
+
[101, "sampling_interval", tuya.valueConverter.raw],
|
|
23406
|
+
[108, "probe_temperature_calibration", tuya.valueConverter.divideBy10],
|
|
23407
|
+
[109, "probe_temperature_v0_set", tuya.valueConverter.divideBy10],
|
|
23408
|
+
[110, "probe_temperature_v1_set", tuya.valueConverter.divideBy10],
|
|
23409
|
+
[112, "probe_temperature_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23410
|
+
[114, "temperature_calibration", tuya.valueConverter.divideBy100],
|
|
23411
|
+
[115, "temperature_v0_set", tuya.valueConverter.divideBy100],
|
|
23412
|
+
[116, "temperature_v1_set", tuya.valueConverter.divideBy100],
|
|
23413
|
+
[117, "temperature_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23414
|
+
[118, "humidity", tuya.valueConverter.divideBy100],
|
|
23415
|
+
[119, "humidity_calibration", tuya.valueConverter.divideBy100],
|
|
23416
|
+
[120, "humidity_v0_set", tuya.valueConverter.divideBy100],
|
|
23417
|
+
[121, "humidity_v1_set", tuya.valueConverter.divideBy100],
|
|
23418
|
+
[122, "humidity_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23419
|
+
],
|
|
23420
|
+
},
|
|
23421
|
+
},
|
|
23422
|
+
{
|
|
23423
|
+
fingerprint: tuya.fingerprint("Excellux", ["PIRIV01"]),
|
|
23424
|
+
model: "PIRIV-01",
|
|
23425
|
+
vendor: "Excellux",
|
|
23426
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23427
|
+
description: "PIR motion sensor, vibration sensor, and light sensor",
|
|
23428
|
+
exposes: [
|
|
23429
|
+
e.enum("presence_state", ea.STATE, ["true", "false"]).withDescription("Presence state,true:motion detected,false:no motion"),
|
|
23430
|
+
e.binary("vibration", ea.STATE, true, false).withDescription("Vibration state,true:vibration detected,false:no vibration"),
|
|
23431
|
+
e.enum("illumiance_warning", ea.STATE, ["none", "low", "high"]).withDescription("Illuminance warning level,low:low,high:high,none"),
|
|
23432
|
+
e.numeric("battery", ea.STATE).withValueMin(1).withValueMax(100).withValueStep(1).withUnit("%").withDescription("Battery percentage"),
|
|
23433
|
+
e.numeric("illumiance", ea.STATE).withValueMin(0).withValueMax(10000).withValueStep(1).withUnit("lux").withDescription("Illuminance"),
|
|
23434
|
+
e
|
|
23435
|
+
.numeric("sampling_interval", ea.STATE_SET)
|
|
23436
|
+
.withValueMin(5)
|
|
23437
|
+
.withValueMax(1200)
|
|
23438
|
+
.withValueStep(5)
|
|
23439
|
+
.withUnit("S")
|
|
23440
|
+
.withDescription("sampling illumiance interval"),
|
|
23441
|
+
e
|
|
23442
|
+
.numeric("vibration_sensitivity", ea.STATE_SET)
|
|
23443
|
+
.withValueMin(0)
|
|
23444
|
+
.withValueMax(50)
|
|
23445
|
+
.withValueStep(1)
|
|
23446
|
+
.withUnit("times")
|
|
23447
|
+
.withDescription("Vibration sensitivity"),
|
|
23448
|
+
e
|
|
23449
|
+
.numeric("illumiance_v0", ea.STATE_SET)
|
|
23450
|
+
.withValueMin(0)
|
|
23451
|
+
.withValueMax(10000)
|
|
23452
|
+
.withValueStep(1)
|
|
23453
|
+
.withUnit("lux")
|
|
23454
|
+
.withDescription("Illuminance v0 threshold setting"),
|
|
23455
|
+
e
|
|
23456
|
+
.numeric("illumiance_v1", ea.STATE_SET)
|
|
23457
|
+
.withValueMin(0)
|
|
23458
|
+
.withValueMax(10000)
|
|
23459
|
+
.withValueStep(1)
|
|
23460
|
+
.withUnit("lux")
|
|
23461
|
+
.withDescription("Illuminance v1 threshold setting"),
|
|
23462
|
+
e
|
|
23463
|
+
.numeric("illumiance_calibration", ea.STATE_SET)
|
|
23464
|
+
.withValueMin(-1000)
|
|
23465
|
+
.withValueMax(1000)
|
|
23466
|
+
.withValueStep(1)
|
|
23467
|
+
.withUnit("lux")
|
|
23468
|
+
.withDescription("Illuminance calibration"),
|
|
23469
|
+
],
|
|
23470
|
+
meta: {
|
|
23471
|
+
tuyaDatapoints: [
|
|
23472
|
+
[4, "battery", tuya.valueConverter.raw],
|
|
23473
|
+
[1, "presence_state", tuya.valueConverterBasic.lookup({ true: tuya.enum(1), false: tuya.enum(0) })],
|
|
23474
|
+
[3, "vibration", tuya.valueConverter.raw],
|
|
23475
|
+
[6, "vibration_sensitivity", tuya.valueConverter.raw],
|
|
23476
|
+
[20, "illumiance", tuya.valueConverter.raw],
|
|
23477
|
+
[101, "sampling_interval", tuya.valueConverter.raw],
|
|
23478
|
+
[104, "illumiance_v0", tuya.valueConverter.raw],
|
|
23479
|
+
[105, "illumiance_v1", tuya.valueConverter.raw],
|
|
23480
|
+
[106, "illumiance_calibration", tuya.valueConverter.raw],
|
|
23481
|
+
[107, "illumiance_warning", tuya.valueConverterBasic.lookup({ none: tuya.enum(0), low: tuya.enum(1), high: tuya.enum(2) })],
|
|
23482
|
+
],
|
|
23483
|
+
},
|
|
23484
|
+
},
|
|
23485
|
+
{
|
|
23486
|
+
fingerprint: tuya.fingerprint("Excellux", ["CAT0001"]),
|
|
23487
|
+
model: "Contact-01",
|
|
23488
|
+
vendor: "Excellux",
|
|
23489
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23490
|
+
description: "contact sensor and vibration sensor",
|
|
23491
|
+
exposes: [
|
|
23492
|
+
e.contact(),
|
|
23493
|
+
e.binary("vibration", ea.STATE, true, false).withDescription("Vibration state,true:vibration detected,false:no vibration"),
|
|
23494
|
+
e.numeric("battery", ea.STATE).withValueMin(1).withValueMax(100).withValueStep(1).withUnit("%").withDescription("Battery percentage"),
|
|
23495
|
+
e
|
|
23496
|
+
.numeric("vibration_sensitivity", ea.STATE_SET)
|
|
23497
|
+
.withValueMin(0)
|
|
23498
|
+
.withValueMax(50)
|
|
23499
|
+
.withValueStep(1)
|
|
23500
|
+
.withUnit("times")
|
|
23501
|
+
.withDescription("Vibration sensitivity"),
|
|
23502
|
+
],
|
|
23503
|
+
meta: {
|
|
23504
|
+
tuyaDatapoints: [
|
|
23505
|
+
[4, "battery", tuya.valueConverter.raw],
|
|
23506
|
+
[7, "contact", tuya.valueConverter.trueFalseInvert],
|
|
23507
|
+
[3, "vibration", tuya.valueConverter.raw],
|
|
23508
|
+
[6, "vibration_sensitivity", tuya.valueConverter.raw],
|
|
23509
|
+
],
|
|
23510
|
+
},
|
|
23511
|
+
},
|
|
23512
|
+
{
|
|
23513
|
+
fingerprint: tuya.fingerprint("Excellux", ["DSS0010"]),
|
|
23514
|
+
model: "Scene-Switc",
|
|
23515
|
+
vendor: "Excellux",
|
|
23516
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23517
|
+
description: "Scene switch",
|
|
23518
|
+
fromZigbee: [
|
|
23519
|
+
fz.command_step,
|
|
23520
|
+
fz.command_on,
|
|
23521
|
+
fz.command_off,
|
|
23522
|
+
fz.command_move_to_color_temp,
|
|
23523
|
+
fz.command_move_to_level,
|
|
23524
|
+
fz.tuya_multi_action,
|
|
23525
|
+
fz.tuya_operation_mode,
|
|
23526
|
+
],
|
|
23527
|
+
exposes: [
|
|
23528
|
+
e.numeric("battery", ea.STATE).withValueMin(1).withValueMax(100).withValueStep(1).withUnit("%").withDescription("Battery percentage"),
|
|
23529
|
+
e.action([
|
|
23530
|
+
"single",
|
|
23531
|
+
"double",
|
|
23532
|
+
"hold",
|
|
23533
|
+
"brightness_move_to_level",
|
|
23534
|
+
"color_temperature_move",
|
|
23535
|
+
"brightness_step_up",
|
|
23536
|
+
"brightness_step_down",
|
|
23537
|
+
"on",
|
|
23538
|
+
"off",
|
|
23539
|
+
]),
|
|
23540
|
+
e
|
|
23541
|
+
.enum("operation_mode", ea.ALL, ["command", "event"])
|
|
23542
|
+
.withDescription('Operation mode: "command" - for group control, "event" - for clicks'),
|
|
23543
|
+
],
|
|
23544
|
+
meta: {
|
|
23545
|
+
tuyaDatapoints: [[4, "battery", tuya.valueConverter.raw]],
|
|
23546
|
+
},
|
|
23547
|
+
configure: async (device, coordinatorEndpoint) => {
|
|
23548
|
+
const endpoint = device.getEndpoint(1);
|
|
23549
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint);
|
|
23550
|
+
await endpoint.write("genOnOff", { tuyaOperationMode: 1 });
|
|
23551
|
+
await endpoint.read("genOnOff", ["tuyaOperationMode"]);
|
|
23552
|
+
await endpoint.read("genPowerCfg", ["batteryVoltage", "batteryPercentageRemaining"]);
|
|
23553
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ["genPowerCfg"]);
|
|
23554
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff"]);
|
|
23555
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
23556
|
+
},
|
|
23557
|
+
},
|
|
23558
|
+
{
|
|
23559
|
+
fingerprint: tuya.fingerprint("Excellux", ["VABRATE"]),
|
|
23560
|
+
model: "VABRATE-01",
|
|
23561
|
+
vendor: "Excellux",
|
|
23562
|
+
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
|
|
23563
|
+
description: "Vibration sensor",
|
|
23564
|
+
exposes: [
|
|
23565
|
+
e.binary("vibration", ea.STATE, true, false).withDescription("Vibration state"),
|
|
23566
|
+
e.battery(),
|
|
23567
|
+
e
|
|
23568
|
+
.numeric("vibration_sensitivity", ea.STATE_SET)
|
|
23569
|
+
.withValueMin(0)
|
|
23570
|
+
.withValueMax(50)
|
|
23571
|
+
.withValueStep(1)
|
|
23572
|
+
.withUnit("times")
|
|
23573
|
+
.withDescription("Vibration sensitivity"),
|
|
23574
|
+
],
|
|
23575
|
+
meta: {
|
|
23576
|
+
tuyaDatapoints: [
|
|
23577
|
+
[4, "battery", tuya.valueConverter.raw],
|
|
23578
|
+
[3, "vibration", tuya.valueConverter.raw],
|
|
23579
|
+
[6, "vibration_sensitivity", tuya.valueConverter.raw],
|
|
23580
|
+
],
|
|
23581
|
+
},
|
|
23582
|
+
},
|
|
23079
23583
|
];
|
|
23080
23584
|
//# sourceMappingURL=tuya.js.map
|