Decoding an IR signal (RC5). Steps?

I have captured the IR signal ( I believe RC5) of a HVAC remote control, like this one....

This gave me a sequence of pulses of different width that I can make the Arduino reproduce and the HVAC recognize the request. An example is:

unsigned int power_ON[180] = {2888,3918,1911,1049,907,1992,903,989,1936,1023,907,1049,903,989,903,1049,903,1049,907,1992,1851,1992,1915,1049,928,963,928,1023,903,1049,907,1049,928,963,928,1023,903,1053,928,1023,928,963,928,1023,928,1027,928,1023,928,963,928,1023,907,1049,928,1023,928,1906,1941,959,2940,3866,1962,997,932,1967,929,963,1962,997,933,1019,959,933,933,1023,954,997,928,1971,1902,1941,1941,1019,958,933,958,997,954,997,933,1019,959,933,959,997,954,997,928,1023,958,933,958,997,954,997,933,1019,958,933,958,997,954,997,933,1019,958,1881,1962,937,2940,3862,1966,993,958,1941,933,959,1966,993,958,997,954,937,954,997,933,1023,954,1941,1880,1966,1962,997,954,937,928,1023,933,1023,954,997,928,963,928,1023,933,1023,929,1023,928,963,929,1023,928,1027,928,1023,928,963,928,1023,928,1027,928,1023,928,1910,1911,989,3832};

Could anyone guide me on the steps to decode the message?
I guess there must be certain defined pulse widths? Each meaning something different?

My initial though is that I need to:

  1. Decode raw data by converting pulses to digital 1,0

  2. Identify from digital data each section of the code, I think all the configuration is send on every key press, so identify the section of the code where it states the temperature, fan speed, hvac mode, clock, etc

  3. Be able to put together a full IR code based on wanted setup, instead of just saving the whole code and reproducing it.

Any hint or guideline on how to do this?
Am I on the right track?
Thanks everyone!