Bon et bien, cela ne fonctionne pas avec le convetisseur externe suivant :
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 definition = {
zigbeeModel: ['SMSZB-120'],
model: 'SMSZB-120',
vendor: 'Develco',
description: 'Smoke detector with siren',
supports: 'smoke, warning, temperature',
fromZigbee: [fz.temperature, fz.battery, fz.ias_smoke_alarm_1_develco, fz.ignore_basic_report,
fz.develco_fw, fz.ias_enroll, fz.ias_wd, fz.develco_genbinaryinput],
toZigbee: [tz.warning, tz.ias_max_duration, tz.warning_simple],
ota: ota.zigbeeOTA,
meta: {battery: {voltageToPercentage: '3V_2500'}},
configure: async (device, coordinatorEndpoint, logger) => {
const options = {manufacturerCode: 4117};
const endpoint = device.getEndpoint(35);
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'ssIasZone', 'ssIasWd', 'genBasic', 'genBinaryInput']);
await reporting.batteryVoltage(endpoint);
await endpoint.read('genBasic', [0x8000, 0x8010, 0x8020], options);
await endpoint.read('ssIasZone', ['iasCieAddr', 'zoneState', 'zoneId']);
await endpoint.read('genBinaryInput', ['reliability', 'statusFlags']);
await endpoint.read('ssIasWd', ['maxDuration']);
const endpoint2 = device.getEndpoint(38);
await reporting.bind(endpoint2, coordinatorEndpoint, ['msTemperatureMeasurement']);
await reporting.temperature(endpoint2, {min: constants.repInterval.MINUTE, max: constants.repInterval.MINUTES_10, change: 10});
},
endpoint: (device) => {
return {default: 35};
},
exposes: [e.temperature(), e.battery(), e.smoke(), e.battery_low(), e.test(),
exposes.numeric('max_duration', ea.ALL).withUnit('s').withValueMin(0).withValueMax(600).withDescription('Duration of Siren'),
exposes.binary('alarm', ea.SET, 'START', 'OFF').withDescription('Manual Start of Siren'),
exposes.enum('reliability', ea.STATE, ['no_fault_detected', 'unreliable_other', 'process_error'])
.withDescription('Indicates reason if any fault'),
exposes.binary('fault', ea.STATE, true, false).withDescription('Indicates whether the device are in fault state')],
};
Je n’ai rien de plus qu’avant :