{"size": 880, "ext": "js", "max_stars_repo_path": "node_modules/zigbee-clusters/lib/clusters/touchlink.js", "max_stars_repo_name": "julianisaacson/com.gledopto", "max_stars_repo_stars_event_min_datetime": "2021-11-12T13:39:00.000Z", "max_stars_repo_stars_event_max_datetime": "2021-12-09T20:52:10.000Z", "max_issues_repo_path": "node_modules/zigbee-clusters/lib/clusters/touchlink.js", "max_issues_repo_name": "julianisaacson/com.gledopto", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "node_modules/zigbee-clusters/lib/clusters/touchlink.js", "max_forks_repo_name": "julianisaacson/com.gledopto", "max_forks_repo_forks_event_min_datetime": "2021-08-29T12:00:23.000Z", "max_forks_repo_forks_event_max_datetime": "2021-08-29T12:00:23.000Z"}
{"max_stars_count": 3, "max_issues_count": null, "max_forks_count": 1, "avg_line_length": 17.2549019608, "max_line_length": 67, "alphanum_fraction": 0.6056818182}
'use strict';

const Cluster = require('../Cluster');
const { ZCLDataTypes, ZCLStruct } = require('../zclTypes');

const ATTRIBUTES = {};

const COMMANDS = {
  getGroups: {
    id: 0x41,
    args: {
      startIdx: ZCLDataTypes.uint8,
    },
    response: {
      id: 0x41,
      args: {
        total: ZCLDataTypes.uint8,
        startIndex: ZCLDataTypes.uint8,
        groups: ZCLDataTypes.Array8(ZCLStruct('TLLGroupResponse', {
          groupId: ZCLDataTypes.uint16,
          groupType: ZCLDataTypes.uint8,
        })),
      },
    },
  },
};

class TouchlinkCluster extends Cluster {

  static get ID() {
    return 4096; // 0x1000
  }

  static get NAME() {
    return 'touchlink';
  }

  static get ATTRIBUTES() {
    return ATTRIBUTES;
  }

  static get COMMANDS() {
    return COMMANDS;
  }

}

Cluster.addCluster(TouchlinkCluster);

module.exports = TouchlinkCluster;
