UNPKG

zigbee-herdsman-converters

Version:

Collection of device converters to be used with zigbee-herdsman

100 lines (98 loc) 3.61 kB
const exposes = require('../lib/exposes'); const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee}; const tz = require('../converters/toZigbee'); const ota = require('../lib/ota'); const reporting = require('../lib/reporting'); const extend = require('../lib/extend'); const e = exposes.presets; module.exports = [ { zigbeeModel: ['SPE600'], model: 'SPE600', vendor: 'Salus Controls', description: 'Smart plug (EU socket)', fromZigbee: [fz.on_off, fz.metering], toZigbee: [tz.on_off], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(9); await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']); await reporting.onOff(endpoint); await reporting.instantaneousDemand(endpoint, {min: 5, change: 10}); await reporting.currentSummDelivered(endpoint, {min: 5, change: [0, 10]}); await endpoint.read('seMetering', ['multiplier', 'divisor']); }, ota: ota.salus, exposes: [e.switch(), e.power(), e.energy()], }, { zigbeeModel: ['SP600'], model: 'SP600', vendor: 'Salus Controls', description: 'Smart plug (UK socket)', fromZigbee: [fz.on_off, fz.SP600_power], exposes: [e.switch(), e.power(), e.energy()], toZigbee: [tz.on_off], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(9); await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']); await reporting.onOff(endpoint); await reporting.instantaneousDemand(endpoint, {min: 5, change: 10}); await reporting.currentSummDelivered(endpoint, {min: 5, change: [0, 10]}); await endpoint.read('seMetering', ['multiplier', 'divisor']); }, ota: ota.salus, }, { zigbeeModel: ['SR600'], model: 'SR600', vendor: 'Salus Controls', description: 'Relay switch', extend: extend.switch(), ota: ota.salus, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(9); await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']); await reporting.onOff(endpoint); }, }, { zigbeeModel: ['SW600'], model: 'SW600', vendor: 'Salus Controls', description: 'Door or window contact sensor', fromZigbee: [fz.ias_contact_alarm_1], toZigbee: [], exposes: [e.contact(), e.battery_low(), e.tamper()], ota: ota.salus, }, { zigbeeModel: ['WLS600'], model: 'WLS600', vendor: 'Salus Controls', description: 'Water leakage sensor', fromZigbee: [fz.ias_water_leak_alarm_1], toZigbee: [], exposes: [e.water_leak(), e.battery_low(), e.tamper()], ota: ota.salus, }, { zigbeeModel: ['OS600'], model: 'OS600', vendor: 'Salus Controls', description: 'Door or window contact sensor', fromZigbee: [fz.ias_contact_alarm_1], toZigbee: [], exposes: [e.contact(), e.battery_low(), e.tamper()], ota: ota.salus, }, { zigbeeModel: ['RE600'], model: 'RE600', vendor: 'Salus Controls', description: 'Router Zigbee', fromZigbee: [], toZigbee: [], exposes: [], ota: ota.salus, }, ];