zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
9,785 lines • 385 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.definitions = void 0;
const zigbee_herdsman_1 = require("zigbee-herdsman");
const m = __importStar(require("../lib/modernExtend"));
const attrPM1 = 0x0601;
const attrPM10 = 0x0602;
const attrPMSZ = 0x0603;
const attrAQi25 = 0x0604;
const attrPM4 = 0x0605;
const defaultReporting = { min: 0, max: 300, change: 0 };
const zeroReporting = { min: 5, max: 1800, change: 0.001 };
const rareReporting = { min: 0, max: 21600, change: 0 };
const rarestReporting = { min: 0, max: 64800, change: 0 };
const threeReporting = { min: 30, max: 1800, change: 1 };
const fourReporting = { min: 30, max: 1800, change: 10 };
const fiveReporting = { min: 10, max: 600, change: 1 };
const sixReporting = { min: 3600, max: 21600, change: 1 };
const co2Reporting = { min: 10, max: 600, change: 0.000001 };
const pmReporting = { min: 10, max: 600, change: 0.1 };
const pm2Reporting = { min: 10, max: 600, change: 0.01 };
const soilMoistureReporting = { min: 600, max: 7200, change: 100 };
const slowReporting = { min: 120, max: 3600, change: 25 };
const slow2Reporting = { min: 300, max: 3600, change: 50 };
const levelReporting = { min: 600, max: 3600, change: 1 };
exports.definitions = [
{
zigbeeModel: ["EFEKTA_iAQ3"],
model: "EFEKTA_iAQ3",
vendor: "EFEKTA",
description: "CO2 Monitor with IPS TFT Display, outdoor temperature and humidity, date and time",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the built-in temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the external temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["1"],
description: "Measured value of the built-in humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["2"],
description: "Measured value of the external humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: defaultReporting,
}),
m.illuminance({
access: "STATE",
reporting: defaultReporting,
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "rotate",
lookup: { "0": 0, "90": 90, "180": 180, "270": 270 },
cluster: "msCO2",
attribute: { ID: 0x0285, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Display rotation angle",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period2",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0404, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the VOC Index points(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.enumLookup({
name: "internal_or_external",
lookup: { INTERNAL: 1, EXTERNAL: 0 },
cluster: "msCO2",
attribute: { ID: 0x0288, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Display data from internal or external TH sensor",
access: "STATE_SET",
}),
m.binary({
name: "automatic_scal",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PWS"],
model: "EFEKTA_PWS",
vendor: "EFEKTA",
description: "[Plant Wattering Sensor, CR2450, CR2477 batteries, temperature ]",
extend: [
m.soilMoisture({ reporting: rareReporting }),
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.temperature({ reporting: rareReporting }),
m.numeric({
name: "report_delay",
unit: "min",
valueMin: 1,
valueMax: 240,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Adjust Report Delay. Setting the time in minutes, by default 15 minutes",
}),
],
},
{
zigbeeModel: ["EFEKTA_THP_LR"],
model: "EFEKTA_THP_LR",
vendor: "EFEKTA",
description: "DIY outdoor long-range sensor for temperature, humidity and atmospheric pressure",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rarestReporting,
percentageReportingConfig: rarestReporting,
}),
m.temperature({ reporting: rarestReporting }),
m.humidity({ reporting: rarestReporting }),
m.pressure({ reporting: rarestReporting }),
],
},
{
zigbeeModel: ["EFEKTA_ePWS"],
model: "EFEKTA_ePWS",
vendor: "EFEKTA",
description: "Plant wattering sensor with e-ink display",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.soilMoisture({ reporting: rareReporting }),
m.temperature({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_eON213z"],
model: "EFEKTA_eON213z",
vendor: "EFEKTA",
description: "Temperature and humidity sensor with e-ink2.13",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_miniPWS"],
model: "EFEKTA_miniPWS",
vendor: "EFEKTA",
description: "Mini plant wattering sensor",
extend: [
m.soilMoisture({ reporting: rareReporting }),
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.numeric({
name: "report_delay",
unit: "min",
valueMin: 1,
valueMax: 180,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Adjust Report Delay, by default 60 minutes",
}),
],
},
{
zigbeeModel: ["EFEKTA_eON213wz"],
model: "EFEKTA_eON213wz",
vendor: "EFEKTA",
description: "Mini weather station, digital barometer, forecast, charts, temperature, humidity",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
m.pressure({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_THP"],
model: "EFEKTA_THP",
vendor: "EFEKTA",
description: "DIY temperature, humidity and atmospheric pressure sensor, long battery life",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
m.pressure({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_PWS_Max"],
model: "EFEKTA_PWS_Max",
vendor: "EFEKTA",
description: "Plant watering sensor EFEKTA PWS max",
extend: [
m.soilMoisture({ reporting: rareReporting }),
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.illuminance({ reporting: rareReporting }),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_PWS_MaxPro"],
model: "EFEKTA_PWS_MaxPro",
vendor: "EFEKTA",
description: "Plant watering sensor EFEKTA PWS Max Pro, long battery life",
extend: [
m.soilMoisture({ reporting: rareReporting }),
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.illuminance({ reporting: rareReporting }),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_eON29wz"],
model: "EFEKTA_eON29wz",
vendor: "EFEKTA",
description: "Mini weather station, barometer, forecast, charts, temperature, humidity, light",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.illuminance({ reporting: rareReporting }),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
m.pressure({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_eFlower_Pro"],
model: "EFEKTA_eFlower_Pro",
vendor: "EFEKTA",
description: "Plant Wattering Sensor with e-ink display 2.13",
extend: [
m.soilMoisture({ reporting: rareReporting }),
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.illuminance({ reporting: rareReporting }),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_eTH102"],
model: "EFEKTA_eTH102",
vendor: "EFEKTA",
description: "Mini digital thermometer & hygrometer with e-ink1.02",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: rareReporting,
percentageReportingConfig: rareReporting,
}),
m.temperature({ reporting: rareReporting }),
m.humidity({ reporting: rareReporting }),
],
},
{
zigbeeModel: ["EFEKTA_iAQ"],
model: "EFEKTA_iAQ",
vendor: "EFEKTA",
description: "CO2 Monitor with IPS TFT Display, outdoor temperature and humidity, date and time",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the built-in temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the external temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["1"],
description: "Measured value of the built-in humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["2"],
description: "Measured value of the external humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.illuminance({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "seconds",
valueMin: 15,
valueMax: 300,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval.",
access: "STATE_SET",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "rotate",
lookup: { "0": 0, "90": 90, "180": 180, "270": 270 },
cluster: "msCO2",
attribute: { ID: 0x0285, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Display rotation angle",
access: "STATE_SET",
}),
m.binary({
name: "long_chart_period",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_CO2_Smart_Monitor"],
model: "EFEKTA_CO2_Smart_Monitor",
vendor: "EFEKTA",
description: "EFEKTA CO2 Smart Monitor, rgb indicator, can control the relay, binding",
extend: [
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "seconds",
valueMin: 15,
valueMax: 300,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval.",
access: "STATE_SET",
}),
m.binary({
name: "light_indicator",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0211, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable light indicator",
access: "STATE_SET",
}),
m.numeric({
name: "light_indicator_level",
unit: "%",
valueMin: 0,
valueMax: 100,
cluster: "msCO2",
attribute: { ID: 0x0209, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Light indicator level",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0410, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_AQ_Smart_Monitor"],
model: "EFEKTA_AQ_Smart_Monitor",
vendor: "EFEKTA",
description: "EFEKTA CO2 & VOC Index Smart Monitor, rgb indicator, can control the relay, binding",
extend: [
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: defaultReporting,
}),
m.numeric({
name: "reading_interval",
unit: "seconds",
valueMin: 15,
valueMax: 300,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval.",
access: "STATE_SET",
}),
m.binary({
name: "light_indicator",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0211, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable light indicator",
access: "STATE_SET",
}),
m.numeric({
name: "light_indicator_level",
unit: "%",
valueMin: 0,
valueMax: 100,
cluster: "msCO2",
attribute: { ID: 0x0209, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Light indicator level",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0410, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
m.binary({
name: "enable_voc",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable VOC Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High VOC Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low VOC Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["SNZB-02_EFEKTA"],
model: "SNZB-02_EFEKTA",
vendor: "EFEKTA",
description: "Alternative firmware for the SONOFF SNZB-02 sensor from EfektaLab, DIY",
extend: [
m.battery({
voltage: true,
voltageReportingConfig: sixReporting,
percentageReportingConfig: sixReporting,
}),
m.temperature({ reporting: fourReporting }),
m.humidity({ reporting: slowReporting }),
m.numeric({
name: "sensor_reading_interval",
unit: "sec.",
valueMin: 1,
valueMax: 60,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Adjust Report Delay. Setting the time in seconds, by default 6 seconds",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Air_Quality_Station"],
model: "EFEKTA_Air_Quality_Station",
vendor: "EFEKTA",
description: "Air quality station",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0601, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 1,
}),
m.pm25({
reporting: false,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 1,
}),
m.numeric({
name: "pm4",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0605, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 1,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0602, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 1,
}),
m.numeric({
name: "pm_size",
unit: "µm",
cluster: "pm25Measurement",
attribute: { ID: 0x0603, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Typical Particle Size",
access: "STATE",
reporting: false,
precision: 2,
}),
m.numeric({
name: "aqi_25_index",
unit: "PM2.5 Index",
cluster: "pm25Measurement",
attribute: { ID: 0x0604, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "PM 2.5 INDEX",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: false,
}),
m.temperature({
description: "Measured value of the built-in temperature sensor",
reporting: false,
access: "STATE",
}),
m.humidity({
description: "Measured value of the built-in humidity sensor",
reporting: false,
access: "STATE",
}),
m.illuminance({
access: "STATE",
reporting: false,
}),
m.numeric({
name: "report_delay",
unit: "sec",
valueMin: 6,
valueMax: 600,
cluster: "pm25Measurement",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor report delay. Setting the time in seconds (6-600), by default 15 seconds",
access: "STATE_SET",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "auto_clean_interval",
unit: "day",
valueMin: 0,
valueMax: 10,
valueStep: 1,
cluster: "pm25Measurement",
attribute: { ID: 0x0330, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Auto clean interval PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "manual_clean",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0331, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Manual clean PM2.5 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_ePST_POW_E_LR", "EFEKTA_ePST_POW_R_LR"],
model: "EFEKTA_ePST_POW",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with e-ink display",
extend: [
m.pressure({
unit: "kPa",
description: "Pressure in kPa",
scale: 10,
reporting: false,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Pressure in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Pressure in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: false,
voltageReporting: false,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 20 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Invert display color",
access: "STATE_SET",
}),
m.enumLookup({
name: "fastmode",
lookup: { Fast: 0, "Ultra Fast": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display refresh mode",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eTH_POW_E_LR", "EFEKTA_eTH_POW_R_LR"],
model: "EFEKTA_eTH_POW",
vendor: "EFEKTA",
description: "Temperature and humidity smart sensor with with e-ink display",
extend: [
m.temperature({
reporting: false,
access: "STATE",
}),
m.humidity({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE",
}),
m.battery({
percentage: true,
percentageReporting: false,
lowStatus: true,
voltage: false,
voltageReporting: false,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 40 seconds",
access: "STATE_SET",
}),
m.binary({
name: "heater",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0525, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Activation of the sensor heating service mode, 15 minutes",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Invert display color",
access: "STATE_SET",
}),
m.enumLookup({
name: "fastmode",
lookup: { Fast: 0, "Ultra Fast": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display refresh mode",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_Y_LR"],
model: "EFEKTA_T1_Y_LR",
vendor: "EFEKTA",
description: "Temperature sensor DS18B20, AAA bsttery, signal amplifier, works in Tuya",
extend: [
m.temperature({
reporting: false,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: false,
voltageReporting: false,
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_Y"],
model: "EFEKTA_T1_Y",
vendor: "EFEKTA",
description: "Temperature sensor DS18B20, AAA bsttery, works in Tuya",
extend: [
m.temperature({
reporting: false,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: false,
voltageReporting: false,
}),
],
},
{
zigbeeModel: ["EFEKTA_T8_POW"],
model: "EFEKTA_T8_POW",
vendor: "EFEKTA",
description: "Temperature sensor with a signal amplifier, support up to 8 DS18B20",
extend: [
m.deviceEndpoints({
endpoints: {
"1": 1,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
"6": 6,
"7": 7,
"8": 8,
},
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the 1 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the 2 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["3"],
description: "Measured value of the 3 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["4"],
description: "Measured value of the 4 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["5"],
description: "Measured value of the 5 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["6"],
description: "Measured value of the 6 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["7"],
description: "Measured value of the 7 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["8"],
description: "Measured value of the 8 temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "number_of_sensors",
cluster: "msTemperatureMeasurement",
attribute: { ID: 0xa199, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Number of ds18b20 sensors per data bus",
access: "STATE",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 15 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_v2_LR"],
model: "EFEKTA_T1_v2_LR",
vendor: "EFEKTA",
description: "Temperature sensors with a signal amplifier. External DS18b20 sensor. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -50,
valueMax: 120,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -50,
valueMax: 120,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_v2"],
model: "EFEKTA_T1_v2",
vendor: "EFEKTA",
description: "Temperature sensors. External DS18b20 sensor. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -50,
valueMax: 120,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -50,
valueMax: 120,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_v1_LR"],
model: "EFEKTA_TH_v1_LR",
vendor: "EFEKTA",
description: "Temperature and humidity sensors with a signal amplifier. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_v1"],
model: "EFEKTA_TH_v1",
vendor: "EFEKTA",
description: "Temperature and humidity sensors. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_v2_LR"],
model: "EFEKTA_TH_v2_LR",
vendor: "EFEKTA",
description: "Temperature and humidity sensors with a signal amplifier. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_v2"],
model: "EFEKTA_TH_v2",
vendor: "EFEKTA",
description: "Temperature and humidity sensors. Simple Thermostat.",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_DUO_LR"],
model: "EFEKTA_TH_DUO_LR",
vendor: "EFEKTA",
description: "Smart device with internal and external temperature and humidity sensor.",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the built-in temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the external temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["1"],
description: "Measured value of the built-in humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["2"],
description: "Measured value of the external humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.binary({
name: "switching_temperature_sensor",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0229, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable internal or external sensor control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.binary({
name: "switching_humidity_sensor",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0229, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable internal or external sensor control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_DUO"],
model: "EFEKTA_TH_DUO",
vendor: "EFEKTA",
description: "Smart device with internal and external temperature and humidity sensor.",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the built-in temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the external temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["1"],
description: "Measured value of the built-in humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["2"],
description: "Measured value of the external humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.binary({
name: "switching_temperature_sensor",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0229, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable internal or external sensor control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.binary({
name: "switching_humidity_sensor",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0229, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable internal or external sensor control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_V1_LR"],
model: "EFEKTA_PST_V1_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with signal amplifier",
extend: [
m.pressure({
unit: "kPa",
description: "Measured pressure value in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature",
unit: "raw unit",
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0007, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Sensor raw temperature",
access: "STATE",
}),
m.numeric({
name: "raw_temperature_recalibrated",
unit: "raw unit",
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0009, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Recalibrated sensor raw temperature",
access: "STATE",
}),
m.enumLookup({
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the sensor",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: false,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 15 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_POW_V1_LR"],
model: "EFEKTA_PST_POW_V1_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two types of power supply",
extend: [
m.pressure({
unit: "kPa",
description: "Measured pressure value in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the sensor",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 5,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 10 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_POW_V2_LR"],
model: "EFEKTA_PST_POW_V2_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two types of power supply V2",
extend: [
m.pressure({
unit: "kPa",
description: "Measured pressure value in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -1000.0,
valueMax: 1000.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -25,
valueMax: 25,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 10 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "sensor_type",
lookup: { "0-1bar": 1, "0-5bar": 5, "0-6bar": 6, "0-10bar": 10, "0-12bar": 12, "0-40bar": 40 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set sensor type",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_V1"],
model: "EFEKTA_PST_V1",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor",
extend: [
m.pressure({
unit: "kPa",
description: "Measured pressure value in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "raw_temperature",
unit: "raw unit",
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0007, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Sensor raw temperature",
access: "STATE",
}),
m.numeric({
name: "raw_temperature_recalibrated",
unit: "raw unit",
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0009, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Recalibrated sensor raw temperature",
access: "STATE",
}),
m.enumLookup({
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the sensor",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: false,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Setting the sensor reading interval in seconds, by default 15 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_DUO_V1"],
model: "EFEKTA_PST_DUO_V1",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two sensors",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.pressure({
endpointNames: ["1"],
unit: "kPa",
description: "Measured pressure value оf the first sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the first temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["1"],
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "1",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.pressure({
endpointNames: ["2"],
unit: "kPa",
description: "Measured pressure value оf the second sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "pressure in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the second temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["2"],
name: "raw_temperature_cal",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "2",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: false,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting sensor reading interval in seconds, by default 20 seconds",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_DUO_V1_LR"],
model: "EFEKTA_PST_DUO_V1_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two sensors and signal amplifier",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.pressure({
endpointNames: ["1"],
unit: "kPa",
description: "Measured pressure value оf the first sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the first temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["1"],
name: "raw_temperature_cal",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "1",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.pressure({
endpointNames: ["2"],
unit: "kPa",
description: "Measured pressure value оf the second sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the second temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["2"],
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "2",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: false,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 40 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_POW_DUO_V1_LR"],
model: "EFEKTA_PST_POW_DUO_V1_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two sensors, two power supply",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.pressure({
endpointNames: ["1"],
unit: "kPa",
description: "Measured pressure value оf the first sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the first temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["1"],
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "1",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.pressure({
endpointNames: ["2"],
unit: "kPa",
description: "Measured pressure value оf the second sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the second temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "pressure_offset",
unit: "kPa",
valueMin: -100.0,
valueMax: 100.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["2"],
name: "raw_temperature_calibration",
unit: "raw unit",
valueMin: -8192,
valueMax: 8192,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0008, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second temperature sensor",
access: "STATE_SET",
}),
m.enumLookup({
endpointName: "2",
name: "range",
lookup: { "0-10 Bar": 10, "0-16 Bar": 16 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Measuring range of the first sensor",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 5,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 10 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PST_POW_DUO_V2_LR"],
model: "EFEKTA_PST_POW_DUO_V2_LR",
vendor: "EFEKTA",
description: "Water, gas smart pressure monitor with two sensors, power supply, V2",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.pressure({
endpointNames: ["1"],
unit: "kPa",
description: "Measured pressure value оf the first sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the first sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the first temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["1"],
name: "pressure_offset",
unit: "hPa",
valueMin: -1000.0,
valueMax: 1000.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust first pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["1"],
name: "temperature_offset",
unit: "°C",
valueMin: -25,
valueMax: 25,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature sensor",
access: "STATE_SET",
}),
m.pressure({
endpointNames: ["2"],
unit: "kPa",
description: "Measured pressure value оf the second sensor in kPa",
scale: 10,
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Measured pressure value оf the second sensor in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the second temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
endpointNames: ["2"],
name: "pressure_offset",
unit: "hPa",
valueMin: -1000.0,
valueMax: 1000.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust second pressure sensor",
access: "STATE_SET",
}),
m.numeric({
endpointNames: ["2"],
name: "temperature_offset",
unit: "°C",
valueMin: -25,
valueMax: 25,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 5,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 10 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "sensor_type",
lookup: { "0-1bar": 1, "0-5bar": 5, "0-6bar": 6, "0-10bar": 10, "0-12bar": 12, "0-40bar": 40 },
cluster: "genPowerCfg",
attribute: { ID: 0x0280, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set sensor type",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Smart_AQ_Box_R3"],
model: "EFEKTA_Smart_AQ_Box_R3",
vendor: "EFEKTA",
description: "EFEKTA Smart Air Quality Box, can control the relay, binding on some other devices",
extend: [
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: attrPM1, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.pm25({
reporting: pmReporting,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 1,
}),
m.numeric({
name: "pm4",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: attrPM4, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) concentration",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: attrPM10, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.numeric({
name: "pm_size",
unit: "µm",
cluster: "pm25Measurement",
attribute: { ID: attrPMSZ, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Typical Particle Size",
access: "STATE",
reporting: pm2Reporting,
precision: 2,
}),
m.numeric({
name: "aqi_25_index",
unit: "PM2.5 Index",
cluster: "pm25Measurement",
attribute: { ID: attrAQi25, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "PM 2.5 INDEX",
access: "STATE",
reporting: pmReporting,
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: threeReporting,
}),
m.pressure({
reporting: threeReporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "reading_delay",
unit: "sec",
valueMin: 6,
valueMax: 600,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading delay.",
access: "STATE_SET",
}),
m.binary({
name: "alarm",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0240, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Alarm",
access: "STATE_SET",
}),
m.binary({
name: "light_indicator",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0211, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable light indicator",
access: "STATE_SET",
}),
m.numeric({
name: "light_indicator_level",
unit: "%",
valueMin: 0,
valueMax: 100,
cluster: "msCO2",
attribute: { ID: 0x0209, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Light indicator level",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0410, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "auto_clean_interval",
unit: "day",
valueMin: 0,
valueMax: 10,
valueStep: 1,
cluster: "pm25Measurement",
attribute: { ID: 0x0330, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Auto clean interval PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "manual_clean",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0331, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Manual clean PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "enable_pm25",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable PM2.5 Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_pm25",
unit: "µg/m³",
valueMin: 0,
valueMax: 1000,
cluster: "pm25Measurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High PM2.5 Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_pm25",
unit: "µg/m³",
valueMin: 0,
valueMax: 1000,
cluster: "pm25Measurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low PM2.5 Border",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
m.binary({
name: "enable_voc",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable VOC Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High VOC Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low VOC Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_iAQ_S_III"],
model: "EFEKTA_iAQ_S_III",
vendor: "EFEKTA",
description: "Air Quality Monitor, CO2, VOC, outdoor temperature and humidity, date and time",
extend: [
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
reporting: fiveReporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.illuminance({
reporting: fourReporting,
access: "STATE",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period2",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0244, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the VOC Index points(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.enumLookup({
name: "internal_or_external",
lookup: { INTERNAL: 0, EXTERNAL: 1 },
cluster: "msCO2",
attribute: { ID: 0x0288, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Display data from internal or external TH sensor",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_scal",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
m.binary({
name: "enable_voc",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_voc",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_voc",
unit: "ppm",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_voc",
unit: "ppm",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_iAQ_S_II"],
model: "EFEKTA_iAQ_S_II",
vendor: "EFEKTA",
description: "CO2 and atmospheric pressure мonitor with TFT Display, outdoor temperature and humidity",
extend: [
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2 } }),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["1"],
description: "Measured value of the built-in temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.temperature({
endpointNames: ["2"],
description: "Measured value of the external temperature sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["1"],
description: "Measured value of the built-in humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
endpointNames: ["2"],
description: "Measured value of the external humidity sensor",
reporting: fourReporting,
access: "STATE",
}),
m.pressure({
reporting: threeReporting,
access: "STATE",
}),
m.illuminance({
reporting: defaultReporting,
access: "STATE",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0403, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period2",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0244, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the рressure level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["zFlora_S"],
model: "zFlora_S",
vendor: "EFEKTA",
description: "Plant watering sensor zFlora S",
extend: [
m.identify(),
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "0dbm": 0, "4dbm": 4 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["zFlora_S_Max"],
model: "zFlora_S_Max",
vendor: "EFEKTA",
description: "Plant watering sensor zFlora_S Max",
extend: [
m.identify(),
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 30,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "0dbm": 0, "4dbm": 4 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["zFlora_Pro"],
model: "zFlora_Pro",
vendor: "EFEKTA",
description: "Plant watering sensor zFlora_Pro",
extend: [
m.identify(),
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 30,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "0dbm": 0, "4dbm": 4 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["zFlora_ProMax"],
model: "zFlora_ProMax",
vendor: "EFEKTA",
description: "Plant watering sensor zFlora_ProMax with signal amplifier",
extend: [
m.identify(),
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 30,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 9 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Uptime",
scale: 3600,
precision: 1,
access: "STATE",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eFlora"],
model: "EFEKTA_eFlora",
vendor: "EFEKTA",
description: "Plant Wattering Sensor with e-ink display 1.02",
extend: [
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 30,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 10 minutes",
access: "STATE_SET",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Invert display color",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msSoilMoisture",
attribute: { ID: 0x0505, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eFlora_Pro"],
model: "EFEKTA_eFlora_Pro",
vendor: "EFEKTA",
description: "Plant Wattering Sensor with e-ink display 2.13",
extend: [
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 1,
valueMax: 50,
valueStep: 1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Invert display color",
access: "STATE_SET",
}),
m.enumLookup({
name: "fastmode",
lookup: { Fast: 0, "Ultra Fast": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display refresh mode",
access: "STATE_SET",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msSoilMoisture",
attribute: { ID: 0x0505, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eFlora_Max_Pro"],
model: "EFEKTA_eFlora_Max_Pro",
vendor: "EFEKTA",
description: "Plant Wattering Sensor with e-ink display 2.13 with signal amplifier",
extend: [
m.soilMoisture({
reporting: soilMoistureReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.humidity({
reporting: slow2Reporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 1,
valueMax: 50,
valueStep: 1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 6 minutes",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Invert display color",
access: "STATE_SET",
}),
m.enumLookup({
name: "fastmode",
lookup: { Fast: 0, "Ultra Fast": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display refresh mode",
access: "STATE_SET",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msSoilMoisture",
attribute: { ID: 0x0505, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eTH102zex"],
model: "EFEKTA_eTH102zex",
vendor: "EFEKTA",
description: "Temperature and humidity sensor with e-ink1.02, date, thermostat, hygrostat",
extend: [
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 600,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Invert display color",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -35,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -35,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_eTH102z"],
model: "EFEKTA_eTH102z",
vendor: "EFEKTA",
description: "Temperature and humidity sensor with e-ink1.02, date, thermostat, hygrostat",
extend: [
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 600,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert_color",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Invert display color",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -5,
valueMax: 60,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -5,
valueMax: 60,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Air_Monitor"],
model: "EFEKTA_Air_Monitor",
vendor: "EFEKTA",
description: "CO2 smart monitor, AA battery",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: false,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "report_delay",
unit: "sec",
valueMin: 20,
valueMax: 1800,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor report delay. Setting the time in seconds (20-1800), by default 60 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "power_mode",
lookup: { Fast: 1, Medium: 5, Slow: 10 },
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Set power mode",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_scal",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["Egony_Flower"],
model: "Egony_Flower",
vendor: "EFEKTA",
description: "Soil moisture sensor Egony_Flower, mod DIYRuZ Flower",
extend: [
m.identify(),
m.soilMoisture({
reporting: slowReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: true,
percentageReporting: true,
voltageReporting: true,
percentageReportingConfig: sixReporting,
voltageReportingConfig: sixReporting,
}),
m.temperature({
reporting: slowReporting,
access: "STATE",
}),
m.illuminance({
reporting: slowReporting,
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "min.",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "0dbm": 0, "4dbm": 4 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Device lifetime in hours",
access: "STATE",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0410, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Temperature compensation",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Pixel_Open_Air_II"],
model: "EFEKTA_Pixel_Open_Air_II",
vendor: "EFEKTA",
description: "CO2 Monitor with retro LCD Display, V2",
extend: [
m.identify(),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.binary({
name: "backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0211, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Backlight of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Night Mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night Mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "contrast",
valueMin: 0,
valueMax: 40,
cluster: "msCO2",
attribute: { ID: 0x0445, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display Contrast",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "co2_error_read",
cluster: "msCO2",
attribute: { ID: 0x0444, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "CO2 Error Read",
access: "STATE",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Pixel_Open_Air"],
model: "EFEKTA_Pixel_Open_Air",
vendor: "EFEKTA",
description: "CO2 Monitor with retro LCD Display, V1",
extend: [
m.identify(),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.binary({
name: "backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0211, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Backlight of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable Night Mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night Mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "contrast",
valueMin: 0,
valueMax: 40,
cluster: "msCO2",
attribute: { ID: 0x0445, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Display Contrast",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration_on_air",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Forced Recalibration of the CO2 Sensor on fresh air",
access: "STATE_SET",
}),
m.numeric({
name: "co2_error_read",
cluster: "msCO2",
attribute: { ID: 0x0444, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "CO2 Error Read",
access: "STATE",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["Open_PM_Monitor"],
model: "Open_PM_Monitor",
vendor: "EFEKTA",
description: "PM1, PM2.5, PM10 Monitor with retro-style analog indicator and RGB backlight",
ota: true,
extend: [
m.identify(),
m.light({
effect: false,
powerOnBehavior: false,
configureReporting: true,
levelReportingConfig: fiveReporting,
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: attrPM1, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.pm25({
reporting: pmReporting,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 1,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: attrPM10, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.numeric({
name: "aqi25",
unit: "PM2.5 Index",
cluster: "pm25Measurement",
attribute: { ID: attrAQi25, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "PM 2.5 INDEX",
access: "STATE",
reporting: pmReporting,
}),
m.numeric({
name: "tvoc",
unit: "ppb",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "TVOC",
access: "STATE",
reporting: defaultReporting,
}),
m.numeric({
name: "eco2",
unit: "ppm",
cluster: "genAnalogInput",
attribute: { ID: 0x0175, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "eCO2",
access: "STATE",
reporting: defaultReporting,
}),
m.numeric({
name: "aqi",
unit: "index",
cluster: "genAnalogInput",
attribute: { ID: 0x0185, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "aqi",
access: "STATE",
reporting: defaultReporting,
}),
m.numeric({
name: "indicator_corection",
valueMin: -15,
valueMax: 15,
cluster: "pm25Measurement",
attribute: { ID: 0x0333, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Indicator corection",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert_color",
lookup: { WB: 0, BW: 1 },
cluster: "pm25Measurement",
attribute: { ID: 0xf004, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Set color mode",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_AQ_Smart_Monitor_Gen2"],
model: "EFEKTA_AQ_Smart_Monitor_Gen2",
vendor: "EFEKTA",
description: "CO2, VOC Index, illuminance Smart Monitor, rgb indicator, binding, control the relays",
ota: true,
extend: [
m.identify(),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: defaultReporting,
}),
m.illuminance({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: { ID: 0x0199, type: zigbee_herdsman_1.Zcl.DataType.UINT32 },
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.0,
valueMax: 50.0,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.light({
effect: false,
powerOnBehavior: false,
configureReporting: true,
levelReportingConfig: fiveReporting,
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "seconds",
valueMin: 15,
valueMax: 300,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval.",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -10,
valueMax: 10,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_onoff",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic onoff",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
m.binary({
name: "enable_voc",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genAnalogInput",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable VOC Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High VOC Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_voc",
unit: "VOC Index points",
valueMin: 0,
valueMax: 500,
cluster: "genAnalogInput",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low VOC Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_CO2_Smart_Monitor_Gen2"],
model: "EFEKTA_CO2_Smart_Monitor_Gen2",
vendor: "EFEKTA",
description: "CO2, illuminance Smart Monitor, rgb indicator, binding, control the relays",
ota: true,
extend: [
m.identify(),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.humidity({
reporting: fourReporting,
access: "STATE",
}),
m.illuminance({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: { ID: 0x0199, type: zigbee_herdsman_1.Zcl.DataType.UINT32 },
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.0,
valueMax: 50.0,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.light({
effect: false,
powerOnBehavior: false,
configureReporting: true,
levelReportingConfig: fiveReporting,
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "seconds",
valueMin: 15,
valueMax: 300,
cluster: "msCO2",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval.",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -10,
valueMax: 10,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "automatic_calibrations",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic calibration of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_onoff",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic onoff",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TH_POW_E", "EFEKTA_TH_POW_R"],
model: "EFEKTA_TH_POW",
vendor: "EFEKTA",
description: "Temperature and humidity smart monitor with voltage detector",
extend: [
m.identify(),
m.temperature({
reporting: defaultReporting,
access: "STATE",
}),
m.humidity({
reporting: defaultReporting,
access: "STATE",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: fiveReporting,
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 5 seconds",
access: "STATE_SET",
}),
m.binary({
name: "heater",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0525, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Activation of the sensor heating service mode, 15 minutes",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
m.binary({
name: "enabling_humidity_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msRelativeHumidity",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Humidity control",
access: "STATE_SET",
}),
m.enumLookup({
name: "humidity_actions",
lookup: { WET: 0, DRY: 1 },
cluster: "msRelativeHumidity",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Wet or dry",
access: "STATE_SET",
}),
m.numeric({
name: "high_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High Humidity Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_humidity",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low Humidity Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_MAX_E", "EFEKTA_T1_MAX_R"],
model: "EFEKTA_T1_MAX",
vendor: "EFEKTA",
description: "Temperatureb mart monitor with voltage detector",
extend: [
m.identify(),
m.temperature({
reporting: defaultReporting,
access: "STATE",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: fiveReporting,
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 5 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_DigiBaro"],
model: "EFEKTA_DigiBaro",
vendor: "EFEKTA",
description: "Smart digital barometer with e-ink display.",
extend: [
m.pressure({
unit: "kPa",
description: "Pressure in kPa",
scale: 10,
reporting: false,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.humidity({
reporting: false,
access: "STATE",
}),
m.battery({
percentageReportingConfig: false,
lowStatus: true,
voltage: false,
voltageReporting: false,
voltageReportingConfig: false,
}),
m.enumLookup({
name: "basic_data",
lookup: { Barometer: 0, "T&H": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: 0x20 },
description: "Set data output on the display",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert_color",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: 0x29 },
description: "Set color mode",
access: "STATE_SET",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: 0x39 },
description: "Adjust pressure",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
precision: 1,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: 0x39 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
precision: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: 0x39 },
description: "Adjust humidity",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_NTC10K"],
model: "EFEKTA_T1_NTC10K",
vendor: "EFEKTA",
description: "Temperature smart monitor with NTC sensor",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: fiveReporting,
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the sensor reading interval in seconds, by default 5 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: 0x10 },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: 0x10 },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: 0x10 },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "ntc status",
lookup: { NTC_OK: 0, OPEN_CIRCUIT: 1, SHORT_CIRCUIT: 2 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0192, type: 0x20 },
description: "NTC Status",
access: "STATE",
}),
m.numeric({
name: "b_coefficient",
valueMin: 2000,
valueMax: 5000,
valueStep: 1,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0194, type: 0x39 },
description: "Setting beta coefficient ",
precision: 0,
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: 0x29 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: 0x29 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_T1_POW_NTC10K"],
model: "EFEKTA_T1_POW_NTC10K",
vendor: "EFEKTA",
description: "Temperature smart monitor with NTC sensor",
extend: [
m.identify(),
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: fiveReporting,
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 3,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the sensor reading interval in seconds, by default 15 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: 0x10 },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: 0x10 },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: 0x10 },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "ntc status",
lookup: { NTC_OK: 0, OPEN_CIRCUIT: 1, SHORT_CIRCUIT: 2 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0192, type: 0x20 },
description: "NTC Status",
access: "STATE",
}),
m.numeric({
name: "b_coefficient",
valueMin: 2000,
valueMax: 5000,
valueStep: 1,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0194, type: 0x39 },
description: "Setting beta coefficient ",
precision: 0,
access: "STATE_SET",
}),
m.binary({
name: "enabling_temperature_control",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enables/disables Tempearure control",
access: "STATE_SET",
}),
m.enumLookup({
name: "temperature_actions",
lookup: { HEAT: 0, COOL: 1 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Heat or cool",
access: "STATE_SET",
}),
m.numeric({
name: "high_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0221, type: 0x29 },
description: "Setting High Temperature Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_temperature",
unit: "°C",
valueMin: -40,
valueMax: 90,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0222, type: 0x29 },
description: "Setting Low Temperature Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_PS_POW_PRO_LR", "EFEKTA_PS_POW_PRO"],
model: "EFEKTA_PS_POW_PRO",
vendor: "EFEKTA",
description: "Gas, water smart pressure monitor, high-precision and high-stability.",
extend: [
m.pressure({
unit: "kPa",
precision: 2,
description: "Measured pressure value in kPa",
reporting: threeReporting,
access: "STATE",
}),
m.numeric({
unit: "bar",
name: "Bar",
description: "Measured pressure value in bar",
cluster: "msPressureMeasurement",
attribute: { ID: 0x0395, type: 0x39 },
access: "STATE",
precision: 5,
reporting: zeroReporting,
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -1000.0,
valueMax: 1000.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: 0x29 },
description: "Adjust pressure sensor in hPa",
access: "STATE_SET",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE_GET",
}),
m.battery({
percentage: true,
lowStatus: true,
voltage: false,
percentageReporting: true,
percentageReportingConfig: sixReporting,
}),
m.numeric({
name: "uptime",
unit: "Hours",
cluster: "genTime",
attribute: "localTime",
description: "Uptime",
access: "STATE",
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the sensor reading interval in seconds, by default 10 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: 0x10 },
description: "Enable Smart Sleep, short wakeup every 2-7 seconds",
access: "STATE_SET",
}),
m.binary({
name: "config_report_enable",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0275, type: 0x10 },
description: "Enable reporting based on reporting configuration",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: 0x10 },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["Netuya_CO2_Smart_Box", "Netuya_CO2_Smart_Box_PA"],
model: "Netuya_CO2_Smart_Box",
vendor: "EFEKTA",
description: "CO2 Smart Monitor, rgb indicator, alarm, can control the relay",
ota: true,
extend: [
m.identify(),
m.co2({
reporting: co2Reporting,
access: "STATE",
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: { ID: 0x0199, type: 0x23 },
description: "Uptime",
access: "STATE",
}),
m.light({
effect: false,
powerOnBehavior: false,
configureReporting: true,
levelReportingConfig: levelReporting,
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genLevelCtrl",
attribute: { ID: 0x0401, type: 0x10 },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "genLevelCtrl",
attribute: { ID: 0x0405, type: 0x20 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "genLevelCtrl",
attribute: { ID: 0x0406, type: 0x20 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.binary({
name: "alarm",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0240, type: 0x10 },
description: "Enable alarm",
access: "STATE_SET",
}),
m.numeric({
name: "alarm_volume",
valueMin: 0,
valueMax: 10,
cluster: "msCO2",
attribute: { ID: 0x0242, type: 0x20 },
description: "Set alarm volume",
access: "STATE_SET",
}),
m.numeric({
name: "alarm_level",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0241, type: 0x21 },
description: "Set alarm level",
access: "STATE_SET",
}),
m.binary({
name: "calibration_mode",
valueOn: ["Auto", 1],
valueOff: ["Manual", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: 0x10 },
description: "Set calibration mode of the CO2 sensor",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: 0x10 },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: 0x10 },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: 0x21 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_onoff",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: 0x10 },
description: "Enable invert logic onoff",
access: "STATE_SET",
}),
m.binary({
name: "enable_co2_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: 0x10 },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: 0x21 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_co2_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: 0x21 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_ePST_POW_V2_E_LR", "EFEKTA_ePST_POW_V2_R_LR"],
model: "EFEKTA_ePST_POW_V2",
vendor: "EFEKTA",
description: "Smart water/gas pressure monitor with e-ink display.",
extend: [
m.pressure({
unit: "kPa",
description: "Pressure in kPa",
scale: 10,
reporting: false,
access: "STATE",
}),
m.numeric({
name: "bar",
unit: "bar",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Pressure in bar",
scale: 1000,
precision: 2,
access: "STATE",
}),
m.numeric({
name: "psi",
unit: "psi",
cluster: "msPressureMeasurement",
attribute: "measuredValue",
description: "Pressure in psi",
scale: 68.94757,
precision: 2,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -1000.0,
valueMax: 1000.0,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: 0x29 },
description: "Adjust pressure sensor",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -25,
valueMax: 25,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: 0x29 },
description: "Adjust temperature sensor",
access: "STATE_SET",
}),
m.numeric({
name: "mains_voltage",
unit: "V",
cluster: "genPowerCfg",
attribute: "mainsVoltage",
description: "Mains voltage",
scale: 10,
precision: 1,
access: "STATE",
}),
m.battery({
percentageReportingConfig: false,
lowStatus: true,
voltage: false,
voltageReporting: false,
voltageReportingConfig: false,
}),
m.numeric({
name: "reading_interval",
unit: "sec",
valueMin: 10,
valueMax: 300,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the sensor reading interval in seconds, by default 20 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4": 4, "19": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.enumLookup({
name: "sensor_type",
lookup: { "0-1bar": 1, "0-5bar": 5, "0-6bar": 6, "0-10bar": 10, "0-12bar": 12, "0-40bar": 40 },
cluster: "msPressureMeasurement",
attribute: { ID: 0x0280, type: 0x20 },
description: "Set sensor type",
access: "STATE_SET",
}),
m.binary({
name: "comparison_previous_data",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0205, type: 0x10 },
description: "Enable сontrol of comparison with previous data",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: 0x20 },
description: "Invert display color",
access: "STATE_SET",
}),
m.enumLookup({
name: "fastmode",
lookup: { Fast: 0, "Ultra Fast": 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf005, type: 0x20 },
description: "Display refresh mode",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["MODKAM_Flower"],
model: "MODKAM_Flower",
vendor: "EFEKTA",
description: "Soil moisture sensor MODKAM_Flower, mod DIYRuZ Flower",
extend: [
m.identify(),
m.soilMoisture({
reporting: false,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.illuminance({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 30,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min.",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the time in minutes, by default 3 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: 0x10 },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "-4dbm": -4, "0dbm": 0, "4dbm": 4 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "Device lifetime in hours",
access: "STATE",
}),
m.enumLookup({
name: "resolution",
lookup: { "9 bit": 9, "10 bit": 10, "11 bit": 11, "12 bit": 12 },
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0520, type: 0x20 },
description: "Set Bit resolution DS18B20",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0410, type: 0x29 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: 0x10 },
description: "Temperature compensation",
access: "STATE_SET",
}),
m.battery({
percentage: true,
lowStatus: false,
voltage: false,
percentageReporting: false,
}),
],
},
{
zigbeeModel: ["zFlora_X_Max"],
model: "zFlora_X_Max",
vendor: "EFEKTA",
description: "Plant watering sensor zFlora X Max with signal amplifier",
extend: [
m.identify(),
m.soilMoisture({
reporting: false,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.illuminance({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "lux_factor",
valueMin: 0.1,
valueMax: 10,
valueStep: 0.1,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0310, type: 0x39 },
description: "Lux factor",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "min",
valueMin: 1,
valueMax: 360,
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Setting the time in minutes, by default 9 minutes",
access: "STATE_SET",
}),
m.binary({
name: "smart_sleep",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "genPowerCfg",
attribute: { ID: 0x0216, type: 0x10 },
description: "Enable Smart Sleep, short wakeup every 7 seconds",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genPowerCfg",
attribute: { ID: 0x0236, type: 0x28 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
m.numeric({
name: "lower_level",
unit: "%",
valueMin: 0,
valueMax: 99,
cluster: "msSoilMoisture",
attribute: { ID: 0x0502, type: 0x21 },
description: "Lower level of soil moisture 0% is:",
access: "STATE_SET",
}),
m.numeric({
name: "upper_level",
unit: "%",
valueMin: 1,
valueMax: 100,
cluster: "msSoilMoisture",
attribute: { ID: 0x0503, type: 0x21 },
description: "Upper level of soil moisture 100% is:",
access: "STATE_SET",
}),
m.binary({
name: "temperature_compensation",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0504, type: 0x10 },
description: "Temperature compensation",
access: "STATE_SET",
}),
m.battery({
percentageReportingConfig: false,
lowStatus: false,
voltage: false,
voltageReporting: false,
voltageReportingConfig: false,
}),
],
},
{
zigbeeModel: ["EFEKTA_eAir_Monitor"],
model: "EFEKTA_eAir_Monitor",
vendor: "EFEKTA",
description: "Smart digital carbon dioxide detector with e-ink display.",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.battery({
percentageReportingConfig: false,
lowStatus: true,
voltage: false,
voltageReporting: false,
voltageReportingConfig: false,
}),
m.numeric({
name: "lifetime",
unit: "Hours",
cluster: "genTime",
attribute: "standardTime",
description: "lifetime",
access: "STATE",
}),
m.enumLookup({
name: "power_mode",
lookup: { Fast: 1, Medium: 5, Slow: 10 },
cluster: "genPowerCfg",
attribute: { ID: 0x0201, type: 0x21 },
description: "Set power mode",
access: "STATE_SET",
}),
m.enumLookup({
name: "invert_color",
lookup: { BW: 0, WB: 1 },
cluster: "genPowerCfg",
attribute: { ID: 0xf004, type: 0x29 },
description: "Set color mode",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: 0x10 },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: 0x21 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: 0x10 },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: 0x10 },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_TDS_Monitor"],
model: "EFEKTA_TDS_Monitor",
vendor: "EFEKTA",
description: "TDS Monitor with DS18B20 temperature sensor",
extend: [
m.temperature({
reporting: fourReporting,
access: "STATE",
}),
m.numeric({
name: "tds",
unit: "ppm",
cluster: "genBasic",
attribute: { ID: 0x0555, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured TDS value",
access: "STATE",
reporting: pmReporting,
precision: 1,
}),
m.enumLookup({
name: "tds_coefficient",
lookup: { "500": 500, "550": 550, "640": 640, "700": 700, "1000": 1000 },
cluster: "genBasic",
attribute: { ID: 0x0557, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "TDS coefficient",
access: "STATE_SET",
}),
m.numeric({
name: "reading_interval",
unit: "Seconds",
valueMin: 10,
valueMax: 360,
cluster: "genBasic",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor reading interval in seconds, by default 30 seconds",
access: "STATE_SET",
}),
m.numeric({
name: "tds_offset",
unit: "ppm",
valueMin: -100.0,
valueMax: 100.0,
valueStep: 0.1,
cluster: "genBasic",
attribute: { ID: 0x0556, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Adjust TDS",
access: "STATE_SET",
}),
m.enumLookup({
name: "tx_radio_power",
lookup: { "4dbm": 4, "19dbm": 19 },
cluster: "genBasic",
attribute: { ID: 0x0236, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Set TX Radio Power, dbm",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["DIYRuZ_AirSense_Reloaded"],
model: "DIYRuZ_AirSense_Reloaded",
vendor: "EFEKTA",
description: "Air quality sensor (CO2, formaldehyde, temperature, humidity, pressure)",
extend: [
m.identify(),
m.co2({
reporting: { min: 20, max: 600, change: 0.000001 },
access: "STATE_GET",
}),
m.numeric({
name: "formaldehyde_concentration",
unit: "ppm",
cluster: "msFormaldehyde",
attribute: "measuredValue",
description: "Formaldehyde (CH2O) concentration",
access: "STATE_GET",
reporting: { min: 20, max: 600, change: 0.001 },
}),
m.temperature({
reporting: { min: 20, max: 1200, change: 15 },
access: "STATE_GET",
}),
m.pressure({
reporting: { min: 60, max: 1800, change: 1 },
access: "STATE_GET",
}),
m.humidity({
reporting: { min: 20, max: 1200, change: 15 },
access: "STATE_GET",
}),
m.binary({
name: "co2_accurate_measurement",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0xf111, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable/disable accurate CO2 measurement mode",
access: "ALL",
}),
m.binary({
name: "co2_automatic_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable/disable automatic calibration of CO2 sensor",
access: "ALL",
}),
m.binary({
name: "led_indication",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable/disable LED indication",
access: "ALL",
}),
m.numeric({
name: "co2_moderate_threshold",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
valueStep: 1,
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Threshold for moderate CO2 level",
access: "ALL",
}),
m.numeric({
name: "co2_hazardous_threshold",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
valueStep: 1,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Threshold for hazardous CO2 level",
access: "ALL",
}),
m.numeric({
name: "formaldehyde_moderate_threshold",
unit: "ppb",
valueMin: 0,
valueMax: 5000,
valueStep: 1,
cluster: "msFormaldehyde",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Threshold for moderate formaldehyde (CH2O) level",
access: "ALL",
}),
m.numeric({
name: "formaldehyde_hazardous_threshold",
unit: "ppb",
valueMin: 0,
valueMax: 5000,
valueStep: 1,
cluster: "msFormaldehyde",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Threshold for hazardous formaldehyde (CH2O) level",
access: "ALL",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -20,
valueMax: 20,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Temperature calibration offset",
access: "ALL",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Humidity calibration offset",
access: "ALL",
}),
m.numeric({
name: "pressure_offset",
unit: "hPa",
valueMin: -1000,
valueMax: 1000,
valueStep: 1,
cluster: "msPressureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Pressure calibration offset",
access: "ALL",
}),
m.numeric({
name: "formaldehyde_offset",
unit: "adc",
valueMin: -100,
valueMax: 100,
valueStep: 1,
cluster: "msFormaldehyde",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Formaldehyde ADC range calibration offset",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Air_Quality_Station_2"],
model: "EFEKTA_Air_Quality_Station_2",
vendor: "EFEKTA",
description: "EFEKTA Air Quality Station2, PM0.5, PM1.0, PM2.5, PM4.0, PM10, PM Size, CO2, VOC Index, NOx Index, Temperature, Humidity, TFT display 3.2 inches.",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0601, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.pm25({
reporting: false,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 0,
}),
m.numeric({
name: "pm4",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0605, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0602, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_size",
unit: "µm",
cluster: "pm25Measurement",
attribute: { ID: 0x0603, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Typical Particle Size",
access: "STATE",
reporting: false,
precision: 2,
}),
m.numeric({
name: "pm_n05",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0640, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM0.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n1",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0641, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n25",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0642, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM2.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n4",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0643, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n10",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0644, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "nox_index",
unit: "NOx Index points",
cluster: "genAnalogInput",
attribute: { ID: 0x0155, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "NOx index",
access: "STATE",
reporting: false,
}),
m.temperature({
description: "Measured value of the built-in temperature sensor",
reporting: false,
access: "STATE",
}),
m.humidity({
description: "Measured value of the built-in humidity sensor",
reporting: false,
access: "STATE",
}),
m.illuminance({
access: "STATE",
reporting: false,
}),
m.numeric({
name: "report_delay",
unit: "sec",
valueMin: 6,
valueMax: 600,
cluster: "pm25Measurement",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor report delay. Setting the time in seconds (6-600), by default 15 seconds",
access: "STATE_SET",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "auto_clean_interval",
unit: "day",
valueMin: 0,
valueMax: 10,
valueStep: 1,
cluster: "pm25Measurement",
attribute: { ID: 0x0330, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Auto clean interval PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "manual_clean",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0331, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Manual clean PM2.5 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Air_Quality_Station_2c"],
model: "EFEKTA_Air_Quality_Station_2c",
vendor: "EFEKTA",
description: "EFEKTA Air Quality Station, PM0.5, PM1.0, PM2.5, PM4.0, PM10, PM Size, CO2, VOC Index, CH2O, Temperature, Humidity, TFT display 3.2 inches.",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0601, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.pm25({
reporting: false,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 0,
}),
m.numeric({
name: "pm4",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0605, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0602, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_size",
unit: "µm",
cluster: "pm25Measurement",
attribute: { ID: 0x0603, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Typical Particle Size",
access: "STATE",
reporting: false,
precision: 2,
}),
m.numeric({
name: "pm_n05",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0640, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM0.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n1",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0641, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n25",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0642, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM2.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n4",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0643, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n10",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0644, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "nox_index",
unit: "NOx Index points",
cluster: "genAnalogInput",
attribute: { ID: 0x0155, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "NOx index",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "formaldehyde",
unit: "ppb",
cluster: "msFormaldehyde",
attribute: "measuredValue",
description: "Formaldehyde concentration",
access: "STATE",
reporting: false,
}),
m.temperature({
description: "Measured value of the built-in temperature sensor",
reporting: false,
access: "STATE",
}),
m.humidity({
description: "Measured value of the built-in humidity sensor",
reporting: false,
access: "STATE",
}),
m.illuminance({
access: "STATE",
reporting: false,
}),
m.numeric({
name: "report_delay",
unit: "sec",
valueMin: 6,
valueMax: 600,
cluster: "pm25Measurement",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor report delay. Setting the time in seconds (6-600), by default 15 seconds",
access: "STATE_SET",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "formaldehyde_offset",
unit: "adc",
valueMin: -100,
valueMax: 100,
valueStep: 1,
cluster: "msFormaldehyde",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT8 },
description: "Adjust formaldehyde ADC range",
access: "STATE_SET",
}),
m.numeric({
name: "auto_clean_interval",
unit: "day",
valueMin: 0,
valueMax: 10,
valueStep: 1,
cluster: "pm25Measurement",
attribute: { ID: 0x0330, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Auto clean interval PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "manual_clean",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0331, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Manual clean PM2.5 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_Air_Quality_Station_2o"],
model: "EFEKTA_Air_Quality_Station_2o",
vendor: "EFEKTA",
description: "EFEKTA Air Quality Station, PM0.5, PM1.0, PM2.5, PM4.0, PM10, PM Size, CO2, VOC Index, O3, Temperature, Humidity, TFT display 3.2 inches.",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.numeric({
name: "pm1",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0601, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.pm25({
reporting: false,
access: "STATE",
description: "Measured PM2.5 (particulate matter) concentration",
precision: 0,
}),
m.numeric({
name: "pm4",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0605, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm10",
unit: "µg/m³",
cluster: "pm25Measurement",
attribute: { ID: 0x0602, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_size",
unit: "µm",
cluster: "pm25Measurement",
attribute: { ID: 0x0603, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Typical Particle Size",
access: "STATE",
reporting: false,
precision: 2,
}),
m.numeric({
name: "pm_n05",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0640, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM0.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n1",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0641, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM1.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n25",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0642, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM2.5 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n4",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0643, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM4.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "pm_n10",
unit: "#/cm³",
cluster: "pm25Measurement",
attribute: { ID: 0x0644, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "Measured PM10.0 (particulate matter) number concentration",
access: "STATE",
reporting: false,
precision: 0,
}),
m.numeric({
name: "voc_index",
unit: "VOC Index points",
cluster: "genAnalogInput",
attribute: "presentValue",
description: "VOC index",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "nox_index",
unit: "NOx Index points",
cluster: "genAnalogInput",
attribute: { ID: 0x0155, type: zigbee_herdsman_1.Zcl.DataType.SINGLE_PREC },
description: "NOx index",
access: "STATE",
reporting: false,
}),
m.numeric({
name: "ozone",
unit: "ppb",
cluster: "msOzone",
attribute: "measuredValue",
description: "Ozone concentration",
access: "STATE",
reporting: false,
}),
m.temperature({
description: "Measured value of the built-in temperature sensor",
reporting: false,
access: "STATE",
}),
m.humidity({
description: "Measured value of the built-in humidity sensor",
reporting: false,
access: "STATE",
}),
m.illuminance({
access: "STATE",
reporting: false,
}),
m.numeric({
name: "report_delay",
unit: "sec",
valueMin: 6,
valueMax: 600,
cluster: "pm25Measurement",
attribute: { ID: 0x0201, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the sensor report delay. Setting the time in seconds (6-600), by default 15 seconds",
access: "STATE_SET",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.numeric({
name: "ozone_offset",
unit: "ppb",
valueMin: -100,
valueMax: 100,
valueStep: 1,
cluster: "msOzone",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust ozone",
access: "STATE_SET",
}),
m.numeric({
name: "auto_clean_interval",
unit: "day",
valueMin: 0,
valueMax: 10,
valueStep: 1,
cluster: "pm25Measurement",
attribute: { ID: 0x0330, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Auto clean interval PM2.5 sensor",
access: "STATE_SET",
}),
m.binary({
name: "manual_clean",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "pm25Measurement",
attribute: { ID: 0x0331, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Manual clean PM2.5 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "automatic_self_calibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_iAQ_S_I"],
model: "EFEKTA_iAQ_S_I",
vendor: "EFEKTA",
description: "CO2 Monitor with TFT Display, outdoor temperature and humidity, date and time",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.humidity({
reporting: false,
access: "STATE",
}),
m.illuminance({
reporting: false,
access: "STATE",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0203, type: 0x10 },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0401, type: 0x10 },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0405, type: 0x20 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msIlluminanceMeasurement",
attribute: { ID: 0x0406, type: 0x20 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0204, type: 0x10 },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.numeric({
name: "set_altitude",
unit: "meters",
valueMin: 0,
valueMax: 3000,
cluster: "msCO2",
attribute: { ID: 0x0205, type: 0x21 },
description: "Setting the altitude above sea level (for high accuracy of the CO2 sensor)",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: 0x29 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: 0x29 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.enumLookup({
name: "th_sensor",
lookup: { INTERNAL: 0, EXTERNAL: 1 },
cluster: "msCO2",
attribute: { ID: 0x0288, type: 0x10 },
description: "Display data from internal or external TH sensor",
access: "STATE_SET",
}),
m.binary({
name: "automatic_scal",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0402, type: 0x10 },
description: "Automatic self calibration",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: 0x10 },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: 0x10 },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: 0x21 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: 0x10 },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: 0x10 },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: 0x21 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: 0x21 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
{
zigbeeModel: ["EFEKTA_iAQ2_R2"],
model: "EFEKTA_iAQ2_R2",
vendor: "EFEKTA",
description: "CO2 and atmospheric pressure мonitor with IPS TFT Display, outdoor temperature and humidity",
extend: [
m.co2({
reporting: false,
access: "STATE",
}),
m.temperature({
reporting: false,
access: "STATE",
}),
m.humidity({
reporting: false,
access: "STATE",
}),
m.pressure({
reporting: false,
access: "STATE",
}),
m.illuminance({
reporting: false,
access: "STATE",
}),
m.binary({
name: "auto_brightness",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0203, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable or Disable Auto Brightness of the Display",
access: "STATE_SET",
}),
m.binary({
name: "night_onoff_backlight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0401, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Complete shutdown of the backlight at night mode",
access: "STATE_SET",
}),
m.numeric({
name: "night_on_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0405, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode activation time",
access: "STATE_SET",
}),
m.numeric({
name: "night_off_backlight",
unit: "Hr",
valueMin: 0,
valueMax: 23,
cluster: "msCO2",
attribute: { ID: 0x0406, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
description: "Night mode deactivation time",
access: "STATE_SET",
}),
m.enumLookup({
name: "long_chart_period",
lookup: { "1H": 0, "24H": 1 },
cluster: "msCO2",
attribute: { ID: 0x0204, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "The period of plotting the CO2 level(OFF - 1H | ON - 24H)",
access: "STATE_SET",
}),
m.enumLookup({
name: "rotate",
lookup: { "0": 0, "90": 90, "180": 180, "270": 270 },
cluster: "msCO2",
attribute: { ID: 0x0285, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Display rotation angle",
access: "STATE_SET",
}),
m.numeric({
name: "temperature_offset",
unit: "°C",
valueMin: -50,
valueMax: 50,
valueStep: 0.1,
scale: 10,
cluster: "msTemperatureMeasurement",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust temperature",
access: "STATE_SET",
}),
m.numeric({
name: "humidity_offset",
unit: "%",
valueMin: -50,
valueMax: 50,
valueStep: 1,
cluster: "msRelativeHumidity",
attribute: { ID: 0x0210, type: zigbee_herdsman_1.Zcl.DataType.INT16 },
description: "Adjust humidity",
access: "STATE_SET",
}),
m.binary({
name: "forced_recalibration",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0202, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Start FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "factory_reset_co2",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0206, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Factory Reset CO2 sensor",
access: "STATE_SET",
}),
m.numeric({
name: "manual_forced_recalibration",
unit: "ppm",
valueMin: 0,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0207, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)",
access: "STATE_SET",
}),
m.binary({
name: "enable_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0220, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable CO2 Gas Control",
access: "STATE_SET",
}),
m.binary({
name: "invert_logic_gas",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
cluster: "msCO2",
attribute: { ID: 0x0225, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
description: "Enable invert logic CO2 Gas Control",
access: "STATE_SET",
}),
m.numeric({
name: "high_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0221, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting High CO2 Gas Border",
access: "STATE_SET",
}),
m.numeric({
name: "low_gas",
unit: "ppm",
valueMin: 400,
valueMax: 5000,
cluster: "msCO2",
attribute: { ID: 0x0222, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
description: "Setting Low CO2 Gas Border",
access: "STATE_SET",
}),
],
},
];
//# sourceMappingURL=efekta.js.map