zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
1,245 lines (1,244 loc) • 63.2 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 reporting = __importStar(require("../lib/reporting"));
const manufacturerCode = 0x4703;
const onokomExtend = {
onokomHvacThermostatCluster: () => m.deviceAddCustomCluster("hvacThermostat", {
name: "hvacThermostat",
ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
attributes: {
horizontalVanes: { name: "horizontalVanes", ID: 0x4700, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
verticalVanes: { name: "verticalVanes", ID: 0x4701, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
vanesSwing: { name: "vanesSwing", ID: 0x4702, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
mode: { name: "mode", ID: 0x4703, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
statusLed: { name: "statusLed", ID: 0x4704, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
ionization: { name: "ionization", ID: 0x4720, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
selfCleaning: { name: "selfCleaning", ID: 0x4721, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
moldProtection: { name: "moldProtection", ID: 0x4722, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
heating8Deg: { name: "heating8Deg", ID: 0x4724, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
gentleWind: { name: "gentleWind", ID: 0x4725, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
ecoMode: { name: "ecoMode", ID: 0x4727, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
sleepMode: { name: "sleepMode", ID: 0x4728, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
beeper: { name: "beeper", ID: 0x4730, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
screenLight: { name: "screenLight", ID: 0x4731, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
disableScreenWhenPowerOff: { name: "disableScreenWhenPowerOff", ID: 0x4732, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
screenLowBright: { name: "screenLowBright", ID: 0x4733, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
acConnected: { name: "acConnected", ID: 0x4734, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
smartEye: { name: "smartEye", ID: 0x4735, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
smartSleepMode: { name: "smartSleepMode", ID: 0x4736, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
indoorHeatExchangerTemperature: { name: "indoorHeatExchangerTemperature", ID: 0x4740, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
outdoorHeatExchangerTemperature: { name: "outdoorHeatExchangerTemperature", ID: 0x4741, type: zigbee_herdsman_1.Zcl.DataType.UINT16 },
},
commands: {},
commandsResponse: {},
}),
onokomHvacFanCtrlCluster: () => m.deviceAddCustomCluster("hvacFanCtrl", {
name: "hvacFanCtrl",
ID: zigbee_herdsman_1.Zcl.Clusters.hvacFanCtrl.ID,
attributes: {
fanSpeed: { name: "fanSpeed", ID: 0x4700, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
smartFanSpeed: { name: "smartFanSpeed", ID: 0x4701, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
quietMode: { name: "quietMode", ID: 0x4710, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
turboMode: { name: "turboMode", ID: 0x4711, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN, write: true },
compressorPowerLimit: { name: "compressorPowerLimit", ID: 0x4720, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
currentCompressorPower: { name: "currentCompressorPower", ID: 0x4721, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
targetCompressorPower: { name: "targetCompressorPower", ID: 0x4722, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
targetFanRpm: { name: "targetFanRpm", ID: 0x4723, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true },
currentFanRpm: { name: "currentFanRpm", ID: 0x4724, type: zigbee_herdsman_1.Zcl.DataType.UINT8 },
},
commands: {},
commandsResponse: {},
}),
acConnected: (args) => m.enumLookup({
name: "ac_connected",
cluster: "hvacThermostat",
attribute: "acConnected",
lookup: {
disconnected: 0,
invalid_data_recieved: 1,
connected_with_issues: 2,
connected: 3,
},
description: "AC connected",
access: "STATE",
...args,
}),
currentTemperature: (args) => m.numeric({
name: "current_temperature",
cluster: "hvacThermostat",
attribute: "localTemp",
scale: 100,
unit: "°C",
description: "Indoor air temperature",
access: "STATE",
...args,
}),
targetTemperature: (args) => m.numeric({
name: "target_temperature",
cluster: "hvacThermostat",
attribute: "occupiedCoolingSetpoint",
valueMin: 16,
valueMax: 32,
valueStep: 0.5,
scale: 100,
unit: "°C",
description: "Target temperature",
...args,
}),
systemMode: (args) => m.enumLookup({
name: "system_mode",
cluster: "hvacThermostat",
attribute: "systemMode",
lookup: {
off: 0,
auto: 1,
cool: 3,
heat: 4,
fan_only: 7,
dry: 8,
},
description: "Active mode",
...args,
}),
mode: (args) => m.enumLookup({
name: "mode",
cluster: "hvacThermostat",
attribute: "mode",
lookup: {
heat: 1,
cool: 2,
auto: 3,
dry: 4,
fan_only: 5,
},
description: "Mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
outdoorAirTemperature: (args) => m.numeric({
name: "outdoor_air_temperature",
cluster: "hvacThermostat",
attribute: "outdoorTemp",
scale: 100,
unit: "°C",
description: "Outdoor air temperature",
access: "STATE",
...args,
}),
zbFanSpeed: (args) => m.numeric({
name: "zb_fan_speed",
cluster: "hvacFanCtrl",
attribute: "fanMode",
valueMin: 1,
valueMax: 5,
valueStep: 1,
description: "Fan speed modes: Auto(5), Low(1), Medium(2), Maximum(3)",
...args,
}),
verticalVanes: (args) => m.numeric({
name: "vertical_vanes",
cluster: "hvacThermostat",
attribute: "verticalVanes",
valueMin: 0,
valueMax: 1,
valueStep: 1,
description: "Vertical vanes: Stopped(0), Swing(1)",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
horizontalVanes: (args) => m.numeric({
name: "horizontal_vanes",
cluster: "hvacThermostat",
attribute: "horizontalVanes",
valueMin: 0,
valueMax: 6,
valueStep: 1,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(6)",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
fanSpeed: (args) => m.numeric({
name: "fan_speed",
cluster: "hvacFanCtrl",
attribute: "fanSpeed",
valueMin: 0,
valueMax: 3,
valueStep: 1,
description: "Fan speed: Auto(0), First(1) - Maximum(3)",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
smartFanSpeed: (args) => m.numeric({
name: "smart_fan_speed",
cluster: "hvacFanCtrl",
attribute: { ID: 0x4701, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
valueMin: 0,
valueMax: 5,
valueStep: 1,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (4), Turbo(5)",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
vanesSwing: (args) => m.numeric({
name: "vanes_swing",
cluster: "hvacThermostat",
attribute: "vanesSwing",
valueMin: 0,
valueMax: 3,
valueStep: 1,
description: "Vanes swing: Stopped(0), Horizontal and vertical swing(1), Horizontal swing(2), Vertical swing(3)",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
statusLed: (args) => m.enumLookup({
name: "status_led",
cluster: "hvacThermostat",
attribute: "statusLed",
lookup: {
normal_mode: 0,
disabled_if_no_errors: 1,
disabled_untill_reboot: 2,
always_disabled: 3,
green_untill_reboot: 8,
red_untill_reboot: 9,
},
description: "Status LED",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
quietMode: (args) => m.binary({
name: "quiet_mode",
cluster: "hvacFanCtrl",
attribute: "quietMode",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Quiet mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
ecoMode: (args) => m.binary({
name: "eco_mode",
cluster: "hvacThermostat",
attribute: "ecoMode",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Eco mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
turboMode: (args) => m.binary({
name: "turbo_mode",
cluster: "hvacFanCtrl",
attribute: "turboMode",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Turbo mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
sleepMode: (args) => m.binary({
name: "sleep_mode",
cluster: "hvacThermostat",
attribute: "sleepMode",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Sleep mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
ionization: (args) => m.binary({
name: "ionization",
cluster: "hvacThermostat",
attribute: "ionization",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Ionization",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
selfCleaning: (args) => m.binary({
name: "self_cleaning",
cluster: "hvacThermostat",
attribute: "selfCleaning",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Self cleaning",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
moldProtection: (args) => m.binary({
name: "mold_protection",
cluster: "hvacThermostat",
attribute: "moldProtection",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Mold protection",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
screenLight: (args) => m.binary({
name: "screen_light",
cluster: "hvacThermostat",
attribute: "screenLight",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Screen light",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
currentFanRpm: (args) => m.numeric({
name: "current_fan_rpm",
cluster: "hvacFanCtrl",
attribute: "currentFanRpm",
access: "STATE",
valueMin: 0,
valueMax: 100,
valueStep: 1,
description: "Current fan speed",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
currentCompressorPower: (args) => m.numeric({
name: "current_compressor_power",
cluster: "hvacFanCtrl",
attribute: "currentCompressorPower",
access: "STATE",
valueMin: 0,
valueMax: 100,
valueStep: 1,
description: "Current compressor power",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
compressorPowerLimit: (args) => m.numeric({
name: "compressor_power_limit",
cluster: "hvacFanCtrl",
attribute: "compressorPowerLimit",
valueMin: 0,
valueMax: 100,
valueStep: 1,
description: "Compressor power limit",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
screenLowBright: (args) => m.binary({
name: "screen_low_bright",
cluster: "hvacThermostat",
attribute: "screenLowBright",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Screen low bright",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
targetFanRpm: (args) => m.numeric({
name: "target_fan_rpm",
cluster: "hvacFanCtrl",
attribute: "targetFanRpm",
valueMin: 0,
valueMax: 200,
valueStep: 1,
description: "Target fan speed",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
indoorHeatExchangerTemperature: (args) => m.numeric({
name: "indoor_heat_exchanger_temperature",
cluster: "hvacThermostat",
attribute: "indoorHeatExchangerTemperature",
access: "STATE",
valueMin: 0,
valueMax: 100,
valueStep: 1,
unit: "°C",
description: "Indoor heat exchanger temperature",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
beeper: (args) => m.binary({
name: "beeper",
cluster: "hvacThermostat",
attribute: { ID: 0x4730, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Beeper",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
targetCompressorPower: (args) => m.numeric({
name: "target_compressor_power",
cluster: "hvacFanCtrl",
attribute: "targetCompressorPower",
access: "STATE",
valueMin: 0,
valueMax: 100,
valueStep: 1,
description: "Target compressor power",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
outdoorHeatExchangerTemperature: (args) => m.numeric({
name: "outdoor_heat_exchanger_temperature",
cluster: "hvacThermostat",
attribute: "outdoorHeatExchangerTemperature",
access: "STATE",
valueMin: 0,
valueMax: 100,
valueStep: 1,
unit: "°C",
description: "Outdoor heat exchanger temperature",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
smartSleepMode: (args) => m.enumLookup({
name: "smart_sleep_mode",
cluster: "hvacThermostat",
attribute: "smartSleepMode",
lookup: {
disabled: 0,
ordinary: 1,
for_old: 2,
for_young: 3,
for_kids: 4,
},
description: "Smart sleep mode",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
smartEye: (args) => m.enumLookup({
name: "smart_eye",
cluster: "hvacThermostat",
attribute: { ID: 0x4735, type: zigbee_herdsman_1.Zcl.DataType.ENUM8 },
lookup: {
disabled: 0,
to_person: 1,
from_person: 2,
},
description: "Smart eye",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
heating8Deg: (args) => m.binary({
name: "heating_8_deg",
cluster: "hvacThermostat",
attribute: "heating8Deg",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Heating 8 deg",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
gentleWind: (args) => m.binary({
name: "gentle_wind",
cluster: "hvacThermostat",
attribute: { ID: 0x4725, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Gentle wind",
zigbeeCommandOptions: { manufacturerCode },
...args,
}),
};
exports.definitions = [
{
zigbeeModel: ["AUX-1-ZB-S"],
model: "AUX-1-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household and semi-industrial AUX systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature(),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes(),
onokomExtend.horizontalVanes(),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 5,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (4), Turbo(5)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.selfCleaning(),
onokomExtend.moldProtection(),
onokomExtend.screenLight(),
onokomExtend.currentFanRpm(),
onokomExtend.currentCompressorPower(),
onokomExtend.compressorPowerLimit(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-AUX-1-ZB-S-A"],
model: "OK-AC-H-AUX-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household and semi-industrial AUX systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature(),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes(),
onokomExtend.horizontalVanes(),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 5,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (4), Turbo(5)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.selfCleaning(),
onokomExtend.moldProtection(),
onokomExtend.screenLight(),
onokomExtend.currentFanRpm(),
onokomExtend.currentCompressorPower(),
onokomExtend.compressorPowerLimit(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["DK-1-ZB-S"],
model: "DK-1-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household Daikin systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature(),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes(),
onokomExtend.horizontalVanes({
valueMax: 1,
description: "Horizontal vanes: Stopped(0), Swing(1)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.ionization(),
onokomExtend.screenLight(),
onokomExtend.screenLowBright(),
onokomExtend.targetFanRpm({ valueMax: 200 }),
onokomExtend.currentFanRpm({ valueMax: 200 }),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-DK-1-ZB-S-A"],
model: "OK-AC-H-DK-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household Daikin systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature(),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes(),
onokomExtend.horizontalVanes({
valueMax: 1,
description: "Horizontal vanes: Stopped(0), Swing(1)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.ionization(),
onokomExtend.screenLight(),
onokomExtend.screenLowBright(),
onokomExtend.targetFanRpm({ valueMax: 200 }),
onokomExtend.currentFanRpm({ valueMax: 200 }),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-GR-1-ZB-S-A"],
model: "OK-AC-H-GR-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household GREE systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 6,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(6)",
}),
onokomExtend.horizontalVanes(),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.screenLight(),
m.binary({
name: "disable_screen_when_power_off",
cluster: "hvacThermostat",
attribute: "disableScreenWhenPowerOff",
valueOn: ["ON", 1],
valueOff: ["OFF", 0],
description: "Disable screen when power off",
zigbeeCommandOptions: { manufacturerCode },
}),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["GR-3-ZB-S"],
model: "GR-3-ZB-S",
vendor: "ONOKOM",
description: "Adapter for control of semi-industrial and multi-split systems GREE",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 6,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(6)",
}),
onokomExtend.horizontalVanes(),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.selfCleaning(),
onokomExtend.indoorHeatExchangerTemperature(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["HR-1-ZB-S"],
model: "HR-1-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household and semi-industrial Haier systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 6,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(6)",
}),
onokomExtend.horizontalVanes({
valueMax: 8,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(8)",
}),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 5,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (4), Turbo(5)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.selfCleaning(),
onokomExtend.screenLight(),
onokomExtend.beeper(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-HR-1-ZB-S-A"],
model: "OK-AC-H-HR-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household and semi-industrial Haier systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 6,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(6)",
}),
onokomExtend.horizontalVanes({
valueMax: 8,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(8)",
}),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 5,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (4), Turbo(5)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.ionization(),
onokomExtend.selfCleaning(),
onokomExtend.screenLight(),
onokomExtend.beeper(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["HS-3-ZB-S"],
model: "HS-3-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household Hisesnse systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 32, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 4,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(4)",
}),
onokomExtend.horizontalVanes({
valueMax: 7,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(7)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.smartSleepMode(),
onokomExtend.ionization(),
onokomExtend.smartEye(),
onokomExtend.screenLight(),
onokomExtend.beeper(),
onokomExtend.currentCompressorPower(),
onokomExtend.targetCompressorPower(),
onokomExtend.indoorHeatExchangerTemperature(),
onokomExtend.outdoorHeatExchangerTemperature(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-HS-3-ZB-S-A"],
model: "OK-AC-H-HS-3-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household Hisesnse systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 32, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 4,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(4)",
}),
onokomExtend.horizontalVanes({
valueMax: 7,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(7)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.sleepMode(),
onokomExtend.smartSleepMode(),
onokomExtend.ionization(),
onokomExtend.smartEye(),
onokomExtend.screenLight(),
onokomExtend.beeper(),
onokomExtend.currentCompressorPower(),
onokomExtend.targetCompressorPower(),
onokomExtend.indoorHeatExchangerTemperature(),
onokomExtend.outdoorHeatExchangerTemperature(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["HT-1-ZB-S"],
model: "HT-1-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household Hitachi systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 32, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.zbFanSpeed(),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 4,
description: "Smart fan speed: Auto (0), Low (1) ... Maximum (3)",
}),
onokomExtend.statusLed(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-HT-1-ZB-S-A"],
model: "OK-AC-H-HT-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household Hitachi systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 32, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.zbFanSpeed(),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 4,
description: "Smart fan speed: Auto (0), Low (1) ... Maximum (3)",
}),
onokomExtend.statusLed(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["MD-1-ZB-S"],
model: "MD-1-ZB-S",
vendor: "ONOKOM",
description: "Adapter for household MDV systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 0.5 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 7,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(7)",
}),
onokomExtend.horizontalVanes({
valueMax: 7,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(7)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.selfCleaning(),
onokomExtend.heating8Deg(),
onokomExtend.gentleWind(),
onokomExtend.targetFanRpm({ valueMax: 100 }),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-MD-1-ZB-S-A"],
model: "OK-AC-H-MD-1-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for household MDV systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 0.5 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.outdoorAirTemperature(),
onokomExtend.zbFanSpeed(),
onokomExtend.verticalVanes({
valueMax: 7,
description: "Vertical vanes: Stopped(0), Swing(1), Leftmost position(2), Rightmost position(7)",
}),
onokomExtend.horizontalVanes({
valueMax: 7,
description: "Horizontal vanes: Stopped(0), Swing(1), Lowest postion(2), Highest position(7)",
}),
onokomExtend.fanSpeed({
valueMax: 5,
description: "Fan speed: Auto(0), First(1) - Maximum(5)",
}),
onokomExtend.smartFanSpeed({
valueMax: 7,
description: "Smart fan speed: Auto (0), Quiet mode (1), First (2) ... Maximum (6), Turbo(7)",
}),
onokomExtend.vanesSwing(),
onokomExtend.statusLed(),
onokomExtend.quietMode(),
onokomExtend.ecoMode(),
onokomExtend.turboMode(),
onokomExtend.selfCleaning(),
onokomExtend.heating8Deg(),
onokomExtend.gentleWind(),
onokomExtend.targetFanRpm({ valueMax: 100 }),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["MD-3-ZB-S"],
model: "MD-3-ZB-S",
vendor: "ONOKOM",
description: "Adapter for semi-industrial MDV systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.zbFanSpeed(),
onokomExtend.horizontalVanes({
valueMax: 1,
description: "Horizontal vanes: Stopped(0), Swing(1)",
}),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 4,
description: "Smart fan speed: Auto (0), Low (1) ... Maximum (3)",
}),
onokomExtend.vanesSwing({
valueMax: 2,
valueStep: 2,
description: "Vanes swing: Stopped(0), Horizontal and vertical swing(1), Horizontal swing(2), Vertical swing(3)",
}),
onokomExtend.statusLed(),
onokomExtend.ecoMode(),
onokomExtend.indoorHeatExchangerTemperature(),
onokomExtend.outdoorHeatExchangerTemperature(),
],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ["hvacThermostat", "hvacFanCtrl", "genOnOff"]);
await reporting.thermostatTemperature(endpoint);
await reporting.onOff(endpoint);
},
},
{
zigbeeModel: ["OK-AC-H-MD-3-ZB-S-A"],
model: "OK-AC-H-MD-3-ZB-S-A",
vendor: "ONOKOM",
description: "Adapter for semi-industrial MDV systems",
ota: true,
extend: [
onokomExtend.onokomHvacThermostatCluster(),
onokomExtend.onokomHvacFanCtrlCluster(),
onokomExtend.acConnected(),
m.onOff({
powerOnBehavior: false,
description: "On/off state",
}),
onokomExtend.currentTemperature(),
onokomExtend.targetTemperature({ valueMin: 16, valueMax: 30, valueStep: 1 }),
onokomExtend.systemMode(),
onokomExtend.mode(),
onokomExtend.zbFanSpeed(),
onokomExtend.horizontalVanes({
valueMax: 1,
description: "Horizontal vanes: Stopped(0), Swing(1)",
}),
onokomExtend.fanSpeed(),
onokomExtend.smartFanSpeed({
valueMax: 4,
description: "Smart fan speed: Auto (0), Low (1) ... Maximum (3)",