const exposes = require('../lib/exposes');
const fz = require('../converters/fromZigbee');
const tz = require('../converters/toZigbee');
const reporting = require('../lib/reporting');
const extend = require('../lib/extend');
const e = exposes.presets;
const ota = require('../lib/ota');
module.exports = [
    {
        zigbeeModel: ['RC 210'],
        model: 'RC 210',
        vendor: 'Innr',
        description: 'Remote control',
        fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, fz.command_move_to_level,
            fz.command_move_to_color_temp],
        toZigbee: [],
        exposes: [e.action(['on', 'off', 'brightness_move_up', 'brightness_move_down', 'brightness_stop', 'brightness_move_to_level',
                'color_temperature_move'])],
        configure: async (device, coordinatorEndpoint, logger) => {
            const ep = device.getEndpoint(1);
            await reporting.bind(ep, coordinatorEndpoint, ['genBasic', 'genOnOff', 'genLevelCtrl', 'lightingColorCtrl']);
        },
    },
    {
        zigbeeModel: ['RC 250'],
        model: 'RC 250',
        vendor: 'Innr',
        description: 'Remote control',
        fromZigbee: [fz.command_step, fz.command_on, fz.command_off, fz.command_move_to_level, fz.command_move_to_color_temp],
        toZigbee: [],
        exposes: [e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down',
                'brightness_move_to_level', 'color_temperature_move'])],
        configure: async (device, coordinatorEndpoint, logger) => {
            const ep = device.getEndpoint(1);
            await reporting.bind(ep, coordinatorEndpoint, ['genBasic', 'genGroups', 'genScenes',
                'genOnOff', 'genLevelCtrl', 'lightingColorCtrl']);
        },
    },
    {
        zigbeeModel: ['RCL 240 T'],
        model: 'RCL 240 T',
        vendor: 'Innr',
        description: 'Smart round ceiling lamp comfort',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [200, 454] }),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['FL 140 C'],
        model: 'FL 140 C',
        vendor: 'Innr',
        description: 'Color Flex LED strip 4m 1200lm',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['FL 130 C'],
        model: 'FL 130 C',
        vendor: 'Innr',
        description: 'Color Flex LED strip',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['FL 120 C'],
        model: 'FL 120 C',
        vendor: 'Innr',
        description: 'Color Flex LED strip',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true, disablePowerOnBehavior: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BF 263'],
        model: 'BF 263',
        vendor: 'Innr',
        description: 'B22 filament bulb dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['OGL 130 C'],
        model: 'OGL 130 C',
        vendor: 'Innr',
        description: 'Outdoor smart globe lights',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [100, 1000], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['OPL 130 C'],
        model: 'OPL 130 C',
        vendor: 'Innr',
        description: 'Outdoor smart pedestal light colour',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true, disableColorTempStartup: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 185 C'],
        model: 'RB 185 C',
        vendor: 'Innr',
        description: 'E27 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BY 185 C'],
        model: 'BY 185 C',
        vendor: 'Innr',
        description: 'B22 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 250 C'],
        model: 'RB 250 C',
        vendor: 'Innr',
        description: 'E14 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 251 C'],
        model: 'RB 251 C',
        vendor: 'Innr',
        description: 'E14 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 265'],
        model: 'RB 265',
        vendor: 'Innr',
        description: 'E27 bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BY 266'],
        model: 'BY 266',
        vendor: 'Innr',
        description: 'B22 (Bayonet) bulb, dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 266'],
        model: 'RB 266',
        vendor: 'Innr',
        description: 'E27 bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RF 265'],
        model: 'RF 265',
        vendor: 'Innr',
        description: 'E27 bulb filament clear',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['BF 265'],
        model: 'BF 265',
        vendor: 'Innr',
        description: 'B22 bulb filament clear',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 278 T'],
        model: 'RB 278 T',
        vendor: 'Innr',
        description: 'Smart bulb tunable white E27',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 279 T'],
        model: 'RB 279 T',
        vendor: 'Innr',
        description: 'Smart bulb tunable white E27',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 285 C'],
        model: 'RB 285 C',
        vendor: 'Innr',
        description: 'E27 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 286 C'],
        model: 'RB 286 C',
        vendor: 'Innr',
        description: 'E27 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['BY 285 C'],
        model: 'BY 285 C',
        vendor: 'Innr',
        description: 'B22 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BY 286 C'],
        model: 'BY 286 C',
        vendor: 'Innr',
        description: 'B22 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 165'],
        model: 'RB 165',
        vendor: 'Innr',
        description: 'E27 bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 162'],
        model: 'RB 162',
        vendor: 'Innr',
        description: 'E27 bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 172 W'],
        model: 'RB 172 W',
        vendor: 'Innr',
        description: 'ZigBee E27 retrofit bulb, warm dimmable 2200-2700K, 806 Lm',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 175 W'],
        model: 'RB 175 W',
        vendor: 'Innr',
        description: 'E27 bulb warm dimming',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 178 T'],
        model: 'RB 178 T',
        vendor: 'Innr',
        description: 'Smart bulb tunable white E27',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BY 178 T'],
        model: 'BY 178 T',
        vendor: 'Innr',
        description: 'Smart bulb tunable white B22',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 122'],
        model: 'RS 122',
        vendor: 'Innr',
        description: 'GU10 spot',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 125'],
        model: 'RS 125',
        vendor: 'Innr',
        description: 'GU10 spot',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 225'],
        model: 'RS 225',
        vendor: 'Innr',
        description: 'GU10 Spot',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 226'],
        model: 'RS 226',
        vendor: 'Innr',
        description: 'GU10 Spot',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RS 227 T'],
        model: 'RS 227 T',
        vendor: 'Innr',
        description: 'GU10 spot 420 lm, dimmable, white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [200, 454] }),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RS 128 T'],
        model: 'RS 128 T',
        vendor: 'Innr',
        description: 'GU10 spot 350 lm, dimmable, white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 228 T'],
        model: 'RS 228 T',
        vendor: 'Innr',
        description: 'GU10 spot 350 lm, dimmable, white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [200, 454] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RS 229 T'],
        model: 'RS 229 T',
        vendor: 'Innr',
        description: 'GU10 spot 350 lm, dimmable, white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [200, 454] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RS 230 C'],
        model: 'RS 230 C',
        vendor: 'Innr',
        description: 'GU10 spot 350 lm, dimmable, RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        exposes: [e.light_brightness_colortemp_color()],
        meta: { enhancedHue: false, applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 145'],
        model: 'RB 145',
        vendor: 'Innr',
        description: 'E14 candle',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RB 245'],
        model: 'RB 245',
        vendor: 'Innr',
        description: 'E14 candle',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 248 T'],
        model: 'RB 248 T',
        vendor: 'Innr',
        description: 'E14 candle with white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 249 T'],
        model: 'RB 249 T',
        vendor: 'Innr',
        description: 'E14 candle, dimmable with, color temp',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [200, 454] }),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RB 148 T'],
        model: 'RB 148 T',
        vendor: 'Innr',
        description: 'E14 candle with white spectrum',
        extend: extend.light_onoff_brightness_colortemp({ colorTempRange: [153, 555] }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RF 261'],
        model: 'RF 261',
        vendor: 'Innr',
        description: 'E27 filament bulb dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RF 263'],
        model: 'RF 263',
        vendor: 'Innr',
        description: 'E27 filament bulb dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['RF 264'],
        model: 'RF 264',
        vendor: 'Innr',
        description: 'E27 filament bulb dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['BY 165', 'BY 265'],
        model: 'BY 165',
        vendor: 'Innr',
        description: 'B22 bulb dimmable',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RCL 110'],
        model: 'RCL 110',
        vendor: 'Innr',
        description: 'Round ceiling light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RSL 110'],
        model: 'RSL 110',
        vendor: 'Innr',
        description: 'Recessed spot light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RSL 115'],
        model: 'RSL 115',
        vendor: 'Innr',
        description: 'Recessed spot light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['PL 110'],
        model: 'PL 110',
        vendor: 'Innr',
        description: 'Puck Light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['PL 115'],
        model: 'PL 115',
        vendor: 'Innr',
        description: 'Puck Light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['ST 110'],
        model: 'ST 110',
        vendor: 'Innr',
        description: 'Strip Light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['UC 110'],
        model: 'UC 110',
        vendor: 'Innr',
        description: 'Under cabinet light',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['DL 110 N'],
        model: 'DL 110 N',
        vendor: 'Innr',
        description: 'Spot narrow',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['DL 110 W'],
        model: 'DL 110 W',
        vendor: 'Innr',
        description: 'Spot wide',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['SL 110 N'],
        model: 'SL 110 N',
        vendor: 'Innr',
        description: 'Spot Flex narrow',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['SL 110 M'],
        model: 'SL 110 M',
        vendor: 'Innr',
        description: 'Spot Flex medium',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['SL 110 W'],
        model: 'SL 110 W',
        vendor: 'Innr',
        description: 'Spot Flex wide',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['AE 260'],
        model: 'AE 260',
        vendor: 'Innr',
        description: 'E26/24 bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['AE 280 C'],
        model: 'AE 280 C',
        vendor: 'Innr',
        description: 'E26 bulb RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
        ota: ota.zigbeeOTA,
    },
    {
        zigbeeModel: ['SP 120'],
        model: 'SP 120',
        vendor: 'Innr',
        description: 'Smart plug',
        fromZigbee: [fz.electrical_measurement, fz.on_off, fz.ignore_genLevelCtrl_report, fz.metering],
        toZigbee: [tz.on_off],
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
            await reporting.onOff(endpoint);
            // Gives UNSUPPORTED_ATTRIBUTE on reporting.readEletricalMeasurementMultiplierDivisors.
            endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {
                acCurrentDivisor: 1000,
                acCurrentMultiplier: 1,
            });
            await reporting.activePower(endpoint);
            await reporting.rmsCurrent(endpoint);
            await reporting.rmsVoltage(endpoint);
            // Gives UNSUPPORTED_ATTRIBUTE on reporting.readMeteringMultiplierDivisor.
            endpoint.saveClusterAttributeKeyValue('seMetering', { multiplier: 1, divisor: 100 });
            await reporting.currentSummDelivered(endpoint);
        },
        exposes: [e.power(), e.current(), e.voltage(), e.switch(), e.energy()],
    },
    {
        zigbeeModel: ['SP 110'],
        model: 'SP 110',
        vendor: 'Innr',
        description: 'Smart plug',
        extend: extend.switch(),
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
            await reporting.onOff(endpoint);
        },
    },
    {
        zigbeeModel: ['SP 220'],
        model: 'SP 220',
        vendor: 'Innr',
        description: 'Smart plug',
        extend: extend.switch(),
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
            await reporting.onOff(endpoint);
        },
    },
    {
        zigbeeModel: ['SP 222'],
        model: 'SP 222',
        vendor: 'Innr',
        description: 'Smart plug',
        extend: extend.switch(),
        ota: ota.zigbeeOTA,
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
            await reporting.onOff(endpoint);
        },
    },
    {
        zigbeeModel: ['SP 224'],
        model: 'SP 224',
        vendor: 'Innr',
        description: 'Smart plug',
        extend: extend.switch(),
        ota: ota.zigbeeOTA,
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
            await reporting.onOff(endpoint);
        },
    },
    {
        zigbeeModel: ['SP 234'],
        model: 'SP 234',
        vendor: 'Innr',
        description: 'Smart plug',
        fromZigbee: [fz.electrical_measurement, fz.on_off, fz.ignore_genLevelCtrl_report, fz.metering],
        toZigbee: [tz.on_off],
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
            await reporting.onOff(endpoint);
            // Gives UNSUPPORTED_ATTRIBUTE on reporting.readEletricalMeasurementMultiplierDivisors.
            endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {
                acCurrentDivisor: 1000,
                acCurrentMultiplier: 1,
            });
            await reporting.activePower(endpoint);
            await reporting.rmsCurrent(endpoint);
            await reporting.rmsVoltage(endpoint);
            // Gives UNSUPPORTED_ATTRIBUTE on reporting.readMeteringMultiplierDivisor.
            endpoint.saveClusterAttributeKeyValue('seMetering', { multiplier: 1, divisor: 100 });
            await reporting.currentSummDelivered(endpoint);
        },
        ota: ota.zigbeeOTA,
        exposes: [e.power(), e.current(), e.voltage(), e.switch(), e.energy()],
    },
    {
        zigbeeModel: ['OFL 120 C'],
        model: 'OFL 120 C',
        vendor: 'Innr',
        description: 'Outdoor flex light colour LED strip 2m, 550lm, RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['OFL 140 C'],
        model: 'OFL 140 C',
        vendor: 'Innr',
        description: 'Outdoor flex light colour LED strip 4m, 1000lm, RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['OFL 142 C'],
        model: 'OFL 142 C',
        vendor: 'Innr',
        description: 'Outdoor flex light colour LED strip 4m, 1440lm, RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [100, 350], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['OSL 130 C'],
        model: 'OSL 130 C',
        vendor: 'Innr',
        description: 'Outdoor smart spot colour, 230lm/spot, RGBW',
        extend: extend.light_onoff_brightness_colortemp_color({ colorTempRange: [153, 555], supportsHS: true }),
        meta: { applyRedFix: true, turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['BE 220'],
        model: 'BE 220',
        vendor: 'Innr',
        description: 'E26/E24 white bulb',
        extend: extend.light_onoff_brightness(),
        meta: { turnsOffAtBrightness1: true },
    },
    {
        zigbeeModel: ['RC 110'],
        model: 'RC 110',
        vendor: 'Innr',
        description: 'Innr RC 110 Remote Control',
        fromZigbee: [fz.command_step, fz.command_move, fz.command_stop, fz.command_on, fz.command_off, fz.rc_110_level_to_scene],
        toZigbee: [],
        meta: { multiEndpoint: true },
        endpoint: (device) => {
            return { 'all': 1, 'l1': 3, 'l2': 4, 'l3': 5, 'l4': 6, 'l5': 7, 'l6': 8 };
        },
        exposes: [e.action(['on_*', 'off_*', 'brightness_*', 'scene_*'])],
        configure: async (device, coordinatorEndpoint, logger) => {
            await reporting.bind(device.getEndpoint(1), coordinatorEndpoint, ['genBasic', 'genGroups', 'genScenes', 'genOnOff', 'genLevelCtrl']);
            for (const ep of [3, 4, 5, 6, 7, 8]) {
                const endpoint = device.getEndpoint(ep);
                await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
            }
        },
    },
];
//# sourceMappingURL=innr.js.map