Hi,
I'm using this example for my Samsung AR12KSFPEWQNET
It works but not good.
Wings can be set on and off when fan is in
ac.setFan(kSamsungAcFanHigh);
Every other states has no effect on wings.
Power mode and quiet mode does not work at all.
I tried ac.setPower(true) and ac.setQuiet(true) with no luck.
Quiet mode is pretty important to me, any idea on how to fix those problems?
Thanks
Edit:
ac.off() does not work like in the example I mentioned, I need to use ac.sendOff() to power off the AC.
The on/off issue is/was a know bug & problem. It has been fixed after the 2.6.0 release. See https://github.com/markszabo/IRremoteESP8266/pull/695 , so either grab the master branch, or wait for the next release.
The swing issue is an unresolved analysis issue. See https://github.com/markszabo/IRremoteESP8266/issues/505#issuecomment-428023616
e.g. I pointed out there is more to the swing bits than @Hollako said there was.
See also https://github.com/markszabo/IRremoteESP8266/blob/master/src/ir_Samsung.cpp#L541 & https://github.com/markszabo/IRremoteESP8266/blob/master/src/ir_Samsung.cpp#L547
More data and analysis is needed. If you want to do that, that'd be great. I'm happy to fix/improve the code but I don't have a Samsung A/C and remote so I can't do it myself.
If you can capture some data (with IRrecvDumpV2) with Quiet on and off I can try to fix what ever problem that may be.
Here some raw readings I used that works ok while sending raw.
This is my working
QUIET MODE ON:
624,17360,3076,8902,520,476,520,1472,520,476,520,474,520,476,520,476,520,474,522,476,520,478,518,1476,516,500,494,502,548,448,546,450,544,452,522,1468,520,1474,520,1472,520,1472,520,1472,520,476,520,476,518,478,516,480,516,500,496,500,494,502,550,446,546,450,544,452,524,472,522,474,518,476,520,476,520,474,522,474,520,474,520,476,520,474,520,476,518,478,518,480,516,480,516,502,494,502,548,1444,524,472,522,472,520,474,518,478,518,476,520,476,520,1472,520,1470,520,1472,520,1474,516,2980,2998,8980,498,1498,548,448,526,470,544,452,524,472,520,474,520,476,520,476,520,476,520,1472,520,474,520,476,520,1474,518,1476,516,1496,496,1498,548,446,546,1446,524,1468,518,1474,520,1472,520,1472,520,1472,520,1474,518,1476,518,480,516,500,496,528,520,1446,544,1446,524,1470,518,476,520,476,520,474,520,476,520,474,520,476,520,474,520,476,520,476,518,1476,516,482,514,502,548,448,548,1442,544,452,522,474,518,476,518,476,520,476,520,474,520,476,520,1472,520,1470,522,1474,518,1476,536
QUIET MODE ON, SWING OFF
624,17808,2998,8962,518,478,518,1474,518,500,496,500,494,502,548,448,546,450,524,472,522,474,520,1472,520,476,522,474,520,476,520,474,522,474,520,1472,520,1474,518,1478,514,1498,494,1498,546,450,544,452,522,474,520,476,520,476,520,476,520,476,520,476,520,476,520,474,522,474,520,476,520,478,518,480,516,482,514,502,494,502,548,448,546,450,544,452,522,474,520,476,518,476,520,476,520,476,520,1472,520,476,520,474,522,476,520,478,518,478,518,480,514,1498,494,1498,546,1446,524,1468,522,2976,3058,8906,520,1472,522,476,520,474,520,476,522,474,520,478,520,478,518,480,516,500,494,1498,496,502,548,448,544,1448,522,1472,518,1474,520,1472,520,476,520,1472,522,1472,520,1476,518,1478,514,1498,550,1444,546,1448,522,1470,518,476,520,476,520,476,520,1472,520,1472,520,1472,520,478,518,478,518,480,516,502,494,502,494,502,548,448,544,452,522,472,520,1472,518,478,520,476,520,476,520,1472,520,476,520,476,520,476,520,478,518,480,516,480,514,502,494,1498,548,1444,524,1468,520,1472,522
QUIET MODE ON, SWING ON
624,17788,3078,8908,516,476,518,1474,520,476,520,476,522,474,520,476,520,476,520,476,518,478,518,1478,514,502,494,502,550,446,546,450,544,452,524,1468,520,1472,520,1472,522,1472,520,1472,520,476,520,476,520,478,516,480,518,500,496,500,494,502,550,448,546,450,544,452,522,474,518,476,518,478,520,476,520,474,522,474,520,476,520,474,522,476,520,478,518,478,518,480,516,500,496,502,546,450,548,1444,530,466,522,474,520,476,518,476,520,476,520,476,520,1472,520,1472,520,1474,520,1474,516,2984,2996,8984,498,1498,550,446,546,450,544,452,522,474,518,478,518,478,520,476,520,476,520,1470,522,476,520,474,522,1474,518,478,516,480,516,500,496,1498,550,1444,544,1448,522,1470,518,478,520,1472,522,476,520,1472,520,1472,520,476,520,478,518,480,516,1498,550,1444,546,1448,544,452,522,472,520,476,518,476,520,476,520,474,520,476,522,474,520,476,520,1472,520,478,518,480,516,480,516,1498,550,446,548,448,546,450,524,472,520,476,518,476,520,476,522,1472,520,1472,520,1470,522,1472,520
POWER MODE:
624,17376,3058,8904,538,454,520,1472,520,476,520,474,520,476,520,476,520,476,520,478,518,478,518,1496,496,502,550,446,548,1442,540,456,524,470,520,1472,518,1474,520,1472,520,1472,520,1472,520,476,520,476,518,480,516,480,514,502,550,448,548,448,544,450,544,450,522,474,520,474,520,476,520,476,522,474,520,476,520,476,520,476,520,476,520,476,520,478,518,478,516,480,516,502,514,480,550,446,548,448,544,452,524,472,520,478,516,478,518,474,522,476,520,1470,522,1472,520,1472,520,1474,516,2984,3046,8928,498,1498,550,446,546,450,524,470,522,474,518,476,518,478,520,476,520,476,520,1472,520,476,520,476,520,476,518,1474,518,482,514,1496,496,502,548,1444,524,1468,522,1468,520,1472,520,1472,520,1472,520,1470,520,1474,518,1474,516,1496,550,446,548,1444,544,1446,524,1470,518,476,520,476,520,474,520,474,520,476,520,474,520,474,520,476,520,478,518,1494,498,1498,550,1442,548,1446,522,1470,520,474,520,478,520,476,520,474,520,476,520,476,520,474,520,1472,520,1476,516,1494,498,1498,518
POWER MODE ON, SWING OFF
624,17786,3078,8904,520,476,518,1474,520,476,520,476,520,476,520,476,520,476,520,476,520,478,516,1478,516,502,494,502,548,1444,544,452,524,472,520,1470,520,1474,520,1472,520,1470,522,1472,520,476,520,478,518,480,516,480,516,502,494,502,548,448,546,450,544,452,522,474,520,476,518,476,520,476,520,476,520,476,520,476,520,474,520,476,520,476,520,478,518,480,516,500,496,502,494,502,548,448,546,450,526,470,524,472,520,476,518,476,520,476,520,476,520,1472,520,1472,520,1472,520,1474,516,2984,2996,8984,498,1498,550,446,546,450,544,450,524,472,518,478,518,478,520,476,520,476,520,1472,520,476,520,476,520,478,518,1496,498,480,516,1496,552,446,550,1444,544,1448,522,1472,518,1474,522,1472,520,1472,522,1470,522,1474,518,1476,516,1498,494,502,550,1444,544,1450,520,1402,588,478,520,476,520,476,520,476,520,476,520,476,520,474,520,476,520,478,516,1478,514,1498,494,1498,548,1446,524,1470,518,478,518,476,520,476,520,476,520,476,520,476,520,476,520,1474,518,1476,516,1496,496,1500,518
POWER MODE ON, SWING ON
624,17802,2996,8962,518,476,520,1476,516,482,514,502,494,502,548,448,546,450,534,462,522,474,518,1474,518,478,520,474,520,1472,522,474,520,476,520,1474,520,1476,516,1496,496,1498,550,1444,540,456,524,472,520,476,518,478,520,476,520,476,520,474,520,476,520,474,520,476,520,478,518,478,518,478,516,480,516,502,494,502,548,448,546,450,544,452,524,472,520,474,518,478,520,476,520,476,520,476,520,476,520,476,520,476,520,476,520,476,520,480,516,480,516,1498,550,1442,548,1446,524,1470,520,2976,3058,8906,520,1472,520,476,520,476,520,476,520,476,520,476,518,478,518,480,516,500,494,1498,496,502,546,450,544,452,524,472,520,1472,518,1474,520,476,520,1472,520,1472,520,1472,520,478,518,1476,516,502,494,1500,548,1444,524,1470,520,1472,520,476,520,1474,518,1474,520,1472,520,476,522,476,520,478,518,480,514,502,494,502,494,502,548,448,544,452,540,1452,520,1472,518,1474,520,1470,522,1472,522,474,520,476,518,478,518,480,516,482,514,502,494,502,550,1444,544,1448,522,1468,520,1474,520
some other readings if it can help
FAN LOW, SWING OFF
624,17788,3076,8930,494,478,518,1474,522,474,520,476,520,474,522,474,520,476,520,476,520,478,518,1478,514,502,494,502,548,1442,546,452,524,472,522,1470,518,1474,520,1472,520,1472,520,1472,522,476,520,478,518,478,518,480,516,502,494,502,548,446,546,450,534,462,522,472,520,476,518,476,520,476,520,476,520,474,522,474,520,476,520,474,520,476,520,478,518,478,518,480,516,502,492,502,550,446,546,450,540,454,522,474,520,474,518,478,520,476,520,474,522,1472,520,1472,520,1472,520,1476,516,2984,2996,8984,498,1500,548,446,546,450,544,452,524,472,520,476,518,478,520,476,520,476,520,1472,520,476,520,476,522,476,518,1476,516,1478,514,1498,550,446,546,1448,524,1468,518,1474,520,1472,520,1472,520,1472,520,1472,520,1476,518,480,516,482,516,500,494,1498,546,1446,524,1468,520,476,518,478,520,474,520,476,520,474,520,476,520,476,520,476,520,478,518,1476,516,482,514,1498,494,502,550,1442,524,472,522,474,520,476,518,478,520,476,522,474,520,476,520,1472,520,1472,520,1474,518,1498,516
FAN LOW, SWING ON
608,17790,3078,8928,494,476,520,1472,520,476,520,474,522,476,520,476,520,476,520,478,518,478,516,1498,496,502,548,448,548,1444,544,452,524,472,520,1472,518,1474,522,1470,520,1472,520,1472,522,476,518,478,518,480,516,500,496,500,550,448,548,446,546,450,526,470,522,474,520,476,520,478,520,476,520,476,520,476,520,474,522,474,520,476,522,478,518,478,518,480,516,500,494,502,548,448,548,448,546,450,524,472,522,474,520,476,518,478,520,476,520,476,520,1470,522,1472,520,1474,520,1476,528,2968,2998,8984,498,1498,550,446,544,452,524,470,522,474,518,476,520,476,520,476,520,476,520,1470,522,474,522,476,520,476,520,478,518,480,516,482,514,1498,550,1442,546,1448,522,1470,518,478,520,1472,522,474,522,1470,522,1472,520,476,520,478,518,478,516,1498,494,1498,550,1444,544,450,524,472,520,476,518,478,518,476,520,476,520,476,520,474,520,476,520,1472,520,478,518,1476,516,502,494,1498,548,448,546,450,546,450,522,474,520,474,518,476,520,476,522,1472,520,1472,520,1472,520,1474,518
AC ON
624,17840,2996,8962,518,480,536,1474,518,462,532,482,548,448,546,448,526,470,522,474,520,476,518,1474,520,474,542,454,528,1466,540,454,522,476,540,1454,538,1474,518,1462,512,1498,546,1444,544,454,542,454,520,476,524,472,540,454,542,454,542,454,522,474,522,474,542,454,540,456,538,460,516,500,516,482,494,500,550,446,526,470,526,468,524,472,542,454,542,454,520,474,542,454,542,454,528,468,542,454,542,454,542,456,518,478,538,460,520,496,518,478,494,1500,572,1420,546,1446,520,1474,540,2954,3060,8906,538,1452,520,476,542,454,542,456,540,456,540,458,518,480,516,482,534,462,512,1498,546,448,528,468,522,1472,518,476,520,1474,520,1474,538,1452,524,1466,542,1474,552,1440,498,500,516,462,534,480,546,450,548,448,522,474,574,422,518,478,518,476,542,454,542,454,544,452,542,454,542,454,542,454,540,458,538,458,538,460,536,480,516,480,570,426,548,448,550,444,524,472,520,474,542,454,520,476,542,454,542,454,542,454,542,452,542,454,542,454,540,456,540,458,536,462,534,2962,2996,8988,572,1420,546,448,526,470,522,472,520,476,542,454,542,454,542,454,542,454,542,1452,540,452,542,454,542,456,540,1474,520,1472,518,1480,542,452,546,1448,518,1474,538,1452,540,1474,518,1450,542,1450,542,1454,538,1474,520,478,518,480,516,480,548,1446,548,1444,540,1452,516,476,542,454,542,454,542,452,542,454,544,454,542,454,542,454,540,456,540,1472,522,478,516,1500,526,446,560,1434,520,474,520,476,542,454,544,452,542,452,544,454,542,452,542,1454,538,1454,540,1470,520,1472,564"
AC OFF
626,17858,3002,8962,516,476,518,1474,520,476,520,476,520,476,520,476,520,476,520,478,518,480,518,1476,514,502,494,502,548,1444,544,1448,522,474,518,1472,520,1474,520,1472,520,1472,542,1452,518,478,518,480,516,482,514,502,494,502,494,502,548,448,532,464,522,472,520,476,518,478,518,478,518,476,520,476,520,476,520,476,520,476,520,476,518,478,518,480,516,480,516,502,494,502,518,478,548,448,544,452,522,472,522,474,518,478,518,476,520,476,520,476,520,476,520,476,520,1472,518,1476,516,3004,3030,8928,498,1498,494,502,548,448,544,452,522,472,522,474,520,476,520,476,520,476,520,1472,520,476,520,476,520,1472,520,478,518,1496,496,1498,494,1500,544,1448,524,1470,518,1472,520,478,520,476,520,476,520,474,520,476,520,476,520,478,518,478,518,480,514,502,494,500,494,502,548,448,544,452,542,452,524,472,520,478,518,478,518,478,520,476,520,474,520,476,520,474,522,476,520,478,518,478,516,480,516,482,514,502,494,502,548,448,544,452,544,450,522,474,520,476,518,478,520,2976,3056,8908,572,1418,518,476,520,476,520,476,518,478,518,478,516,480,516,500,496,502,494,1498,546,452,542,452,522,474,518,478,518,476,520,476,520,1472,520,1472,520,1472,520,1474,518,1478,514,1496,496,1500,544,1448,522,1468,520,476,518,478,520,476,520,1472,520,1472,520,1474,518,478,518,480,516,480,516,500,494,500,496,502,548,448,544,452,528,468,522,1472,518,478,518,1474,520,476,520,1472,520,476,520,476,520,476,520,478,518,482,514,482,514,500,496,502,548,448,544,1448,522,1470,520"
AUTO MODE:
586,15134,2996,8960,520,474,520,1472,520,478,518,480,518,478,516,500,494,502,548,446,550,446,526,1466,542,452,520,476,520,1472,520,476,520,476,520,1472,522,1472,520,1472,520,1476,516,1494,552,446,550,446,524,470,546,450,522,474,518,476,518,478,520,476,520,474,520,476,520,474,520,474,522,476,520,476,518,478,518,480,516,502,494,502,494,502,548,446,548,448,548,448,522,472,518,476,518,478,520,476,520,476,520,476,522,474,520,474,522,476,520,476,518,1476,516,1496,496,1498,550,1444,520,2956,3074,8906,520,1470,520,474,522,476,520,474,522,474,520,474,522,474,520,476,520,476,520,1474,516,502,494,502,520,1472,546,1446,524,1468,520,1474,520,476,520,1472,522,1470,522,1472,520,1474,518,1476,516,1496,496,1498,550,1444,524,472,522,474,520,476,518,1474,520,1472,522,1470,522,474,520,476,520,476,518,478,518,478,516,500,496,502,494,502,550,446,544,1446,524,472,520,476,518,476,520,1472,522,474,520,476,520,474,520,476,520,476,520,476,518,480,516,1496,496,1498,548,1444,546,1446,520
Hope it can help. please let me know if you find out how to solve the Quier, Power and swing mode.
@crankyoldgit
Can you give me the equivalent of "QUIET MODE ON" with just the QUIET mode off?
i.e. Where only that setting has changed so I can compare the two.
As stated before, the power on/off should be solved if you use the master branch. It was fixed in PR #695
Can you give me the equivalent of "QUIET MODE ON" with just the QUIET mode off?
i.e. Where only that setting has changed so I can compare the two.As stated before, the power on/off should be solved if you use the
masterbranch. It was fixed in PR #695
I'm at work now, I will give you that in 8 hours more or less.
Do you need something else even for swing and power mode?
Thanks
To be clear, I need two captures from you to fix Quiet:
1) The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet Off
2) The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet On
That is so we can have the situation that we can see what bits change for Quiet mode.
i.e. Exactly the same except for the quiet setting being changed.
Power on/off is already fixed. So no data as yet is needed for the moment.
If you want Swing to work, you are going to have to do the analysis yourself to workout and explain what bits are involved. i.e. you have to explain/work out which bits change when the swing setting is changed for ALL modes etc of the Samsung remote. Seriously, read through #505.
I suggest we tackle Quiet mode first. That should be easy.
PS. I don't need the raw data. Just the uint8_t state[14] ={ ... }; lines with a description of what you set the remote to should be fine.
ok this evening I will give you the infos. thanks
I don't understood why the same button creates different raw data every time.
every raw data works as expected even if it is different.
Read this: https://github.com/markszabo/IRremoteESP8266/wiki/Frequently-Asked-Questions#the-libraryexample-code-doesnt-understand-my-air-conditioner-remote-
Simple IR device protocols use a 12-48 bit value mapping a single button press. A/C remotes however tend to send the entire state of the remote to the device with each button press. e.g. Desired Temp., Operating Mode, Fan Speed, Fan Direction(s), Economy Mode(s), Sleep Modes, Time & Timer Modes, etc, plus a checksum. In short, imagine it sending every button on the remote for each button press. This can produce a message of around 128 bits of data, ...
it does not answer my question because same button, in the same state procudes different raw data on my remote.
in the same state
remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet Off
I can have different raw readings.
I have tried different readings for the same state and it works ok but can't understand why.
probably there is somethings related to current time?
Raw messages are a representation of an analogue message. i.e. If I taped someone Italian saying "Buon giorno", and played it back to you. You'd think I spoke Italian. But the same person who I recorded could say it again, and it would be slightly different. That's what sendRaw() does, it's like a .wav recording.
The next level the library has, if the base protocol is supported is to effectively convert the sounds to text. i.e. .wav to .txt. Much smaller. Similarly, the library essentially converts the "raw" format into a short "state[]" format. It can then also covert the text to speech, if we follow the same analogie. However, it's now digital, so it will always produce the same output to the speaker.
It doesn't understand the message, it just know how to covert sounds to letters, and vice versa.
The final level, if supported, is to understand what the text means. eg. grammar, and how to construct a sentence, to be fluent. That is, to covert the state[] into various AirCon settings, and vice versa.
Does that make sense?
Raw messages are a representation of an analogue message. i.e. If I taped someone Italian saying "Buon giorno", and played it back to you. You'd think I spoke Italian. But the same person who I recorded could say it again, and it would be slightly different. That's what
sendRaw()does, it's like a.wavrecording.The next level the library has, if the base protocol is supported is to effectively convert the sounds to text. i.e.
.wavto.txt. Much smaller. Similarly, the library essentially converts the "raw" format into a short "state[]" format. It can then also covert the text to speech, if we follow the same analogie. However, it's now digital, so it will always produce the same output to the speaker.
It doesn't understand the message, it just know how to covert sounds to letters, and vice versa.The final level, if supported, is to understand what the
textmeans. eg. grammar, and how to construct a sentence, to be fluent. That is, to covert thestate[]into various AirCon settings, and vice versa.Does that make sense?
wow. I really appreciate this explanations. you made my day. never understood before.
thanks! see you later for the ir codes :)
Congrats. You have just inspired an FAQ entry. https://github.com/markszabo/IRremoteESP8266/wiki/Frequently-Asked-Questions#why-is-the-raw-data-for-a-button-or-ac-state-always-different-for-each-capture
@crankyoldgit the output I'm going to attach is:
The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet On
The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet Off
repeated 2 times.
hope that helped
Timestamp : 000079.217
Encoding : SAMSUNG_AC
Code : 02820F000020F001F2FE710011F0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {632, 17340, 3076, 8906, 518, 478, 516, 1476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 518, 478, 518, 1476, 516, 502, 494, 502, 494, 502, 550, 446, 546, 450, 546, 1446, 520, 1474, 518, 1474, 520, 1472, 520, 1474, 518, 476, 520, 476, 520, 478, 518, 480, 516, 482, 514, 502, 494, 502, 548, 446, 546, 448, 546, 450, 544, 452, 520, 476, 518, 478, 520, 476, 520, 476, 520, 474, 522, 476, 520, 476, 520, 476, 520, 476, 518, 478, 518, 480, 516, 480, 516, 502, 494, 502, 550, 1444, 546, 450, 534, 462, 520, 476, 518, 478, 518, 476, 520, 476, 520, 1472, 522, 1472, 520, 1472, 522, 1474, 518, 2984, 2996, 8984, 498, 1498, 550, 446, 546, 450, 546, 450, 528, 470, 518, 476, 518, 478, 518, 476, 520, 476, 520, 1472, 520, 476, 520, 476, 520, 1474, 518, 1476, 518, 1498, 494, 1500, 550, 446, 546, 1444, 524, 1470, 518, 1474, 520, 1472, 520, 1472, 522, 1472, 520, 1474, 518, 1476, 516, 482, 516, 500, 494, 502, 550, 1442, 548, 1444, 544, 1448, 520, 476, 518, 478, 520, 476, 520, 474, 520, 476, 520, 476, 520, 476, 520, 476, 520, 478, 518, 1476, 516, 482, 514, 502, 550, 446, 550, 1442, 546, 450, 524, 472, 522, 474, 518, 478, 520, 476, 520, 476, 520, 476, 520, 1472, 520, 1474, 520, 1476, 516, 1478, 536}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x82, 0x0F, 0x00, 0x00, 0x20, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Timestamp : 000107.067
Encoding : SAMSUNG_AC
Code : 02920F000000F001F2FE710011F0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {608, 17368, 3078, 8904, 520, 478, 516, 1476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 478, 518, 478, 518, 1476, 516, 500, 494, 502, 550, 1442, 546, 452, 544, 450, 522, 1470, 520, 1472, 522, 1472, 520, 1474, 520, 1472, 520, 476, 518, 478, 518, 478, 516, 480, 516, 482, 514, 502, 548, 448, 548, 448, 544, 452, 536, 460, 520, 474, 520, 478, 518, 476, 522, 476, 518, 476, 520, 476, 520, 476, 520, 476, 520, 476, 518, 478, 518, 478, 518, 480, 514, 502, 494, 504, 550, 446, 546, 450, 544, 450, 546, 452, 520, 476, 520, 476, 520, 478, 520, 476, 518, 1472, 522, 1474, 518, 1474, 518, 1474, 518, 2984, 2996, 8984, 498, 1500, 550, 446, 568, 428, 544, 450, 530, 466, 520, 474, 520, 478, 518, 478, 520, 476, 520, 1474, 518, 474, 520, 476, 522, 1474, 516, 1478, 516, 1496, 554, 1442, 550, 446, 546, 1446, 544, 1450, 518, 1474, 520, 1474, 520, 1472, 520, 1472, 520, 1474, 518, 1476, 516, 480, 516, 500, 496, 502, 550, 1442, 546, 1446, 524, 1470, 518, 478, 518, 478, 520, 476, 520, 476, 520, 476, 520, 476, 520, 474, 522, 474, 520, 478, 516, 1478, 516, 482, 514, 502, 494, 504, 550, 1444, 544, 450, 544, 452, 518, 478, 518, 478, 518, 476, 520, 476, 520, 476, 520, 1472, 520, 1474, 520, 1474, 518, 1496, 516}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Timestamp : 000142.003
Encoding : SAMSUNG_AC
Code : 02820F000020F001F2FE710011F0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {628, 17396, 3080, 8906, 518, 476, 518, 1464, 530, 476, 520, 474, 522, 474, 522, 474, 520, 476, 520, 478, 520, 476, 518, 1476, 518, 500, 496, 502, 516, 480, 550, 446, 548, 448, 546, 1446, 518, 1474, 518, 1474, 520, 1474, 520, 1472, 520, 476, 520, 476, 520, 476, 518, 478, 518, 482, 514, 500, 494, 502, 530, 466, 550, 446, 548, 448, 524, 470, 544, 452, 518, 476, 520, 476, 520, 474, 520, 476, 520, 474, 542, 456, 520, 476, 522, 476, 520, 478, 518, 478, 516, 480, 516, 500, 496, 500, 552, 1442, 526, 470, 546, 450, 524, 472, 544, 452, 520, 476, 520, 476, 520, 1472, 520, 1474, 518, 1474, 520, 1494, 498, 2984, 2998, 8982, 498, 1496, 496, 502, 548, 448, 550, 444, 526, 470, 542, 454, 540, 456, 520, 476, 540, 456, 540, 1452, 520, 474, 520, 476, 540, 1454, 518, 1476, 516, 1494, 500, 1498, 548, 446, 548, 1446, 524, 1468, 540, 1450, 520, 1472, 520, 1472, 520, 1474, 520, 1474, 518, 1476, 538, 458, 536, 460, 514, 502, 552, 1444, 544, 1450, 522, 1470, 516, 476, 518, 478, 520, 476, 542, 454, 542, 454, 542, 454, 520, 476, 542, 454, 520, 478, 540, 1474, 520, 480, 494, 502, 550, 446, 552, 1442, 550, 444, 526, 470, 544, 452, 518, 476, 520, 476, 542, 454, 520, 476, 542, 1452, 520, 1474, 540, 1454, 518, 1476, 536}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x82, 0x0F, 0x00, 0x00, 0x20, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Timestamp : 000169.957
Encoding : SAMSUNG_AC
Code : 02920F000000F001F2FE710011F0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {624, 17402, 3018, 8968, 544, 450, 546, 1446, 520, 476, 518, 476, 520, 476, 520, 476, 520, 476, 520, 476, 522, 474, 520, 1474, 518, 478, 518, 478, 518, 1478, 514, 502, 492, 504, 550, 1444, 546, 1448, 522, 1470, 518, 1474, 520, 1472, 522, 474, 520, 476, 520, 476, 520, 476, 520, 478, 518, 478, 518, 480, 514, 502, 494, 504, 522, 474, 550, 446, 546, 448, 546, 450, 522, 472, 518, 478, 518, 476, 522, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 478, 518, 480, 516, 480, 516, 502, 496, 502, 550, 446, 550, 446, 546, 448, 546, 450, 522, 474, 520, 1472, 520, 1472, 520, 1472, 520, 1472, 520, 2984, 2996, 8966, 516, 1476, 516, 482, 514, 502, 494, 502, 550, 446, 550, 446, 544, 452, 544, 452, 520, 474, 520, 1474, 520, 476, 520, 474, 520, 1472, 520, 1472, 520, 1474, 518, 1476, 516, 480, 516, 1500, 550, 1444, 546, 1446, 522, 1470, 518, 1472, 522, 1472, 520, 1472, 520, 1472, 522, 474, 520, 478, 518, 478, 518, 1478, 514, 1498, 550, 1444, 546, 450, 544, 450, 522, 474, 520, 476, 518, 478, 520, 476, 520, 474, 522, 474, 520, 476, 520, 1472, 522, 476, 520, 478, 518, 480, 516, 1498, 494, 502, 550, 446, 548, 448, 546, 450, 546, 450, 520, 476, 518, 476, 520, 1474, 520, 1472, 520, 1472, 520, 1474, 518}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Quiet on: uint8_t state[14] = {0x02, 0x82, 0x0F, 0x00, 0x00, 0x20, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Quiet off: uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
The differences are in state[1] & state[5]
Quiet on:
uint8_t state[14] = {0x02, 0x82, 0x0F, 0x00, 0x00, 0x20, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
Quiet off:uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};The differences are in
state[1]&state[5]
so how can we fix the problem?
See PR #736 for the changes.
You can use the code in the Issue734 branch here: https://github.com/markszabo/IRremoteESP8266/tree/Issue734
Please test it out and let me know how it goes. It should work based on the data you've supplied.
@crankyoldgit
included the lib this way:
lib_deps = https://github.com/markszabo/IRremoteESP8266.git#Issue734
acir.setQuiet(true);
acir.send();
it doesn't work. quiet is not enabled, AC is noisy
any help appreciated
If you take a look at: https://github.com/markszabo/IRremoteESP8266/commit/bfcc92ffb0a506039d0bc122d55060901cae31cd
You will see I can/have (re)constructed the original state/message you reported as working when using the latest fix (the one you should be/are trying to use).
My guess is either a) you are not using the class/library correctly, or b) it isn't using the updated code/branch. i.e. It's probably still using the plain 2.6.0 release., or c) there is something else we don't understand about the Quiet setting.
If c), What is the state you have the acir class object in? To get a partial idea, what does the following output (untested & uncompiled example psuedo code):
acir.setQuiet(true);
Serial.print("Samsung AC is in the following state: ");
Serial.println(acir.toString);
acir.send();
or better still
acir.setQuiet(true);
Serial.print("Samsung AC is in the following state: ");
Serial.println(acir.toString);
uint8_t state[kSamsungAcStateLength] = acir.getRaw();
for (int i = 0; i < kSamsungAcStateLength; i++) {
Serial.printf("%d: %02x\n", i, state[i]);
}
acir.send();
@crankyoldgit
ok it works, I was wrong because I forgot to set the
acir.setQuiet(false);
when I want to exit the quiet state and switching from quiet to low produced no audible effect :)
now the only things that remains uncovered is the powerful state.
do you think that it will be easy to fix like the quiet mode?
If you want to do the same for the powerful/turbo state, sure. i.e. capture a similar pair of messages that should help isolate the bits.
@crankyoldgit
If you want to do the same for the powerful/turbo state, sure. i.e. capture a similar pair of messages that should help isolate the bits.
The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet Off POWER ON
The remote set to: On, Cool, 16C, Fan Auto, Swing Off, Beep Off Clean Off, & Quiet Off POWER OFF
repeated 2 times.
Timestamp : 000012.630
Encoding : SAMSUNG_AC
Code : 02920F000000F001A2FE77001FF0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 7 (TURBO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {624, 17366, 3074, 8912, 522, 474, 518, 1472, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 518, 1478, 516, 500, 496, 502, 494, 1500, 546, 450, 546, 450, 544, 1448, 520, 1474, 518, 1474, 518, 1474, 520, 1472, 520, 476, 520, 476, 518, 478, 518, 480, 516, 480, 516, 502, 494, 502, 550, 446, 548, 448, 544, 452, 522, 474, 520, 476, 518, 478, 518, 478, 520, 476, 520, 474, 520, 476, 520, 476, 520, 476, 520, 476, 518, 478, 518, 480, 516, 480, 516, 502, 494, 502, 550, 446, 546, 450, 546, 450, 544, 452, 520, 478, 518, 478, 520, 476, 520, 1472, 520, 1472, 520, 1472, 522, 1474, 518, 2982, 2998, 8986, 496, 1498, 550, 446, 550, 446, 546, 450, 546, 450, 522, 474, 518, 478, 518, 478, 520, 476, 520, 1474, 520, 476, 520, 476, 520, 476, 520, 1474, 518, 480, 516, 1498, 496, 502, 494, 1500, 548, 1444, 546, 1446, 518, 1474, 520, 1474, 520, 1472, 520, 1472, 520, 1474, 518, 1476, 518, 1496, 496, 502, 494, 1498, 550, 1442, 546, 1448, 520, 476, 518, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 520, 476, 518, 478, 520, 1476, 516, 1498, 496, 1500, 548, 1444, 546, 1448, 522, 472, 520, 476, 518, 478, 520, 476, 520, 476, 520, 476, 520, 476, 520, 1474, 518, 1476, 518, 1476, 516, 1496, 542}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xA2, 0xFE, 0x77, 0x00, 0x1F, 0xF0};
Timestamp : 000018.647
Encoding : UNKNOWN
Code : 7B551B62 (117 bits)
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {652, 17336, 3078, 8910, 562, 456, 546, 1448, 550, 446, 552, 444, 552, 444, 550, 446, 550, 446, 552, 446, 550, 446, 552, 1440, 550, 446, 550, 446, 550, 1470, 478, 518, 502, 492, 536, 1458, 542, 1450, 552, 1440, 552, 1442, 552, 1442, 550, 446, 550, 446, 550, 446, 552, 444, 550, 446, 550, 446, 550, 472, 524, 472, 480, 516, 510, 488, 538, 458, 542, 452, 548, 448, 550, 446, 550, 446, 550, 444, 552, 444, 552, 444, 552, 444, 552, 444, 552, 444, 552, 444, 550, 446, 550, 446, 550, 472, 524, 472, 482, 514, 510, 486, 536, 460, 542, 454, 546, 450, 550, 446, 552, 1442, 552, 1442, 550, 1442, 552, 1440, 508, 2994, 3030, 8932, 552, 1638, 356, 470, 526, 470, 506, 492, 510, 486, 542, 454, 544, 450, 550, 446, 554, 444, 550, 1442, 550, 444, 550, 446, 550, 1442, 552, 1440, 550, 1442, 550, 1470, 524, 470, 480, 1512, 512, 1480, 546, 1448, 550, 1442, 552, 1442, 552, 1442, 550, 1440, 552, 1440, 552, 446, 550, 444, 552, 444, 550, 1468, 484, 1510, 512, 1482, 544, 452, 550, 446, 552, 442, 554, 444, 552, 444, 554, 442, 554, 442, 552, 444, 554, 442, 554, 1440, 552, 444, 554, 442, 554, 468, 528, 1466, 508, 488, 512, 484, 544, 450, 550, 446, 554, 442, 556, 442, 554, 442, 554, 1438, 554, 1438, 554, 1438, 554, 1438, 562}; // UNKNOWN 7B551B62
second time
Timestamp : 000111.818
Encoding : SAMSUNG_AC
Code : 02920F000000F001A2FE77001FF0 (112 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 7 (TURBO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
Library : v2.6.0
Raw Timing[233]:
uint16_t rawData[233] = {636, 17358, 3056, 8912, 560, 456, 546, 1446, 552, 444, 552, 444, 552, 444, 552, 446, 550, 444, 552, 446, 550, 446, 552, 1442, 550, 446, 550, 446, 550, 1468, 480, 514, 506, 490, 536, 1458, 544, 1448, 550, 1444, 550, 1442, 552, 1442, 552, 444, 550, 444, 552, 446, 552, 444, 550, 444, 552, 446, 550, 472, 524, 472, 480, 516, 508, 488, 536, 460, 544, 452, 546, 450, 552, 444, 552, 444, 550, 444, 552, 444, 550, 446, 550, 444, 552, 444, 552, 444, 550, 446, 550, 446, 550, 446, 550, 472, 524, 472, 482, 514, 506, 488, 540, 458, 542, 454, 548, 448, 550, 444, 552, 1440, 552, 1440, 552, 1442, 552, 1440, 510, 2970, 3054, 8930, 554, 1442, 552, 470, 528, 468, 484, 510, 514, 484, 544, 452, 548, 448, 554, 444, 554, 442, 554, 1438, 554, 442, 554, 442, 554, 442, 554, 1438, 554, 442, 554, 1438, 554, 444, 554, 1466, 484, 1508, 512, 1480, 550, 1442, 556, 1436, 556, 1438, 556, 1438, 556, 1438, 556, 1436, 556, 1438, 556, 440, 556, 1464, 482, 1512, 510, 1482, 546, 450, 552, 442, 556, 440, 558, 438, 556, 440, 556, 440, 556, 440, 556, 440, 556, 440, 556, 1436, 556, 1436, 556, 1462, 530, 1462, 488, 1506, 538, 458, 550, 448, 552, 444, 556, 440, 556, 440, 556, 440, 556, 440, 558, 1434, 558, 1436, 556, 1436, 556, 1438, 578}; // SAMSUNG_AC
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xA2, 0xFE, 0x77, 0x00, 0x1F, 0xF0};
Timestamp : 000120.168
Encoding : UNKNOWN
Code : 3F824381 (117 bits)
Library : v2.6.0
Raw Timing[234]:
uint16_t rawData[234] = {638, 17290, 3080, 8908, 566, 452, 548, 1444, 554, 442, 554, 442, 554, 440, 554, 442, 554, 440, 556, 440, 556, 440, 556, 1438, 554, 442, 554, 442, 554, 1464, 528, 468, 486, 510, 510, 1484, 548, 1446, 552, 1442, 554, 1438, 554, 1438, 554, 442, 556, 440, 556, 442, 554, 440, 556, 442, 554, 442, 556, 468, 528, 466, 528, 468, 484, 510, 512, 484, 546, 450, 550, 446, 554, 442, 554, 442, 556, 440, 554, 442, 554, 442, 554, 442, 554, 442, 554, 442, 554, 442, 554, 442, 554, 442, 554, 442, 554, 468, 528, 468, 506, 490, 514, 482, 542, 452, 552, 446, 552, 444, 554, 1438, 554, 1440, 554, 1440, 552, 1440, 552, 2926, 3056, 8930, 552, 1442, 550, 470, 526, 470, 482, 514, 506, 488, 536, 460, 546, 450, 550, 446, 552, 444, 552, 1440, 554, 442, 554, 442, 554, 1440, 552, 1440, 552, 1442, 552, 1638, 356, 470, 526, 1466, 510, 1484, 542, 1450, 550, 1442, 552, 1442, 552, 1440, 552, 1440, 552, 1440, 552, 444, 550, 444, 552, 444, 196, 356, 1466, 526, 1466, 510, 1484, 544, 452, 548, 448, 552, 444, 552, 444, 552, 442, 554, 442, 552, 444, 554, 442, 554, 444, 552, 1440, 552, 444, 552, 444, 552, 444, 552, 1466, 482, 514, 508, 488, 536, 460, 548, 448, 550, 446, 552, 444, 552, 444, 552, 1440, 552, 1440, 552, 1440, 552, 1440, 532 }; // UNKNOWN 3F824381
For what ever reason, the two "Powerful Off" messages have poor quality data in them that stops them from being detected as valid Samsung AC messages.
I hacked the bad value to make it parse, and it results in:
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xF2, 0xFE, 0x71, 0x00, 0x11, 0xF0};
The "Powerful On" state is:
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 16C, Fan: 7 (TURBO), Swing: Off, Beep: Off, Clean: Off, Quiet: Off
uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xA2, 0xFE, 0x77, 0x00, 0x1F, 0xF0};
So it looks like "powerful" is controlled by state[8], state[10], & state[12]. As they are the only ones that differ.
state[10] is also used by Clean mode.
state[12] is used by Mode and Fan speed. Bits 0b01110000 for mode, & 0b00001110 for the Fan
The bits that change in state[12] are just the fan bits (seems likely)
So that leaves [8] & [10].
I'll code something up shortly.
Question: Can the powerful and quiet settings be on at the same time? Or does one turn off the other?
@sblantipodi FYI the Issue734 branch has been updated to include "Powerful" support for Samsung.
Please test and let me know.
@crankyoldgit
even If I write acir.setPower(true) before send it print
Power: On, Mode: 1 (COOL), Temp: 25C, Fan: 2 (LOW), Swing: Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off
why? it does not work for now... am I wrong in something?
PS: tested ESP at 160MHz it works as before now, thanks!
setPower() controls if the A/C is operating or not. true is A/C On, false is A/C Off.
setPowerful() controls if the A/C is in powerful (aka Turbo) mode. true is Turbo on, false is Turbo Off.
It depends what you are trying to do. Can you try explaining it a different way?
I'll also ask this again:
Question: Can the powerful and quiet settings be on at the same time? Or does one turn off the other?
@crankyoldgit
ok with setPowerful() it works like a charm.
there is no reason to turn both on, power and quet, I haven't got any automation to try this, I'm sorry.
can't wait to see this branch merged on the master branch...
is publishing to the official arduino repo automatic when you push on the master branch?
how do you push src to the official repo?
thanks.
if you need some other try I'm here.
thanks for the help and the excellent work man
ok with setPowerful() it works like a charm.
Excellent.
there is no reason to turn both on, power and quet, I haven't got any automation to try this, I'm sorry.
Yes, you do. The remote should show you. i.e. What happens when you hit the "quiet" button on the remote when the remote is in "powerful" mode? and vice versa.
Do they turn the other mode/setting off?
can't wait to see this branch merged on the master branch...
is publishing to the official arduino repo automatic when you push on the master branch?
No. It only happens when we make a release. I tend to make releases from the master branch every month or two.
However, you now know how to track the master branch in platformio. So you can keep up with the latest fixes and improvements if you want. The changes in PR #736 should get merged into master within 6 or so days, assuming no problems.
if you need some other try I'm here.
I believe the only thing not working as expected is setSwing() and getSwing(), as I noted in #505 there are some odd bits that change that still need explaining. If you can try and work out what those bits do, that would be a great help.
Unfortunately I don't know how to work with that bits
I can do some tests for you but really no idea on how to solve the swing problem
At the moment I workarounded the problem by setting fan to high while moving swings and then back to the previous setting. In this way I can move the swing without any problem.
Then capturing the state[] lines for what the remote 's message is for the _correct_ setting, when using the equivalent setBlah() steps don't work as expected, and reporting them here is a good place to start. i.e. Not using an work-a-rounds by setting the fan to high etc.
FYI, The changes mentioned above have been include in v2.6.1 of this library, which has just been released.
If I hit the quiet button on the remote when powerful is on it power off the powerful mode and starts the quiet one. And viceversa.
The hard things of the wings is that it remembers the position of the wings for every mode, cool, hot, auto, quiet, powerful.
Can't wait to upgrade to 2.6.1 doing it as soon as I can :)
Good work man
If I hit the quiet button on the remote when powerful is on it power off the powerful mode and starts the quiet one. And viceversa.
I figured it would. I'll add code to emulate that shortly. It's not a vital bit of emulation at this point. ;-)
The hard things of the wings is that it remembers the position of the wings for every mode, cool, hot, auto, quiet, powerful.
Ah. That's a problem. Not sure we can easily emulate that given the common use patterns.
Can't wait to upgrade to 2.6.1 doing it as soon as I can :)
The Arduino Library Manager should pick up the new version with in 24-ish hours.
hi @crankyoldgit in the changelog of the platformio library manager I can see this
Correct set/getQuiet for Samsung A/C (#736)
but there is no mention for the setPowerful...
does 2.6.1 contains even the setPowerful fix?
yes.
First line of [Features]:
Add set/getPowerful for Samsung A/C (#736)
If everything is now working well enough for you, I'd like to close out this issue. If there is something broken or wrong with the newly changed code, we can create a new issue for it.
Sure thanks. It works well. Tested it in all the new features and it works well.