zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
48 lines (46 loc) • 2.75 kB
JavaScript
const exposes = require('../lib/exposes');
const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee};
const tz = require('../converters/toZigbee');
const constants = require('../lib/constants');
const reporting = require('../lib/reporting');
const e = exposes.presets;
module.exports = [
{
zigbeeModel: ['101.301.001649', '101.301.001838', '101.301.001802', '101.301.001738', '101.301.001412', '101.301.001765',
'101.301.001814'],
model: 'MEAZON_BIZY_PLUG',
vendor: 'Meazon',
description: 'Bizy plug meter',
fromZigbee: [fz.command_on, fz.legacy.genOnOff_cmdOn, fz.command_off, fz.legacy.genOnOff_cmdOff, fz.on_off, fz.meazon_meter],
exposes: [e.switch(), e.power(), e.voltage(), e.current()],
toZigbee: [tz.on_off],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(10);
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']);
await reporting.onOff(endpoint, {min: 1, max: 0xfffe});
const options = {manufacturerCode: 4406, disableDefaultResponse: false};
await endpoint.write('seMetering', {0x1005: {value: 0x063e, type: 25}}, options);
await endpoint.configureReporting('seMetering', [{reportableChange: 1, attribute: {ID: 0x2000, type: 0x29},
minimumReportInterval: 1, maximumReportInterval: constants.repInterval.MINUTES_5}], options);
},
},
{
zigbeeModel: ['102.106.000235', '102.106.001111', '102.106.000348', '102.106.000256', '102.106.001242', '102.106.000540'],
model: 'MEAZON_DINRAIL',
vendor: 'Meazon',
description: 'DinRail 1-phase meter',
fromZigbee: [fz.command_on, fz.legacy.genOnOff_cmdOn, fz.command_off, fz.legacy.genOnOff_cmdOff, fz.on_off, fz.meazon_meter],
exposes: [e.switch(), e.power(), e.voltage(), e.current()],
toZigbee: [tz.on_off],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(10);
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'seMetering']);
await reporting.onOff(endpoint);
const options = {manufacturerCode: 4406, disableDefaultResponse: false};
await endpoint.write('seMetering', {0x1005: {value: 0x063e, type: 25}}, options);
await reporting.onOff(endpoint);
await endpoint.configureReporting('seMetering', [{attribute: {ID: 0x2000, type: 0x29},
minimumReportInterval: 1, maximumReportInterval: constants.repInterval.MINUTES_5, reportableChange: 1}], options);
},
},
];