AC IR code decrypting
-
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 bitsNow 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
1111Invert 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 -
@Nca78 can you please explain why do you add 0101 to the checksum in the temperature example?
@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.
-
@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.
-
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.
@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.
-
@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.
-
@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. -
@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. -
In case you are still interested, here is the full description of this code:
-
In case you are still interested, here is the full description of this code:
@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 -
In case you are still interested, here is the full description of this code:
@joker_mkd said:
In case you are still interested, here is the full description of this code:
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.
-
@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@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.
-
@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.
@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 :) -
@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.
-
@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...
@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.
-
@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.
-
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.
-
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.
-
-
Hi all,
This post is great. I started writing a similar library myself for Electra AC, I might just add it on top of @ToniA's library.Quick question: can anyone recommend MySensors compatible controller that supports temperature/fan commands ?
The only thing I came across so far is this modification for Vera UI7 thermostat: https://forum.mysensors.org/topic/3606/redesigned-vera-ui7-thermostat-with-heat-cool-setpoint-hvac-state-fan-status-energy-modeThanks!