crankyoldgit / IRremoteESP8266

Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
GNU Lesser General Public License v2.1
3k stars 833 forks source link

KELON168: Add initial detailed support for Kelon168 (Kelon/Hisense) #1949

Open leonardfactory opened 1 year ago

leonardfactory commented 1 year ago

Hello, based on the Excel documents shared here https://github.com/crankyoldgit/IRremoteESP8266/issues/1903, I'm trying to implement a full driver for the Kelon168 protocol (Hisense/Kelon A/C). The protocol seems very similar to Whirlpool A/C, even the remotes share a similar format (DG11R2-01 for Kelon vs DG11J1-91 for Whirlpool).

After some experimentations, I'm sharing here this preliminary version in order to gather feedback, suggestions and to see if my code makes sense (I'm sorry - back to C++ after a very long time).

Right now the send function is working with these features: super, quiet, fan speed, set temperature, mode, power on/off, lights, clock. Timers should be equal as Whirlpool A/C. Swing needs an update.

Things that I'm still working on:

Regarding the following points I'm a bit confused:

NiKiZe commented 1 year ago

What differs from whirlpool in terms of timing? Is Kelkon168 a possible conflict? If yes then it should probably be removed, and whirlpool fixed instead.

leonardfactory commented 1 year ago

Hi @NiKiZe , I didn't implement the effective protocol (sendKelon168 and decodeKelon168) - it was already there, implemented by @crankyoldgit in https://github.com/crankyoldgit/IRremoteESP8266/issues/1745. I added the struct & the IRKelon168Ac implementation. Given this, I'm not really sure about the timing differences, and I don't know how to identify this difference. I'd like to ask to @mhp3-10 who worked out the protocol and @crankyoldgit who implemented it.

In case your suspects are confirmed, and those protocol are the same, I can merge everything in the Whirlpool class (is there a way to "alias" the protocol?)

mp3-10 commented 1 year ago

@leonardfactory @NiKiZe I didn't save timings provided by IRDecode, so I need do that again ;) I will provide that soon ;)