Du erstellst eine Datei mit dem Inhalt
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 ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;
const definition = {
fingerprint: [{modelID: 'TS0202', manufacturerName: '_TZ3210_wuhzzfqg'}],
model: 'ZB003-X',
vendor: 'Fantem',
description: '4 in 1 multi sensor',
fromZigbee: [fz.battery, fz.ignore_basic_report, fz.illuminance, fz.ZB003X, fz.ZB003X_attr, fz.ZB003X_$
toZigbee: [tz.ZB003X],
exposes: [e.occupancy(), e.tamper(), e.illuminance_lux(), e.illuminance(), e.temperature(), e.humidity$
e.battery(), e.battery_voltage(),
exposes.numeric('battery2', ea.STATE).withUnit('%').withDescription('Remaining battery 2 in %'),
exposes.numeric('illuminance_calibration', ea.STATE_SET).withDescription('Illuminance calibration $
.withValueMin(-20).withValueMax(20),
exposes.numeric('temperature_calibration', ea.STATE_SET).withDescription('Temperature calibration $
.withValueMin(-2).withValueMax(2).withValueStep(0.1),
exposes.numeric('humidity_calibration', ea.STATE_SET).withDescription('Humidity calibration')
.withValueMin(-15).withValueMax(15),
exposes.binary('reporting_enable', ea.STATE_SET, true, false).withDescription('Enable reporting'),
exposes.numeric('reporting_time', ea.STATE_SET).withDescription('Reporting interval in minutes')
.withValueMin(0).withValueMax(1440).withValueStep(5),
exposes.binary('led_enable', ea.STATE_SET, true, false).withDescription('Enable LED'),
exposes.binary('pir_enable', ea.STATE_SET, true, false).withDescription('Enable PIR sensor'),
exposes.enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high']).withDescription('PIR sensor s$
// eslint-disable-next-line
exposes.enum('keep_time', ea.STATE_SET, ['0', '30', '60', '120', '240', '480'])
.withDescription('PIR keep time in seconds')],
};
module.exports = definition;
Die Datei soll ext_converter.js heißen und im Verzeichnis liegen, wo auch die configuration.yaml liegt:
/config/zigbee2mqtt/<filename>.js
Danach z2m neu starten.
Edit:
Ach… das muss noch in die configuration.yaml
external_converters:
- ext_converter.js
Ich sehe gerade, dass man auch externe Konverter direkt in z2m unter Einstellungen machen kann.