UNPKG

zigbee-herdsman-converters

Version:

Collection of device converters to be used with zigbee-herdsman

1,245 lines (1,244 loc) 63.2 kB
"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)",