UNPKG

zigbee-herdsman-converters

Version:

Collection of device converters to be used with zigbee-herdsman

97 lines (95 loc) 5.43 kB
const exposes = require('../lib/exposes'); const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee}; const tz = require('../converters/toZigbee'); const reporting = require('../lib/reporting'); const extend = require('../lib/extend'); const e = exposes.presets; const ea = exposes.access; module.exports = [ { zigbeeModel: [' Light switch with neutral\u0000\u0000\u0000\u0000\u0000'], model: 'K4003C/L4003C/N4003C/NT4003C', vendor: 'BTicino', description: 'Light switch with neutral', fromZigbee: [fz.identify, fz.on_off, fz.K4003C_binary_input], toZigbee: [tz.on_off, tz.legrand_settingAlwaysEnableLed, tz.legrand_settingEnableLedIfOn, tz.legrand_identify], exposes: [e.switch(), e.action(['identify', 'on', 'off'])], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff', 'genBinaryInput']); }, }, { zigbeeModel: [' Dimmer switch with neutral\u0000\u0000\u0000\u0000'], model: 'L441C/N4411C/NT4411C', vendor: 'BTicino', description: 'Dimmer switch with neutral', extend: extend.light_onoff_brightness({noConfigure: true}), exposes: [e.light_brightness()], fromZigbee: [fz.brightness, fz.identify, fz.on_off], toZigbee: [tz.light_onoff_brightness, tz.legrand_settingAlwaysEnableLed, tz.legrand_settingEnableLedIfOn, tz.legrand_settingEnableDimmer, tz.legrand_identify], configure: async (device, coordinatorEndpoint, logger) => { await extend.light_onoff_brightness().configure(device, coordinatorEndpoint, logger); const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff', 'genLevelCtrl', 'genBinaryInput']); await reporting.onOff(endpoint); await reporting.brightness(endpoint); }, }, { // Newer firmwares (e.g. 001f) Does support partial position reporting // Old firmware of this device provides only three values: 0, 100 and 50, 50 means an idefinite position between 1 and 99. // If you have an old Firmware set no_position_support to true // https://github.com/Koenkk/zigbee-herdsman-converters/pull/2214 - 1st very basic support zigbeeModel: [' Shutter SW with level control\u0000'], model: 'K4027C/L4027C/N4027C/NT4027C', vendor: 'BTicino', description: 'Shutter SW with level control', fromZigbee: [fz.identify, fz.ignore_basic_report, fz.ignore_zclversion_read, fz.bticino_4027C_binary_input_moving, fz.cover_position_tilt], toZigbee: [tz.bticino_4027C_cover_state, tz.bticino_4027C_cover_position, tz.legrand_identify, tz.legrand_settingAlwaysEnableLed], exposes: [e.cover_position()], meta: {coverInverted: true}, configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genBinaryInput', 'closuresWindowCovering', 'genIdentify']); }, }, { zigbeeModel: ['Bticino Din power consumption module '], model: 'F20T60A', description: 'DIN power consumption module', vendor: 'BTicino', extend: extend.switch(), fromZigbee: [fz.identify, fz.on_off, fz.electrical_measurement, fz.legrand_device_mode, fz.ignore_basic_report, fz.ignore_genOta], toZigbee: [tz.legrand_deviceMode, tz.on_off, tz.legrand_identify, tz.electrical_measurement_power], exposes: [exposes.switch().withState('state', true, 'On/off (works only if device is in "switch" mode)'), e.power().withAccess(ea.STATE_GET), exposes.enum( 'device_mode', ea.ALL, ['switch', 'auto']) .withDescription('switch: allow on/off, auto will use wired action via C1/C2 on contactor for example with HC/HP')], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff', 'haElectricalMeasurement']); await reporting.onOff(endpoint); await reporting.readEletricalMeasurementMultiplierDivisors(endpoint); await reporting.activePower(endpoint); }, }, { zigbeeModel: ['Power socket Bticino Serie LL '], model: 'L4531C', vendor: 'BTicino', description: 'Power socket with power consumption monitoring', fromZigbee: [fz.identify, fz.on_off, fz.electrical_measurement], toZigbee: [tz.on_off, tz.legrand_settingAlwaysEnableLed, tz.legrand_identify], exposes: [e.switch(), e.action(['identify']), e.power(), e.voltage(), e.current()], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genIdentify', 'genOnOff', 'haElectricalMeasurement']); await reporting.onOff(endpoint); await reporting.readEletricalMeasurementMultiplierDivisors(endpoint); await reporting.activePower(endpoint); }, }, ];