# Haier AC IR remote Decode Problem

Hello! I'm trying to understand the protocol infrared transmission remote data to Haier AC, but I can not understand some parts of the data.
I received a signal like that:

``````3050,3000, 3050,4400, 550,1600, 600,500, 600,1600, 600,500, 550,500, 600,1600, 600,500, 600,1550, 600,1600, 600,500, 600,500, 500,550, 600,500, 600,500, 550,550, 600,450, 550,550, 600,500, 600,1550, 650,1550, 550,550, 600,500, 600,1550, 600,500, 550,550, 600,500, 600,1550, 600,1600, 600,500, 600,500, 550,500, 600,1600, 600,500, 550,500, 600,500, 600,500, 550,1650, 600,1550, 600,500, 550,550, 600,1550, 600,1600, 600,500, 550,500, 600,500, 600,500, 550,550, 600,500, 550,500, 600,500, 600,500, 550,550, 600,500, 600,450, 600,500, 600,500, 550,550, 600,500, 600,450, 600,500, 600,500, 600,500, 550,550, 600,450, 600,500, 600,1600, 550,550, 600,1550, 550,550, 600,1600, 550,500, 600,500, 600
``````

Got an array of 150 numbers, I have concluded that the first 5 pulses something like header

Then, considering that the pulse is approximately equal to 1600, it is a 1, and if the impetus of about 600 - that is 0. So I got 144 bits, ie, 18 bytes

Then by clicking on different buttons, and changing the temperature I was able to understand some of bytes.

``````Byte 3 - temperature
00000000 - 16С
00000010 - 17С
00001000 - 18С
00001010 - 19С
00100000 - 20С
00100010 - 21С
00101000 - 22С
00101010 - 23С
10000000 - 24С
10000010 - 25С
10001000 - 26С
10001010 - 27С
10100000 - 28С
10100010 - 29С
10101000 - 30С

Byte 4  - On/off/standby
00000000 - off
00000010 - on
00101000 - standby

Byte 6 - air flow
00001010 - off
00101010 - up
10001010 - down
10101010 - other

Byte 11 - fan speed
10100000 - 1
10000000 - 2
00100000 - 3
00000000 - 4

Byte 13 - mode
00000000 - auto
00001000 - cool
00100000 - dry
00101000 - heat
10000000 - fan

Byte 15  - sleep
00100000 - on
00000000 - off
``````

Temperature from 16 to 30C

``````10001000 00100010 00000000 00101010 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00000000 00100010

10001000 00100010 00000010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00000010 00100000

10001000 00100010 00001000 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00001000 00100000

10001000 00100010 00001010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00001010 00100000

10001000 00100010 00100000 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00100000 00100000

10001000 00100010 00100010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00100010 00100000

10001000 00100010 00101000 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00101000 00100000

10001000 00100010 00101010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 00101010 00100000

10001000 00100010 10000000 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10000000 00100000

10001000 00100010 10000010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10000010 00100000

10001000 00100010 10001000 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10001000 00100000

10001000 00100010 10001010 00101000 00001010 00001000 00001010 10001010 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10001010 00100000

10001000 00100010 10100000 00101000 00001010 00001010 00000000 00000000 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10000000 10001000

10001000 00100010 10100010 00101000 00001010 00001010 00000000 00000000 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10000010 10001000

10001000 00100010 10101000 00101000 00001010 00001010 00000000 00000000 00000000 10100000 10100000 00000000 00001000 00000000 00000000 00000000 10001000 10001000
``````

The last 2 bytes is the question for me. If anyone can help with decoding - i will be very grateful!

I imported your signal into AnalysIR and it is recognised as a HAIER144AC HAIER072AC protocol. (144 72 bits)

AnalysIR also shows that the last 8 bits are checksum and is calculated as a SUM of all the previous 8 bit bytes.
(Caveat: based on a sample size of 1 signal)

You will have to do some bit ordering/reversing at the byte level to get it right.

You can check out some videos on our Checksum calculator & AC reverse engineering via:

You will also find some helpful posts on our blog about reverse engineering AC signals & checksums via:
https://www.analysir.com/blog/tag/air-conditioner/page/2/
and
https://www.analysir.com/blog/tag/air-conditioner/

If I buy a program, then I can understand the protocol? to use it in my code?

I understood! My calculations were wrong! There is not 144 bites, there is 72, and a checksum - the sum of all previous bytes! thank to all for help )

Yes, sorry it was recognised as a 72 bit signal (9 bytes) & Last byte is a checksum of the preceding 8 bytes using a SUM function.