UNPKG

zigbee-herdsman-converters

Version:

Collection of device converters to be used with zigbee-herdsman

108 lines (106 loc) 5.2 kB
const exposes = require('../lib/exposes'); const reporting = require('../lib/reporting'); const extend = require('../lib/extend'); const e = exposes.presets; module.exports = [ { zigbeeModel: ['HejSW01'], model: 'GLSK3ZB-1711', vendor: 'Hej', description: 'Goqual 1 gang Switch', extend: extend.switch(), }, { zigbeeModel: ['HejSW02'], model: 'GLSK3ZB-1712', vendor: 'Hej', description: 'Goqual 2 gang Switch', extend: extend.switch(), exposes: [e.switch().withEndpoint('top'), e.switch().withEndpoint('bottom')], endpoint: (device) => { return {'top': 1, 'bottom': 2}; }, meta: {multiEndpoint: true}, configure: async (device, coordinatorEndpoint, logger) => { await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']); }, }, { zigbeeModel: ['HejSW03'], model: 'GLSK3ZB-1713', vendor: 'Hej', description: 'Goqual 3 gang Switch', extend: extend.switch(), exposes: [e.switch().withEndpoint('top'), e.switch().withEndpoint('center'), e.switch().withEndpoint('bottom')], endpoint: (device) => { return {'top': 1, 'center': 2, 'bottom': 3}; }, meta: {multiEndpoint: true}, configure: async (device, coordinatorEndpoint, logger) => { await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']); }, }, { zigbeeModel: ['HejSW04'], model: 'GLSK6ZB-1714', vendor: 'Hej', description: 'Goqual 4 gang Switch', extend: extend.switch(), exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('bottom_left'), e.switch().withEndpoint('top_right'), e.switch().withEndpoint('bottom_right')], endpoint: (device) => { return {'top_left': 1, 'bottom_left': 2, 'top_right': 3, 'bottom_right': 4}; }, meta: {multiEndpoint: true}, configure: async (device, coordinatorEndpoint, logger) => { await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']); }, }, { zigbeeModel: ['HejSW05'], model: 'GLSK6ZB-1715', vendor: 'Hej', description: 'Goqual 5 gang Switch', extend: extend.switch(), exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('top_right'), e.switch().withEndpoint('center_left'), e.switch().withEndpoint('bottom_left'), e.switch().withEndpoint('bottom_right')], endpoint: (device) => { return {'top_left': 1, 'center_left': 2, 'bottom_left': 3, 'top_right': 4, 'bottom_right': 5}; }, meta: {multiEndpoint: true}, configure: async (device, coordinatorEndpoint, logger) => { await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']); }, }, { zigbeeModel: ['HejSW06'], model: 'GLSK6ZB-1716', vendor: 'Hej', description: 'Goqual 6 gang Switch', extend: extend.switch(), exposes: [e.switch().withEndpoint('top_left'), e.switch().withEndpoint('bottom_left'), e.switch().withEndpoint('center_left'), e.switch().withEndpoint('center_right'), e.switch().withEndpoint('top_right'), e.switch().withEndpoint('bottom_right')], endpoint: (device) => { return {'top_left': 1, 'center_left': 2, 'bottom_left': 3, 'top_right': 4, 'center_right': 5, 'bottom_right': 6}; }, meta: {multiEndpoint: true}, configure: async (device, coordinatorEndpoint, logger) => { await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(2), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(3), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(4), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(5), coordinatorEndpoint, ['genOnOff']); await reporting.bind(device.getEndpoint(6), coordinatorEndpoint, ['genOnOff']); }, }, ];