- Notifications
You must be signed in to change notification settings - Fork 885
Description
Version/revision of the library used
Latest master (d896068)
Describe the bug
I was testing the new changes to the Samsung_AC protocol with a freshly compiled Tasmota(IRhvac, this is using irAC) when I noticed that setting the fan speed to Turbo/Max doesn't work - the Fan Speed gets set to Auto instead. All other fan speeds work.
Something seems to go wrong when converting the FanSpeed from irAC to irSamsungAC.
To Reproduce
- Send a message with ControlSamsunAC.ino with Turbo Fan Speed
- Send a message with CommonACControl.ino with Max Fan Speed
- Compare the results, the Nibble holding the Fan Speed is different
Example code used
First Step
#include <Arduino.h> #include <IRremoteESP8266.h> #include <IRac.h> #include <IRutils.h> const uint16_t kIrLed = 4; // The ESP GPIO pin to use that controls the IR LED. IRac ac(kIrLed); // Create a A/C object using GPIO to sending messages with. void setup() { Serial.begin(115200); delay(200); ac.next.protocol = decode_type_t::SAMSUNG_AC; // Set a protocol to use. ac.next.model = 1; // Some A/Cs have different models. Try just the first. ac.next.mode = stdAc::opmode_t::kCool; // Run in cool mode initially. ac.next.celsius = true; // Use Celsius for temp units. False = Fahrenheit ac.next.degrees = 25; // 25 degrees. ac.next.fanspeed = stdAc::fanspeed_t::kMax; ac.next.swingv = stdAc::swingv_t::kOff; // Don't swing the fan up or down. ac.next.swingh = stdAc::swingh_t::kOff; // Don't swing the fan left or right. ac.next.light = false; // Turn off any LED/Lights/Display that we can. ac.next.beep = false; // Turn off any beep from the A/C if we can. ac.next.econo = false; // Turn off any economy modes if we can. ac.next.filter = false; // Turn off any Ion/Mold/Health filters if we can. ac.next.turbo = false; // Don't use any turbo/powerful/etc modes. ac.next.quiet = false; // Don't use any quiet/silent/etc modes. ac.next.sleep = -1; // Don't set any sleep time or modes. ac.next.clean = false; // Turn off any Cleaning options if we can. ac.next.clock = -1; // Don't set any current time if we can avoid it. ac.next.power = false; // Initially start with the unit off. } void loop() { ac.next.fanspeed = stdAc::fanspeed_t::kLow; ac.sendAc(); // Have the IRac class create and send a message. delay(2000); ac.next.fanspeed = stdAc::fanspeed_t::kMedium; ac.sendAc(); // Send the message. delay(2000); ac.next.fanspeed = stdAc::fanspeed_t::kHigh; ac.sendAc(); // Send the message. delay(2000); ac.next.fanspeed = stdAc::fanspeed_t::kMax; ac.sendAc(); // Send the message. delay(2000); Serial.println("Starting from the begining again ..."); } Second Step
#include <Arduino.h> #include <IRremoteESP8266.h> #include <IRsend.h> #include <ir_Samsung.h> const uint16_t kIrLed = 4; // ESP8266 GPIO pin to use. Recommended: 4 (D2). IRSamsungAc ac(kIrLed); // Set the GPIO used for sending messages. void printState() { // Display the settings. Serial.println("Samsung A/C remote is in the following state:"); Serial.printf(" %s\n", ac.toString().c_str()); } void setup() { ac.begin(); Serial.begin(115200); delay(2000); // Set up what we want to send. See ir_Samsung.cpp for all the options. Serial.println("Default state of the remote."); printState(); Serial.println("Setting initial state for A/C."); ac.off(); ac.setFan(kSamsungAcFanTurbo); ac.setMode(kSamsungAcCool); ac.setTemp(25); ac.setSwing(false); printState(); } void loop() { ac.on(); ac.send(); printState(); delay(3000); ac.setFan(kSamsungAcFanAuto); ac.send(); printState(); delay(3000); ac.setFan(kSamsungAcFanLow); ac.send(); printState(); delay(3000); ac.setFan(kSamsungAcFanMed); ac.send(); printState(); delay(3000); ac.setFan(kSamsungAcFanHigh); ac.send(); printState(); delay(3000); ac.setFan(kSamsungAcFanTurbo); ac.send(); printState(); delay(3000); } Expected behaviour
The code above should produce messages that are identical (short/long code aside), the nibble holding the fan speed should look like this:
1 1 1 1, but it's 0 0 0 1.
Output of raw data from IRrecvDumpV2.ino or V3 (if applicable)
Output from Code Sample 1:
Timestamp : 000549.048 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02B20F000000C001D20F0000000001F2FE619015C0 (168 Bits) Mesg Desc.: Power: Off, Mode: 1 (Cool), Temp: 25C, Fan: 2 (Low), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: Off, Ion: Off uint16_t rawData[349] = {716, 17838, 3068, 8896, 644, 416, 610, 1412, 612, 414, 610, 414, 612, 412, 612, 414, 612, 412, 612, 416, 612, 414, 610, 1412, 610, 416, 610, 418, 612, 1412, 612, 1410, 612, 416, 612, 1412, 612, 1436, 586, 1408, 610, 1410, 612, 1410, 612, 414, 614, 412, 612, 412, 612, 414, 612, 416, 612, 416, 612, 414, 612, 416, 612, 416, 610, 416, 612, 416, 612, 416, 612, 412, 610, 414, 612, 414, 612, 414, 612, 414, 612, 412, 612, 440, 586, 414, 610, 442, 586, 414, 612, 414, 610, 442, 588, 440, 586, 442, 586, 416, 612, 416, 610, 414, 612, 414, 612, 414, 612, 414, 612, 414, 612, 440, 584, 1410, 610, 1414, 610, 2846, 3066, 8886, 640, 1434, 586, 412, 612, 414, 612, 440, 586, 442, 586, 414, 612, 416, 610, 416, 612, 416, 610, 1412, 612, 416, 612, 442, 584, 1432, 592, 416, 610, 1412, 612, 1436, 586, 1408, 612, 1408, 612, 1408, 610, 1436, 588, 414, 612, 436, 586, 414, 612, 412, 612, 416, 610, 416, 610, 442, 586, 416, 612, 414, 612, 416, 612, 416, 612, 416, 614, 412, 612, 412, 612, 414, 612, 414, 612, 412, 612, 440, 586, 414, 612, 414, 610, 416, 612, 440, 586, 416, 612, 414, 612, 414, 612, 416, 612, 414, 612, 416, 612, 414, 610, 442, 584, 414, 612, 440, 586, 414, 612, 414, 612, 438, 586, 414, 612, 2864, 3042, 8876, 646, 1412, 610, 416, 612, 416, 612, 416, 612, 416, 610, 442, 586, 414, 610, 416, 610, 416, 610, 1436, 586, 412, 610, 440, 586, 1408, 612, 1408, 610, 1410, 612, 1412, 612, 416, 610, 1412, 610, 1412, 612, 1412, 612, 1412, 612, 1410, 612, 1412, 612, 1428, 594, 1436, 586, 412, 612, 414, 612, 412, 612, 440, 586, 1408, 612, 1408, 610, 416, 612, 416, 612, 414, 610, 416, 610, 442, 588, 1410, 610, 416, 610, 442, 586, 1412, 612, 1410, 612, 440, 586, 1408, 612, 412, 612, 1410, 610, 416, 612, 414, 612, 440, 586, 414, 612, 414, 612, 414, 610, 416, 612, 436, 590, 416, 612, 1416, 606, 1438, 586}; // SAMSUNG_AC uint8_t state[21] = {0x02, 0xB2, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xD2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF2, 0xFE, 0x61, 0x90, 0x15, 0xC0}; Timestamp : 000551.425 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02B20F000000C001D20F0000000001F2FE619019C0 (168 Bits) Mesg Desc.: Power: Off, Mode: 1 (Cool), Temp: 25C, Fan: 4 (Med), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: Off, Ion: Off uint16_t rawData[349] = {714, 17834, 3074, 8878, 646, 414, 612, 1408, 612, 416, 610, 442, 586, 416, 610, 442, 586, 442, 584, 428, 600, 416, 612, 1438, 586, 416, 612, 416, 612, 1410, 612, 1410, 610, 416, 612, 1412, 612, 1434, 584, 1436, 586, 1410, 612, 1410, 610, 414, 612, 412, 610, 414, 610, 440, 586, 416, 612, 440, 586, 416, 612, 440, 586, 416, 612, 416, 612, 414, 610, 418, 612, 414, 612, 414, 612, 412, 610, 414, 612, 414, 612, 438, 588, 412, 612, 414, 612, 416, 610, 416, 612, 414, 586, 440, 612, 416, 610, 416, 612, 440, 586, 416, 612, 414, 612, 412, 610, 414, 610, 416, 612, 426, 598, 414, 612, 1410, 612, 1432, 588, 2870, 3040, 8880, 644, 1410, 612, 414, 610, 414, 612, 414, 612, 412, 610, 414, 612, 412, 612, 414, 612, 436, 592, 1410, 610, 424, 606, 414, 610, 1412, 610, 442, 586, 1412, 612, 1412, 612, 1436, 588, 1410, 612, 1412, 612, 1438, 586, 416, 610, 442, 588, 414, 610, 416, 612, 414, 612, 414, 610, 414, 612, 414, 610, 416, 610, 442, 586, 414, 612, 416, 612, 442, 586, 414, 612, 416, 610, 442, 586, 416, 610, 418, 610, 416, 612, 416, 612, 414, 612, 438, 586, 414, 610, 414, 610, 416, 612, 438, 586, 414, 612, 426, 602, 414, 612, 414, 610, 442, 586, 416, 612, 416, 612, 416, 612, 414, 610, 442, 586, 2868, 3042, 8878, 646, 1410, 612, 414, 610, 440, 586, 440, 584, 414, 610, 414, 612, 414, 612, 414, 612, 414, 612, 1410, 612, 416, 610, 416, 612, 1436, 584, 1386, 638, 1412, 612, 1412, 610, 416, 610, 1434, 588, 1434, 588, 1410, 612, 1432, 588, 1410, 612, 1408, 612, 1410, 612, 1436, 584, 416, 614, 414, 612, 414, 612, 416, 612, 1436, 588, 1412, 612, 416, 610, 414, 612, 438, 586, 414, 612, 438, 586, 1410, 612, 414, 610, 416, 612, 1410, 612, 1412, 612, 416, 596, 430, 612, 1410, 612, 1412, 610, 416, 612, 416, 610, 416, 610, 440, 586, 414, 614, 424, 598, 414, 610, 414, 612, 438, 586, 1410, 610, 1410, 612}; // SAMSUNG_AC uint8_t state[21] = {0x02, 0xB2, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xD2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF2, 0xFE, 0x61, 0x90, 0x19, 0xC0}; Timestamp : 000553.803 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02B20F000000C001D20F0000000001E2FE61901BC0 (168 Bits) Mesg Desc.: Power: Off, Mode: 1 (Cool), Temp: 25C, Fan: 5 (High), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: Off, Ion: Off uint16_t rawData[349] = {720, 17830, 3076, 8884, 640, 434, 590, 1414, 610, 416, 612, 440, 586, 418, 610, 442, 586, 442, 586, 416, 612, 414, 612, 1412, 612, 416, 612, 442, 584, 1438, 586, 1412, 612, 416, 612, 1412, 610, 1410, 610, 1410, 612, 1410, 610, 1436, 586, 416, 612, 442, 586, 440, 584, 440, 588, 438, 590, 440, 586, 440, 586, 416, 612, 416, 610, 442, 586, 414, 612, 416, 612, 412, 610, 414, 612, 414, 612, 414, 612, 412, 612, 414, 612, 440, 584, 414, 610, 416, 612, 442, 588, 414, 610, 416, 612, 414, 612, 432, 592, 416, 612, 416, 612, 414, 612, 440, 586, 440, 586, 414, 612, 412, 612, 412, 612, 1432, 588, 1410, 612, 2870, 3042, 8884, 640, 1410, 610, 414, 610, 440, 586, 432, 594, 438, 586, 440, 584, 440, 586, 414, 614, 414, 610, 1412, 612, 442, 586, 416, 612, 1410, 612, 416, 612, 1438, 584, 1438, 588, 1410, 612, 1412, 614, 1436, 586, 1412, 610, 414, 610, 414, 610, 414, 612, 440, 584, 442, 586, 416, 612, 414, 612, 416, 612, 416, 612, 442, 586, 440, 586, 440, 586, 440, 586, 416, 610, 416, 612, 440, 584, 416, 612, 416, 610, 442, 586, 442, 584, 414, 612, 438, 586, 414, 612, 414, 612, 414, 610, 440, 586, 436, 590, 414, 610, 416, 610, 416, 610, 416, 610, 442, 588, 414, 612, 414, 612, 414, 612, 442, 586, 2866, 3042, 8880, 642, 1436, 586, 412, 612, 414, 612, 414, 612, 412, 612, 416, 614, 414, 610, 416, 614, 414, 610, 1412, 610, 442, 584, 416, 610, 416, 610, 1412, 612, 1412, 610, 1438, 584, 414, 612, 1436, 584, 1410, 612, 1408, 612, 1410, 612, 1408, 610, 1436, 586, 1410, 612, 1410, 612, 440, 586, 418, 610, 416, 610, 418, 612, 1412, 612, 1412, 612, 414, 612, 438, 586, 414, 612, 412, 612, 414, 612, 1434, 586, 414, 610, 414, 612, 1436, 586, 1412, 610, 1438, 584, 442, 586, 1410, 614, 1436, 586, 442, 566, 462, 586, 416, 612, 414, 612, 414, 612, 440, 584, 414, 612, 438, 586, 414, 612, 1408, 612, 1436, 586}; // SAMSUNG_AC uint8_t state[21] = {0x02, 0xB2, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xD2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE2, 0xFE, 0x61, 0x90, 0x1B, 0xC0}; Timestamp : 000556.176 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02B20F000000C001D20F000000000102FF619011C0 (168 Bits) Mesg Desc.: Power: Off, Mode: 1 (Cool), Temp: 25C, Fan: 0 (Auto), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: Off, Ion: Off uint16_t rawData[349] = {692, 17860, 3070, 8884, 638, 416, 612, 1408, 588, 440, 612, 416, 612, 414, 612, 416, 612, 440, 586, 416, 610, 418, 608, 1438, 586, 416, 612, 416, 612, 1410, 612, 1412, 612, 434, 592, 1412, 586, 1434, 612, 1408, 612, 1436, 584, 1410, 610, 416, 612, 412, 612, 414, 612, 414, 610, 416, 610, 442, 586, 416, 612, 416, 610, 416, 610, 416, 610, 418, 612, 414, 612, 414, 612, 440, 586, 438, 588, 414, 612, 428, 596, 416, 610, 414, 612, 414, 610, 416, 612, 414, 610, 444, 586, 440, 584, 444, 584, 416, 610, 416, 610, 416, 610, 414, 612, 414, 610, 416, 612, 414, 610, 416, 610, 416, 610, 1436, 586, 1426, 596, 2868, 3040, 8886, 640, 1410, 604, 446, 586, 414, 612, 440, 586, 414, 610, 414, 610, 440, 588, 414, 612, 440, 586, 1410, 612, 424, 602, 416, 612, 1412, 610, 416, 612, 1410, 612, 1414, 612, 1436, 586, 1410, 610, 1438, 586, 1410, 612, 416, 612, 416, 610, 416, 612, 440, 584, 414, 612, 414, 610, 416, 610, 416, 612, 416, 612, 440, 586, 440, 586, 442, 584, 418, 612, 442, 586, 414, 612, 416, 610, 416, 612, 414, 612, 414, 610, 416, 612, 438, 584, 416, 610, 414, 610, 440, 586, 440, 586, 414, 610, 414, 612, 414, 612, 442, 586, 416, 612, 416, 610, 416, 610, 440, 588, 416, 610, 418, 610, 416, 612, 2866, 3040, 8882, 642, 1412, 612, 414, 612, 440, 586, 414, 610, 414, 612, 414, 612, 440, 586, 414, 610, 416, 610, 1412, 610, 416, 612, 416, 612, 442, 586, 440, 588, 416, 610, 416, 610, 1412, 612, 1410, 612, 1410, 612, 1436, 586, 1408, 612, 1410, 610, 1412, 610, 1412, 610, 1432, 592, 416, 586, 440, 610, 416, 610, 438, 590, 1412, 596, 1426, 610, 416, 612, 414, 612, 440, 584, 414, 610, 414, 612, 1408, 612, 414, 612, 438, 586, 1436, 584, 1412, 612, 442, 586, 416, 610, 416, 612, 1412, 610, 418, 612, 416, 612, 416, 610, 414, 610, 416, 612, 438, 586, 414, 612, 414, 612, 412, 610, 1410, 614, 1408, 612}; // SAMSUNG_AC uint8_t state[21] = {0x02, 0xB2, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xD2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xFF, 0x61, 0x90, 0x11, 0xC0}; Output from Code Sample 2:
Timestamp : 000699.995 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001D20F0000000001A2FE71901FF0 (168 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 7 (Turbo), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[349] = {718, 17828, 3072, 8892, 620, 468, 586, 1412, 612, 414, 612, 442, 584, 418, 610, 416, 610, 416, 586, 466, 586, 414, 610, 1436, 586, 414, 612, 440, 586, 1410, 612, 414, 612, 414, 612, 1410, 610, 1412, 610, 1414, 612, 1436, 586, 1412, 612, 414, 610, 418, 612, 414, 610, 416, 612, 414, 610, 414, 612, 414, 612, 414, 610, 416, 612, 438, 586, 436, 586, 416, 610, 416, 612, 416, 610, 416, 610, 416, 610, 416, 610, 416, 610, 442, 586, 416, 610, 414, 612, 412, 612, 414, 612, 412, 612, 414, 612, 414, 610, 440, 586, 414, 610, 442, 584, 416, 612, 416, 610, 416, 612, 1436, 586, 1412, 612, 1412, 612, 1410, 610, 2872, 3042, 8880, 644, 1412, 612, 416, 612, 416, 610, 416, 612, 416, 612, 416, 612, 440, 586, 416, 612, 442, 586, 1412, 610, 442, 584, 440, 586, 1412, 612, 414, 614, 1410, 612, 1412, 610, 1410, 612, 1408, 612, 1408, 612, 1408, 612, 414, 610, 414, 612, 414, 610, 442, 588, 414, 612, 416, 610, 424, 602, 442, 584, 416, 612, 414, 612, 428, 598, 418, 612, 412, 610, 416, 612, 414, 614, 436, 588, 412, 612, 414, 612, 414, 612, 414, 612, 416, 610, 416, 612, 416, 612, 416, 610, 416, 612, 442, 584, 416, 610, 416, 612, 440, 586, 412, 610, 414, 610, 414, 610, 414, 612, 414, 610, 414, 612, 440, 584, 2866, 3042, 8882, 642, 1436, 586, 416, 612, 416, 612, 416, 612, 414, 612, 416, 610, 438, 592, 414, 610, 414, 612, 1436, 584, 414, 610, 414, 610, 440, 586, 1410, 612, 414, 610, 1414, 612, 416, 612, 1412, 612, 1412, 612, 1410, 612, 1412, 610, 1412, 612, 1410, 614, 1436, 586, 1410, 612, 412, 612, 414, 610, 414, 612, 1434, 586, 1410, 612, 1408, 612, 414, 612, 416, 612, 414, 612, 440, 584, 416, 610, 1412, 612, 416, 610, 416, 610, 1414, 610, 1410, 612, 1434, 584, 1412, 614, 1408, 612, 1410, 610, 414, 612, 412, 612, 414, 612, 414, 612, 416, 612, 422, 604, 416, 610, 1412, 614, 1410, 614, 1410, 612, 1410, 612}; // SAMSUNG_AC uint8_t state[21] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xD2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA2, 0xFE, 0x71, 0x90, 0x1F, 0xF0}; Timestamp : 000703.298 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001D2FE719011F0 (112 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 0 (Auto), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[233] = {674, 17878, 3068, 8880, 646, 416, 610, 1410, 612, 416, 610, 416, 612, 416, 610, 418, 612, 414, 612, 416, 612, 416, 612, 1412, 610, 442, 588, 426, 598, 1412, 610, 442, 586, 420, 606, 1412, 610, 1410, 612, 1410, 612, 1410, 612, 1408, 612, 414, 610, 416, 612, 438, 586, 440, 588, 440, 584, 442, 584, 416, 612, 442, 584, 418, 610, 444, 584, 416, 610, 416, 612, 412, 610, 432, 592, 416, 612, 412, 612, 414, 610, 414, 610, 440, 586, 414, 610, 416, 612, 442, 586, 416, 612, 416, 610, 418, 612, 416, 610, 442, 586, 442, 584, 414, 610, 440, 586, 414, 614, 412, 612, 1408, 612, 1414, 606, 1410, 612, 1436, 584, 2866, 3042, 8880, 644, 1438, 588, 414, 612, 414, 610, 416, 610, 426, 604, 442, 586, 416, 610, 442, 586, 438, 586, 1434, 586, 414, 610, 414, 610, 1410, 610, 414, 612, 1412, 598, 1452, 584, 416, 610, 1438, 586, 1412, 610, 1412, 612, 1436, 584, 1412, 612, 1410, 610, 1412, 612, 1410, 612, 440, 586, 440, 586, 440, 586, 1420, 600, 1434, 588, 1408, 614, 412, 612, 416, 610, 416, 612, 442, 586, 416, 612, 1412, 612, 416, 610, 416, 612, 1438, 586, 1410, 612, 414, 610, 440, 586, 438, 586, 1410, 610, 416, 610, 414, 612, 414, 612, 414, 610, 416, 610, 418, 610, 442, 584, 1412, 612, 1410, 612, 1438, 586, 1436, 584}; // SAMSUNG_AC uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xD2, 0xFE, 0x71, 0x90, 0x11, 0xF0}; Timestamp : 000706.604 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001C2FE719015F0 (112 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 2 (Low), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[233] = {672, 17872, 3074, 8878, 646, 414, 612, 1410, 612, 414, 610, 416, 612, 412, 612, 412, 612, 414, 612, 414, 610, 416, 612, 1410, 610, 418, 610, 416, 610, 1414, 610, 416, 612, 416, 612, 1410, 612, 1408, 612, 1410, 612, 1410, 612, 1408, 612, 414, 610, 414, 612, 414, 612, 432, 594, 416, 610, 416, 612, 424, 604, 414, 610, 416, 610, 416, 612, 416, 610, 416, 610, 414, 612, 438, 586, 414, 612, 414, 612, 414, 610, 414, 612, 420, 604, 440, 586, 416, 612, 416, 612, 414, 610, 442, 586, 416, 610, 442, 586, 416, 612, 416, 612, 416, 610, 416, 612, 414, 612, 442, 586, 1412, 612, 1410, 612, 1410, 612, 1412, 612, 2864, 3042, 8884, 638, 1414, 610, 416, 612, 416, 610, 418, 612, 416, 610, 416, 612, 416, 610, 420, 606, 442, 586, 1412, 612, 414, 612, 414, 612, 416, 610, 442, 584, 1434, 590, 1412, 612, 440, 586, 1410, 612, 1410, 612, 1410, 612, 1410, 612, 1434, 586, 1410, 612, 1412, 612, 1410, 610, 442, 586, 416, 614, 440, 586, 1412, 612, 1412, 612, 1412, 612, 416, 612, 438, 588, 414, 610, 414, 612, 438, 584, 1410, 612, 412, 612, 412, 614, 1408, 612, 1412, 610, 416, 612, 1412, 610, 418, 612, 1436, 586, 440, 588, 416, 612, 416, 612, 440, 584, 414, 614, 412, 612, 412, 612, 1408, 612, 1408, 614, 1408, 612, 1410, 610}; // SAMSUNG_AC uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xC2, 0xFE, 0x71, 0x90, 0x15, 0xF0}; Timestamp : 000709.910 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001C2FE719019F0 (112 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 4 (Med), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[233] = {674, 17872, 3074, 8884, 640, 416, 612, 1410, 612, 416, 612, 440, 586, 436, 592, 442, 562, 466, 586, 416, 612, 442, 586, 1412, 612, 414, 610, 416, 610, 1412, 610, 418, 610, 418, 610, 1412, 610, 1436, 588, 1408, 612, 1410, 612, 1410, 610, 414, 610, 414, 610, 416, 610, 414, 612, 414, 612, 416, 610, 416, 612, 414, 612, 416, 610, 416, 610, 416, 612, 416, 612, 412, 612, 440, 586, 438, 586, 414, 612, 438, 586, 414, 610, 426, 600, 414, 612, 442, 586, 416, 610, 416, 612, 414, 610, 416, 612, 440, 584, 416, 610, 444, 584, 416, 610, 414, 610, 414, 612, 412, 612, 1408, 612, 1410, 612, 1408, 612, 1410, 612, 2866, 3040, 8886, 614, 1436, 612, 416, 610, 418, 610, 416, 612, 414, 610, 416, 612, 416, 612, 416, 610, 440, 584, 1412, 612, 440, 586, 414, 612, 426, 598, 414, 612, 1410, 612, 1412, 612, 440, 584, 1438, 586, 1412, 612, 1432, 590, 1412, 610, 1412, 612, 1412, 588, 1436, 612, 1436, 586, 440, 586, 412, 612, 412, 612, 1410, 612, 1410, 612, 1408, 612, 414, 610, 416, 612, 416, 610, 442, 584, 442, 586, 1410, 610, 416, 612, 416, 612, 1412, 612, 1408, 612, 440, 586, 414, 612, 1434, 584, 1410, 612, 414, 610, 414, 612, 440, 586, 414, 612, 416, 610, 442, 586, 442, 586, 1412, 612, 1410, 610, 1412, 610, 1438, 586}; // SAMSUNG_AC uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xC2, 0xFE, 0x71, 0x90, 0x19, 0xF0}; Timestamp : 000713.218 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001B2FE71901BF0 (112 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 5 (High), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[233] = {668, 17878, 3068, 8882, 642, 414, 610, 1410, 612, 414, 612, 414, 610, 414, 612, 414, 610, 414, 612, 414, 610, 442, 586, 1410, 610, 416, 612, 416, 610, 1412, 610, 416, 612, 416, 610, 1412, 612, 1410, 610, 1412, 612, 1412, 612, 1412, 612, 416, 610, 416, 610, 416, 610, 418, 610, 442, 570, 428, 612, 414, 610, 416, 610, 418, 612, 414, 612, 414, 610, 416, 610, 416, 612, 414, 612, 416, 612, 416, 612, 416, 610, 416, 614, 414, 610, 416, 610, 414, 612, 414, 612, 412, 612, 412, 610, 428, 596, 416, 612, 414, 612, 414, 610, 442, 584, 416, 610, 442, 586, 416, 612, 1438, 584, 1412, 612, 1436, 586, 1410, 610, 2870, 3040, 8886, 638, 1412, 610, 414, 612, 414, 610, 414, 612, 440, 586, 414, 610, 416, 612, 414, 612, 416, 588, 1436, 612, 414, 612, 416, 612, 1412, 610, 1412, 610, 442, 586, 1412, 612, 414, 610, 1436, 586, 1408, 612, 1410, 612, 1408, 586, 1460, 586, 1410, 610, 1410, 610, 1422, 600, 416, 610, 416, 612, 416, 610, 1438, 586, 1412, 612, 1412, 612, 416, 610, 414, 612, 414, 610, 414, 612, 414, 612, 1410, 610, 416, 612, 414, 610, 1436, 586, 1412, 612, 1412, 612, 416, 612, 1412, 588, 1436, 612, 440, 584, 416, 610, 418, 612, 412, 612, 412, 612, 414, 612, 412, 612, 1410, 612, 1410, 614, 1408, 612, 1410, 610}; // SAMSUNG_AC uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xB2, 0xFE, 0x71, 0x90, 0x1B, 0xF0}; Timestamp : 000716.526 Library : v2.7.20 Protocol : SAMSUNG_AC Code : 0x02920F000000F001A2FE71901FF0 (112 Bits) Mesg Desc.: Power: On, Mode: 1 (Cool), Temp: 25C, Fan: 7 (Turbo), Swing(V): Off, Swing(H): Off, Beep: Off, Clean: Off, Quiet: Off, Powerful: Off, Econo: Off, Breeze: Off, Light: On, Ion: Off uint16_t rawData[233] = {670, 17878, 3070, 8880, 646, 414, 610, 1410, 612, 412, 610, 416, 612, 412, 610, 414, 612, 412, 612, 412, 610, 416, 610, 1412, 612, 416, 612, 442, 584, 1414, 612, 422, 606, 416, 610, 1412, 612, 1410, 612, 1410, 610, 1410, 610, 1412, 610, 414, 612, 414, 610, 414, 612, 438, 584, 432, 596, 442, 584, 422, 606, 416, 612, 416, 610, 416, 610, 416, 612, 416, 612, 414, 612, 436, 586, 416, 612, 414, 612, 412, 612, 414, 610, 440, 586, 414, 612, 414, 610, 442, 588, 414, 612, 416, 612, 416, 610, 442, 584, 416, 610, 416, 612, 414, 612, 412, 610, 438, 588, 414, 610, 1410, 612, 1408, 610, 1410, 610, 1410, 612, 2866, 3042, 8884, 638, 1412, 610, 440, 588, 416, 610, 442, 586, 442, 586, 416, 610, 416, 610, 418, 612, 414, 612, 1408, 612, 414, 610, 430, 596, 414, 610, 1410, 612, 440, 586, 1412, 612, 414, 612, 1410, 612, 1412, 612, 1412, 612, 1438, 584, 1412, 614, 1428, 592, 1414, 612, 1408, 612, 414, 610, 416, 610, 414, 612, 1408, 612, 1408, 614, 1408, 610, 440, 586, 416, 612, 416, 612, 442, 586, 416, 610, 1412, 612, 414, 612, 440, 586, 1412, 612, 1408, 612, 1410, 612, 1410, 612, 1424, 598, 1408, 612, 414, 610, 414, 610, 414, 612, 416, 612, 416, 610, 416, 612, 414, 612, 1410, 610, 1412, 612, 1436, 586, 1412, 612}; // SAMSUNG_AC uint8_t state[14] = {0x02, 0x92, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x01, 0xA2, 0xFE, 0x71, 0x90, 0x1F, 0xF0}; What brand/model IR demodulator are you using?
It says "LFN", I can't find the exact model. I'm using this device to capture the codes. I'm sure it's not a VS1838b.
Circuit diagram and hardware used (if applicable)
See link above
I have followed the steps in the Troubleshooting Guide & read the FAQ
Yes
Has this library/code previously worked as expected for you?
No, this specific thing didn't
Other useful information
I've looked at ir_Samsung.cpp and found the spot where the fan speed is converted, so I changed the switch to return kSamsungAcFanTurbo in all cases - now all of them are set to auto, so there's no issue in this part, it needs to be somewhere else.