diff --git a/src/devices/airzone_aidoo.ts b/src/devices/airzone_aidoo.ts new file mode 100644 index 0000000000000..86b0cfed9430d --- /dev/null +++ b/src/devices/airzone_aidoo.ts @@ -0,0 +1,45 @@ +import {Definition} from '../lib/types'; +import * as exposes from '../lib/exposes'; +import fz from '../converters/fromZigbee'; +import tz from '../converters/toZigbee'; +import * as reporting from '../lib/reporting'; + +const e = exposes.presets; + +const definitions: Definition[] = [ + { + zigbeeModel: ['Aidoo Zigbee'], + model: 'AZAI6ZBEMHI', + vendor: 'Airzone', + description: 'Gateway for two-way control and integration of AirCon Units.AZAI6ZBEMHI for Mitsubishi Heavy', + fromZigbee: [fz.thermostat, fz.on_off, fz.fan], + toZigbee: [ + tz.thermostat_local_temperature, + tz.thermostat_occupied_heating_setpoint, + tz.thermostat_occupied_cooling_setpoint, + tz.thermostat_system_mode, + tz.on_off, + tz.fan_mode, + ], + exposes: [ + e.climate() + .withLocalTemperature() + .withSystemMode(['off', 'auto', 'cool', 'heat', 'fan_only', 'dry']) + .withFanMode(['off', 'low', 'medium', 'high', 'on', 'auto']) + .withSetpoint('occupied_heating_setpoint', 5, 30, 0.5) + .withSetpoint('occupied_cooling_setpoint', 5, 30, 0.5), + e.switch(), + ], + configure: async (device, coordinatorEndpoint, logger) => { + const endpoint = device.getEndpoint(1); + await reporting.bind(endpoint, coordinatorEndpoint, ['hvacThermostat', 'hvacFanCtrl', 'genOnOff']); + await reporting.thermostatTemperature(endpoint); + await reporting.thermostatOccupiedHeatingSetpoint(endpoint); + await reporting.onOff(endpoint); + await reporting.fanMode(endpoint); + }, + }, +]; + +export default definitions; +module.exports = definitions; diff --git a/src/devices/index.ts b/src/devices/index.ts index 83ad8da2f8609..464de6b988181 100644 --- a/src/devices/index.ts +++ b/src/devices/index.ts @@ -4,6 +4,7 @@ import adeo from './adeo'; import adurosmart from './adurosmart'; import aeotec from './aeotec'; import airam from './airam'; +import airzone_aidoo from './airzone_aidoo'; import ajax_online from './ajax_online'; import akuvox from './akuvox'; import alchemy from './alchemy'; @@ -307,6 +308,7 @@ export default [ ...adurosmart, ...aeotec, ...airam, + ...airzone_aidoo, ...ajax_online, ...akuvox, ...alchemy,