Adding a new remote to Climate IR

I have a locally rebranded AC, which does not appear to conform to the controller presets for Climate IR, I would like to add my remote to be able to control my AC via HA Climate IR

I would appreciate some pointers as to where should i be looking for the code, and how do I translate my knowledge about the protocol into actually usable code. Happy to use ChatGPT to fill in the blanks, but i do need some help from people who know!

I have little programming experience, but I have been able to work out the IR Protocol to some degree

A typical command looks as follows:
address=0xC4D3 0x64 0x80 0x00 0x24 0x10 0x80 0x1C 0x00 0x00 0x00 0x00 0x5E

Byte 0-2 are static and presumably identifies the AC/Remote
Byte 3 is for on (0x24) and off (0x04)
Byte 4 is for Mode:
Feel: 0x10
Cool: 0xC0
Dry: 0x40
Heat: 0x80

Byte 5 is for Temperature
16 : 0xF0
17 : 0x70
18 : 0xB0
19 : 0x30
20 : 0xD0
21 : 0x50
22 : 0x90
23 : 0x10
24 : 0xE0
25 : 0x60
26 : 0xA0
27 : 0x20
28 : 0xC0
29 : 0x40
30 : 0x80
31 : 0xDC
32 : 0x00

Byte 6 is a combination of Swing and Fan
The swing and fan settings are encoded in a single byte where the upper nibble represents the fan speed (000 for Auto, 010 for Low, 110 for Mid, 101 for High) and the lower nibble represents the swing setting (11100 for On, 00000 for Off).

Bytes 7-10 are always 0x00 (10 sometimes goes to 0x01, but not consistently, unsure what it does)

Byte 11 is the checksum
The checksum is calculated by XORing all the bytes (excluding the checksum byte itself).

You have protocol almost decoded, but do you have timings as well? Header, bitmark, 0/1space…

Also you should resolve binary wise that temperature byte change.

Thank you for your response

Sorry for being ignorant, but what do you mean by this:
“resolve binary wise that temperature byte change.”

Also, how do i find the timings, header, bitmark and 0/1 space.

While I wait for a response I’ll be doing some google-fu

It’s easier to answer if you tell how you decoded your remote.

Those hex values for temperature are not some random values. That byte is changing with some binary calculation, witch you should know to properly decode your protocol.
16=1111
17=0111
18=1011
19=0011

Ask chatgpt to find a sequence or pattern in your temp hex :grinning: