Package: pyhvac
pyhvacTHIS IS WORK IN PROGRESSLG is not tested. "auto" mode for Sharp J-Tech is flakyAlthough most of the devices associated with IRremoteESP8266 seems to produce reasonable
output, this has, obviously, not been checked.pyhvac is a Python 3 library/utility to generate IR code for A/C device.This library uses code/work from:Scott Kylehttps://gist.github.com/appden/42d5272bf128125b019c45bc2ed3311fmat_frhttps://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/user two, mathieu, vincenthttps://www.analysir.com/blog/2014/12/27/reverse-engineering-panasonic-ac-infrared-protocol/all the people who contributed tohttps://github.com/crankyoldgit/IRremoteESP8266InstallationWe are on PyPi sopip3 install pyhvac
 or
 python3 -m pip install pyhvac

 After installation, the utility

 gaccode, gcpanasonic, gcdaikin, gclg, gcsharp

 can be used to generate codes. Use the -h option for help.

 Note that the utilities cannot fully excercise all the capabilities of their respective plugin.
 For instance, the code for a Sharp A/C can depend on the state of the device. gcsharp does not keep track of the
 state of the device.Supported IR codesWith the inclusion of the library from IRremoteESP8266 there is a lot of supported A/C. :aegChillflex Pro AXP26U338CWairtonSMVH09B-2A2A3NHRD1A1genericairwellDC SeriesRC08W remoteRC04 remotegenericRC08B remotealaskaSAC9010QCSAC9010QC remoteamanaPBC093G00CCYX1FF remoteamcorADR-853HTAC-495 remoteTAC-444 remotegenericargoUlisse 13 DCIWREM2 remoteUlisse Eco MobileWREM3 remotegenericgeneric 2auxKFR-35GW/BpNFW=3YKR-T/011 remotebekoRG57K7(B)/BGEF RemoteBINR 070/071boschCL3000i-Set 26 ERG10A(G2S)BGEF remotegenericRG36B4/BGE remoteB1ZAI2441WB1ZAO2441Wcarrier42QG5A55970 remote619EGX0090E0619EGX0120E0619EGX0180E0619EGX0220E053NGK009/012generic42NQV060M2 / 38NYV060M242NQV050M2 / 38NYV050M242NQV035M2 / 38NYV035M242NQV025M2 / 38NYV025M2centekSCT-65Q09YKR-P/002E remotecomfeeMPD1-12CRN7coolixgenericcooper & hunter: YB1F2 remoteCH-S09FTXGcoronaCSH-N2211CSH-N2511CSH-N2811CSH-N4011AR-01 remotegenericdaewooDSB-F0934ELH-VGYKQ-52E remotedaikingenericsmash 2ARC433 remoteARC477A1 remoteFTXZ25NV1BFTXZ35NV1BFTXZ50NV1BARC433B69 remoteARC423A5 remoteFTE12HV2SBRC4C153 remoteFFQ35B8V1BBRC4C151 remote17 Series FTXB09AXVJU17 Series FTXB12AXVJU17 Series FTXB24AXVJUBRC52B63 remoteARC480A5 remoteFFN-C/FCN-F SeriesDGS01 remoteM SeriesFTXM-MARC466A12 remoteARC466A33 remoteFTWX35AXV1ARC484A4 remoteFTQ60TV16U2DaikinDaikin2Daikin64Daikin128Daikin152Daikin160Daikin176Daikin216danbyDAC080BGUWDBDAC100BGUWDBDAC120BGUWDBR09C/BCGE remotedelonghiPAC A95genericPAC EM90ecoclimHYSFR-P348 remoteZC200DPOgenericekokaigenericelectraClassic INV 17AXW12DCSYKR-M/003E remotegenericelectroluxYKR-H/531EfrigidaireFGPC102AB1fujitsuAR-RAH2E remoteASYG30LFCAGeneral AR-RCE1E remoteGeneral ASHG09LLCAGeneral AOHG09LLCAR-DB1 remoteAST9RSGCWAR-REB1E remoteASYG7LMCAAR-RAE1E remoteAGTV14LACAR-RAC1E remoteASTB09LBCAR-RY4 remoteGeneral AR-JW2 remoteAR-DL10 remoteASU30C1AR-RAH1U remoteAR-RAH2U remoteASU12RLFAR-REW4E remoteASYG09KETA-BAR-REB4E remoteASTG09KASTG18KAR-REW1E remoteAR-REG1U remoteGeneral AR-RCL1E remoteGeneral AR-JW17 remotegenericgeneric 2generic 3generic 4generic 5generic 6geAG1BH09AW1016711AR2853M RemotegoodweatherZH/JT-03 remotegenericgreeYAA1FBF remoteYB1F2F remoteYAN1F1 remoteYX1F2F remoteVIR09HP115V1AHVIR12HP230V1AHgemericYAPOF3 remoteYAP0F8 remotegreenYBOFB remoteYBOFB2 remotehaierHSU07-HEA03 remoteYR-W02 remoteHSU-09HMC203V9014557 M47 8D remoteDaichi D-HKFR-26GW/83@UI-GegenericYR-W02 Code AYR-W02 Code Bgeneric 176 code ageneric 176 code bgeneric 160hitachiRAS-35THA6 remoteLT0541-HTA remoteSeries VIRAR-8P2 remoteRAS-AJ25HPC-LH3BKAZE-312KSDPR-LT0541-HTA/Y.K.1.1-1 V2.3 remoteRAS-22NKRF11T1RAR-2P2 remoteRAK-25NH5RAR-3U3 remoteRAS-70YHA3genericgeneric 1 code ageneric 1 code bgeneric 424generic 3generic 344generic 264generic 296kastronRG57A7/BGEF remotekaysunCasual CFCasual CF AltkelonremotekelvinatorYALIF remoteKSV26CRCKSV26HRCKSV35CRCKSV35HRCKSV53HRCKSV62HRCKSV70CRCKSV70HRCKSV80HRCgenerickeystoneRG57H4(B)BGEF remotelebergLBS-TOR07lennoxRG57A6/BGEFU1 remoteMWMA009S4-3PMWMA012S4-3PMCFAMCFBMMDAMMDBMWMAMWMBM22AM33AM33Blggenericinverter vdual inverter6711A20083V  remoteTS-H122ERM1  remoteAKB74395308  remoteS4-W12JA3AAAKB75215403  remoteAKB74955603  remoteA4UW30GFA2AMNW09GSJA0AMNW24GTPA1AKB73757604  remoteAKB73315611  remoteMS05SQ NW0mabeMMI18HDBWCA6MI8V12843 HJ200223 remotemaxellMaxell MX-CH18CFMaxell KKG9A-C1 remotemideagenericRG52D/BGE RemoteMS12FU-10HRDN1-QRD0GW(B)MSABAU-07HRFN1-QRD0GWmirageVLU seriesgenericgeneric 2mitsubishi electricMS-GK24VAKM14A 0179213 remotePEAD-RP71JAA Ducted001CP T7WE10714 remoteMSH-A24WVMUH-A24WVKPOA remoteMLZ-RX5017ASSG153/M21EDF426 remoteMSZ-GV2519RH151/M21ED6426 remoteMSZ-SF25VE3SG15D remoteMSZ-ZW4017SMSZ-FHnnVERH151 remotePAR-FA32MA remotegenericgeneric 136generic 112mitsubishi heavy industriesRLA502A700B remoteSRKxxZM-S A/CSRKxxZMXA-S A/CRKX502A001C remoteSRKxxZJ-S A/Cgemericgemeric 152generic 88mr coolRG57A6/BGEFU1 remoteneoclimaNS-09AHTIZH/TY-01 remotegenericpanasonicgeneric4 way cassetteNKE seriesDKE seriesDKW seriesPKR seriesJKE seriesCKP seriesRKR seriesCS-ME10CKPGCS-ME12CKPGCS-ME14CKPGCS-E7PKRCS-Z9RKRCS-Z24RKRCS-YW9MKDCS-E12QKEWA75C2311remoteA75C2616-1remoteA75C3704remotePN1122VremoteA75C3747remoteCS-E9CKP seriesA75C2295remoteA75C4762remotegeneric 32pioneer system:RYBO12GMFILCADRUBO18GMFILCADWS012GMFI22HLDWS018GMFI22HLDUB018GMFILCFHDRG66B6(B)/BGEFU1 remoterhossIdrowall MPCVgenericrusclimateEACS/I-09HAR_X/N3YAW1F remotesamsungAR09FSSDAWKNFAAR09HSFSBWKNAR12KSFPEWQNETAR12HSSDBWKNEUAR12NXCXAWKXEUAR12TXEAAWKNEUDB93-14195A remoteDB96-24901C remotegenericsanyoSAP-K121AHARCS-2HS4E remoteSAP-K242AHRCS-2S4E remotegenericgeneric 88sharpgenericj-techYB1FA remoteA5VEYSharp AY-ZP40KRAH-AxSAYCRMC-A907 JBEZ remoteCRMC-A950 JBEZAH-PR13-GLCRMC-A903JBEZ remoteAH-XP10NRYCRMC-820 JBEZ remoteCRMC-A705 JBEZ remoteAH-A12REVP-1CRMC-A863 JBEZ remotegeneric A907generic A903generic A705soleusAir windowAir TTWM1-10-01Air ZCF/TL-05 remotesubtropicSUB-07HN1_18YYKR-H/102E remotetclTAC-09CHSD/XA31Igenericgeneric v1generic v2technibelIRO PLUSgenerictechnopointAllegro SSA-09HGZ-055B-E1 remotetecogenerictokioAATOEMF17-12CHR1SWRG51|50/BGE RemotetoshibaRAS-B13N3KV2Akita EVO IIRAS-B13N3KVP-ERAS 18SKP-ESWH-TA04NEWC-L03SEWH-UB03NJ remoteRAS-2558VWH-TA01JE remoteRAS-25SKVP2-NDgenericRAS-M10YKV-ERAS-M13YKV-ERAS-4M27YAV-EWH-E1YE remotetranscoldM1-F-NO-6generictronitechnikReykir 9000KKG29A-C1 remotetrotechPAC 2100 XPAC 3900 XRG57H(B)/BGE remoteRG57H3(B)/BGCEF-M remotePAC 3200PAC 3550 ProDuux Blizzard Smart 10K / DXMA04genericgeneric 3550trumaAventa40091-86700 remotegenericultimateHeat PumpvaillandYACIFB remoteVAI5-035WNIvestelBIOX CXP-9genericvoltas122LZF 4011252genericgeneric 2whirlpoolDG11J1-3A remoteDG11J1-04 remoteDG11J1-91 remoteSPIS409LSPIS412LSPIW409LSPIW412LSPIW418Lgenericgeneric 2Librarypyhvac uses plugin to add support.Each plugin file must have aPluginObjectclass that must have a "get_device" method to return HVAC objects, a 'brand' attribute
and a 'models' attribute containing a dictionary matching models to objects. Note that brand and models MUST BE lowercased.Each HVAC object describes a specific way of generating codes for IR transmission.The codes should be returned as a list of bytes in either lsb or msb format. The
HVAC object must have its "is_msb" attribute set to False or True accordingly.All HVAC objects are required to have at the minimum 2 capabilities:mode   with at least "off" and another value ("auto", "cool", ....)
temperature  with the accepted rangeOther capabilities are expected.To simplify things, it is requested that some sort of normalization
of function names occur. In most cases an AC unit will have the followingmode: the operating mode. Values are expected to be amongst
      "off"   turned off (This is mandatory)
      "auto"  automatic mode sometines known as "feel", "ai", ...
      "cool"  Cooling
      "heat"  Heating
      "dry"   dehumidifying
      "fan"   fan mode only

temperature:  The full range of temperatures. If there
              are 2 distinct ranges for cooling or heating,
              the union should be used here.

              The attribute 'temperature_step' can be used to
              specify fractioanl temperature e.g. 0.5, 0.1


fan: The air flow power. Values are expecterd to be amongst
       "auto"   Automatic mode
       lowest   The lowest air flow setting
       low
       medium
       high
       highest

       When there are only 3 modes, highest, medium and lowest should be used if possible

swing: The use of the vertical orientation of the air flow..
        It can be a switch on/off (values 'off' and 'on') or more complex

        auto  automatic (in many cases similar to the on/off switch function)
        ceiling up up up
        90°    Horizontal orientation
        60°
        45°
        30°
        0°     Vertical orientationMany other functions are possible, but still some canonization is recommended.For instance, many manufactures trademarked their air purifying technology: nanoe, nanoex (Panasonic),
plasmacluster (Sharp), plasma (LG).... In this case it is recommended to use the name "purifier" for that functionmThe HVAC object offers to convenience methods:
to_lirs, to transform the frames into lirc codes
to_broadlink, to trnaform the frames into Broadlink compatible codesTO BE CONTINUED