Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Having trouble in Transmitting 168 Bits IR Data. #1574

Closed
Suryeah opened this issue Aug 26, 2021 · 12 comments
Closed

Having trouble in Transmitting 168 Bits IR Data. #1574

Suryeah opened this issue Aug 26, 2021 · 12 comments

Comments

@Suryeah
Copy link

Suryeah commented Aug 26, 2021

Version/revision of the library used

2.7.19

Describe the bug

IRrecvDumpV2 is detecting my Voltas AC data to be WHIRLPOOL_AC. I tried to reproduce the same received RAW data and RAW STATE data but did not get any response from AC.

To Reproduce

  1. Tried irsend.sendRaw(rawData, 343, 38); Formatted data but as it frequent changes, did not help.
  2. Tried sendWHIRLPOOL_AC(STATE); where STATE size is 21 Bytes in my case. uint8_t state[21] = {0x83, 0x06, 0x04, 0x82, 0x00, 0x00, 0x82, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};
  3. Tried irsend.sendWhirlpoolAC(0x830604E20000821C00000000007800010000000001, 168, 2); AC did not respond.

Example code used

IRsendDemo

Output of raw data from IRrecvDumpV2.ino

Timestamp : 000012.964
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830604820000823000000000003400010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 0 (Auto), Swing: Off, Light: On, Clock: 02:48, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9204, 4512,  678, 1612,  680, 1612,  680, 478,  678, 482,  680, 486,  676, 490,  678, 494,  678, 1624,  678, 472,  678, 1616,  676, 1616,  680, 480,  678, 484,  680, 488,  678, 492,  678, 486,  678, 472,  676, 474,  678, 1618,  680, 480,  678, 486,  678, 490,  678, 494,  676, 488,  678, 472,  678, 1616,  678, 480,  678, 482,  678, 488,  676, 490,  678, 492,  680, 1624,  678, 472,  676, 474,  678, 480,  676, 482,  678, 486,  678, 490,  676, 496,  676, 488,  676, 474,  678, 476,  676, 480,  676, 484,  678, 486,  678, 490,  678, 494,  676, 462,  678, 8012,  680, 470,  678, 1614,  680, 478,  678, 482,  678, 486,  678, 488,  676, 494,  678, 1624,  678, 472,  676, 476,  678, 480,  678, 482,  678, 1626,  676, 1630,  678, 494,  678, 488,  678, 472,  676, 478,  676, 482,  676, 484,  678, 486,  676, 490,  678, 494,  678, 488,  676, 474,  676, 476,  676, 480,  676, 486,  674, 488,  676, 492,  674, 496,  676, 490,  674, 474,  676, 476,  674, 482,  674, 484,  678, 488,  662, 506,  650, 520,  672, 490,  652, 498,  674, 476,  676, 482,  674, 486,  672, 490,  676, 492,  674, 496,  674, 490,  648, 500,  674, 478,  674, 484,  650, 510,  674, 488,  674, 494,  650, 520,  650, 514,  674, 476,  672, 480,  650, 1646,  674, 486,  648, 1654,  674, 1632,  674, 498,  672, 466,  676, 8016,  662, 486,  652, 500,  674, 482,  676, 486,  676, 486,  676, 490,  676, 496,  650, 514,  650, 1638,  650, 502,  652, 504,  672, 488,  650, 512,  652, 516,  674, 496,  674, 490,  676, 476,  674, 478,  650, 506,  650, 508,  672, 492,  648, 518,  650, 520,  650, 514,  650, 500,  650, 504,  648, 508,  674, 486,  650, 514,  672, 494,  648, 520,  650, 514,  650, 500,  648, 504,  650, 508,  648, 512,  668, 498,  644, 518,  648, 522,  648, 516,  648, 500,  648, 504,  648, 508,  650, 510,  648, 516,  650, 518,  648, 522,  648, 516,  648, 1640,  648, 506,  648, 508,  650, 510,  648, 514,  648, 520,  648, 522,  648, 490,  642};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x04, 0x82, 0x00, 0x00, 0x82, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};

What brand/model IR demodulator are you using?

TSOP1836

If VS1838b: That is likely your problem. Please buy a better one & try again. Reporting a capture or decode issue when you use one of these is effectively wasting our & your time. See the FAQ

Circuit diagram and hardware used (if applicable)

ESP32 PICO available in M5 Atom Matrix.

I have followed the steps in the Troubleshooting Guide & read the FAQ

Yes

Has this library/code previously worked as expected for you?

Yes but for the 48 Bit data transmission of an older AC.

Library   : v2.7.19

Protocol  : GOODWEATHER

Code      : 0xD50918000000 (48 Bits)

Mesg Desc.: Power: Off, Mode: 0 (Auto), Temp: 25C, Fan: 0 (Auto), Turbo: -, Light: -, Sleep: -, Swing: 2 (Off), Command: 0 (Power)

uint16_t rawData[197] = {6138, 7332,  642, 1554,  642, 1554,  642, 1556,  634, 1562,  602, 1594,  576, 1622,  528, 1670,  574, 1624,  528, 610,  616, 500,  628, 510,  528, 588,  638, 494,  576, 566,  616, 498,  636, 500,  528, 1668,  528, 1670,  558, 1640,  528, 1668,  558, 1640,  526, 1670,  556, 1640,  528, 1668,  558, 558,  614, 520,  528, 612,  610, 502,  630, 506,  528, 588,  636, 498,  574, 564,  620, 1576,  616, 1580,  620, 1576,  616, 1580,  616, 1560,  612, 1608,  618, 1556,  638, 1562,  610, 524,  606, 530,  614, 502,  610, 524,  528, 610,  616, 496,  606, 532,  528, 588,  636, 1560,  636, 1560,  610, 1586,  610, 526,  528, 590,  634, 1582,  614, 1562,  610, 1590,  632, 498,  574, 562,  588, 530,  632, 1562,  636, 1560,  610, 524,  528, 610,  614, 500,  606, 530,  526, 1668,  558, 1640,  528, 588,  632, 1566,  608, 1588,  636, 1562,  606, 1588,  634, 1564,  634, 500,  528, 612,  610, 1566,  632, 502,  606, 532,  528, 588,  606, 528,  526, 612,  612, 1584,  610, 504,  602, 1594,  608, 530,  526, 1668,  528, 590,  606, 526,  548, 1650,  528, 610,  608, 1588,  610, 506,  608, 1588,  634, 502,  526, 1670,  550, 1646,  528, 7444,  612};  // GOODWEATHER D50918000000

uint64_t data = 0xD50918000000;

Tried to send with:

  • irsend.sendRaw(rawData, 197, 38);
  • irsend.sendGoodweather(0xD50918000000, 48, 2);
    Old Ac Was responding with all of the above mentioned cases.

Other useful information

More information is always welcome. Be verbose.

I am adding legacy timing dump below.

Raw Timing[343]:
   +  9204, -  4518,    +   678, -  1610,    +   678, -  1616,    +   678, -   480, 
   +   678, -   484,    +   676, -   486,    +   678, -   490,    +   652, -   520, 
   +   676, -  1628,    +   674, -   476,    +   676, -  1614,    +   678, -  1618, 
   +   676, -   486,    +   674, -   490,    +   650, -   518,    +   650, -   522, 
   +   674, -   490,    +   668, -   480,    +   650, -   502,    +   650, -  1644, 
   +   650, -   512,    +   650, -   514,    +   650, -   518,    +   674, -   498, 
   +   674, -   490,    +   650, -   500,    +   650, -  1644,    +   650, -   508, 
   +   650, -   510,    +   650, -   516,    +   650, -   518,    +   648, -   522, 
   +   650, -  1656,    +   648, -   502,    +   650, -   504,    +   648, -   508, 
   +   648, -   512,    +   648, -   516,    +   648, -   520,    +   648, -   522, 
   +   648, -   516,    +   650, -   502,    +   648, -   504,    +   650, -   508, 
   +   648, -   512,    +   648, -   516,    +   648, -   520,    +   648, -   524, 
   +   648, -   490,    +   650, -  8044,    +   652, -  1640,    +   648, -  1642, 
   +   652, -   508,    +   648, -   512,    +   650, -   514,    +   650, -   518, 
   +   650, -   522,    +   648, -  1654,    +   650, -  1640,    +   650, -   504, 
   +   650, -   508,    +   650, -  1650,    +   648, -   516,    +   650, -   518, 
   +   648, -   522,    +   648, -   516,    +   648, -   500,    +   648, -   506, 
   +   648, -   508,    +   650, -   512,    +   646, -   516,    +   648, -   518, 
   +   648, -   522,    +   648, -   516,    +   646, -   504,    +   648, -   504, 
   +   648, -   510,    +   646, -   514,    +   648, -   518,    +   648, -   518, 
   +   648, -   524,    +   648, -   516,    +   648, -   500,    +   648, -   506, 
   +   648, -   510,    +   648, -   512,    +   648, -   516,    +   650, -   518, 
   +   648, -   524,    +   670, -   494,    +   650, -   500,    +   650, -   504, 
   +   648, -   510,    +   648, -   512,    +   648, -   514,    +   650, -   518, 
   +   648, -   522,    +   648, -   516,    +   648, -   502,    +   650, -   504, 
   +   650, -   508,    +   654, -   506,    +   674, -   490,    +   650, -   516, 
   +   676, -   498,    +   650, -   516,    +   648, -   500,    +   650, -   504, 
   +   674, -  1622,    +   650, -  1650,    +   650, -   514,    +   652, -   516, 
   +   650, -   520,    +   650, -   490,    +   650, -  8046,    +   648, -   502, 
   +   650, -   504,    +   648, -   508,    +   650, -   510,    +   650, -   514, 
   +   650, -   520,    +   650, -   520,    +   676, -   490,    +   672, -  1616, 
   +   650, -   504,    +   674, -   482,    +   650, -   510,    +   650, -   514, 
   +   650, -   516,    +   674, -   496,    +   676, -   490,    +   676, -   474, 
   +   650, -   504,    +   650, -   506,    +   652, -   508,    +   676, -   488, 
   +   676, -   492,    +   676, -   494,    +   676, -   490,    +   676, -   474, 
   +   676, -   476,    +   652, -   504,    +   678, -   484,    +   676, -   488, 
   +   676, -   492,    +   652, -   520,    +   652, -   512,    +   676, -   474, 
   +   678, -   474,    +   678, -   480,    +   676, -   482,    +   678, -   486, 
   +   678, -   488,    +   654, -   518,    +   676, -   488,    +   678, -   472, 
   +   678, -   476,    +   678, -   478,    +   654, -   506,    +   678, -   486, 
   +   680, -   488,    +   676, -   496,    +   678, -   484,    +   678, -  1610, 
   +   680, -   474,    +   680, -   478,    +   678, -   482,    +   678, -   484, 
   +   678, -   490,    +   654, -   516,    +   678, -   460,    +   676  

Ac that I'm trying to control is Voltas 1.5 Ton 3 Star Inverter Split AC (Magnum 183V MZJ3, Copper Condenser, White)
Voltas 1.5 Ton 3 Star Inverter Split AC (Magnum 183V MZJ3, Copper Condenser, White)

Remote is Voltas iSmart Remote.
https://www.lknstores.com/products/voltas-ac-smart-remote-control-original-9

Expected Solution

Kindly help me with any snippet for transmitting the above mentioned IR data.
Thanks in Advance.
Voltas_AC_Smart_Remote_Control_Original_9_650x

@crankyoldgit
Copy link
Owner

crankyoldgit commented Aug 26, 2021

Okay, you're doing several things wrong. Let me point out those first.
Per the documentation:
sendWhirlpoolAC() uses nbytes, not nbits.

So you would use:

uint8_t state[21] = {0x83, 0x06, 0x04, 0x82, 0x00, 0x00, 0x82, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};
irsend.sendWhirlpoolAC(state);  // or
irsend.sendWhirlpoolAC(state, kWhirlpoolAcStateLength);  // or
irsend.sendWhirlpoolAC(state, kWhirlpoolAcStateLength, kWhirlpoolAcDefaultRepeat);
// kWhirlpoolAcDefaultRepeat is 0.
// kWhirlpoolAcStateLength = 21

// Not: irsend.sendWhirlpoolAC(0x830604E20000821C00000000007800010000000001, 168, 2);
// i.e. `0x830604E20000821C00000000007800010000000001` is not an uint8_t array.
// It is expecting a pointer to an array of bytes, not a single massive integer.
// Plus, you're telling it the first argument is `168` bytes long via the second argument.

// Assuming you wanted to send two repeats per above (i.e. a total of three messages. Why, I don't know.)
irsend.sendWhirlpoolAC(state, 21, 2);

A simple rule of thumb: If IRrecvDumpV2 or V3 supplies you a uint8_t state[] for a message, the corresponding sendBlah() routine will a) use an uint8_t array for the data (i.e. first argument), b) the second (optional) argument will be the number of bytes/length of the array to be sent, & c) 9 times out of 10, you don't want to mess with the repeats argument. It will default to the correct value.

Tried irsend.sendRaw(rawData, 343, 38); Formatted data but as it frequent changes, did not help.

As for why your irsend.sendRaw(rawData, 343, 38); didn't work. I'm not sure. See the trouble shooting guide. Without seeing the exact code I can't be sure what you're sending/doing. That said, base on what you're saying, it looks like it should be working. Are you sending anything immediately after the sendRaw()?
e.g. the following should work.

uint16_t rawData[343] = {9204, 4512,  678, 1612,  680, 1612,  680, 478,  678, 482,  680, 486,  676, 490,  678, 494,  678, 1624,  678, 472,  678, 1616,  676, 1616,  680, 480,  678, 484,  680, 488,  678, 492,  678, 486,  678, 472,  676, 474,  678, 1618,  680, 480,  678, 486,  678, 490,  678, 494,  676, 488,  678, 472,  678, 1616,  678, 480,  678, 482,  678, 488,  676, 490,  678, 492,  680, 1624,  678, 472,  676, 474,  678, 480,  676, 482,  678, 486,  678, 490,  676, 496,  676, 488,  676, 474,  678, 476,  676, 480,  676, 484,  678, 486,  678, 490,  678, 494,  676, 462,  678, 8012,  680, 470,  678, 1614,  680, 478,  678, 482,  678, 486,  678, 488,  676, 494,  678, 1624,  678, 472,  676, 476,  678, 480,  678, 482,  678, 1626,  676, 1630,  678, 494,  678, 488,  678, 472,  676, 478,  676, 482,  676, 484,  678, 486,  676, 490,  678, 494,  678, 488,  676, 474,  676, 476,  676, 480,  676, 486,  674, 488,  676, 492,  674, 496,  676, 490,  674, 474,  676, 476,  674, 482,  674, 484,  678, 488,  662, 506,  650, 520,  672, 490,  652, 498,  674, 476,  676, 482,  674, 486,  672, 490,  676, 492,  674, 496,  674, 490,  648, 500,  674, 478,  674, 484,  650, 510,  674, 488,  674, 494,  650, 520,  650, 514,  674, 476,  672, 480,  650, 1646,  674, 486,  648, 1654,  674, 1632,  674, 498,  672, 466,  676, 8016,  662, 486,  652, 500,  674, 482,  676, 486,  676, 486,  676, 490,  676, 496,  650, 514,  650, 1638,  650, 502,  652, 504,  672, 488,  650, 512,  652, 516,  674, 496,  674, 490,  676, 476,  674, 478,  650, 506,  650, 508,  672, 492,  648, 518,  650, 520,  650, 514,  650, 500,  650, 504,  648, 508,  674, 486,  650, 514,  672, 494,  648, 520,  650, 514,  650, 500,  648, 504,  650, 508,  648, 512,  668, 498,  644, 518,  648, 522,  648, 516,  648, 500,  648, 504,  648, 508,  650, 510,  648, 516,  650, 518,  648, 522,  648, 516,  648, 1640,  648, 506,  648, 508,  650, 510,  648, 514,  648, 520,  648, 522,  648, 490,  642};  // WHIRLPOOL_AC
irsend.sendRaw(rawData, 343, 38000);
delay(2000); // Wait a couple of seconds. i.e. Don't send another IR message straight away as it might confuse the A/C.

Also, read https://github.com/crankyoldgit/IRremoteESP8266/wiki/Frequently-Asked-Questions#Why_is_the_raw_data_for_a_button_or_AC_state_always_different_for_each_capture for why the rawData values change.

Also note that sendWhirlpoolAC() has not yet been positively confirmed to be working. e.g.

/// Status: BETA / Probably works.

It probably does work, just not confirmed on/against a real device.

@crankyoldgit
Copy link
Owner

@Suryeah How did you go?

@Suryeah
Copy link
Author

Suryeah commented Aug 30, 2021

@Suryeah How did you go?

Thank you very much for your help.
I did get my mistakes and gave a try by using

uint16_t rawData[343] = {9204, 4512,  678, 1612,  680, 1612,  680, 478,  678, 482,  680, 486,  676, 490,  678, 494,  678, 1624,  678, 472,  678, 1616,  676, 1616,  680, 480,  678, 484,  680, 488,  678, 492,  678, 486,  678, 472,  676, 474,  678, 1618,  680, 480,  678, 486,  678, 490,  678, 494,  676, 488,  678, 472,  678, 1616,  678, 480,  678, 482,  678, 488,  676, 490,  678, 492,  680, 1624,  678, 472,  676, 474,  678, 480,  676, 482,  678, 486,  678, 490,  676, 496,  676, 488,  676, 474,  678, 476,  676, 480,  676, 484,  678, 486,  678, 490,  678, 494,  676, 462,  678, 8012,  680, 470,  678, 1614,  680, 478,  678, 482,  678, 486,  678, 488,  676, 494,  678, 1624,  678, 472,  676, 476,  678, 480,  678, 482,  678, 1626,  676, 1630,  678, 494,  678, 488,  678, 472,  676, 478,  676, 482,  676, 484,  678, 486,  676, 490,  678, 494,  678, 488,  676, 474,  676, 476,  676, 480,  676, 486,  674, 488,  676, 492,  674, 496,  676, 490,  674, 474,  676, 476,  674, 482,  674, 484,  678, 488,  662, 506,  650, 520,  672, 490,  652, 498,  674, 476,  676, 482,  674, 486,  672, 490,  676, 492,  674, 496,  674, 490,  648, 500,  674, 478,  674, 484,  650, 510,  674, 488,  674, 494,  650, 520,  650, 514,  674, 476,  672, 480,  650, 1646,  674, 486,  648, 1654,  674, 1632,  674, 498,  672, 466,  676, 8016,  662, 486,  652, 500,  674, 482,  676, 486,  676, 486,  676, 490,  676, 496,  650, 514,  650, 1638,  650, 502,  652, 504,  672, 488,  650, 512,  652, 516,  674, 496,  674, 490,  676, 476,  674, 478,  650, 506,  650, 508,  672, 492,  648, 518,  650, 520,  650, 514,  650, 500,  650, 504,  648, 508,  674, 486,  650, 514,  672, 494,  648, 520,  650, 514,  650, 500,  648, 504,  650, 508,  648, 512,  668, 498,  644, 518,  648, 522,  648, 516,  648, 500,  648, 504,  648, 508,  650, 510,  648, 516,  650, 518,  648, 522,  648, 516,  648, 1640,  648, 506,  648, 508,  650, 510,  648, 514,  648, 520,  648, 522,  648, 490,  642};  // WHIRLPOOL_AC

irsend.sendRaw(rawData, 343, 38000);

delay(2000);   // Wait a couple of seconds. i.e. Don't send another IR message straight away as it might confuse the A/C.

and it did work.

I am yet to try with STATE sending method.

Will update about the same soon.

@crankyoldgit
Copy link
Owner

Yay. You had me worried there why "raw" wasn't working.

Out of curiosity, what were your "mistakes"? I'm asking so we can potentially help diagnose similar problems in future.

@Suryeah
Copy link
Author

Suryeah commented Aug 30, 2021

@Suryeah How did you go?

Thank you very much for your help.
I did get my mistakes and gave a try by using

uint16_t rawData[343] = {9204, 4512,  678, 1612,  680, 1612,  680, 478,  678, 482,  680, 486,  676, 490,  678, 494,  678, 1624,  678, 472,  678, 1616,  676, 1616,  680, 480,  678, 484,  680, 488,  678, 492,  678, 486,  678, 472,  676, 474,  678, 1618,  680, 480,  678, 486,  678, 490,  678, 494,  676, 488,  678, 472,  678, 1616,  678, 480,  678, 482,  678, 488,  676, 490,  678, 492,  680, 1624,  678, 472,  676, 474,  678, 480,  676, 482,  678, 486,  678, 490,  676, 496,  676, 488,  676, 474,  678, 476,  676, 480,  676, 484,  678, 486,  678, 490,  678, 494,  676, 462,  678, 8012,  680, 470,  678, 1614,  680, 478,  678, 482,  678, 486,  678, 488,  676, 494,  678, 1624,  678, 472,  676, 476,  678, 480,  678, 482,  678, 1626,  676, 1630,  678, 494,  678, 488,  678, 472,  676, 478,  676, 482,  676, 484,  678, 486,  676, 490,  678, 494,  678, 488,  676, 474,  676, 476,  676, 480,  676, 486,  674, 488,  676, 492,  674, 496,  676, 490,  674, 474,  676, 476,  674, 482,  674, 484,  678, 488,  662, 506,  650, 520,  672, 490,  652, 498,  674, 476,  676, 482,  674, 486,  672, 490,  676, 492,  674, 496,  674, 490,  648, 500,  674, 478,  674, 484,  650, 510,  674, 488,  674, 494,  650, 520,  650, 514,  674, 476,  672, 480,  650, 1646,  674, 486,  648, 1654,  674, 1632,  674, 498,  672, 466,  676, 8016,  662, 486,  652, 500,  674, 482,  676, 486,  676, 486,  676, 490,  676, 496,  650, 514,  650, 1638,  650, 502,  652, 504,  672, 488,  650, 512,  652, 516,  674, 496,  674, 490,  676, 476,  674, 478,  650, 506,  650, 508,  672, 492,  648, 518,  650, 520,  650, 514,  650, 500,  650, 504,  648, 508,  674, 486,  650, 514,  672, 494,  648, 520,  650, 514,  650, 500,  648, 504,  650, 508,  648, 512,  668, 498,  644, 518,  648, 522,  648, 516,  648, 500,  648, 504,  648, 508,  650, 510,  648, 516,  650, 518,  648, 522,  648, 516,  648, 1640,  648, 506,  648, 508,  650, 510,  648, 514,  648, 520,  648, 522,  648, 490,  642};  // WHIRLPOOL_AC

irsend.sendRaw(rawData, 343, 38000);

delay(2000);   // Wait a couple of seconds. i.e. Don't send another IR message straight away as it might confuse the A/C.

and it did work.

I am yet to try with STATE sending method.

Will update about the same soon.

I just tested with irsend.sendWhirlpoolAC(state); and it is working perfectly.. !!!!

@Suryeah
Copy link
Author

Suryeah commented Aug 30, 2021

Yay. You had me worried there why "raw" wasn't working.

Out of curiosity, what were your "mistakes"? I'm asking so we can potentially help diagnose similar problems in future.

I'm extremely sorry for getting you worried by my mistakes.
I was working with irsend.sendGoodweather(); , irsend.sendWhirlpoolAC(state); & irsend.sendEpson(0xC1AA09F6); I think, I missed out on couple of things like mistaking nBits for nBytes .
I got GOODWEATHER Protocol working on my first shot but WHIRLPOOL and EPSON was giving me trouble.
Now with your help I have my WHIRLPOOL_AC working good.
And I am working with irsend.sendEpson(0xC1AA09F6); and I'm not able to communicate yet, I think there is something to do with the repeat functionality here, as the IRDumpV2 data is mentioning as

Timestamp : 000087.198
Library   : v2.7.19

Protocol  : EPSON (Repeat)
Code      : 0xC1AA09F6 (32 Bits)
uint16_t rawData[135] = {8976, 4408,  656, 1574,  656, 1574,  654, 476,  654, 474,  654, 472,  652, 474,  654, 474,  630, 1600,  654, 1576,  630, 498,  630, 1598,  630, 498,  656, 1574,  630, 498,  654, 1576,  654, 474,  630, 498,  628, 498,  630, 498,  654, 472,  628, 1600,  632, 498,  654, 472,  630, 1600,  630, 1600,  656, 1574,  630, 1598,  630, 1602,  630, 496,  630, 1600,  630, 1600,  630, 498,  628, 40828,  8976, 4408,  630, 1600,  656, 1574,  656, 474,  654, 472,  656, 472,  652, 474,  630, 498,  630, 1600,  654, 1576,  654, 474,  654, 1574,  656, 472,  630, 1600,  652, 474,  630, 1598,  630, 498,  630, 496,  640, 488,  630, 498,  628, 500,  656, 1574,  630, 498,  630, 498,  630, 1598,  632, 1598,  656, 1574,  654, 1574,  632, 1598,  654, 474,  628, 1602,  628, 1600,  628, 498,  654};  // EPSON (Repeat) C1AA09F6
uint32_t address = 0x5583;
uint32_t command = 0x90;
uint64_t data = 0xC1AA09F6;

I'll comment here if I figure out any of my other mistakes while getting my Epson to work.

I really appreciate your time and effort in helping me out with this issue. Thank you very much.

@crankyoldgit
Copy link
Owner

crankyoldgit commented Aug 30, 2021

I'm extremely sorry for getting you worried by my mistakes.
I was working with irsend.sendGoodweather(); , irsend.sendWhirlpoolAC(state); & irsend.sendEpson(0xC1AA09F6); I think, I missed out on couple of things like mistaking nBits for nBytes .

I get that. My concern is what you did wrong with sendRaw() because I couldn't see any obvious mistakes (other than perhaps sending another signal immediately after the message thus making a "longer" single message). Hence my interest.

And I am working with irsend.sendEpson(0xC1AA09F6); and I'm not able to communicate yet, I think there is something to do with the repeat functionality here, as the IRDumpV2 data is mentioning as

Timestamp : 000087.198
Library   : v2.7.19

Protocol  : EPSON (Repeat)
Code      : 0xC1AA09F6 (32 Bits)
uint16_t rawData[135] = {8976, 4408,  656, 1574,  656, 1574,  654, 476,  654, 474,  654, 472,  652, 474,  654, 474,  630, 1600,  654, 1576,  630, 498,  630, 1598,  630, 498,  656, 1574,  630, 498,  654, 1576,  654, 474,  630, 498,  628, 498,  630, 498,  654, 472,  628, 1600,  632, 498,  654, 472,  630, 1600,  630, 1600,  656, 1574,  630, 1598,  630, 1602,  630, 496,  630, 1600,  630, 1600,  630, 498,  628, 40828,  8976, 4408,  630, 1600,  656, 1574,  656, 474,  654, 472,  656, 472,  652, 474,  630, 498,  630, 1600,  654, 1576,  654, 474,  654, 1574,  656, 472,  630, 1600,  652, 474,  630, 1598,  630, 498,  630, 496,  640, 488,  630, 498,  628, 500,  656, 1574,  630, 498,  630, 498,  630, 1598,  632, 1598,  656, 1574,  654, 1574,  632, 1598,  654, 474,  628, 1602,  628, 1600,  628, 498,  654};  // EPSON (Repeat) C1AA09F6
uint32_t address = 0x5583;
uint32_t command = 0x90;
uint64_t data = 0xC1AA09F6;

I'll comment here if I figure out any of my other mistakes while getting my Epson to work.

Is that the only data captured around the remote button being pressed?

i.e. Anything else with in one second before or after that message/capture?

This may be of help:

/// Epson is an NEC-like protocol, except it doesn't use the NEC style repeat.

/// @note Experimental data indicates there are at least three messages
/// (first + 2 repeats). We only require the first + a single repeat to match.
/// This helps us distinguish it from NEC messages which are near identical.

The above data indicates the library saw two of the messages (msg + 1 repeat) which is the minimum required to match. However, we typically expect three messages for this protocol.
i.e.

void sendEpson(uint64_t data, uint16_t nbits = kEpsonBits,
uint16_t repeat = kEpsonMinRepeat);

const uint16_t kEpsonMinRepeat = 2;

That is, sendEpson() will send a single mesg, plus 2 repeats. (total of 3) by default.

If the above capture data is the only data seen (with in a second or so) of the button press, try:

irsend.sendEpson(0xC1AA09F6, kEpsonBits, 1);  // Msg plus 1 repeat. (2 total)

Also, What devices (remote and the device control) have you gotten working/tried so far. So we can add them to the supported list etc.

@Suryeah
Copy link
Author

Suryeah commented Aug 31, 2021

I get that. My concern is what you did wrong with sendRaw() because I couldn't see any obvious mistakes (other than perhaps sending another signal immediately after the message thus making a "longer" single message). Hence my interest.

Is there any thing to do with changing RawData?
here are the raw data captured for WhirlpoolAC Protocol with my remote.

Timestamp : 000010.609
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862200000000002300010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:34, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9140, 4482,  678, 1596,  676, 1600,  676, 472,  676, 476,  676, 482,  674, 484,  676, 486,  678, 1610,  678, 464,  678, 1600,  676, 1604,  678, 476,  676, 480,  676, 484,  676, 486,  676, 482,  676, 1598,  678, 468,  676, 1606,  678, 476,  676, 480,  676, 482,  676, 486,  676, 480,  676, 466,  676, 1600,  676, 472,  676, 476,  678, 478,  678, 482,  674, 488,  678, 1610,  676, 466,  676, 470,  676, 472,  678, 476,  676, 480,  676, 484,  676, 486,  676, 480,  678, 464,  676, 470,  676, 474,  676, 476,  676, 482,  676, 484,  676, 486,  702, 430,  704, 7934,  678, 466,  676, 1602,  702, 1580,  702, 452,  700, 456,  692, 468,  702, 462,  676, 1612,  702, 440,  676, 1602,  702, 448,  702, 450,  702, 456,  674, 1616,  702, 462,  676, 480,  702, 440,  700, 446,  702, 448,  676, 478,  700, 456,  700, 458,  676, 488,  702, 456,  700, 440,  702, 442,  702, 446,  676, 476,  702, 452,  702, 458,  676, 486,  702, 454,  702, 442,  702, 444,  704, 446,  676, 476,  702, 454,  702, 458,  702, 460,  676, 482,  674, 466,  676, 470,  702, 448,  678, 476,  676, 480,  678, 484,  676, 488,  702, 456,  678, 464,  678, 468,  702, 448,  702, 450,  702, 454,  676, 484,  702, 462,  702, 456,  676, 1598,  678, 1602,  704, 446,  678, 476,  678, 480,  678, 1614,  702, 462,  676, 456,  704, 7936,  704, 440,  676, 470,  702, 448,  676, 476,  678, 480,  676, 484,  678, 486,  676, 480,  704, 1572,  678, 468,  678, 472,  702, 452,  676, 480,  676, 484,  702, 462,  676, 482,  678, 466,  676, 470,  676, 474,  676, 478,  678, 480,  678, 484,  652, 512,  676, 482,  676, 468,  676, 470,  654, 498,  676, 476,  676, 480,  676, 484,  676, 486,  678, 480,  678, 466,  678, 470,  678, 474,  676, 478,  676, 480,  676, 484,  678, 486,  678, 480,  678, 466,  652, 494,  676, 474,  676, 478,  652, 504,  678, 484,  676, 488,  676, 482,  676, 1600,  678, 470,  652, 498,  676, 478,  652, 504,  676, 484,  652, 512,  652, 480,  666};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000012.536
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862200000000002300010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:34, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9146, 4482,  700, 1578,  674, 1602,  676, 474,  676, 478,  676, 480,  676, 484,  676, 488,  676, 1614,  676, 468,  676, 1602,  674, 1606,  676, 478,  674, 482,  674, 486,  674, 490,  674, 484,  672, 1602,  674, 472,  674, 1608,  674, 480,  674, 482,  672, 488,  672, 492,  672, 484,  672, 470,  672, 1604,  674, 478,  672, 482,  670, 486,  672, 488,  672, 492,  672, 1618,  672, 472,  672, 474,  672, 478,  672, 482,  670, 486,  672, 488,  672, 492,  646, 510,  672, 472,  672, 476,  672, 478,  672, 482,  670, 486,  672, 488,  646, 518,  646, 486,  672, 7970,  672, 472,  672, 1606,  672, 1608,  672, 482,  672, 484,  672, 488,  672, 492,  672, 1616,  672, 472,  670, 1606,  672, 476,  672, 482,  672, 484,  672, 1620,  672, 492,  672, 484,  672, 470,  672, 474,  670, 478,  672, 482,  648, 508,  670, 492,  672, 490,  672, 484,  674, 468,  672, 472,  672, 478,  672, 480,  648, 508,  672, 488,  648, 516,  674, 484,  672, 470,  674, 474,  672, 480,  670, 480,  672, 484,  672, 486,  674, 490,  672, 484,  674, 470,  672, 474,  672, 476,  674, 480,  672, 484,  672, 488,  674, 490,  674, 484,  674, 468,  674, 472,  648, 500,  674, 478,  674, 484,  674, 486,  648, 516,  674, 484,  672, 1602,  650, 1628,  674, 476,  672, 480,  674, 484,  674, 1620,  676, 490,  674, 458,  702, 7940,  676, 470,  674, 472,  674, 476,  700, 452,  674, 484,  672, 486,  674, 490,  668, 488,  674, 1600,  676, 472,  674, 474,  674, 480,  674, 482,  674, 486,  674, 490,  700, 456,  674, 470,  672, 472,  674, 474,  674, 478,  698, 458,  650, 510,  674, 488,  674, 482,  674, 468,  674, 472,  674, 476,  674, 478,  650, 506,  700, 460,  676, 488,  676, 482,  676, 468,  700, 446,  702, 448,  676, 478,  676, 482,  674, 486,  674, 490,  674, 484,  700, 442,  676, 470,  674, 474,  674, 478,  674, 482,  674, 486,  674, 488,  650, 508,  674, 1598,  676, 470,  674, 474,  674, 478,  676, 480,  700, 460,  674, 490,  676, 456,  668};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000014.346
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862200000000002300010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:34, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9120, 4514,  674, 1602,  672, 1606,  672, 478,  672, 480,  646, 510,  672, 488,  672, 492,  672, 1616,  672, 472,  648, 1630,  672, 1608,  674, 480,  674, 484,  674, 486,  672, 492,  672, 484,  674, 1600,  674, 474,  672, 1610,  674, 480,  672, 484,  648, 512,  672, 492,  672, 484,  672, 470,  648, 1630,  674, 478,  678, 474,  674, 484,  672, 488,  674, 492,  674, 1616,  676, 470,  674, 472,  672, 478,  672, 480,  674, 482,  674, 486,  674, 490,  674, 484,  672, 470,  674, 472,  674, 476,  674, 478,  674, 482,  650, 512,  674, 490,  674, 460,  676, 7962,  676, 468,  674, 1604,  674, 1608,  676, 478,  674, 482,  672, 488,  674, 490,  672, 1616,  676, 468,  672, 1606,  676, 474,  674, 480,  674, 482,  648, 1644,  674, 490,  674, 482,  674, 468,  674, 472,  674, 476,  650, 504,  674, 484,  674, 486,  672, 492,  674, 484,  674, 468,  650, 496,  676, 474,  676, 478,  650, 508,  674, 488,  674, 490,  650, 508,  700, 442,  676, 470,  650, 500,  674, 478,  674, 482,  676, 484,  700, 464,  700, 456,  676, 468,  674, 472,  674, 476,  700, 452,  676, 480,  674, 486,  700, 462,  674, 484,  674, 468,  674, 472,  674, 476,  700, 452,  674, 482,  676, 486,  652, 512,  676, 482,  676, 1602,  676, 1604,  676, 474,  700, 454,  676, 482,  674, 1622,  674, 490,  676, 458,  678, 7966,  676, 468,  676, 470,  674, 476,  674, 478,  676, 482,  674, 486,  700, 462,  702, 456,  676, 1600,  650, 496,  674, 474,  676, 478,  676, 480,  700, 460,  676, 488,  676, 482,  700, 442,  676, 470,  674, 474,  700, 452,  676, 480,  676, 484,  676, 488,  676, 482,  674, 468,  650, 496,  702, 446,  676, 478,  674, 480,  650, 510,  676, 488,  700, 456,  676, 466,  674, 472,  674, 474,  676, 478,  650, 506,  674, 484,  676, 488,  676, 480,  676, 466,  676, 470,  676, 474,  676, 478,  650, 506,  676, 484,  650, 512,  676, 480,  676, 1598,  652, 494,  652, 498,  674, 478,  676, 482,  652, 508,  676, 488,  674, 456,  668};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000016.129
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862300000000002200010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:35, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9142, 4486,  676, 1598,  676, 1602,  676, 474,  674, 478,  674, 482,  674, 486,  674, 490,  672, 1616,  674, 468,  674, 1606,  674, 1608,  674, 480,  674, 484,  674, 486,  672, 494,  672, 486,  672, 1604,  674, 474,  670, 1612,  674, 480,  672, 484,  672, 488,  646, 516,  670, 486,  670, 470,  672, 1606,  672, 480,  670, 482,  672, 486,  672, 490,  646, 518,  672, 1620,  672, 470,  646, 500,  672, 478,  670, 484,  672, 484,  672, 488,  672, 492,  670, 486,  672, 470,  672, 474,  670, 478,  648, 506,  672, 484,  672, 488,  672, 490,  672, 460,  672, 7964,  674, 470,  670, 1606,  674, 1610,  674, 480,  648, 510,  672, 488,  646, 516,  672, 1616,  672, 1602,  672, 1606,  672, 478,  672, 480,  648, 508,  672, 1618,  672, 492,  672, 486,  672, 470,  672, 474,  672, 478,  672, 482,  672, 484,  648, 512,  672, 492,  672, 484,  672, 472,  648, 498,  672, 478,  648, 506,  648, 510,  672, 488,  648, 516,  672, 484,  648, 496,  674, 472,  672, 476,  674, 480,  672, 484,  672, 488,  674, 490,  672, 484,  674, 468,  648, 498,  672, 478,  672, 482,  648, 508,  674, 486,  672, 490,  674, 484,  674, 468,  674, 472,  674, 476,  674, 480,  672, 484,  672, 488,  648, 516,  672, 484,  672, 470,  674, 1606,  674, 476,  650, 504,  674, 482,  650, 1642,  674, 490,  672, 460,  702, 7936,  674, 470,  672, 474,  674, 474,  674, 478,  674, 482,  648, 512,  674, 488,  674, 484,  674, 1600,  676, 472,  674, 474,  674, 480,  674, 482,  674, 486,  672, 492,  674, 484,  648, 494,  672, 474,  674, 476,  674, 480,  674, 482,  674, 486,  676, 490,  648, 508,  700, 442,  672, 474,  674, 476,  672, 480,  674, 482,  674, 486,  674, 490,  674, 482,  648, 494,  676, 470,  674, 474,  700, 454,  700, 456,  650, 510,  674, 490,  650, 508,  674, 468,  648, 496,  676, 474,  676, 478,  650, 508,  674, 486,  674, 490,  676, 482,  702, 1574,  674, 472,  700, 450,  676, 478,  676, 482,  674, 486,  676, 488,  650, 482,  668};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000017.988
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862300000000002200010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:35, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9120, 4512,  674, 1602,  672, 1606,  672, 478,  670, 482,  672, 484,  646, 514,  646, 516,  670, 1618,  672, 472,  646, 1630,  672, 1608,  674, 480,  672, 484,  646, 512,  674, 490,  648, 510,  670, 1602,  672, 474,  646, 1634,  674, 482,  672, 484,  648, 512,  648, 516,  648, 510,  670, 472,  648, 1630,  648, 502,  648, 506,  648, 508,  672, 488,  648, 516,  674, 1614,  648, 494,  648, 498,  672, 476,  672, 480,  648, 508,  648, 512,  672, 492,  670, 486,  672, 470,  648, 498,  648, 500,  648, 506,  648, 508,  674, 486,  648, 514,  674, 460,  674, 7966,  674, 470,  648, 1630,  672, 1610,  670, 482,  672, 482,  648, 512,  674, 490,  648, 1640,  672, 1602,  674, 1606,  674, 476,  648, 506,  666, 490,  672, 1618,  674, 490,  672, 484,  648, 494,  674, 472,  674, 476,  674, 480,  648, 508,  672, 486,  672, 492,  672, 484,  674, 470,  648, 498,  674, 476,  648, 506,  648, 508,  672, 488,  674, 490,  674, 482,  672, 468,  648, 498,  648, 500,  648, 504,  672, 484,  674, 486,  650, 514,  674, 482,  650, 494,  674, 472,  674, 476,  674, 480,  650, 508,  648, 512,  672, 490,  650, 506,  674, 470,  650, 496,  650, 500,  648, 504,  650, 508,  674, 486,  650, 514,  674, 482,  650, 494,  674, 1604,  674, 476,  650, 502,  650, 506,  650, 1642,  650, 514,  674, 458,  674, 7960,  702, 444,  648, 498,  670, 478,  674, 480,  650, 506,  650, 510,  674, 490,  648, 508,  674, 1600,  674, 472,  674, 476,  648, 504,  674, 482,  648, 510,  650, 514,  650, 508,  674, 468,  674, 472,  674, 476,  650, 502,  650, 506,  674, 486,  674, 490,  650, 508,  650, 494,  650, 496,  650, 500,  650, 502,  650, 506,  674, 486,  674, 490,  674, 482,  650, 492,  674, 472,  650, 500,  650, 504,  674, 482,  650, 510,  650, 512,  652, 506,  652, 492,  652, 494,  650, 500,  650, 502,  650, 506,  676, 484,  652, 512,  650, 506,  650, 1624,  652, 494,  652, 498,  652, 502,  650, 506,  650, 510,  650, 514,  650, 482,  666};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000019.704
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862300000000002200010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:35, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9118, 4512,  674, 1604,  672, 1608,  672, 478,  672, 482,  648, 510,  648, 514,  672, 492,  672, 1618,  672, 470,  672, 1606,  674, 1608,  672, 482,  672, 484,  672, 488,  672, 492,  672, 484,  672, 1604,  648, 498,  672, 1610,  674, 480,  674, 484,  672, 488,  648, 516,  674, 484,  648, 496,  674, 1606,  648, 502,  674, 480,  648, 508,  674, 488,  672, 492,  674, 1616,  674, 470,  648, 498,  672, 476,  648, 504,  672, 484,  674, 486,  674, 490,  672, 486,  672, 470,  672, 474,  674, 476,  648, 504,  674, 482,  674, 486,  648, 514,  674, 458,  674, 7964,  674, 470,  672, 1608,  674, 1608,  674, 480,  648, 508,  672, 488,  674, 490,  672, 1616,  672, 1600,  672, 1606,  672, 476,  648, 504,  672, 484,  672, 1620,  672, 492,  674, 484,  672, 470,  674, 472,  674, 476,  648, 504,  674, 484,  648, 510,  674, 490,  648, 508,  674, 468,  674, 472,  648, 500,  672, 480,  648, 508,  674, 486,  674, 490,  674, 482,  672, 470,  674, 472,  674, 476,  672, 482,  680, 476,  674, 486,  674, 494,  668, 484,  650, 494,  672, 474,  700, 450,  674, 478,  674, 484,  674, 486,  650, 514,  650, 506,  674, 468,  650, 496,  674, 476,  650, 504,  674, 482,  674, 486,  650, 514,  674, 482,  674, 468,  674, 1604,  674, 476,  674, 480,  674, 482,  676, 1616,  650, 514,  674, 458,  702, 7936,  702, 442,  674, 472,  674, 476,  648, 504,  674, 482,  674, 486,  674, 490,  674, 482,  674, 1602,  676, 470,  676, 474,  676, 478,  674, 482,  650, 510,  674, 490,  650, 506,  676, 468,  674, 472,  674, 476,  674, 480,  674, 482,  700, 460,  672, 492,  674, 482,  650, 492,  674, 472,  674, 476,  676, 476,  700, 456,  650, 510,  674, 488,  650, 506,  674, 468,  676, 470,  674, 476,  674, 478,  650, 506,  674, 486,  674, 490,  652, 506,  674, 468,  676, 470,  674, 476,  650, 502,  650, 506,  676, 484,  674, 490,  674, 482,  674, 1600,  652, 494,  676, 474,  676, 478,  674, 482,  650, 508,  676, 488,  650, 480,  668};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000021.209
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862300000000002200010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:35, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9114, 4512,  674, 1602,  672, 1606,  672, 478,  670, 482,  672, 484,  648, 512,  670, 492,  672, 1618,  672, 470,  670, 1606,  672, 1608,  672, 482,  646, 510,  646, 512,  672, 490,  648, 508,  672, 1602,  674, 474,  672, 1610,  674, 480,  672, 484,  648, 512,  672, 492,  648, 510,  672, 470,  648, 1630,  674, 476,  672, 480,  648, 510,  672, 488,  672, 492,  672, 1616,  674, 470,  648, 498,  648, 502,  648, 504,  674, 484,  674, 486,  648, 516,  674, 484,  648, 494,  672, 474,  672, 476,  674, 480,  674, 482,  648, 512,  672, 490,  648, 484,  672, 7966,  648, 494,  672, 1606,  674, 1608,  648, 506,  672, 484,  672, 488,  672, 492,  674, 1616,  674, 1602,  674, 1604,  672, 478,  674, 480,  672, 484,  648, 1644,  674, 490,  648, 508,  674, 470,  674, 472,  648, 502,  648, 504,  674, 484,  672, 488,  648, 516,  672, 484,  648, 494,  672, 474,  672, 476,  672, 480,  672, 484,  648, 512,  674, 490,  648, 508,  674, 468,  654, 490,  648, 500,  672, 480,  648, 508,  672, 488,  674, 490,  674, 484,  674, 468,  672, 474,  674, 476,  672, 480,  674, 482,  674, 486,  674, 490,  674, 482,  648, 494,  674, 472,  674, 476,  674, 478,  674, 484,  646, 512,  648, 514,  648, 508,  650, 492,  650, 1628,  676, 474,  674, 480,  674, 484,  648, 1644,  674, 490,  650, 484,  702, 7936,  648, 494,  672, 472,  650, 500,  674, 480,  674, 482,  674, 486,  674, 490,  648, 508,  674, 1600,  676, 472,  672, 478,  674, 480,  674, 482,  674, 486,  672, 490,  650, 508,  648, 494,  652, 494,  650, 500,  674, 480,  672, 484,  674, 486,  648, 514,  674, 484,  674, 470,  674, 472,  650, 500,  674, 478,  674, 482,  674, 488,  674, 490,  650, 508,  650, 494,  674, 472,  648, 500,  650, 504,  648, 508,  674, 486,  674, 490,  672, 484,  648, 494,  648, 496,  674, 476,  650, 504,  672, 484,  674, 486,  672, 492,  674, 482,  674, 1600,  674, 472,  674, 476,  674, 478,  676, 482,  650, 510,  700, 464,  650, 482,  668};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};


Timestamp : 000022.826
Library   : v2.7.19

Protocol  : WHIRLPOOL_AC
Code      : 0x830605820000862300000000002200010000000001 (168 Bits)
Mesg Desc.: Model: 1 (DG11J13A), Power Toggle: On, Mode: 2 (Cool), Temp: 26C, Fan: 1 (High), Swing: Off, Light: On, Clock: 06:35, On Timer: Off, Off Timer: Off, Sleep: Off, Super: Off, Command: 1 (Power)
uint16_t rawData[343] = {9116, 4516,  648, 1628,  648, 1632,  672, 480,  672, 482,  646, 510,  646, 514,  672, 492,  670, 1616,  648, 496,  646, 1632,  646, 1636,  672, 482,  672, 484,  646, 514,  672, 492,  648, 510,  670, 1602,  672, 474,  646, 1634,  672, 480,  672, 484,  646, 512,  672, 492,  648, 510,  672, 470,  646, 1630,  648, 502,  672, 480,  672, 486,  672, 488,  648, 516,  672, 1616,  650, 494,  648, 500,  672, 478,  672, 482,  648, 510,  672, 488,  648, 516,  672, 484,  648, 494,  670, 476,  674, 476,  648, 506,  674, 482,  674, 486,  674, 490,  648, 484,  674, 7964,  648, 494,  672, 1606,  674, 1608,  648, 506,  646, 510,  672, 486,  674, 490,  648, 1640,  674, 1602,  672, 1604,  672, 478,  648, 504,  672, 484,  672, 1620,  648, 518,  646, 508,  648, 494,  672, 474,  672, 476,  674, 480,  648, 508,  674, 486,  674, 490,  648, 510,  674, 470,  648, 498,  648, 500,  648, 504,  672, 484,  674, 486,  648, 516,  672, 484,  672, 470,  672, 472,  648, 500,  672, 480,  672, 484,  648, 512,  648, 516,  648, 508,  674, 468,  650, 498,  674, 476,  674, 480,  648, 508,  648, 512,  672, 490,  672, 484,  674, 468,  648, 498,  672, 478,  648, 504,  648, 508,  672, 488,  672, 492,  674, 482,  650, 494,  674, 1604,  674, 476,  670, 484,  648, 508,  674, 1620,  650, 514,  650, 482,  676, 7962,  674, 468,  648, 498,  672, 476,  672, 480,  674, 482,  674, 486,  648, 516,  674, 484,  674, 1602,  674, 472,  648, 500,  650, 504,  672, 484,  674, 486,  672, 490,  650, 508,  674, 468,  674, 472,  674, 476,  674, 480,  674, 482,  674, 486,  674, 490,  674, 482,  674, 468,  674, 472,  650, 500,  674, 478,  674, 482,  674, 486,  674, 488,  648, 508,  674, 468,  674, 472,  648, 500,  674, 480,  672, 482,  674, 486,  674, 490,  674, 482,  674, 468,  650, 496,  674, 476,  674, 478,  674, 482,  674, 486,  674, 488,  674, 484,  674, 1598,  650, 496,  672, 476,  650, 502,  650, 506,  650, 510,  674, 488,  650, 482,  694};  // WHIRLPOOL_AC
uint8_t state[21] = {0x83, 0x06, 0x05, 0x82, 0x00, 0x00, 0x86, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01};

Also I have observed that irsend.sendWhirlpoolAC(state); is more reliable than Sending raw data. I say this coz It takes couple of repetition of same data before the receiver could identify and respond to it.
Where in sending STATE responds immediately right from the first transmission of data.

This happens with GREE AC also, I have provided the data captured for the same using IRDumpV2.ino

Remote link : https://www.alibaba.com/product-detail/Replacement-Air-Conditioner-Remote-Control-IR_62196228121.html

Timestamp : 000167.546
Library   : v2.7.19

Protocol  : GREE
Code      : 0x010B2050004200A0 (64 Bits)
Mesg Desc.: Model: 1 (YAW1F), Power: Off, Mode: 1 (Cool), Temp: 27C, Fan: 0 (Auto), Turbo: Off, IFeel: Off, WiFi: On, XFan: Off, Light: On, Sleep: Off, Swing(V) Mode: Manual, Swing(V): 0 (Last), Timer: Off, Display Temp: 2 (Inside)
uint16_t rawData[139] = {9050, 4430,  710, 1596,  710, 496,  710, 496,  710, 496,  710, 494,  710, 496,  710, 496,  710, 494,  710, 1596,  712, 1596,  710, 496,  710, 1596,  712, 496,  708, 496,  710, 494,  710, 494,  710, 494,  710, 496,  710, 494,  710, 496,  710, 496,  712, 1594,  710, 496,  710, 494,  710, 496,  710, 496,  710, 496,  710, 496,  710, 1596,  710, 496,  710, 1598,  710, 496,  708, 496,  708, 1598,  710, 496,  708, 19930,  710, 496,  710, 496,  708, 496,  708, 498,  708, 496,  710, 496,  708, 498,  708, 496,  710, 496,  710, 1596,  708, 496,  710, 496,  708, 496,  710, 496,  710, 1598,  710, 496,  710, 496,  710, 496,  708, 496,  708, 496,  710, 496,  710, 496,  710, 496,  708, 496,  710, 496,  710, 498,  708, 498,  708, 496,  708, 498,  708, 1598,  708, 498,  708, 1598,  710};  // GREE
uint8_t state[8] = {0x01, 0x0B, 0x20, 0x50, 0x00, 0x42, 0x00, 0xA0};


Timestamp : 000168.992
Library   : v2.7.19

Protocol  : GREE
Code      : 0x090B605000420020 (64 Bits)
Mesg Desc.: Model: 1 (YAW1F), Power: On, Mode: 1 (Cool), Temp: 27C, Fan: 0 (Auto), Turbo: Off, IFeel: Off, WiFi: On, XFan: Off, Light: On, Sleep: Off, Swing(V) Mode: Manual, Swing(V): 0 (Last), Timer: Off, Display Temp: 2 (Inside)
uint16_t rawData[139] = {9072, 4434,  708, 1600,  706, 500,  706, 500,  706, 1600,  706, 500,  706, 500,  706, 500,  706, 498,  706, 1600,  706, 1600,  708, 500,  706, 1600,  706, 500,  706, 498,  708, 498,  706, 500,  706, 500,  706, 498,  706, 498,  706, 500,  706, 500,  706, 1600,  706, 1600,  708, 498,  708, 498,  708, 498,  706, 500,  706, 498,  706, 1600,  708, 498,  706, 1598,  708, 498,  706, 498,  708, 1600,  708, 498,  706, 19934,  708, 498,  706, 498,  706, 500,  706, 498,  706, 498,  706, 500,  706, 498,  706, 500,  706, 500,  706, 1600,  708, 498,  706, 526,  706, 500,  706, 500,  706, 1600,  708, 498,  706, 500,  706, 500,  706, 498,  706, 498,  706, 500,  706, 500,  706, 498,  706, 500,  706, 500,  706, 498,  706, 498,  708, 498,  706, 498,  706, 1600,  708, 498,  706, 498,  706};  // GREE
uint8_t state[8] = {0x09, 0x0B, 0x60, 0x50, 0x00, 0x42, 0x00, 0x20};


Timestamp : 000170.777
Library   : v2.7.19

Protocol  : GREE
Code      : 0x010B2050004200A0 (64 Bits)
Mesg Desc.: Model: 1 (YAW1F), Power: Off, Mode: 1 (Cool), Temp: 27C, Fan: 0 (Auto), Turbo: Off, IFeel: Off, WiFi: On, XFan: Off, Light: On, Sleep: Off, Swing(V) Mode: Manual, Swing(V): 0 (Last), Timer: Off, Display Temp: 2 (Inside)
uint16_t rawData[139] = {9074, 4432,  708, 1600,  706, 500,  706, 500,  708, 498,  706, 500,  706, 498,  706, 500,  706, 500,  706, 1600,  706, 1600,  706, 500,  706, 1600,  706, 500,  706, 500,  706, 500,  706, 500,  706, 500,  706, 498,  706, 500,  706, 500,  706, 502,  704, 1600,  708, 498,  708, 498,  706, 500,  706, 498,  708, 498,  706, 500,  706, 1600,  706, 500,  706, 1600,  708, 500,  706, 498,  706, 1600,  708, 500,  706, 19932,  706, 502,  706, 500,  706, 502,  704, 500,  706, 500,  704, 500,  706, 500,  706, 500,  704, 500,  706, 1602,  706, 500,  706, 500,  704, 500,  704, 502,  706, 1600,  706, 500,  704, 502,  704, 502,  704, 500,  706, 500,  706, 500,  706, 500,  706, 500,  706, 500,  706, 500,  706, 500,  704, 500,  706, 500,  706, 500,  706, 1600,  708, 500,  706, 1600,  706};  // GREE
uint8_t state[8] = {0x01, 0x0B, 0x20, 0x50, 0x00, 0x42, 0x00, 0xA0};


Timestamp : 000172.164
Library   : v2.7.19

Protocol  : GREE
Code      : 0x090B605000420020 (64 Bits)
Mesg Desc.: Model: 1 (YAW1F), Power: On, Mode: 1 (Cool), Temp: 27C, Fan: 0 (Auto), Turbo: Off, IFeel: Off, WiFi: On, XFan: Off, Light: On, Sleep: Off, Swing(V) Mode: Manual, Swing(V): 0 (Last), Timer: Off, Display Temp: 2 (Inside)
uint16_t rawData[139] = {9022, 4456,  684, 1624,  682, 524,  682, 524,  682, 1626,  682, 524,  682, 524,  682, 524,  682, 522,  682, 1624,  682, 1626,  682, 524,  682, 1624,  682, 524,  682, 524,  682, 524,  706, 500,  682, 524,  682, 524,  682, 524,  682, 524,  682, 524,  680, 1624,  682, 1626,  702, 504,  682, 524,  682, 524,  700, 506,  706, 500,  682, 1626,  680, 524,  682, 1626,  682, 524,  682, 524,  682, 1624,  682, 524,  680, 19958,  682, 524,  704, 502,  680, 524,  682, 524,  682, 524,  682, 524,  696, 508,  682, 522,  708, 500,  706, 1600,  706, 500,  682, 522,  706, 498,  706, 500,  682, 1622,  684, 524,  706, 500,  706, 498,  708, 498,  706, 498,  706, 500,  708, 498,  684, 522,  706, 500,  706, 500,  706, 500,  706, 500,  708, 498,  708, 498,  706, 1600,  708, 498,  708, 498,  706};  // GREE
uint8_t state[8] = {0x09, 0x0B, 0x60, 0x50, 0x00, 0x42, 0x00, 0x20};

I really have no Idea why the rawData[] is changing every time for same data transmission. This is observed in all remotes that deals with more than 60BIt data.

@Suryeah
Copy link
Author

Suryeah commented Aug 31, 2021

What devices (remote and the device control) have you gotten working/tried so far. So we can add them to the supported list etc.

Sure thing, Here the devices I have tried and is working successfully.

  1. ZH/JT-01
  2. YAN1F1
  3. YAN1F1
  4. I'm Working on this one now VS230

@crankyoldgit
Copy link
Owner

I really have no Idea why the rawData[] is changing every time for same data transmission. This is observed in all remotes that deals with more than 60BIt data.

Read the FAQ on this: https://github.com/crankyoldgit/IRremoteESP8266/wiki/Frequently-Asked-Questions#Why_is_the_raw_data_for_a_button_or_AC_state_always_different_for_each_capture

@crankyoldgit
Copy link
Owner

What devices (remote and the device control) have you gotten working/tried so far. So we can add them to the supported list etc.

Sure thing, Here the devices I have tried and is working successfully.

  1. ZH/JT-01
  2. YAN1F1
  3. YAN1F1
  4. I'm Working on this one now VS230

What protocol(s) goes with which device(s)?

Rather than links to purchase pages, can you please give us the brand & model numbers written on each device (remote & A/C) and which protocol the library is detecting it as etc.

@Suryeah Suryeah closed this as completed Sep 3, 2021
crankyoldgit added a commit that referenced this issue Nov 19, 2021
_v2.8.0 (20211119)_

**[Bug Fixes]**
- Fix compilation issue when using old 8266 Arduino Frameworks. (#1639 #1640)
- Fix potential security issue with `scrape_supported_devices.py` (#1616 #1619)

**[Features]**
- SAMSUNG_AC
  - Change `clean` setting to a toggle. (#1676 #1677)
  - Highest fan speed is available without Powerful setting. (#1675 #1678)
  - Change `beep` setting to a toggle. (#1669 #1671)
  - Fix Beep for AR12TXEAAWKNEU (#1668 #1669)
  - Add support for Horizontal Swing & Econo (#1277 #1667)
  - Add support for On, Off, & Sleep Timers (#1277 #1662)
  - Fix power control. Clean-up code & bitmaps from Checksum changes. (#1277 #1648 #1650)
- HAIER_AC176/HAIER_AC_YRW02
  - Add support A/B unit setting (#1672)
  - Add support degree Fahrenheit (#1659)
  - Add support `Lock` function (#1652)
  - Implement horizontal swing feature (#1641)
  - Implement Quiet setting. (#1634 #1635)
- Basic support for Airton Protocol (#1670 #1681)
- HAIER_AC176: Add Turbo and Quiet settings (#1634)
- Gree: Add `SwingH` & `Econo` control. (#1587 #1653)
- MIRAGE
  - Add experimental detailed support. (#1573 #1615)
  - Experimental detailed support for KKG29A-C1 remote. (#1573 #1660)
- ELECTRA_AC: Add support for "IFeel" & Sensor settings. (#1644 #1645)
- Add Russian translation (#1649)
- Add Swedish translation (#1627)
- Reduce flash space used. (#1633)
- Strings finally in Flash! (#1493 #1614 #1623)
- Add support for Rhoss Idrowall MPCV 20-30-35-40 A/C protocol (#1630)
- Make `IRAc::opmodeToString()` output nicer for humans. (#1613)
- TCL112AC/TEKNOPOINT: Add support for `GZ055BE1` model (#1486 #1602)
- Support for Arris protocol. (#1598)
- SharpAc: Allow position control of SwingV (#1590 #1594)

**[Misc]**
- HAIER_AC176/HAIER_AC_YRW02
  - Replace some magic numbers with constants (#1679)
  - Small fix `Quiet` and `Turbo` test (#1674)
  - Fix `IRHaierAC176::getTemp()` return value description (#1663)
- Security Policy creation and changes. (#1616 #1617 #1618 #1621 #1680)
- IRrecvDumpV2/3: Update PlatformIO envs for missing languages (#1661)
- IRMQTTServer
  - Use the correct string for Fan mode in Home Assistant. (#1610 #1657)
  - Move a lot of the strings/text to flash. (#1638)
- Minor code style improvements. (#1656)
- Update Supported Devices
  - HAIER_AC176 (#1673)
  - LG A/C (#1651 #1655)
  - Symphony (#1603 #1605)
  - Epson (#1574 #1601)
  - GREE (#1587 #1588)
  - SharpAc (#1590 #1591)
- Add extra tests for LG2 protocol (#1654)
- Fix parameter expansion in several macros.
- Move some strings to `IRtext.cpp` & `locale/default.h` (#1637)
- RHOSS: Move include and defines to their correct places (#1636)
- Make makefile only build required files when running `run-%` target (#1632)
- Update Portuguese translation (#1628)
- Add possibility to run specific test case (#1625)
- Change `googletest` library ignore (#1626)
- Re-work "Fan Only" strings & matching. (#1610)
- Address `C0209` pylint warnings. (#1608)
crankyoldgit added a commit that referenced this issue Nov 19, 2021
## _v2.8.0 (20211119)_

**[Bug Fixes]**
- Fix compilation issue when using old 8266 Arduino Frameworks. (#1639 #1640)
- Fix potential security issue with `scrape_supported_devices.py` (#1616 #1619)

**[Features]**
- SAMSUNG_AC
  - Change `clean` setting to a toggle. (#1676 #1677)
  - Highest fan speed is available without Powerful setting. (#1675 #1678)
  - Change `beep` setting to a toggle. (#1669 #1671)
  - Fix Beep for AR12TXEAAWKNEU (#1668 #1669)
  - Add support for Horizontal Swing & Econo (#1277 #1667)
  - Add support for On, Off, & Sleep Timers (#1277 #1662)
  - Fix power control. Clean-up code & bitmaps from Checksum changes. (#1277 #1648 #1650)
- HAIER_AC176/HAIER_AC_YRW02
  - Add support A/B unit setting (#1672)
  - Add support degree Fahrenheit (#1659)
  - Add support `Lock` function (#1652)
  - Implement horizontal swing feature (#1641)
  - Implement Quiet setting. (#1634 #1635)
- Basic support for Airton Protocol (#1670 #1681)
- HAIER_AC176: Add Turbo and Quiet settings (#1634)
- Gree: Add `SwingH` & `Econo` control. (#1587 #1653)
- MIRAGE
  - Add experimental detailed support. (#1573 #1615)
  - Experimental detailed support for KKG29A-C1 remote. (#1573 #1660)
- ELECTRA_AC: Add support for "IFeel" & Sensor settings. (#1644 #1645)
- Add Russian translation (#1649)
- Add Swedish translation (#1627)
- Reduce flash space used. (#1633)
- Strings finally in Flash! (#1493 #1614 #1623)
- Add support for Rhoss Idrowall MPCV 20-30-35-40 A/C protocol (#1630)
- Make `IRAc::opmodeToString()` output nicer for humans. (#1613)
- TCL112AC/TEKNOPOINT: Add support for `GZ055BE1` model (#1486 #1602)
- Support for Arris protocol. (#1598)
- SharpAc: Allow position control of SwingV (#1590 #1594)

**[Misc]**
- HAIER_AC176/HAIER_AC_YRW02
  - Replace some magic numbers with constants (#1679)
  - Small fix `Quiet` and `Turbo` test (#1674)
  - Fix `IRHaierAC176::getTemp()` return value description (#1663)
- Security Policy creation and changes. (#1616 #1617 #1618 #1621 #1680)
- IRrecvDumpV2/3: Update PlatformIO envs for missing languages (#1661)
- IRMQTTServer
  - Use the correct string for Fan mode in Home Assistant. (#1610 #1657)
  - Move a lot of the strings/text to flash. (#1638)
- Minor code style improvements. (#1656)
- Update Supported Devices
  - HAIER_AC176 (#1673)
  - LG A/C (#1651 #1655)
  - Symphony (#1603 #1605)
  - Epson (#1574 #1601)
  - GREE (#1587 #1588)
  - SharpAc (#1590 #1591)
- Add extra tests for LG2 protocol (#1654)
- Fix parameter expansion in several macros.
- Move some strings to `IRtext.cpp` & `locale/default.h` (#1637)
- RHOSS: Move include and defines to their correct places (#1636)
- Make makefile only build required files when running `run-%` target (#1632)
- Update Portuguese translation (#1628)
- Add possibility to run specific test case (#1625)
- Change `googletest` library ignore (#1626)
- Re-work "Fan Only" strings & matching. (#1610)
- Address `C0209` pylint warnings. (#1608)
@crankyoldgit
Copy link
Owner

FYI, the changes mentioned above have now been included in the new v2.8.0 release of the library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants