Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. AC IR code decrypting

AC IR code decrypting

Scheduled Pinned Locked Moved Development
42 Posts 8 Posters 18.4k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Nca78N Nca78

    From the temperature codes, the checksum is obviously a sum, you have to reverse the bits before you sum, the MSB is on the right in both data bits and checksum.

    16° 0000 checksum 0101
    17° 0001 checksum 0110 = 0101 + 0001
    18° 0010 checksum 0111 = 0101 + 0010
    19° 0011 checksum 1000 = 0101 + 0011
    20° 0100 checksum 1001 = 0101 + 0100
    ...
    27° 1101 checksum 0000 because 0101 + 1101 = 10000 and you keep only the last 4 bits

    Now we just need to understand what bits are included or not in the sum, it seems the fan speed is not, but we need more messages in different modes and with different settings to be able to know which bits are used or not in the calculation.

    I take your example code :
    100100000101000000000110000 19 ms space 0101001000000000000001000000000000001111
    Split in 4 bits words :
    1001
    0000
    0101
    0000
    0000
    0110
    000 19 ms space => I ignore this part as it's not matching the 4 bits words, and only 0s anyway
    0101
    0010
    0000
    0000
    0000
    0100
    0000
    0000
    0000
    1111

    Invert bit order and try to guess what words are included or not.
    If you make the sum of included words with binary calculator, it matches the checksum but we must validate with more parameters changed, try with horizontal/vertical swing if you have these on the remote control, then any other specific function.

    1001 => on + mode, included as it's the only one with LSB = 1 and we have LSB = 1 in checksum
    0000 => fan speed, not included as shown in your examples on fan speed
    1010 => temp 16°C + value, included as shown in your examples of temperature
    0000 => ??? cannot know because 0
    0000 => ??? cannot know because 0
    0110 => I think included else I don't have the right checksum
    000 19 ms space => I ignore this part as it's not matching the 4 bits words, and only 0s anyway
    1010 => I think not included else I don't have the right checksum
    0100 => I think included else I don't have the right checksum
    0000 => ??? cannot know because 0
    0000 => ??? cannot know because 0
    0000 => ??? cannot know because 0
    0100 => I think included else I don't have the right checksum
    0000 => ??? cannot know because 0
    0000 => ??? cannot know because 0
    0000 => ??? cannot know because 0
    1111 => binary sum of all included words, only the 4 LSB bits are kept

    dpressleD Offline
    dpressleD Offline
    dpressle
    wrote on last edited by
    #20

    @Nca78 I think you are on to something, thanks a lot. I will investigate it further, but in the mean time here is some more data that i took:
    mode fan temp
    cold auto 26
    1001 0000 0101 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1111
    cold auto 25
    1001 0000 1001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 0111
    cold auto 24
    1001 0000 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1011
    cold fan1 24
    1001 1000 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1011
    cold fan2 24
    1001 0100 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1011
    cold fan3 24
    1001 1100 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1011
    dry fan1 24
    0101 1000 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 0111
    air fan1 24
    1101 1000 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1111
    heat fan1 24
    0011 1000 0001 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 0000
    OFF cold auto 26
    1000 0000 0101 0000 0000 0110 0000 1010 010 - 0000 0000 0000 0100 0000 0000 0000 1110

    1 Reply Last reply
    0
    • Nca78N Nca78

      From the temperature codes, the checksum is obviously a sum, you have to reverse the bits before you sum, the MSB is on the right in both data bits and checksum.

      16° 0000 checksum 0101
      17° 0001 checksum 0110 = 0101 + 0001
      18° 0010 checksum 0111 = 0101 + 0010
      19° 0011 checksum 1000 = 0101 + 0011
      20° 0100 checksum 1001 = 0101 + 0100
      ...
      27° 1101 checksum 0000 because 0101 + 1101 = 10000 and you keep only the last 4 bits

      Now we just need to understand what bits are included or not in the sum, it seems the fan speed is not, but we need more messages in different modes and with different settings to be able to know which bits are used or not in the calculation.

      I take your example code :
      100100000101000000000110000 19 ms space 0101001000000000000001000000000000001111
      Split in 4 bits words :
      1001
      0000
      0101
      0000
      0000
      0110
      000 19 ms space => I ignore this part as it's not matching the 4 bits words, and only 0s anyway
      0101
      0010
      0000
      0000
      0000
      0100
      0000
      0000
      0000
      1111

      Invert bit order and try to guess what words are included or not.
      If you make the sum of included words with binary calculator, it matches the checksum but we must validate with more parameters changed, try with horizontal/vertical swing if you have these on the remote control, then any other specific function.

      1001 => on + mode, included as it's the only one with LSB = 1 and we have LSB = 1 in checksum
      0000 => fan speed, not included as shown in your examples on fan speed
      1010 => temp 16°C + value, included as shown in your examples of temperature
      0000 => ??? cannot know because 0
      0000 => ??? cannot know because 0
      0110 => I think included else I don't have the right checksum
      000 19 ms space => I ignore this part as it's not matching the 4 bits words, and only 0s anyway
      1010 => I think not included else I don't have the right checksum
      0100 => I think included else I don't have the right checksum
      0000 => ??? cannot know because 0
      0000 => ??? cannot know because 0
      0000 => ??? cannot know because 0
      0100 => I think included else I don't have the right checksum
      0000 => ??? cannot know because 0
      0000 => ??? cannot know because 0
      0000 => ??? cannot know because 0
      1111 => binary sum of all included words, only the 4 LSB bits are kept

      dpressleD Offline
      dpressleD Offline
      dpressle
      wrote on last edited by
      #21

      @Nca78 can you please explain why do you add 0101 to the checksum in the temperature example?

      Nca78N 1 Reply Last reply
      0
      • dpressleD dpressle

        @Nca78 can you please explain why do you add 0101 to the checksum in the temperature example?

        Nca78N Offline
        Nca78N Offline
        Nca78
        Hardware Contributor
        wrote on last edited by Nca78
        #22

        @dpressle
        I add it because it is the initial value of the checksum when temperature is 16°C = 0000
        I just wanted to show than an increase of 1 in temperature was producing an increase of 1 in checksum.

        I think your minus sign (= 19ms pause ?) is in wrong position as it is supposed to be after the 6 (and not 8 ) first words ?

        Please take some values by changing the horizontal and vertical swing so we can try to change the second part of the message. After that try some other functions if you have (anything like "eco"/"quiet"/"turbo" options for example) and also if you have it the timer.

        dpressleD 1 Reply Last reply
        0
        • Nca78N Nca78

          @dpressle
          I add it because it is the initial value of the checksum when temperature is 16°C = 0000
          I just wanted to show than an increase of 1 in temperature was producing an increase of 1 in checksum.

          I think your minus sign (= 19ms pause ?) is in wrong position as it is supposed to be after the 6 (and not 8 ) first words ?

          Please take some values by changing the horizontal and vertical swing so we can try to change the second part of the message. After that try some other functions if you have (anything like "eco"/"quiet"/"turbo" options for example) and also if you have it the timer.

          dpressleD Offline
          dpressleD Offline
          dpressle
          wrote on last edited by
          #23

          @Nca78 OK, i will generate more commands and see if it makes more sense, Thanks for your help.

          1 Reply Last reply
          0
          • P pjr

            Gree is the most largest manufacturer of AC devices and Tadiran outdoor unit looks quite a lot like Gree.. at least I'd try that first.

            e: Oh. Looks like Carrier also has some relation with Tadiran.

            T Offline
            T Offline
            ToniA
            wrote on last edited by
            #24

            @dpressle said:

            @ToniA can you elaborate?

            Yes, on my AC IR decoder sketch I have decoder modules for different heatpumps. Like this:

            https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/MitsubishiElectric.cpp

            So, write a new one, and add a call to it into https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/rawirdecode.ino#L315. First you need to write a condition to recognize the protocol (like, from the first bytes + length etc). Then just start adding functionality, like decoding the temperature, then operating mode etc.

            dpressleD 1 Reply Last reply
            0
            • T ToniA

              @dpressle said:

              @ToniA can you elaborate?

              Yes, on my AC IR decoder sketch I have decoder modules for different heatpumps. Like this:

              https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/MitsubishiElectric.cpp

              So, write a new one, and add a call to it into https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/rawirdecode.ino#L315. First you need to write a condition to recognize the protocol (like, from the first bytes + length etc). Then just start adding functionality, like decoding the temperature, then operating mode etc.

              dpressleD Offline
              dpressleD Offline
              dpressle
              wrote on last edited by
              #25

              @ToniA i got you, but the problem is i still dont know the checksum value, working on it...

              1 Reply Last reply
              0
              • Nca78N Offline
                Nca78N Offline
                Nca78
                Hardware Contributor
                wrote on last edited by
                #26

                @dpressle could you please also post a picture of the back of your remote control ? I would like to confirm it's the one I quoted above, would be very interesting as it seems this RC/protocol is shared with a loooot of brands and models.
                It's a very interesting case for this reason but also because it's using a checksum based on 4 bits words and excluding some of the "data" bits (at least the fan speed), it's the first time I see this.

                dpressleD 1 Reply Last reply
                0
                • Nca78N Nca78

                  @dpressle could you please also post a picture of the back of your remote control ? I would like to confirm it's the one I quoted above, would be very interesting as it seems this RC/protocol is shared with a loooot of brands and models.
                  It's a very interesting case for this reason but also because it's using a checksum based on 4 bits words and excluding some of the "data" bits (at least the fan speed), it's the first time I see this.

                  dpressleD Offline
                  dpressleD Offline
                  dpressle
                  wrote on last edited by
                  #27

                  @Nca78 yes it is YB1FA

                  1 Reply Last reply
                  1
                  • ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #28

                    In case you are still interested, here is the full description of this code:

                    0_1469565492669_Gree.pdf

                    Nca78N dpressleD 2 Replies Last reply
                    1
                    • ? A Former User

                      In case you are still interested, here is the full description of this code:

                      0_1469565492669_Gree.pdf

                      Nca78N Offline
                      Nca78N Offline
                      Nca78
                      Hardware Contributor
                      wrote on last edited by
                      #29

                      @joker_mkd That's a fraction of a VERY interesting document you have posted here
                      I suppose the other 180 pages are not freely available ? :D

                      ? 1 Reply Last reply
                      0
                      • ? A Former User

                        In case you are still interested, here is the full description of this code:

                        0_1469565492669_Gree.pdf

                        dpressleD Offline
                        dpressleD Offline
                        dpressle
                        wrote on last edited by
                        #30

                        @joker_mkd said:

                        In case you are still interested, here is the full description of this code:

                        0_1469565492669_Gree.pdf

                        Thanks, this is great looks like exactly what i need, all the relevant information is there.
                        I will now write some code to implement this.

                        Thanks.

                        1 Reply Last reply
                        0
                        • Nca78N Nca78

                          @joker_mkd That's a fraction of a VERY interesting document you have posted here
                          I suppose the other 180 pages are not freely available ? :D

                          ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by
                          #31

                          @Nca78 Unfortunately not. This is a part of the document which we use to define IR codes for our product called PebbleAIR . These codes are implemented in the Android and iOS app. It took me a lot of time, money and effort to decode all the different brands and remotes. I often browse the forums and if I see that someone is stuck or in a need, I share remote data from time to time. If you desperately need data for a certain brand od model feel free to PM me, and I might help you.

                          Nca78N dpressleD 2 Replies Last reply
                          0
                          • ? A Former User

                            @Nca78 Unfortunately not. This is a part of the document which we use to define IR codes for our product called PebbleAIR . These codes are implemented in the Android and iOS app. It took me a lot of time, money and effort to decode all the different brands and remotes. I often browse the forums and if I see that someone is stuck or in a need, I share remote data from time to time. If you desperately need data for a certain brand od model feel free to PM me, and I might help you.

                            Nca78N Offline
                            Nca78N Offline
                            Nca78
                            Hardware Contributor
                            wrote on last edited by
                            #32

                            @joker_mkd I understand, it's very nice from you to share these pages already !
                            You have a nice product, I love the flashing function I will have to try that just for the fun of it :)

                            1 Reply Last reply
                            0
                            • ? A Former User

                              @Nca78 Unfortunately not. This is a part of the document which we use to define IR codes for our product called PebbleAIR . These codes are implemented in the Android and iOS app. It took me a lot of time, money and effort to decode all the different brands and remotes. I often browse the forums and if I see that someone is stuck or in a need, I share remote data from time to time. If you desperately need data for a certain brand od model feel free to PM me, and I might help you.

                              dpressleD Offline
                              dpressleD Offline
                              dpressle
                              wrote on last edited by dpressle
                              #33

                              @joker_mkd product looks great, did you ever thought of making these units smaller (so can be attached on an AC for example) and have some kind of API exposed so any Home Automation can use them? MySensors ZWave Wifi http etc...

                              ? 1 Reply Last reply
                              0
                              • dpressleD dpressle

                                @joker_mkd product looks great, did you ever thought of making these units smaller (so can be attached on an AC for example) and have some kind of API exposed so any Home Automation can use them? MySensors ZWave Wifi http etc...

                                ? Offline
                                ? Offline
                                A Former User
                                wrote on last edited by
                                #34

                                @dpressle We are in the process of making an API, because several companies have asked us for this. I was not involved in the process of hardware design, and I agree that the unit could have been made smaller, probably in the next revision.

                                dpressleD 1 Reply Last reply
                                0
                                • ? A Former User

                                  @dpressle We are in the process of making an API, because several companies have asked us for this. I was not involved in the process of hardware design, and I agree that the unit could have been made smaller, probably in the next revision.

                                  dpressleD Offline
                                  dpressleD Offline
                                  dpressle
                                  wrote on last edited by
                                  #35

                                  @joker_mkd Sounds wonderful, good luck, i will be watching you :wink:

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    ToniA
                                    wrote on last edited by
                                    #36

                                    This is what I have done as a hobby so far: https://www.openhardware.io/view/41/Heatpump-airconditioner-controller

                                    There's no Gree support in the HeatpumpIR library, though.

                                    dpressleD 1 Reply Last reply
                                    0
                                    • T ToniA

                                      This is what I have done as a hobby so far: https://www.openhardware.io/view/41/Heatpump-airconditioner-controller

                                      There's no Gree support in the HeatpumpIR library, though.

                                      dpressleD Offline
                                      dpressleD Offline
                                      dpressle
                                      wrote on last edited by
                                      #37

                                      @ToniA i know, i will try to add it to your library (if no one will beat me to it)

                                      Nca78N 1 Reply Last reply
                                      0
                                      • dpressleD dpressle

                                        @ToniA i know, i will try to add it to your library (if no one will beat me to it)

                                        Nca78N Offline
                                        Nca78N Offline
                                        Nca78
                                        Hardware Contributor
                                        wrote on last edited by
                                        #38

                                        @dpressle said:

                                        @ToniA i know, i will try to add it to your library (if no one will beat me to it)

                                        Not me :p
                                        I'll implement it in my own library if I manage to make something valuable.

                                        dpressleD 1 Reply Last reply
                                        0
                                        • Nca78N Nca78

                                          @dpressle said:

                                          @ToniA i know, i will try to add it to your library (if no one will beat me to it)

                                          Not me :p
                                          I'll implement it in my own library if I manage to make something valuable.

                                          dpressleD Offline
                                          dpressleD Offline
                                          dpressle
                                          wrote on last edited by
                                          #39

                                          @Nca78 said:

                                          @dpressle said:

                                          @ToniA i know, i will try to add it to your library (if no one will beat me to it)

                                          Not me :p
                                          I'll implement it in my own library if I manage to make something valuable.

                                          Let me know if you get it done please!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          15

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular