zigbee-herdsman-converters 15.0.86 → 15.0.88
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/devices/awox.js +1 -0
- package/devices/ikea.js +1 -0
- package/devices/lonsonho.js +1 -1
- package/devices/niko.js +31 -0
- package/devices/schneider_electric.js +26 -0
- package/devices/sylvania.js +8 -0
- package/devices/tuya.js +58 -1
- package/devices/xiaomi.js +5 -5
- package/lib/tuya.js +1 -0
- package/package.json +1 -1
package/devices/awox.js
CHANGED
package/devices/ikea.js
CHANGED
|
@@ -1115,6 +1115,7 @@ module.exports = [
|
|
|
1115
1115
|
description: 'Vindstyrka air quality and humidity sensor',
|
|
1116
1116
|
fromZigbee: [fz.temperature, fz.humidity, fz.pm25, ikea.fz.ikea_voc_index],
|
|
1117
1117
|
toZigbee: [],
|
|
1118
|
+
ota: ota.zigbeeOTA,
|
|
1118
1119
|
exposes: [e.temperature(), e.humidity(), e.pm25(), e.voc_index().withDescription('Sensirion VOC index')],
|
|
1119
1120
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1120
1121
|
const ep = device.getEndpoint(1);
|
package/devices/lonsonho.js
CHANGED
|
@@ -173,7 +173,7 @@ module.exports = [
|
|
|
173
173
|
vendor: 'Lonsonho',
|
|
174
174
|
description: 'Zigbee 3.0 LED-bulb, RGBW LED',
|
|
175
175
|
extend: extend.light_onoff_brightness_colortemp_color(
|
|
176
|
-
{disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true}),
|
|
176
|
+
{disableColorTempStartup: true, colorTempRange: [153, 500], disableEffect: true, disablePowerOnBehavior: true}),
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
fingerprint: [{modelID: 'TS0003', manufacturerName: '_TYZB01_zsl6z0pw'}, {modelID: 'TS0003', manufacturerName: '_TYZB01_uqkphoed'}],
|
package/devices/niko.js
CHANGED
|
@@ -311,4 +311,35 @@ module.exports = [
|
|
|
311
311
|
},
|
|
312
312
|
exposes: [e.cover_position()],
|
|
313
313
|
},
|
|
314
|
+
{
|
|
315
|
+
zigbeeModel: ['Battery switch, 4 button'],
|
|
316
|
+
model: '552-720X4',
|
|
317
|
+
vendor: 'Niko',
|
|
318
|
+
description: 'Battery switch with 4 buttons',
|
|
319
|
+
meta: {multiEndpoint: true},
|
|
320
|
+
fromZigbee: [fz.command_on, fz.command_off, fz.identify, fz.battery, fz.command_move, fz.command_stop],
|
|
321
|
+
toZigbee: [],
|
|
322
|
+
endpoint: (device) => {
|
|
323
|
+
return {top_left: 1, bottom_left: 2, top_right: 3, bottom_right: 4};
|
|
324
|
+
},
|
|
325
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
326
|
+
const ep1 = device.getEndpoint(1);
|
|
327
|
+
await reporting.bind(ep1, coordinatorEndpoint, ['genGroups', 'genOnOff', 'genLevelCtrl']);
|
|
328
|
+
await reporting.batteryPercentageRemaining(ep1);
|
|
329
|
+
const ep2 = device.getEndpoint(2);
|
|
330
|
+
await reporting.bind(ep2, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
|
|
331
|
+
const ep3 = device.getEndpoint(3);
|
|
332
|
+
await reporting.bind(ep3, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
|
|
333
|
+
const ep4 = device.getEndpoint(4);
|
|
334
|
+
await reporting.bind(ep4, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
|
|
335
|
+
},
|
|
336
|
+
exposes: [
|
|
337
|
+
e.action(['on_top_left', 'off_top_left', 'on_bottom_left', 'off_bottom_left', 'on_top_right', 'off_top_right',
|
|
338
|
+
'on_bottom_right', 'off_bottom_right', 'brightness_move_up_top_left', 'brightness_move_up_bottom_left',
|
|
339
|
+
'brightness_move_up_top_right', 'brightness_move_up_bottom_right', 'brightness_move_down_top_left',
|
|
340
|
+
'brightness_move_down_bottom_left', 'brightness_move_down_top_right', 'brightness_move_down_bottom_right',
|
|
341
|
+
'brightness_stop_top_left', 'brightness_stop_bottom_left', 'brightness_stop_top_right', 'brightness_stop_bottom_right']),
|
|
342
|
+
e.battery(),
|
|
343
|
+
],
|
|
344
|
+
},
|
|
314
345
|
];
|
|
@@ -1077,4 +1077,30 @@ module.exports = [
|
|
|
1077
1077
|
toZigbee: [],
|
|
1078
1078
|
exposes: [e.battery_low(), e.contact(), e.tamper()],
|
|
1079
1079
|
},
|
|
1080
|
+
{
|
|
1081
|
+
zigbeeModel: ['EKO07259'],
|
|
1082
|
+
model: 'EKO07259',
|
|
1083
|
+
vendor: 'Schneider Electric',
|
|
1084
|
+
description: 'Smart thermostat',
|
|
1085
|
+
fromZigbee: [fz.stelpro_thermostat, fz.metering, fz.schneider_pilot_mode, fz.wiser_device_info, fz.hvac_user_interface],
|
|
1086
|
+
toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_system_mode, tz.thermostat_running_state,
|
|
1087
|
+
tz.thermostat_local_temperature, tz.thermostat_control_sequence_of_operation, tz.schneider_pilot_mode,
|
|
1088
|
+
tz.schneider_thermostat_keypad_lockout, tz.thermostat_temperature_display_mode],
|
|
1089
|
+
exposes: [exposes.binary('keypad_lockout', ea.STATE_SET, 'lock1', 'unlock')
|
|
1090
|
+
.withDescription('Enables/disables physical input on the device'),
|
|
1091
|
+
exposes.enum('schneider_pilot_mode', ea.ALL, ['contactor', 'pilot']).withDescription('Controls piloting mode'),
|
|
1092
|
+
exposes.enum('temperature_display_mode', ea.ALL, ['celsius', 'fahrenheit'])
|
|
1093
|
+
.withDescription('The temperature format displayed on the thermostat screen'),
|
|
1094
|
+
exposes.climate().withSetpoint('occupied_heating_setpoint', 4, 30, 0.5).withLocalTemperature()
|
|
1095
|
+
.withSystemMode(['off', 'heat']).withRunningState(['idle', 'heat']).withPiHeatingDemand()],
|
|
1096
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1097
|
+
const endpoint1 = device.getEndpoint(1);
|
|
1098
|
+
const endpoint2 = device.getEndpoint(2);
|
|
1099
|
+
await reporting.bind(endpoint1, coordinatorEndpoint, ['hvacThermostat']);
|
|
1100
|
+
await reporting.thermostatPIHeatingDemand(endpoint1);
|
|
1101
|
+
await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
|
|
1102
|
+
await reporting.bind(endpoint2, coordinatorEndpoint, ['seMetering']);
|
|
1103
|
+
await endpoint1.read('hvacUserInterfaceCfg', ['keypadLockout', 'tempDisplayMode']);
|
|
1104
|
+
},
|
|
1105
|
+
},
|
|
1080
1106
|
];
|
package/devices/sylvania.js
CHANGED
|
@@ -197,4 +197,12 @@ module.exports = [
|
|
|
197
197
|
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [142, 555]}),
|
|
198
198
|
ota: ota.ledvance,
|
|
199
199
|
},
|
|
200
|
+
{
|
|
201
|
+
zigbeeModel: ['BR30 W 10 year'],
|
|
202
|
+
model: '74453',
|
|
203
|
+
vendor: 'Sylvania',
|
|
204
|
+
description: 'LIGHTIFY LED soft white BR30',
|
|
205
|
+
extend: extend.ledvance.light_onoff_brightness(),
|
|
206
|
+
ota: ota.ledvance,
|
|
207
|
+
},
|
|
200
208
|
];
|
package/devices/tuya.js
CHANGED
|
@@ -2128,7 +2128,6 @@ module.exports = [
|
|
|
2128
2128
|
{modelID: 'TS0601', manufacturerName: '_TZE200_udank5zs'},
|
|
2129
2129
|
{modelID: 'TS0601', manufacturerName: '_TZE200_zuz7f94z'},
|
|
2130
2130
|
{modelID: 'TS0601', manufacturerName: '_TZE200_nv6nxo0c'},
|
|
2131
|
-
{modelID: 'TS0601', manufacturerName: '_TZE200_68nvbio9'},
|
|
2132
2131
|
{modelID: 'TS0601', manufacturerName: '_TZE200_3ylew7b4'},
|
|
2133
2132
|
{modelID: 'TS0601', manufacturerName: '_TZE200_llm0epxg'},
|
|
2134
2133
|
{modelID: 'TS0601', manufacturerName: '_TZE200_n1aauwb4'},
|
|
@@ -2239,6 +2238,42 @@ module.exports = [
|
|
|
2239
2238
|
.withFeature(exposes.text('workdays_schedule', ea.STATE_SET))
|
|
2240
2239
|
.withFeature(exposes.text('holidays_schedule', ea.STATE_SET))],
|
|
2241
2240
|
},
|
|
2241
|
+
{
|
|
2242
|
+
fingerprint: tuya.fingerprint('TS0601', ['_TZE200_68nvbio9']),
|
|
2243
|
+
model: 'TS0601_cover_3',
|
|
2244
|
+
vendor: 'TuYa',
|
|
2245
|
+
description: 'Cover motor',
|
|
2246
|
+
fromZigbee: [tuya.fz.datapoints],
|
|
2247
|
+
toZigbee: [tuya.tz.datapoints],
|
|
2248
|
+
onEvent: tuya.onEventSetTime,
|
|
2249
|
+
options: [exposes.options.invert_cover()],
|
|
2250
|
+
configure: tuya.configureMagicPacket,
|
|
2251
|
+
exposes: [
|
|
2252
|
+
e.battery(), e.cover_position(),
|
|
2253
|
+
exposes.enum('reverse_direction', ea.STATE_SET, ['forward', 'back']).withDescription('Reverse the motor direction'),
|
|
2254
|
+
exposes.enum('border', ea.STATE_SET, ['up', 'down', 'up_delete', 'down_delete', 'remove_top_bottom']),
|
|
2255
|
+
exposes.enum('click_control', ea.STATE_SET, ['up', 'down']).withDescription('Single motor steps'),
|
|
2256
|
+
exposes.binary('motor_fault', ea.STATE, true, false),
|
|
2257
|
+
],
|
|
2258
|
+
whiteLabel: [
|
|
2259
|
+
{vendor: 'Zemismart', model: 'ZM16EL-03/33'}, // _TZE200_68nvbio
|
|
2260
|
+
],
|
|
2261
|
+
meta: {
|
|
2262
|
+
// All datapoints go in here
|
|
2263
|
+
tuyaDatapoints: [
|
|
2264
|
+
[1, 'state', tuya.valueConverterBasic.lookup({'OPEN': tuya.enum(0), 'STOP': tuya.enum(1), 'CLOSE': tuya.enum(2)})],
|
|
2265
|
+
[2, 'position', tuya.valueConverter.coverPosition],
|
|
2266
|
+
[3, 'position', tuya.valueConverter.raw],
|
|
2267
|
+
[5, 'reverse_direction', tuya.valueConverterBasic.lookup({'forward': tuya.enum(0), 'back': tuya.enum(1)})],
|
|
2268
|
+
[12, 'motor_fault', tuya.valueConverter.trueFalse1],
|
|
2269
|
+
[13, 'battery', tuya.valueConverter.raw],
|
|
2270
|
+
[16, 'border', tuya.valueConverterBasic.lookup({
|
|
2271
|
+
'up': tuya.enum(0), 'down': tuya.enum(1), 'up_delete': tuya.enum(2), 'down_delete': tuya.enum(3),
|
|
2272
|
+
'remove_top_bottom': tuya.enum(4)})],
|
|
2273
|
+
[20, 'click_control', tuya.valueConverterBasic.lookup({'up': tuya.enum(0), 'down': tuya.enum(1)})],
|
|
2274
|
+
],
|
|
2275
|
+
},
|
|
2276
|
+
},
|
|
2242
2277
|
{
|
|
2243
2278
|
fingerprint: tuya.fingerprint('TS0601', [
|
|
2244
2279
|
'_TZE200_sur6q7ko', /* model: '3012732', vendor: 'LSC Smart Connect' */
|
|
@@ -3252,6 +3287,28 @@ module.exports = [
|
|
|
3252
3287
|
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
|
|
3253
3288
|
},
|
|
3254
3289
|
},
|
|
3290
|
+
{
|
|
3291
|
+
zigbeeModel: ['TS0726'],
|
|
3292
|
+
model: 'TS0726',
|
|
3293
|
+
vendor: 'TuYa',
|
|
3294
|
+
description: '4 gang switch with neutral wire',
|
|
3295
|
+
fromZigbee: [fz.on_off, tuya.fz.power_on_behavior_2, fz.ignore_basic_report],
|
|
3296
|
+
toZigbee: [tz.on_off, tuya.tz.power_on_behavior_2],
|
|
3297
|
+
exposes: [e.switch().withEndpoint('l1'), e.power_on_behavior().withEndpoint('l1'), e.switch().withEndpoint('l2'),
|
|
3298
|
+
e.power_on_behavior().withEndpoint('l2'), e.switch().withEndpoint('l3'), e.power_on_behavior().withEndpoint('l3'),
|
|
3299
|
+
e.switch().withEndpoint('l4'), e.power_on_behavior().withEndpoint('l4')],
|
|
3300
|
+
endpoint: (device) => {
|
|
3301
|
+
return {'l1': 1, 'l2': 2, 'l3': 3, 'l4': 4};
|
|
3302
|
+
},
|
|
3303
|
+
meta: {multiEndpoint: true},
|
|
3304
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
3305
|
+
await tuya.configureMagicPacket(device, coordinatorEndpoint, logger);
|
|
3306
|
+
await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']);
|
|
3307
|
+
await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']);
|
|
3308
|
+
await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']);
|
|
3309
|
+
await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']);
|
|
3310
|
+
},
|
|
3311
|
+
},
|
|
3255
3312
|
{
|
|
3256
3313
|
fingerprint: [{modelID: 'TS0006', manufacturerName: '_TYZB01_ltundz9m'},
|
|
3257
3314
|
{modelID: 'TS0006', manufacturerName: '_TZ3000_jyupj3fw'}],
|
package/devices/xiaomi.js
CHANGED
|
@@ -776,12 +776,12 @@ module.exports = [
|
|
|
776
776
|
model: 'ZNLDP12LM',
|
|
777
777
|
vendor: 'Xiaomi',
|
|
778
778
|
description: 'Aqara smart LED bulb',
|
|
779
|
-
toZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]})
|
|
780
|
-
tz.xiaomi_light_power_outage_memory]),
|
|
781
|
-
fromZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}).fromZigbee,
|
|
779
|
+
toZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true})
|
|
780
|
+
.toZigbee.concat([tz.xiaomi_light_power_outage_memory]),
|
|
781
|
+
fromZigbee: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true}).fromZigbee,
|
|
782
782
|
// power_on_behavior 'toggle' does not seem to be supported
|
|
783
|
-
exposes: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]})
|
|
784
|
-
e.power_outage_memory().withAccess(ea.STATE_SET)]),
|
|
783
|
+
exposes: xiaomiExtend.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true})
|
|
784
|
+
.exposes.concat([e.power_outage_memory().withAccess(ea.STATE_SET)]),
|
|
785
785
|
ota: ota.zigbeeOTA,
|
|
786
786
|
},
|
|
787
787
|
{
|
package/lib/tuya.js
CHANGED
|
@@ -1637,6 +1637,7 @@ const tuyaTz = {
|
|
|
1637
1637
|
'schedule_wednesday', 'schedule_thursday', 'schedule_friday', 'schedule_saturday', 'schedule_sunday', 'clear_fault',
|
|
1638
1638
|
'scale_protection', 'error', 'radar_scene', 'radar_sensitivity', 'tumble_alarm_time', 'tumble_switch', 'fall_sensitivity',
|
|
1639
1639
|
'min_temperature', 'max_temperature', 'window_detection', 'boost_heating', 'alarm_ringtone', 'alarm_time', 'fan_speed',
|
|
1640
|
+
'reverse_direction', 'border', 'click_control',
|
|
1640
1641
|
],
|
|
1641
1642
|
convertSet: async (entity, key, value, meta) => {
|
|
1642
1643
|
// A set converter is only called once; therefore we need to loop
|