J’ai modifié le code, car effectivement j’avais été un peu trop rapide en conservant des éléments copiés/collés de deux autre modèles.
Ce code est maintenant bien mieux :
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const readInitialBatteryState = async (type, data, device) => {
if (['deviceAnnounce'].includes(type)) {
const endpoint = device.getEndpoint(1);
const options = {manufacturerCode: 0x1021, disableDefaultResponse: true};
await endpoint.read('genPowerCfg', ['batteryVoltage'], options);
}
};
const definition = {
zigbeeModel: [' Pocket remote\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'+
'\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000'],
model: '067755',
vendor: 'Legrand',
description: 'Wireless and batteryless 4 scenes control',
fromZigbee: [fz.identify, fz.command_on, fz.command_off, fz.command_toggle, fz.battery, fz.command_recall],
exposes: [e.battery(), e.action(['identify', 'recall_1_1'])],
toZigbee: [],
meta: {multiEndpoint: true, battery: {voltageToPercentage: '3V_2500'}, publishDuplicateTransaction: true},
onEvent: readInitialBatteryState,
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'genOnOff', 'genLevelCtrl']);
},
};
module.exports = definition;