const exposes = require('zigbee-herdsman-converters/lib/exposes'); const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee}; const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const e = exposes.presets; module.exports = [ { fingerprint: [{modelID: 'TS004F', manufacturerName: '_TZ3000_kjfzuycl'}], model: 'ERS-10TZBVB-AA', vendor: 'Moes', description: 'Smart Button', exposes: [e.battery(), e.action(['1_single', '1_double', '1_hold'])], fromZigbee: [fz.battery, fz.tuya_on_off_action], toZigbee: [tz.tuya_operation_mode], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await endpoint.read('genBasic', [0x0004, 0x000, 0x0001, 0x0005, 0x0007, 0xfffe]); await endpoint.write('genOnOff', {'tuyaOperationMode': 1}); await endpoint.read('genOnOff', ['tuyaOperationMode']); try { await endpoint.read(0xE001, [0xD011]); } catch (err) {/* do nothing */} await endpoint.read('genPowerCfg', ['batteryVoltage', 'batteryPercentageRemaining']); await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']); await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); }, }, ];