class ACProtocol { final int id; final String protocolName; final String displayName; final String description; final bool hasModel; final List modelNames; ACProtocol({ required this.id, required this.protocolName, required this.displayName, required this.description, required this.hasModel, required this.modelNames, }); } // Data dari ESP32 Script - 67 Protocol AC final List acProtocols = [ ACProtocol( id: 0, protocolName: 'PANASONIC_AC', displayName: 'Panasonic', description: 'Panasonic AC', hasModel: true, modelNames: ['LKE', 'NKE', 'DKE', 'JKE', 'CKP', 'RKR'], ), ACProtocol( id: 1, protocolName: 'FUJITSU_AC', displayName: 'Fujitsu', description: 'Fujitsu AC', hasModel: true, modelNames: ['ARDB1', 'ARRAH2E', 'ARREB1E', 'ARJW2', 'ARRY4', 'ARREW4E'], ), ACProtocol( id: 2, protocolName: 'DAIKIN', displayName: 'Daikin', description: 'Daikin AC', hasModel: false, modelNames: [], ), ACProtocol( id: 3, protocolName: 'DAIKIN2', displayName: 'Daikin 2', description: 'Daikin 2 AC', hasModel: false, modelNames: [], ), ACProtocol( id: 4, protocolName: 'DAIKIN64', displayName: 'Daikin 64-bit', description: 'Daikin 64-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 5, protocolName: 'DAIKIN128', displayName: 'Daikin 128-bit', description: 'Daikin 128-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 6, protocolName: 'DAIKIN152', displayName: 'Daikin 152-bit', description: 'Daikin 152-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 7, protocolName: 'DAIKIN160', displayName: 'Daikin 160-bit', description: 'Daikin 160-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 8, protocolName: 'DAIKIN176', displayName: 'Daikin 176-bit', description: 'Daikin 176-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 9, protocolName: 'DAIKIN200', displayName: 'Daikin 200-bit', description: 'Daikin 200-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 10, protocolName: 'DAIKIN216', displayName: 'Daikin 216-bit', description: 'Daikin 216-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 11, protocolName: 'DAIKIN312', displayName: 'Daikin 312-bit', description: 'Daikin 312-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 12, protocolName: 'MITSUBISHI_AC', displayName: 'Mitsubishi', description: 'Mitsubishi Electric AC', hasModel: false, modelNames: [], ), ACProtocol( id: 13, protocolName: 'MITSUBISHI112', displayName: 'Mitsubishi 112-bit', description: 'Mitsubishi 112-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 14, protocolName: 'MITSUBISHI136', displayName: 'Mitsubishi 136-bit', description: 'Mitsubishi 136-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 15, protocolName: 'MITSUBISHI_HEAVY_88', displayName: 'Mitsubishi Heavy 88-bit', description: 'Mitsubishi Heavy 88-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 16, protocolName: 'MITSUBISHI_HEAVY_152', displayName: 'Mitsubishi Heavy 152-bit', description: 'Mitsubishi Heavy 152-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 17, protocolName: 'HITACHI_AC', displayName: 'Hitachi', description: 'Hitachi AC', hasModel: false, modelNames: [], ), ACProtocol( id: 18, protocolName: 'HITACHI_AC1', displayName: 'Hitachi AC1', description: 'Hitachi AC1', hasModel: false, modelNames: [], ), ACProtocol( id: 19, protocolName: 'HITACHI_AC264', displayName: 'Hitachi AC264', description: 'Hitachi AC264', hasModel: false, modelNames: [], ), ACProtocol( id: 20, protocolName: 'HITACHI_AC296', displayName: 'Hitachi AC296', description: 'Hitachi AC296', hasModel: false, modelNames: [], ), ACProtocol( id: 21, protocolName: 'HITACHI_AC344', displayName: 'Hitachi AC344', description: 'Hitachi AC344', hasModel: false, modelNames: [], ), ACProtocol( id: 22, protocolName: 'HITACHI_AC424', displayName: 'Hitachi AC424', description: 'Hitachi AC424', hasModel: false, modelNames: [], ), ACProtocol( id: 23, protocolName: 'LG', displayName: 'LG', description: 'LG AC', hasModel: true, modelNames: [ 'GE6711AR2853M', 'LG6711A20083V', 'AKB74955603', 'AKB73757604', ], ), ACProtocol( id: 24, protocolName: 'LG2', displayName: 'LG 2', description: 'LG2 AC', hasModel: false, modelNames: [], ), ACProtocol( id: 25, protocolName: 'SAMSUNG_AC', displayName: 'Samsung', description: 'Samsung AC', hasModel: false, modelNames: [], ), ACProtocol( id: 26, protocolName: 'SAMSUNG36', displayName: 'Samsung 36-bit', description: 'Samsung 36-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 27, protocolName: 'SHARP_AC', displayName: 'Sharp', description: 'Sharp AC', hasModel: true, modelNames: ['A705', 'A903', 'A907'], ), ACProtocol( id: 28, protocolName: 'GREE', displayName: 'Gree', description: 'Gree AC', hasModel: true, modelNames: ['YAW1F', 'YBOFB', 'YX1FSF'], ), ACProtocol( id: 29, protocolName: 'KELVINATOR', displayName: 'Kelvinator', description: 'Kelvinator AC', hasModel: false, modelNames: [], ), ACProtocol( id: 30, protocolName: 'COOLIX', displayName: 'Coolix/Midea', description: 'Coolix/Midea AC', hasModel: false, modelNames: [], ), ACProtocol( id: 31, protocolName: 'COOLIX48', displayName: 'Coolix 48-bit', description: 'Coolix 48-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 32, protocolName: 'MIDEA', displayName: 'Midea', description: 'Midea AC', hasModel: false, modelNames: [], ), ACProtocol( id: 33, protocolName: 'MIDEA24', displayName: 'Midea 24-bit', description: 'Midea 24-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 34, protocolName: 'WHIRLPOOL_AC', displayName: 'Whirlpool', description: 'Whirlpool AC', hasModel: true, modelNames: ['DG11J13A', 'DG11J191'], ), ACProtocol( id: 35, protocolName: 'HAIER_AC', displayName: 'Haier', description: 'Haier AC', hasModel: false, modelNames: [], ), ACProtocol( id: 36, protocolName: 'HAIER_AC_YRW02', displayName: 'Haier YRW02', description: 'Haier YRW02 AC', hasModel: false, modelNames: [], ), ACProtocol( id: 37, protocolName: 'HAIER_AC160', displayName: 'Haier 160-bit', description: 'Haier 160-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 38, protocolName: 'HAIER_AC176', displayName: 'Haier 176-bit', description: 'Haier 176-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 39, protocolName: 'CARRIER_AC', displayName: 'Carrier', description: 'Carrier AC', hasModel: false, modelNames: [], ), ACProtocol( id: 40, protocolName: 'CARRIER_AC84', displayName: 'Carrier 84-bit', description: 'Carrier 84-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 41, protocolName: 'CARRIER_AC128', displayName: 'Carrier 128-bit', description: 'Carrier 128-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 42, protocolName: 'TCL112AC', displayName: 'TCL 112-bit', description: 'TCL 112-bit AC', hasModel: true, modelNames: ['TAC09CHSD', 'GZ055BE1'], ), ACProtocol( id: 43, protocolName: 'TCL96AC', displayName: 'TCL 96-bit', description: 'TCL 96-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 44, protocolName: 'SANYO_AC', displayName: 'Sanyo', description: 'Sanyo AC', hasModel: false, modelNames: [], ), ACProtocol( id: 45, protocolName: 'SANYO_AC152', displayName: 'Sanyo 152-bit', description: 'Sanyo 152-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 46, protocolName: 'TOSHIBA_AC', displayName: 'Toshiba', description: 'Toshiba AC', hasModel: true, modelNames: ['GENERICREMOTE_A', 'GENERICREMOTE_B'], ), ACProtocol( id: 47, protocolName: 'ELECTRA_AC', displayName: 'Electra/AUX/Frigidaire', description: 'Electra/AUX/Frigidaire AC', hasModel: false, modelNames: [], ), ACProtocol( id: 48, protocolName: 'NEOCLIMA', displayName: 'Neoclima', description: 'Neoclima AC', hasModel: false, modelNames: [], ), ACProtocol( id: 49, protocolName: 'VOLTAS', displayName: 'Voltas', description: 'Voltas AC', hasModel: true, modelNames: ['122LZF'], ), ACProtocol( id: 50, protocolName: 'VESTEL_AC', displayName: 'Vestel', description: 'Vestel AC', hasModel: false, modelNames: [], ), ACProtocol( id: 51, protocolName: 'TROTEC', displayName: 'Trotec', description: 'Trotec AC', hasModel: false, modelNames: [], ), ACProtocol( id: 52, protocolName: 'TROTEC_3550', displayName: 'Trotec 3550', description: 'Trotec 3550 AC', hasModel: false, modelNames: [], ), ACProtocol( id: 53, protocolName: 'AMCOR', displayName: 'Amcor', description: 'Amcor AC', hasModel: false, modelNames: [], ), ACProtocol( id: 54, protocolName: 'ARGO', displayName: 'Argo', description: 'Argo AC', hasModel: true, modelNames: ['SAC_WREM2', 'SAC_WREM3'], ), ACProtocol( id: 55, protocolName: 'CORONA_AC', displayName: 'Corona', description: 'Corona AC', hasModel: false, modelNames: [], ), ACProtocol( id: 56, protocolName: 'DELONGHI_AC', displayName: 'DeLonghi', description: 'DeLonghi AC', hasModel: false, modelNames: [], ), ACProtocol( id: 57, protocolName: 'ECOCLIM', displayName: 'EcoClim', description: 'EcoClim AC', hasModel: false, modelNames: [], ), ACProtocol( id: 58, protocolName: 'EUROM', displayName: 'Eurom', description: 'Eurom AC', hasModel: false, modelNames: [], ), ACProtocol( id: 59, protocolName: 'GOODWEATHER', displayName: 'Goodweather', description: 'Goodweather AC', hasModel: false, modelNames: [], ), ACProtocol( id: 60, protocolName: 'KELON', displayName: 'Kelon/Hisense', description: 'Kelon/Hisense AC', hasModel: false, modelNames: [], ), ACProtocol( id: 61, protocolName: 'KELON168', displayName: 'Kelon 168-bit', description: 'Kelon 168-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 62, protocolName: 'MIRAGE', displayName: 'Mirage', description: 'Mirage AC', hasModel: true, modelNames: ['KKG9AC1', 'KKG29AC1'], ), ACProtocol( id: 63, protocolName: 'RHOSS', displayName: 'Rhoss', description: 'Rhoss AC', hasModel: false, modelNames: [], ), ACProtocol( id: 64, protocolName: 'TEKNOPOINT', displayName: 'Teknopoint', description: 'Teknopoint AC', hasModel: false, modelNames: [], ), ACProtocol( id: 65, protocolName: 'TRANSCOLD', displayName: 'Transcold', description: 'Transcold AC', hasModel: false, modelNames: [], ), ACProtocol( id: 66, protocolName: 'TRUMA', displayName: 'Truma', description: 'Truma AC', hasModel: false, modelNames: [], ), ACProtocol( id: 67, protocolName: 'YORK', displayName: 'York', description: 'York AC', hasModel: false, modelNames: [], ), ACProtocol( id: 68, protocolName: 'AIRTON', displayName: 'Airton', description: 'Airton AC', hasModel: false, modelNames: [], ), ACProtocol( id: 69, protocolName: 'AIRWELL', displayName: 'Airwell', description: 'Airwell AC', hasModel: false, modelNames: [], ), ACProtocol( id: 70, protocolName: 'CLIMABUTLER', displayName: 'Clima-Butler', description: 'Clima-Butler AC', hasModel: false, modelNames: [], ), ACProtocol( id: 71, protocolName: 'TECO', displayName: 'Teco/Alaska', description: 'Teco/Alaska AC', hasModel: false, modelNames: [], ), ACProtocol( id: 72, protocolName: 'WHYNTER', displayName: 'Whynter', description: 'Whynter AC', hasModel: false, modelNames: [], ), ACProtocol( id: 73, protocolName: 'BOSCH144', displayName: 'Bosch 144-bit', description: 'Bosch 144-bit AC', hasModel: false, modelNames: [], ), ACProtocol( id: 74, protocolName: 'TECHNIBEL_AC', displayName: 'Technibel', description: 'Technibel AC', hasModel: false, modelNames: [], ), ];