diff --git a/converters/fromZigbee.js b/converters/fromZigbee.js index 8006e26799fce..8dcdb73dde724 100644 --- a/converters/fromZigbee.js +++ b/converters/fromZigbee.js @@ -2014,7 +2014,9 @@ const converters = { convert: (model, msg, publish, options, meta) => { const result = {}; if (msg.data.hasOwnProperty('maxDuration')) result['duration'] = msg.data.maxDuration; - if (msg.data.hasOwnProperty('2')) result['volume'] = msg.data['2']; + if (msg.data.hasOwnProperty('2')) { + result['volume'] = mapNumberRange(msg.data['2'], 100, 10, 0, 100); + } if (msg.data.hasOwnProperty('61440')) { result['alarm'] = (msg.data['61440'] == 0) ? false : true; } diff --git a/converters/toZigbee.js b/converters/toZigbee.js index d8e57ccf33381..fe6b7f08cdc8a 100644 --- a/converters/toZigbee.js +++ b/converters/toZigbee.js @@ -4590,7 +4590,7 @@ const converters = { ts0216_volume: { key: ['volume'], convertSet: async (entity, key, value, meta) => { - await entity.write('ssIasWd', {0x0002: {value: value, type: 0x20}}); + await entity.write('ssIasWd', {0x0002: {value: utils.mapNumberRange(value, 0, 100, 100, 10), type: 0x20}}); }, convertGet: async (entity, key, meta) => { await entity.read('ssIasWd', [0x0002]);