zigbee-herdsman-converters 14.0.595 → 14.0.598
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/feibit.js +14 -7
- package/devices/giex.js +2 -2
- package/devices/iluminize.js +10 -6
- package/devices/legrand.js +1 -0
- package/devices/osram.js +1 -1
- package/devices/philips.js +101 -1
- package/devices/schneider_electric.js +1 -1
- package/devices/shinasystem.js +28 -1
- package/devices/skydance.js +1 -1
- package/devices/third_reality.js +3 -1
- package/devices/tuya.js +3 -1
- package/devices/xiaomi.js +3 -0
- package/lib/utils.js +6 -0
- package/package.json +1 -1
package/devices/feibit.js
CHANGED
|
@@ -22,6 +22,13 @@ module.exports = [
|
|
|
22
22
|
await reporting.bind(device.getEndpoint(17), coordinatorEndpoint, ['genOnOff']);
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
zigbeeModel: ['FB56+ZSW1GKJ2.3'],
|
|
27
|
+
model: 'SKY01-TS1-101',
|
|
28
|
+
vendor: 'Feibit',
|
|
29
|
+
description: 'Smart light switch - 1 gang',
|
|
30
|
+
extend: extend.switch(),
|
|
31
|
+
},
|
|
25
32
|
{
|
|
26
33
|
zigbeeModel: ['FNB56-SOS03FB1.5'],
|
|
27
34
|
model: 'SEB01ZB',
|
|
@@ -32,7 +39,7 @@ module.exports = [
|
|
|
32
39
|
exposes: [e.sos(), e.battery_low(), e.tamper(), e.battery()],
|
|
33
40
|
},
|
|
34
41
|
{
|
|
35
|
-
zigbeeModel: ['FNB56-BOT06FB2.3', 'FNB56-BOT06FB2.8', 'FB56-BOT02HM1.2'],
|
|
42
|
+
zigbeeModel: ['FNB56-BOT06FB2.3', 'FNB56-BOT06FB2.8', 'FB56-BOT02HM1.2', 'FNB56-BOT06FB2.8'],
|
|
36
43
|
model: 'SBM01ZB',
|
|
37
44
|
vendor: 'Feibit',
|
|
38
45
|
description: 'Human body movement sensor',
|
|
@@ -47,7 +54,7 @@ module.exports = [
|
|
|
47
54
|
exposes: [e.occupancy(), e.battery_low(), e.tamper(), e.battery()],
|
|
48
55
|
},
|
|
49
56
|
{
|
|
50
|
-
zigbeeModel: ['FNB56-THM14FB2.4', 'FNB54-THM17ML1.1', 'FB56-THM12HM1.2'],
|
|
57
|
+
zigbeeModel: ['FNB56-THM14FB2.4', 'FNB54-THM17ML1.1', 'FB56-THM12HM1.2', 'FNB56-THM14FB2.5'],
|
|
51
58
|
model: 'STH01ZB',
|
|
52
59
|
vendor: 'Feibit',
|
|
53
60
|
description: 'Smart temperature & humidity Sensor',
|
|
@@ -57,7 +64,7 @@ module.exports = [
|
|
|
57
64
|
exposes: [e.temperature(), e.humidity(), e.battery()],
|
|
58
65
|
},
|
|
59
66
|
{
|
|
60
|
-
zigbeeModel: ['FNB56-SMF06FB1.6'],
|
|
67
|
+
zigbeeModel: ['FNB56-SMF06FB1.6', 'FNB56-SMF06FB2.0'],
|
|
61
68
|
model: 'SSA01ZB',
|
|
62
69
|
vendor: 'Feibit',
|
|
63
70
|
description: 'Smoke detector',
|
|
@@ -72,7 +79,7 @@ module.exports = [
|
|
|
72
79
|
exposes: [e.smoke(), e.battery_low(), e.tamper(), e.battery()],
|
|
73
80
|
},
|
|
74
81
|
{
|
|
75
|
-
zigbeeModel: ['FNB56-COS06FB1.7'],
|
|
82
|
+
zigbeeModel: ['FNB56-COS06FB1.7', 'FNB56-COS06FB2.1'],
|
|
76
83
|
model: 'SCA01ZB',
|
|
77
84
|
vendor: 'Feibit',
|
|
78
85
|
description: 'Smart carbon monoxide sensor',
|
|
@@ -87,7 +94,7 @@ module.exports = [
|
|
|
87
94
|
exposes: [e.carbon_monoxide(), e.battery_low(), e.tamper(), e.battery()],
|
|
88
95
|
},
|
|
89
96
|
{
|
|
90
|
-
zigbeeModel: ['FNB56-GAS05FB1.4'],
|
|
97
|
+
zigbeeModel: ['FNB56-GAS05FB1.4', 'FNB56-GAS05FB1.8'],
|
|
91
98
|
model: 'SGA01ZB',
|
|
92
99
|
vendor: 'Feibit',
|
|
93
100
|
description: 'Combustible gas sensor',
|
|
@@ -96,7 +103,7 @@ module.exports = [
|
|
|
96
103
|
exposes: [e.gas()],
|
|
97
104
|
},
|
|
98
105
|
{
|
|
99
|
-
zigbeeModel: ['FNB56-WTS05FB2.0'],
|
|
106
|
+
zigbeeModel: ['FNB56-WTS05FB2.0', 'FNB56-WTS05FB2.4'],
|
|
100
107
|
model: 'SWA01ZB',
|
|
101
108
|
vendor: 'Feibit',
|
|
102
109
|
description: 'Water leakage sensor',
|
|
@@ -114,7 +121,7 @@ module.exports = [
|
|
|
114
121
|
exposes: [e.contact(), e.battery_low(), e.tamper(), e.battery()],
|
|
115
122
|
},
|
|
116
123
|
{
|
|
117
|
-
zigbeeModel: ['FB56+SKT14AL2.1'],
|
|
124
|
+
zigbeeModel: ['FB56+SKT14AL2.1', 'FTB56+SKT1BCW1.0'],
|
|
118
125
|
model: 'SFS01ZB',
|
|
119
126
|
vendor: 'Feibit',
|
|
120
127
|
description: 'Power plug',
|
package/devices/giex.js
CHANGED
|
@@ -118,8 +118,8 @@ module.exports = [
|
|
|
118
118
|
e.battery(),
|
|
119
119
|
exposes.binary('state', ea.STATE_SET, 'ON', 'OFF').withDescription('State'),
|
|
120
120
|
exposes.enum('mode', ea.STATE_SET, ['duration', 'capacity']).withDescription('Irrigation mode'),
|
|
121
|
-
exposes.numeric('irrigation_target', exposes.access.STATE_SET).withValueMin(0).withValueMax(1440).withUnit('
|
|
122
|
-
.withDescription('Irrigation Target, duration in minutes or capacity in
|
|
121
|
+
exposes.numeric('irrigation_target', exposes.access.STATE_SET).withValueMin(0).withValueMax(1440).withUnit('minutes or Litres')
|
|
122
|
+
.withDescription('Irrigation Target, duration in minutes or capacity in Litres (depending on mode)'),
|
|
123
123
|
exposes.numeric('cycle_irrigation_num_times', exposes.access.STATE_SET).withValueMin(0).withValueMax(100).withUnit('#')
|
|
124
124
|
.withDescription('Number of cycle irrigation times, set to 0 for single cycle'),
|
|
125
125
|
exposes.numeric('cycle_irrigation_interval', exposes.access.STATE_SET).withValueMin(0).withValueMax(1440).withUnit('min')
|
package/devices/iluminize.js
CHANGED
|
@@ -162,13 +162,17 @@ module.exports = [
|
|
|
162
162
|
exposes: [e.battery(), e.action([
|
|
163
163
|
'color_move', 'color_temperature_move', 'hue_move', 'hue_stop', 'brightness_step_up', 'brightness_step_down',
|
|
164
164
|
'recall_*', 'on', 'off']),
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
exposes.numeric('
|
|
165
|
+
exposes.composite('action_color', 'action_color')
|
|
166
|
+
.withFeature(exposes.numeric('x', ea.STATE))
|
|
167
|
+
.withFeature(exposes.numeric('y', ea.STATE))
|
|
168
|
+
.withDescription('Only shows the transmitted color in X7Y-Mode. Noch changes possible.'),
|
|
169
|
+
exposes.numeric('action_color_temperature', ea.STATE).withUnit('mired')
|
|
170
|
+
.withDescription('color temperature value. Fixed values for each key press: 145, 175, 222, 304, 480 mired'),
|
|
171
|
+
exposes.numeric('action_group', ea.STATE)
|
|
172
|
+
.withDescription('Shows the zigbee2mqtt group bound to the active data point EP(1-4).'),
|
|
170
173
|
exposes.numeric('action_transition_time', ea.STATE),
|
|
171
|
-
exposes.
|
|
174
|
+
exposes.numeric('action_step_size', ea.STATE),
|
|
175
|
+
exposes.numeric('action_rate', ea.STATE)],
|
|
172
176
|
toZigbee: [],
|
|
173
177
|
meta: {multiEndpoint: true},
|
|
174
178
|
endpoint: (device) => {
|
package/devices/legrand.js
CHANGED
|
@@ -110,6 +110,7 @@ module.exports = [
|
|
|
110
110
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
111
111
|
const endpoint = device.getEndpoint(1);
|
|
112
112
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genBinaryInput', 'closuresWindowCovering', 'genIdentify']);
|
|
113
|
+
await reporting.currentPositionLiftPercentage(endpoint);
|
|
113
114
|
},
|
|
114
115
|
exposes: [e.cover_position()],
|
|
115
116
|
},
|
package/devices/osram.js
CHANGED
|
@@ -227,7 +227,7 @@ module.exports = [
|
|
|
227
227
|
model: '4052899926110',
|
|
228
228
|
vendor: 'OSRAM',
|
|
229
229
|
description: 'Flex RGBW',
|
|
230
|
-
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666]}),
|
|
230
|
+
extend: extend.ledvance.light_onoff_brightness_colortemp_color({colorTempRange: [125, 666], supportsHS: true, preferHS: true}),
|
|
231
231
|
ota: ota.ledvance,
|
|
232
232
|
},
|
|
233
233
|
{
|
package/devices/philips.js
CHANGED
|
@@ -84,6 +84,96 @@ const fzLocal = {
|
|
|
84
84
|
},
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
+
const gradientScenes = {
|
|
88
|
+
'blossom': '50010400135000000039d553d2955ba5287a9f697e25fb802800',
|
|
89
|
+
'crocus': '50010400135000000050389322f97f2b597343764cc664282800',
|
|
90
|
+
'precious': '5001040013500000007fa8838bb9789a786d7577499a773f2800',
|
|
91
|
+
'narcissa': '500104001350000000b0498a5c0a888fea89eb0b7ee15c742800',
|
|
92
|
+
'beginnings': '500104001350000000b3474def153e2ad42e98232c7483292800',
|
|
93
|
+
'first_light': '500104001350000000b28b7900e959d3f648a614389723362800',
|
|
94
|
+
'horizon': '500104001350000000488b7d6cbb750c6642f1133cc4033c2800',
|
|
95
|
+
'valley_dawn': '500104001350000000c1aa7de03a7a8ce861c7c4410d94412800',
|
|
96
|
+
'sunflare': '500104001350000000d0aa7d787a7daf197590154d6c14472800',
|
|
97
|
+
'emerald_flutter': '5001040013500000006a933977e34bb0d35e916468f246792800',
|
|
98
|
+
'memento': '500104001350000000f87318a3e31962331ec3532cceea892800',
|
|
99
|
+
'resplendent': '500104001350000000278b6d257a58efe84204273a35f5252800',
|
|
100
|
+
'scarlet_dream': '500104001350000000b02c654e4c5b45ab51fb0950d6c84d2800',
|
|
101
|
+
'lovebirds': '50010400135000000053ab84ea1a7e35fb7c098c73994c772800',
|
|
102
|
+
'smitten': '500104001350000000fe7b70a74b6aa42b65811b60550a592800',
|
|
103
|
+
'glitz_and_glam': '500104001350000000cc193cb9b845bad9521d1c77bf6c712800',
|
|
104
|
+
'promise': '500104001350000000258b606eca6b28d6382db445df26812800',
|
|
105
|
+
'ruby_romance': '5001040013500000000edb63cbcb6bac0c670b2d58204e572800',
|
|
106
|
+
'city_of_love': '50010400135000000055830e5cf31b6aa339d2ec70908b802800',
|
|
107
|
+
'honolulu': '500104001350000000dbfd59866c6378ec6c45cc765c0a822800',
|
|
108
|
+
'savanna_sunset': '50010400135000000005ae65c38c6c6b4b7573ca820fc9832800',
|
|
109
|
+
'golden_pond': '5001040013500000007e4a88cc4a8605db8728ec7b666c792800',
|
|
110
|
+
'runy_glow': '50010400135000000095bb53ac2a56eb99591e095c54985e2800',
|
|
111
|
+
'tropical_twilight': '500104001350000000408523a0b636e777524c0a71a76c6e2800',
|
|
112
|
+
'miami': '50010400135000000022ec61e6d94902d83766c3305a43182800',
|
|
113
|
+
'cancun': '500104001350000000a7eb54673d55944e6265fd6e26bb842800',
|
|
114
|
+
'rio': '500104001350000000a26526088c51a74b58ea6b7137ba892800',
|
|
115
|
+
'chinatown': '500104001350000000b33e5b408e59d90d5b4c6c6360ac792800',
|
|
116
|
+
'ibiza': '500104001350000000014d6d708c73827b7b6c7a8887f98a2800',
|
|
117
|
+
'osaka': '500104001350000000d649510b5c4deb7c5d8b6d6d2b9b802800',
|
|
118
|
+
'tokyo': '500104001350000000d1c311665331d3451fd59c4e394c7b2800',
|
|
119
|
+
'motown': '50010400135000000055730e5db3156623306c533d7a235c2800',
|
|
120
|
+
'fairfax': '50010400135000000072d34a3664477d7a61581d5fc08e5b2800',
|
|
121
|
+
'galaxy': '500104001350000000a6cb638b2a4f8cfa549bb9549ff73a2800',
|
|
122
|
+
'starlight': '5001040013500000008d897134a9653ec854d2963ed1d4282800',
|
|
123
|
+
'blood moon': '500104001350000000202a6987c8599ee647ec632779c3142800',
|
|
124
|
+
'artic_aurora': '50010400135000000082548922057511046571c32d5b93192800',
|
|
125
|
+
'moonlight': '50010400135000000055730e5e9320c1832e96243ebec7652800',
|
|
126
|
+
'nebula': '50010400135000000026c852e106460d653ee745342964142800',
|
|
127
|
+
'sundown': '500104001350000000f37c68157c6d8efa755ac5512e24332800',
|
|
128
|
+
'blue_lagoon': '50010400135000000088c3623975699ea672a0c8831ada6d2800',
|
|
129
|
+
'palm_beach': '5001040013500000005ec4679ba56077f85a80ea64639c6a2800',
|
|
130
|
+
'lake_placid': '5001040013500000002eab69239a692d996552c54c39743a2800',
|
|
131
|
+
'mountain_breeze': '500104001350000000df843d2355419195465a98674ca97b2800',
|
|
132
|
+
'lake_mist': '500104001350000000e3286f39b96859f86266e54ded943f2800',
|
|
133
|
+
'ocean_dawn': '5001040013500000005cf9779da97105b96b07485e32564a2800',
|
|
134
|
+
'frosty_dawn': '5001040013500000006d6883bca87e3029758ec9722d6a722800',
|
|
135
|
+
'sunday_morning': '5001040013500000002c586dc6f87345997c63f983f777892800',
|
|
136
|
+
'emerald_isle': '500104001350000000e535628dc57ed2667d8b687d1e2a812800',
|
|
137
|
+
'spring_blossom': '500104001350000000a8b75fd0c75826b851a7094d305b652800',
|
|
138
|
+
'midsummer_sun': '500104001350000000002984799984dd29848eba836c0b7f2800',
|
|
139
|
+
'autumn_gold': '500104001350000000435a7817aa7ba3f979a8a981f3c9852800',
|
|
140
|
+
'spring_lake': '5001040013500000004a976d3347736e677561b77a4b07812800',
|
|
141
|
+
'winter_mountain': '5001040013500000002c555c68c55d7c555ef165606136622800',
|
|
142
|
+
'midwinter': '500104001350000000bda5532c554dbd254cd5a4428d94392800',
|
|
143
|
+
'amber_bloom': '500104001350000000739d67f2bc7372ec78a0ab78be8a6f2800',
|
|
144
|
+
'lily': '5001040013500000009cfc76c5ab793d4a6a1a9b586b9c522800',
|
|
145
|
+
'painted_sky': '500104001350000000d1c424c3d63783384c3f7a6a83bd6d2800',
|
|
146
|
+
'winter_beauty': '500104001350000000e2335ea7b4942467952db986a7ab7b2800',
|
|
147
|
+
'orange_fields': '500104001350000000409c69694c79eafa88498a8fb867aa2800',
|
|
148
|
+
'forest_adventure': '50010400135000000023999bbd76b363d4b674d3415fb3222800',
|
|
149
|
+
'blue_planet': '50010400135000000037a7a3a403b489737b2b746e6873362800',
|
|
150
|
+
'soho': '500104001350000000c52c4e220b6eed8a53d404192b04782800',
|
|
151
|
+
'vapor_wave': '500104001350000000e1c32401251acb183ac31b8051ea842800',
|
|
152
|
+
'magneto': '50010400135000000077b3286d9340b9e3662d99943c9b852800',
|
|
153
|
+
'tyrell': '500104001350000000ef4419a898370ea84698353574434e2800',
|
|
154
|
+
'disturbia': '50010400135000000084f371a4845e6998388c3b4f57ce582800',
|
|
155
|
+
'hal': '50010400135000000075f351a6244cf6dc5d480c658cda862800',
|
|
156
|
+
'golden_star': '5001040013500000007a4a8702eb8372ac7892cd61d51e5c2800',
|
|
157
|
+
'under_the_tree': '5001040013500000001de498b9a3cc0c9b8563bb6cc1ae5d2800',
|
|
158
|
+
'silent_night': '5001040013500000009e296a245a6f660a75086b70953b6e2800',
|
|
159
|
+
'rosy_sparkle': '500104001350000000810967c63a6cb2aa5ea7094eddd73c2800',
|
|
160
|
+
'festive_fun': '5001040013500000005a9318de53123e9414fdcc67839d612800',
|
|
161
|
+
'colour_burst': '500104001350000000f2731ff0c6266a6c64246e57d4f98f2800',
|
|
162
|
+
'crystalline': '5001040013500000006ea96a92a85e58074e18543d9cf3332800',
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
const tzLocal = {
|
|
166
|
+
gradient_scene: {
|
|
167
|
+
key: ['gradient_scene'],
|
|
168
|
+
convertSet: async (entity, key, value, meta) => {
|
|
169
|
+
const scene = gradientScenes[value];
|
|
170
|
+
if (!scene) throw new Error(`Gradient scene '${value}' is unknown`);
|
|
171
|
+
const payload = {data: Buffer.from(scene, 'hex')};
|
|
172
|
+
await entity.command('manuSpecificPhilips2', 'multiColor', payload);
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
|
|
87
177
|
module.exports = [
|
|
88
178
|
{
|
|
89
179
|
zigbeeModel: ['929003055801'],
|
|
@@ -876,6 +966,13 @@ module.exports = [
|
|
|
876
966
|
description: 'Hue Outdoor Econic wall lantern',
|
|
877
967
|
extend: hueExtend.light_onoff_brightness_colortemp_color(),
|
|
878
968
|
},
|
|
969
|
+
{
|
|
970
|
+
zigbeeModel: ['929003053001'],
|
|
971
|
+
model: '929003053001',
|
|
972
|
+
vendor: 'Philips',
|
|
973
|
+
description: 'Hue Sana wall light',
|
|
974
|
+
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
975
|
+
},
|
|
879
976
|
{
|
|
880
977
|
zigbeeModel: ['LCE001'],
|
|
881
978
|
model: '929002294101',
|
|
@@ -975,7 +1072,7 @@ module.exports = [
|
|
|
975
1072
|
extend: hueExtend.light_onoff_brightness_colortemp(),
|
|
976
1073
|
},
|
|
977
1074
|
{
|
|
978
|
-
zigbeeModel: ['3417831P6'],
|
|
1075
|
+
zigbeeModel: ['3417831P6', '929003056101'],
|
|
979
1076
|
model: '3417831P6',
|
|
980
1077
|
vendor: 'Philips',
|
|
981
1078
|
description: 'Hue white ambiance Adore spotlight with Bluetooth (1 spot)',
|
|
@@ -1490,6 +1587,9 @@ module.exports = [
|
|
|
1490
1587
|
model: '4080248U9',
|
|
1491
1588
|
vendor: 'Philips',
|
|
1492
1589
|
description: 'Hue White and color ambiance Signe floor light',
|
|
1590
|
+
toZigbee: [tzLocal.gradient_scene, ...hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}).toZigbee],
|
|
1591
|
+
exposes: [exposes.enum('gradient_scene', ea.SET, Object.keys(gradientScenes)),
|
|
1592
|
+
...hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}).exposes],
|
|
1493
1593
|
extend: hueExtend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
|
|
1494
1594
|
},
|
|
1495
1595
|
{
|
|
@@ -213,7 +213,7 @@ module.exports = [
|
|
|
213
213
|
fz.legacy.wiser_thermostat, fz.legacy.wiser_itrv_battery, fz.hvac_user_interface, fz.wiser_device_info],
|
|
214
214
|
toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_keypad_lockout],
|
|
215
215
|
exposes: [exposes.climate().withSetpoint('occupied_heating_setpoint', 7, 30, 1).withLocalTemperature(ea.STATE)
|
|
216
|
-
.
|
|
216
|
+
.withRunningState(['idle', 'heat'], ea.STATE).withPiHeatingDemand()],
|
|
217
217
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
218
218
|
const endpoint = device.getEndpoint(1);
|
|
219
219
|
const binds = ['genBasic', 'genPowerCfg', 'hvacThermostat', 'haDiagnostic'];
|
package/devices/shinasystem.js
CHANGED
|
@@ -3,12 +3,18 @@ const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/lega
|
|
|
3
3
|
const tz = require('../converters/toZigbee');
|
|
4
4
|
const reporting = require('../lib/reporting');
|
|
5
5
|
const extend = require('../lib/extend');
|
|
6
|
+
const ota = require('../lib/ota');
|
|
6
7
|
const e = exposes.presets;
|
|
7
8
|
const ea = exposes.access;
|
|
8
9
|
|
|
9
10
|
module.exports = [
|
|
10
11
|
{
|
|
11
|
-
|
|
12
|
+
fingerprint: [
|
|
13
|
+
{modelID: 'CSM-300Z', applicationVersion: 1},
|
|
14
|
+
{modelID: 'CSM-300Z', applicationVersion: 2},
|
|
15
|
+
{modelID: 'CSM-300Z', applicationVersion: 3},
|
|
16
|
+
{modelID: 'CSM-300Z', applicationVersion: 4},
|
|
17
|
+
],
|
|
12
18
|
model: 'CSM-300ZB',
|
|
13
19
|
vendor: 'ShinaSystem',
|
|
14
20
|
description: 'SiHAS multipurpose sensor',
|
|
@@ -27,6 +33,27 @@ module.exports = [
|
|
|
27
33
|
exposes.enum('status', ea.STATE, ['idle', 'in', 'out']).withDescription('Currently status'),
|
|
28
34
|
exposes.numeric('people', ea.ALL).withValueMin(0).withValueMax(50).withDescription('People count')],
|
|
29
35
|
},
|
|
36
|
+
{
|
|
37
|
+
zigbeeModel: ['CSM-300Z'],
|
|
38
|
+
model: 'CSM-300ZB_V2',
|
|
39
|
+
vendor: 'ShinaSystem',
|
|
40
|
+
ota: ota.zigbeeOTA,
|
|
41
|
+
description: 'SiHAS multipurpose ToF sensor',
|
|
42
|
+
meta: {battery: {voltageToPercentage: 'Add_1V_42V_CSM300z2v2'}},
|
|
43
|
+
fromZigbee: [fz.battery, fz.sihas_people_cnt],
|
|
44
|
+
toZigbee: [tz.sihas_set_people],
|
|
45
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
46
|
+
const endpoint = device.getEndpoint(1);
|
|
47
|
+
const binds = ['genPowerCfg', 'genAnalogInput'];
|
|
48
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
49
|
+
await reporting.batteryVoltage(endpoint);
|
|
50
|
+
const payload = reporting.payload('presentValue', 1, 600, 0);
|
|
51
|
+
await endpoint.configureReporting('genAnalogInput', payload);
|
|
52
|
+
},
|
|
53
|
+
exposes: [e.battery(), e.battery_voltage(),
|
|
54
|
+
exposes.enum('status', ea.STATE, ['idle', 'in', 'out']).withDescription('Currently status'),
|
|
55
|
+
exposes.numeric('people', ea.ALL).withValueMin(0).withValueMax(50).withDescription('People count')],
|
|
56
|
+
},
|
|
30
57
|
{
|
|
31
58
|
zigbeeModel: ['USM-300Z'],
|
|
32
59
|
model: 'USM-300ZB',
|
package/devices/skydance.js
CHANGED
|
@@ -101,7 +101,7 @@ module.exports = [
|
|
|
101
101
|
model: 'WZ1',
|
|
102
102
|
vendor: 'Skydance',
|
|
103
103
|
description: 'Zigbee & RF 2 channel LED controller',
|
|
104
|
-
extend: extend.light_onoff_brightness({noConfigure: true}),
|
|
104
|
+
extend: extend.light_onoff_brightness({noConfigure: true, disableEffect: true}),
|
|
105
105
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
106
106
|
await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger);
|
|
107
107
|
const endpoint = device.getEndpoint(1);
|
package/devices/third_reality.js
CHANGED
|
@@ -116,8 +116,10 @@ module.exports = [
|
|
|
116
116
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
117
117
|
const endpoint = device.getEndpoint(1);
|
|
118
118
|
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'closuresWindowCovering']);
|
|
119
|
-
await reporting.batteryPercentageRemaining(endpoint);
|
|
120
119
|
await reporting.currentPositionLiftPercentage(endpoint);
|
|
120
|
+
try {
|
|
121
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
122
|
+
} catch (error) {/* Fails for some*/}
|
|
121
123
|
},
|
|
122
124
|
exposes: [e.cover_position(), e.battery()],
|
|
123
125
|
},
|
package/devices/tuya.js
CHANGED
|
@@ -744,6 +744,7 @@ module.exports = [
|
|
|
744
744
|
fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_qqjaziws'},
|
|
745
745
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_jtmhndw2'},
|
|
746
746
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_ezlg0pht'},
|
|
747
|
+
{modelID: 'TS0505B', manufacturerName: '_TZ3210_3lbtuxgp'},
|
|
747
748
|
{modelID: 'TS0505B', manufacturerName: '_TZ3210_5snkkrxw'},
|
|
748
749
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_12sxjap4'},
|
|
749
750
|
{modelID: 'TS0505B', manufacturerName: '_TZ3000_x2fqbdun'},
|
|
@@ -2522,7 +2523,8 @@ module.exports = [
|
|
|
2522
2523
|
{
|
|
2523
2524
|
fingerprint: [{modelID: 'TS0210', manufacturerName: '_TYZB01_3zv6oleo'},
|
|
2524
2525
|
{modelID: 'TS0210', manufacturerName: '_TYZB01_j9xxahcl'},
|
|
2525
|
-
{modelID: 'TS0210', manufacturerName: '_TYZB01_kulduhbj'}
|
|
2526
|
+
{modelID: 'TS0210', manufacturerName: '_TYZB01_kulduhbj'},
|
|
2527
|
+
{modelID: 'TS0210', manufacturerName: '_TZ3000_bmfw9ykl'}],
|
|
2526
2528
|
model: 'TS0210',
|
|
2527
2529
|
vendor: 'TuYa',
|
|
2528
2530
|
description: 'Vibration sensor',
|
package/devices/xiaomi.js
CHANGED
|
@@ -101,6 +101,7 @@ module.exports = [
|
|
|
101
101
|
e.light_brightness_colortemp([153, 370]).removeFeature('color_temp_startup').withEndpoint('l2'),
|
|
102
102
|
exposes.enum('dimmer_mode', ea.ALL, ['rgbw', 'dual_ct'])
|
|
103
103
|
.withDescription('Switch between rgbw mode or dual color temperature mode')],
|
|
104
|
+
ota: ota.zigbeeOTA,
|
|
104
105
|
},
|
|
105
106
|
{
|
|
106
107
|
zigbeeModel: ['lumi.light.aqcn02'],
|
|
@@ -1877,6 +1878,7 @@ module.exports = [
|
|
|
1877
1878
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1878
1879
|
await device.getEndpoint(1).write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
|
|
1879
1880
|
},
|
|
1881
|
+
ota: ota.zigbeeOTA,
|
|
1880
1882
|
},
|
|
1881
1883
|
{
|
|
1882
1884
|
zigbeeModel: ['lumi.switch.b2lc04'],
|
|
@@ -1908,6 +1910,7 @@ module.exports = [
|
|
|
1908
1910
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1909
1911
|
await device.getEndpoint(1).write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
|
|
1910
1912
|
},
|
|
1913
|
+
ota: ota.zigbeeOTA,
|
|
1911
1914
|
},
|
|
1912
1915
|
{
|
|
1913
1916
|
zigbeeModel: ['lumi.airmonitor.acn01'],
|
package/lib/utils.js
CHANGED
|
@@ -170,6 +170,12 @@ function batteryVoltageToPercentage(voltage, option) {
|
|
|
170
170
|
percentage = toPercentage(voltage, 2850, 3200);
|
|
171
171
|
} else if (option === '4LR6AA1_5v') {
|
|
172
172
|
percentage = toPercentage(voltage, 3000, 4200);
|
|
173
|
+
} else if (option === '3V_add 1V') {
|
|
174
|
+
voltage = voltage + 1000;
|
|
175
|
+
percentage = toPercentage(voltage, 3200, 4200);
|
|
176
|
+
} else if (option === 'Add_1V_42V_CSM300z2v2') {
|
|
177
|
+
voltage = voltage + 1000;
|
|
178
|
+
percentage = toPercentage(voltage, 2900, 4100);
|
|
173
179
|
} else {
|
|
174
180
|
throw new Error(`Not batteryVoltageToPercentage type supported: ${option}`);
|
|
175
181
|
}
|