Skip to content

ToniA/arduino-heatpumpir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9ae26e9 · Feb 24, 2025
Aug 16, 2024
Mar 29, 2019
Jul 30, 2018
Jul 4, 2019
Aug 8, 2018
Mar 29, 2019
Jul 30, 2018
Apr 13, 2020
Apr 13, 2020
Mar 29, 2019
Apr 18, 2017
Mar 29, 2019
Nov 7, 2016
Apr 13, 2020
Apr 13, 2020
Mar 29, 2019
Nov 9, 2015
Mar 28, 2022
Mar 28, 2022
Mar 29, 2019
Sep 27, 2016
Oct 19, 2019
Oct 19, 2019
Aug 16, 2024
May 21, 2024
Nov 2, 2021
Nov 2, 2021
Feb 24, 2025
Aug 23, 2024
Mar 29, 2019
Oct 1, 2015
Apr 3, 2024
Feb 21, 2017
Mar 29, 2019
Jan 30, 2016
Jan 5, 2024
Jan 5, 2024
Jan 28, 2016
Dec 1, 2015
Jun 4, 2024
Apr 2, 2019
Apr 2, 2019
Sep 2, 2020
Nov 6, 2023
Mar 29, 2019
Dec 30, 2016
Aug 16, 2024
Aug 16, 2024
Dec 26, 2013
Mar 29, 2019
Oct 1, 2015
Apr 10, 2021
Mar 3, 2020
Dec 29, 2019
Dec 29, 2019
Sep 8, 2024
Sep 8, 2024
Apr 10, 2021
Feb 5, 2020
Mar 29, 2019
Jul 10, 2018
Apr 22, 2024
Apr 22, 2024
Aug 4, 2019
Mar 29, 2019
Apr 10, 2021
Oct 1, 2015
Feb 24, 2025
Feb 24, 2025
Aug 16, 2024
Aug 16, 2024
May 29, 2016
May 29, 2016
Aug 16, 2024
Jul 12, 2024
Jul 12, 2024
Mar 29, 2019
Dec 29, 2016
Nov 17, 2019
Nov 18, 2019
Mar 29, 2019
Sep 30, 2016
Jun 13, 2021
Jun 13, 2021
Jul 7, 2023
Jul 7, 2023
Oct 29, 2020
Oct 29, 2020
Dec 26, 2013
Aug 16, 2024
Jun 26, 2024
Jun 26, 2024

Repository files navigation

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
    • Models H-AR21-07H / H-AR16-09H (remote control P/N YKR-P/002E) confirmed as AUX
  • 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 Heavy FDTCxxVF (Remote Control P/N PJA502A704AA)
  • Mitsubishi MSZ FD-25, probably also FD-35 (remote control P/N KM09D 0052376)
    • Also FH series has been confirmed to work
  • Mitsubishi Electric MSC-GA20VB, MSC-GA25VB, MSC-GA35VB (remote control P/N KP1A)
  • Nibe AG-WL10-4, probably AG-WT10
  • 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
  • Philco PHS32
  • Samsung
    • AQV12PSBN / AQV09ASA
    • AQV12MSAN, Remote Control ARH-1362
    • Samsung FJM (RJ040F2HXEA / 2XMH026FNEA), Remote Control P/N ARH-465
  • Sharp AY-ZP40KR (remote control P/N CRMC-A788JBEZ), possibly also IVT
  • Sharp AY-X09LCJ (Remote control P/N YT1F)
  • 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
  • Tosot T18H-SN/I (remote control P/N YAA1FB) as GreeYAA variant
    • Also marketed as Tadiran brand
  • Vaillant VAI8 (remote control P/N YAN1F1), a Gree YAA variant
    • Tested and fully working with VAI8-025WNI
    • Does not support iFeel, all other (essential) features are implemented, note the custom send() for commanding turbo and panel light
  • ZH/LT-01 remote control
    • Brands: Eurom, Chigo, Tristar, Tecnomaster, Elgin, Geant, Tekno, Topair, Proma, Sumikura, JBS, Turbo Air, Nakatomy, Celestial Air, Ager, Blueway, Airlux, etc.

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 'IRSenderESP8266':

IRSenderESP8266 irSender(1);     // IR led on ESP8266 digital pin 1

This method are updated to use ESP8266 SDK built-int startWaveform() function which utilizes Timer1 for more accurate waveform generation.

As an alternative methods these are available:

  • IRSenderESP8266Alt - This method uses ESP.getCycleCount() function. This might be affected by inaccuracy during WiFi comms.
  • IRSenderBitBang - Generic method using delayMicroseconds. Worst accuracy, but available on any platform.
  • IRSenderIRremoteESP8266 - This method requires IRremoteESP8266 library. Good accuracy, but worse than IRSenderESP8266.

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).

ESPEasy on ESP8266 board

This library (together with the HeatpumpIR plugin) is integrated into the ESP Easy firmware. Take a look here: https://github.com/letscontrolit/ESPEasy

ESP32 support

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

IRSenderESP32 irSender(2, 0);     // IR led on ESP22 digital pin 2, 0 - ESP32 LEDC channel. 

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.