Skip to content

Commit 5f64f0e

Browse files
authored
feat: Improve integration of various Enbrighten devices (#8703)
1 parent 51ad105 commit 5f64f0e

File tree

1 file changed

+95
-65
lines changed

1 file changed

+95
-65
lines changed

src/devices/enbrighten.ts

+95-65
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,122 @@
1-
import fz from '../converters/fromZigbee';
21
import * as m from '../lib/modernExtend';
32
import {DefinitionWithExtend} from '../lib/types';
43

54
const definitions: DefinitionWithExtend[] = [
65
{
7-
zigbeeModel: ['43076'],
6+
zigbeeModel: ['43076', '43109', '43102', '43100', '43094', '43084'],
87
model: '43076',
98
vendor: 'Enbrighten',
109
description: 'Zigbee in-wall smart switch',
11-
extend: [m.onOff()],
10+
extend: [m.identify(), m.onOff({configureReporting: true, powerOnBehavior: false}), m.commandsOnOff({commands: ['on', 'off'], bind: true})],
11+
whiteLabel: [
12+
{
13+
model: '43109',
14+
vendor: 'Enbrighten',
15+
description: 'Zigbee in-wall smart switch',
16+
fingerprint: [{modelID: '43109'}],
17+
},
18+
{
19+
model: '43102',
20+
vendor: 'Enbrighten',
21+
description: 'Zigbee in-wall tamper-resistant smart outlet',
22+
fingerprint: [{modelID: '43102'}],
23+
},
24+
{
25+
model: '43100',
26+
vendor: 'Enbrighten',
27+
description: 'Zigbee plug-in outdoor smart switch',
28+
fingerprint: [{modelID: '43100'}],
29+
},
30+
{
31+
model: '43094',
32+
vendor: 'Enbrighten',
33+
description: 'Zigbee plug-in indoor smart switch with dual outlets on one control',
34+
fingerprint: [{modelID: '43094'}],
35+
},
36+
{
37+
model: '43084',
38+
vendor: 'Enbrighten',
39+
description: 'Zigbee in-wall smart toggle style switch',
40+
fingerprint: [{modelID: '43084'}],
41+
},
42+
],
1243
},
1344
{
1445
zigbeeModel: ['43078'],
1546
model: '43078',
1647
vendor: 'Enbrighten',
17-
description: 'Zigbee in-wall smart switch',
18-
extend: [m.onOff(), m.electricityMeter({cluster: 'metering'})],
48+
description: 'Zigbee in-wall smart switch with energy monitoring',
49+
extend: [
50+
m.identify(),
51+
m.onOff({configureReporting: true, powerOnBehavior: false}),
52+
m.electricityMeter({cluster: 'metering'}),
53+
m.commandsOnOff({commands: ['on', 'off'], bind: true}),
54+
],
1955
},
2056
{
21-
zigbeeModel: ['43080'],
57+
zigbeeModel: ['43080', '43113', '43090', '43096'],
2258
model: '43080',
2359
vendor: 'Enbrighten',
2460
description: 'Zigbee in-wall smart dimmer',
25-
extend: [m.light({configureReporting: true})],
26-
},
27-
{
28-
zigbeeModel: ['43113'],
29-
model: '43113',
30-
vendor: 'Enbrighten',
31-
description: 'Zigbee in-wall smart dimmer',
32-
extend: [m.light({configureReporting: true})],
33-
},
34-
{
35-
zigbeeModel: ['43102'],
36-
model: '43102',
37-
vendor: 'Enbrighten',
38-
description: 'Zigbee in-wall outlet',
39-
extend: [m.onOff()],
40-
},
41-
{
42-
zigbeeModel: ['43100'],
43-
model: '43100',
44-
vendor: 'Enbrighten',
45-
description: 'Plug-in Zigbee outdoor smart switch',
46-
extend: [m.onOff()],
47-
fromZigbee: [fz.command_on_state, fz.command_off_state],
61+
extend: [
62+
m.identify(),
63+
m.light({
64+
configureReporting: true,
65+
effect: false,
66+
powerOnBehavior: false,
67+
levelConfig: {
68+
disabledFeatures: ['on_off_transition_time', 'on_transition_time', 'off_transition_time', 'current_level_startup'],
69+
},
70+
}),
71+
m.commandsOnOff({commands: ['on', 'off'], bind: true}),
72+
m.commandsLevelCtrl({
73+
commands: ['brightness_move_up', 'brightness_move_down', 'brightness_stop'],
74+
bind: true,
75+
}),
76+
],
77+
whiteLabel: [
78+
{
79+
model: '43113',
80+
vendor: 'Enbrighten',
81+
description: 'Zigbee in-wall smart dimmer',
82+
fingerprint: [{modelID: '43113'}],
83+
},
84+
{
85+
model: '43090',
86+
vendor: 'Enbrighten',
87+
description: 'Zigbee in-wall smart toggle style dimmer',
88+
fingerprint: [{modelID: '43090'}],
89+
},
90+
{
91+
model: '43096',
92+
vendor: 'Enbrighten',
93+
description: 'Zigbee plug-in smart dimmer with dual outlets on one control',
94+
fingerprint: [{modelID: '43096'}],
95+
},
96+
],
4897
},
4998
{
5099
zigbeeModel: ['43082'],
51100
model: '43082',
52101
vendor: 'Enbrighten',
53102
description: 'Zigbee in-wall smart dimmer',
54-
extend: [m.light({configureReporting: true, effect: false, powerOnBehavior: false}), m.electricityMeter({cluster: 'metering'})],
55-
},
56-
{
57-
zigbeeModel: ['43084'],
58-
model: '43084',
59-
vendor: 'Enbrighten',
60-
description: 'Zigbee in-wall smart switch',
61-
extend: [m.onOff()],
62-
},
63-
{
64-
zigbeeModel: ['43090'],
65-
model: '43090',
66-
vendor: 'Enbrighten',
67-
description: 'Zigbee in-wall smart dimmer',
68-
extend: [m.light({configureReporting: true})],
69-
},
70-
{
71-
zigbeeModel: ['43094'],
72-
model: '43094',
73-
vendor: 'Enbrighten',
74-
description: 'Zigbee in-wall smart switch ZB4102',
75-
extend: [m.onOff()],
76-
},
77-
{
78-
zigbeeModel: ['43096'],
79-
model: '43096',
80-
vendor: 'Enbrighten',
81-
description: 'Zigbee plug-in smart dimmer with dual controlled outlets',
82-
extend: [m.light({configureReporting: true})],
83-
},
84-
{
85-
zigbeeModel: ['43109'],
86-
model: '43109',
87-
vendor: 'Enbrighten',
88-
description: 'Zigbee in-wall smart switch',
89-
extend: [m.onOff()],
103+
extend: [
104+
m.identify(),
105+
m.light({
106+
configureReporting: true,
107+
effect: false,
108+
powerOnBehavior: false,
109+
levelConfig: {
110+
disabledFeatures: ['on_off_transition_time', 'on_transition_time', 'off_transition_time', 'current_level_startup'],
111+
},
112+
}),
113+
m.electricityMeter({cluster: 'metering'}),
114+
m.commandsOnOff({commands: ['on', 'off'], bind: true}),
115+
m.commandsLevelCtrl({
116+
commands: ['brightness_move_up', 'brightness_move_down', 'brightness_stop'],
117+
bind: true,
118+
}),
119+
],
90120
},
91121
];
92122

0 commit comments

Comments
 (0)