An Arduino library to control split-unit heatpumps over Infrared
C++
Clone or download
ToniA Merge pull request #55 from per1234/keywords-separator
Use correct field separator in keywords.txt
Latest commit 833fd92 Jul 16, 2018
Permalink
Failed to load latest commit information.
examples Fix the raw IR sender on PanasonicRelayControl (each space should be … Jul 14, 2018
AUXHeatpumpIR.cpp Support for 'AUX' heatpump May 13, 2017
AUXHeatpumpIR.h Support for 'AUX' heatpump May 13, 2017
BalluHeatpumpIR.cpp Support for Ballu Apr 23, 2017
BalluHeatpumpIR.h Support for Ballu Apr 23, 2017
CarrierHeatpumpIR.cpp Maintenance mode for different Qlima models Apr 18, 2017
CarrierHeatpumpIR.h Maintenance mode for different Qlima models Apr 18, 2017
DaikinHeatpumpARC417IR.cpp Add Daikin ARC417A3 remote control Nov 7, 2016
DaikinHeatpumpARC417IR.h Add Daikin ARC417A3 remote control Nov 7, 2016
DaikinHeatpumpIR.cpp Fix Daikin temperatures in HEAT mode Apr 16, 2017
DaikinHeatpumpIR.h First attempt to support Daikin heatpumps Nov 9, 2015
FuegoHeatpumpIR.cpp Fix Fuego etc. vertical air direction codes Sep 27, 2016
FuegoHeatpumpIR.h Fix Fuego etc. vertical air direction codes Sep 27, 2016
FujitsuHeatpumpIR.cpp Fix comment in Fujitsu code May 13, 2017
FujitsuHeatpumpIR.h Extra Fujitsu codes Sep 24, 2016
GreeHeatpumpIR.cpp Support for Gree YAN heatpump Feb 3, 2017
GreeHeatpumpIR.h Support for Gree YAN heatpump Feb 3, 2017
HeatpumpIR.cpp Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
HeatpumpIR.h Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
HisenseHeatpumpIR.cpp Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
HisenseHeatpumpIR.h Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
HitachiHeatpumpIR.cpp Hitachi heatpump support Feb 21, 2017
HitachiHeatpumpIR.h Hitachi heatpump support Feb 21, 2017
HyundaiHeatpumpIR.cpp Hyundai support Jan 30, 2016
HyundaiHeatpumpIR.h Hyundai support Jan 30, 2016
IRSender.cpp Add support for IRBlaster, i.e. no PWM needed, the blaster generates … Dec 1, 2015
IRSender.h Use the 'IRsend' implementation from the IRremoteESP8266 library on E… Jul 4, 2017
IRSenderBitBang.cpp Fix type problem Jan 28, 2016
IRSenderBlaster.cpp Add support for IRBlaster, i.e. no PWM needed, the blaster generates … Dec 1, 2015
IRSenderIRremoteESP8266.cpp Fix complication on Arduino platform Jul 14, 2018
IRSenderPWM.cpp Add the 'IRSenderBitBang' IR send method. This should generate the ca… Jan 24, 2016
IVTHeatpumpIR.cpp Simplify the IVTHeatpumpIR class Dec 30, 2016
IVTHeatpumpIR.h Simplify the IVTHeatpumpIR class Dec 30, 2016
LICENSE Initial HeatpumpIR library, refactored from my 'arduino-wp-heatpump-c… Dec 26, 2013
MideaHeatpumpIR.cpp Change the PWM frequency of all models to 38 kHz Nov 3, 2015
MideaHeatpumpIR.h Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
MitsubishiHeatpumpIR.cpp Bug fix Jan 14, 2018
MitsubishiHeatpumpIR.h Fixed mistake removing MSY declaration Jan 14, 2018
MitsubishiHeavyHeatpumpIR.cpp Adding support for Mitsubishi Heavy Industries SRKXXZMP-S May 11, 2018
MitsubishiHeavyHeatpumpIR.h Adding support for Mitsubishi Heavy Industries SRKXXZMP-S May 11, 2018
MitsubishiSEZKDXXHeatpumpIR.cpp Support for Mitsubishi SEZ series May 13, 2017
MitsubishiSEZKDXXHeatpumpIR.h Typo into def flag Jul 10, 2018
PanasonicCKPHeatpumpIR.cpp Change the PWM frequency of all models to 38 kHz Nov 3, 2015
PanasonicCKPHeatpumpIR.h Arduino IDE 1.6-style PROGMEM definitions Oct 1, 2015
PanasonicHeatpumpIR.cpp Add Panasonic OFF Jan 7, 2018
PanasonicHeatpumpIR.h Panasonic LKE support Nov 28, 2016
R51MHeatpumpIR.cpp Adding R51M supporting South America A/C Model Marshall and Conqueror… May 29, 2016
R51MHeatpumpIR.h Adding R51M supporting South America A/C Model Marshall and Conqueror… May 29, 2016
README.md Adding support for Mitsubishi Heavy Industries SRKXXZMP-S May 11, 2018
SamsungHeatpumpIR.cpp Timing & template changes for Samsung FJM series Mar 28, 2017
SamsungHeatpumpIR.h Timing & template changes for Samsung FJM series Mar 28, 2017
SharpHeatpumpIR.cpp Support for IVT heatpump ('ON' code is different from the Sharp model) Dec 29, 2016
SharpHeatpumpIR.h Support for IVT heatpump ('ON' code is different from the Sharp model) Dec 29, 2016
ToshibaDaiseikaiHeatpumpIR.cpp Separate Toshiba Daiseikai to its own module (even though it's very s… Dec 26, 2016
ToshibaDaiseikaiHeatpumpIR.h Separate Toshiba Daiseikai to its own module (even though it's very s… Dec 26, 2016
ToshibaHeatpumpIR.cpp Support for Toshiba RAS-10PKVP-ND Sep 30, 2016
ToshibaHeatpumpIR.h Support for Toshiba RAS-10PKVP-ND Sep 30, 2016
arduino_irsender.png Initial HeatpumpIR library, refactored from my 'arduino-wp-heatpump-c… Dec 26, 2013
keywords.txt Use correct field separator in keywords.txt Jul 16, 2018
library.json Add library.json Apr 24, 2016
library.properties Version 1.0.7 May 13, 2017

README.md

arduino-heatpumpir

Original location: https://github.com/ToniA/arduino-heatpumpir

For concrete examples, see the MySensors (Arduino + nRF24 radio) and ESPEasy (ESP8266 modules) integrations:

An Arduino library to control pump/split unit air conditioner. Currently supporting at least these models:

  • Ballu
  • Carrier 42NQV035G / 38NYV035H2 (Carrier remote control P/N WH-L05SE)
  • Daikin RXS25G2V1B / FVXS25FV1B (Remote control P/N ARC452A1)
  • Hisense AUD (remote control Y-H1-01, Y-H1-02(E), Y-J1, Y-E4-07) probably AUC model
  • Hyundai (Remote Control P/N Y512F2)
    • This is probably a generic Gree model
  • Fujitsu Nocria AWYZ14 (remote control P/N AR-PZ2)
    • Also Fujitsu remote controls RY3-AR and AR-RCE1E
  • IVT AY-XP12FR-N (remote control CRMC-A673JBEZ)
  • Midea MSR1-12HRN1-QC2 + MOA1-12HN1-QC2, sold as Ultimate Pro Plus Basic 13FP in Finland (Midea remote control P/N RG51M1/E)
    • Also other Midea models sold as 'Ultimate', even some inverter models
    • Also Onnline (sold through Onninen) has been reported to work
  • Mitsubishi Heavy SRKxxZJ-S (Remote control P/N RKX502A001C)
  • Mitsubishi Heavy SRKxxZM-S (Remote Control P/N RLA502A700B)
  • Mitsubishi Heavy SRKxxZMP-S (Remote Control P/N RKX502A001P)
  • Mitsubishi MSZ FD-25, probably also FD-35 (remote control P/N KM09D 0052376)
    • Also FH series has been confirmed to work
  • Panasonic E9/E12-CKP (Panasonic remote control P/N A75C2295)
  • Panasonic E9/E12-DKE (Panasonic remote control P/N A75C2616)
  • Panasonic E9/E12-JKE and E9/E12-NKE
  • Samsung
    • AQV12PSBN / AQV09ASA
    • Samsung FJM (RJ040F2HXEA / 2XMH026FNEA), Remote Control P/N ARH-465
  • Sharp AY-ZP40KR (remote control P/N CRMC-A788JBEZ), possibly also IVT
  • Toshiba Daiseikai (Toshiba remote control P/N WH-TA01EE).
    • Fully compatible with CarrierNQV functions instead of Daiseikai functions.
    • Tested with: RAS-10G2KVP-E RAS-10G2AVP-E and RAS-13G2KVP-E RAS-13G2AVP-E

Instructions

  • Download the library, and place it under your personal Arduino 'libraries' directory, under directory 'HeatpumpIR'
  • See the example sketches

ESP8266 support

This library also supports ESP8266. Just change the IR send method from 'IRSenderPWM' to 'IRSenderBitBang':

IRSenderBitBang irSender(1);     // IR led on ESP8266 digital pin 1
  • Note that depending on your board, certain GPIO's might not be available. For example on NodeMCU, the usable GPIO's are D1 (GPIO5), D2 (GPIO4), D6 (GPIO12), D7 (GPIO13) and D3 (GPIO0).

Arduino example

Schema

How to contribute

All these heatpump / A/C models have been reverse-engineered, by decoding the IR signal from the remote control. See the sketch https://github.com/ToniA/Raw-IR-decoder-for-Arduino for more information.

First the protocol needs to be understood

  • The frame structure, and the timings of the symbols
  • The bits which signal these
    • ON/OFF state
    • Operating mode (heat, cool, dry, fan, auto)
    • Temperature
    • Fan speed
    • Airflow direction etc. settings
    • And last, but not least, the algorithm to calculate the checksum of the IR signal

Once a working decoder module has been written, writing a transmitter module into HeatpumpIR is easy. I can help in coding the modules, and I'm also happy to receive pull requests.