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 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('mintues or Litres')
122
- .withDescription('Irrigation Target, duration in minutes or capacity in Liters (depending on mode)'),
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')
@@ -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
- // exposes.composite('action_color', 'action_color') * At the moment not shown in Frontend correctly
166
- // .withFeature(exposes.numeric('x', ea.STATE)) see: https://github.com/nurikk/zigbee2mqtt-frontend/issues/1535
167
- // .withFeature(exposes.numeric('y', ea.STATE)),
168
- exposes.numeric('action_color_temperature', ea.STATE).withUnit('mired'),
169
- exposes.numeric('action_group', ea.STATE),
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.text('action_color', ea.STATE)],
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) => {
@@ -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
  {
@@ -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
- .withSystemMode(['off', 'auto', 'heat'], ea.STATE).withRunningState(['idle', 'heat'], ea.STATE).withPiHeatingDemand()],
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'];
@@ -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
- zigbeeModel: ['CSM-300Z'],
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',
@@ -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);
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.595",
3
+ "version": "14.0.598",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [