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

I need Support for Remote AR-715 for Climate-Butler AC (looks the same as Trotec PAC 4600) #1812

Open
benjy3gg opened this issue May 22, 2022 · 23 comments
Assignees
Labels
enhancement help wanted more info Pending Analysis The issue can't progress without further message analysis Pending Confirmation Waiting for confirmation from user

Comments

@benjy3gg
Copy link
Contributor

Hi, i want to create support for the Remote AR-715 for my new AC.
It's reporting UNKNOWN using IRRecvdumpV2.

Protocol  : UNKNOWN
00:01:16.218 -> Code      : 0xE6CA5369 (55 Bits)
00:01:16.218 -> uint16_t rawData[109] = {554, 3512,  558, 1488,  580, 496,  522, 494,  546, 558,  552, 494,  548, 496,  546, 500,  548, 558,  544, 504,  544, 502,  540, 506,  538, 570,  514, 530,  514, 532,  512, 534,  512, 592,  512, 536,  510, 532,  510, 536,  510, 598,  510, 536,  506, 536,  514, 534,  510, 594,  514, 534,  510, 536,  534, 510,  510, 598,  514, 534,  510, 536,  508, 536,  534, 572,  534, 500,  512, 1536,  512, 526,  510, 1588,  512, 1536,  510, 538,  512, 532,  510, 588,  510, 1536,  514, 532,  510, 536,  534, 570,  512, 534,  510, 536,  514, 528,  540, 568,  540, 506,  512, 524,  510, 1534,  516, 532,  536, 3396,  544};  // UNKNOWN E6CA5369 POWER OFF
Protocol  : UNKNOWN
00:02:09.240 -> Code      : 0xA008E5A4 (55 Bits)
00:02:09.240 -> uint16_t rawData[109] = {536, 3530,  542, 1532,  544, 502,  546, 500,  546, 560,  550, 496,  548, 488,  552, 1488,  548, 1560,  550, 498,  548, 496,  550, 496,  548, 560,  546, 498,  550, 500,  546, 496,  548, 558,  548, 498,  550, 496,  548, 498,  548, 560,  548, 496,  548, 496,  550, 496,  548, 558,  548, 498,  548, 498,  548, 496,  552, 558,  548, 496,  550, 496,  550, 494,  548, 558,  550, 488,  546, 1498,  548, 490,  550, 1550,  522, 1524,  524, 522,  548, 496,  548, 552,  548, 1498,  548, 496,  548, 498,  548, 562,  548, 496,  548, 498,  550, 496,  550, 548,  548, 1492,  548, 1488,  526, 1514,  550, 1496,  548, 3358,  580};  // UNKNOWN A008E5A4 POWER ON

Tried to follow How to add new IR Remote in the wiki and implemented the TestExample Stuff, but i still get UNKNOWN when i use the remote.

Help would be appreciated.

@NiKiZe
Copy link
Collaborator

NiKiZe commented May 22, 2022

You mention remote AR-715
Do you have brand and also model of the AC unit?

@benjy3gg
Copy link
Contributor Author

benjy3gg commented May 22, 2022

@NiKiZe hey. sry i only posted it in the title.
The AR-715 is printed on the sticker on the remote,
The Brand of the AC is Climate-Butler and the model is RCS-SD43UWI.
But it looks the same as this one https://de.trotec.com/produkte-services/maschinen-homecomfort/klimatisierung/komfort-klimageraete-pac-serie/pac-4600/ and has the same remote

@crankyoldgit
Copy link
Owner

Tried to follow How to add new IR Remote in the wiki and implemented the TestExample Stuff, but i still get UNKNOWN when i use the remote.

Can you link to your code? We might be able to spot what is wrong.

@benjy3gg
Copy link
Contributor Author

benjy3gg commented May 22, 2022

master...benjy3gg:master
just followed the wiki so the device is called testexample for now

@crankyoldgit
Copy link
Owner

Thanks, at a cursory glance, the code looks like it should work. I'll have a tinker later

@crankyoldgit
Copy link
Owner

Did you try setting DEBUG on and have a look at the output?
e.g.

// Turn on Debugging information by uncommenting the following line.
// #define DEBUG 1

@benjy3gg
Copy link
Contributor Author

no, will try that now.
btw: if i send the captured u_int array with sendRaw the AC responds to the code.

@benjy3gg
Copy link
Contributor Author

01:33:11.653 -> Attempting TestExample decode
01:33:11.653 -> Matching SPACE 550 vs 3492 - 50. Matching: 2581 <= 550 <= 4303

@crankyoldgit
Copy link
Owner

Try changing:

  if (!matchSpace(results->rawbuf[offset++], kTestExampleHdrSpace))
    return false;

to:

  if (!matchMark(results->rawbuf[offset++], kTestExampleBitMark))
    return false;
  if (!matchSpace(results->rawbuf[offset++], kTestExampleHdrSpace))
    return false;

@benjy3gg
Copy link
Contributor Author

benjy3gg commented May 22, 2022

looks like most of them are recognized now. so what are the next steps now?

@crankyoldgit
Copy link
Owner

Okay.

  1. Stop using TestExample etc. Use CLIMATEBUTLER/ClimateButler etc instead for all occurrences.
  2. Rename ir_Climate.cpp to ir_ClimateButler.cpp.
  3. Change:
  for (uint16_t r = 0; r <= repeat; r++) {
    uint64_t send_data = data;
    space(kTestExampleHdrSpace);
    // Data Section #1
    // e.g. data = 0x830000005880F, nbits = 52
    sendData(kTestExampleBitMark, kTestExampleOneSpace, kTestExampleBitMark, kTestExampleZeroSpace, send_data, 52, true);
    send_data >>= 52;
    // Footer
    mark(kTestExampleBitMark);
    space(kTestExampleHdrSpace);
    space(kDefaultMessageGap);  // A 100% made up guess of the gap between messages.
  }

to:

  for (uint16_t r = 0; r <= repeat; r++) {
    // Header + Data
    sendGeneric(kClimateButlerBitMark, kClimateButlerHdrSpace,
                kClimateButlerBitMark, kClimateButlerOneSpace,
                kClimateButlerBitMark, kClimateButlerZeroSpace,
                kClimateButlerBitMark, kClimateButlerHdrSpace,
                data, nbits, kClimateButlerFreq, true, 0, kDutyDefault);
    // Footer
    mark(kClimateButlerBitMark);
    space(kDefaultMessageGap);  // A 100% made up guess of the gap between messages.
  }

Note: We will do something similar for the decodeBlah() routine later.
4. Change:

//   Brand: TestExample,  Model: TODO add device and remote

to:

//   Brand: ClimateButler,  Model: AR-715 remote
//   Brand: ClimateButler,  Model: RCS-SD43UWI A/C
  1. When you're sure you've got it right (i.e. sending and decoding works), send/create a PR to merge it in to the library.
  2. Now that it works, start following: https://github.com/crankyoldgit/IRremoteESP8266/wiki/Adding-support-for-a-new-AC-protocol
  3. One of the first things is to capture an entire temperature range (lowest to highest) to try to work out the bit ordering. i.e. LSBF or MSBF.

That will do you for now.

@crankyoldgit crankyoldgit added more info Pending Confirmation Waiting for confirmation from user labels May 23, 2022
@benjy3gg
Copy link
Contributor Author

benjy3gg commented May 23, 2022

I changed my code according to your instructions. Decoding Stoll works, but if I now try to send a command with "irsend.sendClimateButler(0x830000007919A);" Nothing gets send. (got the 0x83... code from the IRrecvDumpV2 script.
(There is a small led on my ir transmitter that flashes up when sending).

updated code here:
master...benjy3gg:master

@crankyoldgit
Copy link
Owner

Your library code looks fine so far after a brief look. Nothing leaps out as wrong.

Perhaps the problems is with your use of it. Can you post your minimum viable example code?
Did you call irsend.begin(); before sending (in the setup etc)? Did you set up IRsend irsend(Blah); on the correct GPIO?
Does it work for other protocols. e.g. sendNEC()
Have you tried the code in the example directories?

@benjy3gg
Copy link
Contributor Author

Okay, works now. Had some error on my code and it wasn't even sending the ir command.
Will open a PR later.

@benjy3gg
Copy link
Contributor Author

@crankyoldgit
Copy link
Owner

Started to analyse the IR Codes here: https://docs.google.com/spreadsheets/d/1cy5-5tNJvlfgpQws0UVYX0jEZs4xoefBOWScEjmtoX0/edit#gid=0

@benjy3gg You forgot to make it publicly readable.

@benjy3gg
Copy link
Contributor Author

@crankyoldgit you should have access now

@benjy3gg
Copy link
Contributor Author

i got most of the code figured out. struggling with the checksum right now. help would be appreciated.

@crankyoldgit
Copy link
Owner

Looking at the temperature range, it looks like we've got the correct bit-ordering. So, nothing to change. Please create a PR.

As for the checksum. It looks like the last nibble (4 bits) is the check value. A quick look at it makes me think it's an inversion of all the previous nibbles added together.
e,g.
0x830000007914F: 0x8 + 0x3 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x0 + 0x7 + 0x9 + 0x1 + 0x4 = 0x20 & invert the last nibble. ie. 0x20: 0x0 -> 0xF gets you the check value (or 0xF - 0x0 = 0xF if you prefer)

@benjy3gg
Copy link
Contributor Author

benjy3gg commented May 30, 2022

@crankyoldgit checksum seems to be right :)
Also opened the PR:
#1815

@benjy3gg
Copy link
Contributor Author

@crankyoldgit also got another question:
https://docs.google.com/spreadsheets/d/1cy5-5tNJvlfgpQws0UVYX0jEZs4xoefBOWScEjmtoX0/edit#gid=339282704 in the "Analysis Timer" sheet, there is something strange (orange marked cells). All other cells correspond to the timer, but the marked ones have some sort of other formatting.

crankyoldgit added a commit to benjy3gg/IRremoteESP8266 that referenced this issue Jun 3, 2022
* Use `matchGeneric()` in `decodeClimaButler()`
* Fix failing unit test (`defaultBits()`)
* Add unit tests to cover the new code.
* Fix some linter issues.

For crankyoldgit#1812
crankyoldgit added a commit that referenced this issue Jun 4, 2022
Add basic support for clima-butler RCS-SD43UWI
* Add `sendClimaButler()` & `decodeClimaButler()` for basic protocol support.
* Bit order has been confirmed via temperature analysis.
* Add unit tests to cover the new code.

For #1812

Co-authored-by: beko <[email protected]>
Co-authored-by: crankyoldgit <[email protected]>
@crankyoldgit crankyoldgit added the Pending Analysis The issue can't progress without further message analysis label Jul 7, 2022
crankyoldgit added a commit that referenced this issue Sep 15, 2022
_v2.8.3 (20220915)_

**[Bug Fixes]**
- Fix `#if` for DECODE_COOLIX48 (#1796)
- Add missing `prev`s to `decodeToState()` (#1783)

**[Features]**
- Add `pause()` function to ESP32 when receiving. (#1871)
- ARGO: Argo add `sendSensorTemp()` (#1858 #1859)
- HAIER_AC160: Experimental detail support. (#1852 #1804)
- BOSCH144: Add IRac class support (#1841)
- Mitsubishi_AC: update left vane in `IRac` class (#1837)
- Basic support for Daikin 312bit/39byte A/C protocol. (#1836 #1829)
- Experimental basic support for Sanyo AC 152 bit protocol. (#1828 #1826)
- GREE: Add model support for `YX1FSF`/Soleus Air Windown A/C (#1823 #1821)
- Experimental basic support for Bosch 144bit protocol. (#1822 #1787)
- Experimental basic support for TCL AC 96 bit protocol. (#1820 #1810)
- Add basic support for clima-butler (52bit) RCS-SD43UWI (#1815 #1812)
- TOTO: An experimental _(s)wipe_ at support for Toto Toilets. (#1811 #1806)
- CARRIER_AC128: Experimental Basic support for Carrier AC 128bit protocol. (#1798 #1797)
- HAIER_AC160: Add basic support for Haier 160bit protocol. (#1805 #1804)
- DAIKIN: Add basic support for 200-bit Daikin protocol. (#1803 #1802)
- FUJITSU: Improve handling of 10C Heat mode. (#1788 #1780)
- FUJITSU: Improve handling of short (command only) messages. (#1784 #1780)

**[Misc]**
- Improve the `_IRREMOTEESP8266_VERSION_VAL` macro (#1875 #1870)
- SONY: Update supported devices. (#1872)
- SAMSUNG: Update supported devices (#1873)
- NEC: Update supported devices (#1874)
- Give IRmacros.h smaller scope to avoid impacting projects using IRremoteESP8266 (#1857 #1853 #1851)
- Inhibit protocol names for not-included protocols (#1853 #1851)
- Test out codeql static analysis (#1842)
- Remove pylint disable=no-self-use (#1817)
- Fujitsu General: update supported devices (#1813)
- DAIKIN: Update supported devices (#1808 #1807)
- Fujitsu: Update supported remote info. (#1801 #1794)
- DAIKIN128: Update supported devices (#1754)
- Voltas: Add link to manual for 122LZF A/C. (#1800 #1799 #1238)
- Daikin128: Additional unit test. (#1795 #1754)
- MIDEA: Update supported devices (#1791 #1790)
crankyoldgit added a commit that referenced this issue Sep 16, 2022
**_v2.8.3 (20220915)_**

**[Bug Fixes]**
- Fix `#if` for DECODE_COOLIX48 (#1796)
- Add missing `prev`s to `decodeToState()` (#1783)

**[Features]**
- Add `pause()` function to ESP32 when receiving. (#1871)
- ARGO: Argo add `sendSensorTemp()` (#1858 #1859)
- HAIER_AC160: Experimental detail support. (#1852 #1804)
- BOSCH144: Add IRac class support (#1841)
- Mitsubishi_AC: update left vane in `IRac` class (#1837)
- Basic support for Daikin 312bit/39byte A/C protocol. (#1836 #1829)
- Experimental basic support for Sanyo AC 152 bit protocol. (#1828 #1826)
- GREE: Add model support for `YX1FSF`/Soleus Air Windown A/C (#1823 #1821)
- Experimental basic support for Bosch 144bit protocol. (#1822 #1787)
- Experimental basic support for TCL AC 96 bit protocol. (#1820 #1810)
- Add basic support for clima-butler (52bit) RCS-SD43UWI (#1815 #1812)
- TOTO: An experimental _(s)wipe_ at support for Toto Toilets. (#1811 #1806)
- CARRIER_AC128: Experimental Basic support for Carrier AC 128bit protocol. (#1798 #1797)
- HAIER_AC160: Add basic support for Haier 160bit protocol. (#1805 #1804)
- DAIKIN: Add basic support for 200-bit Daikin protocol. (#1803 #1802)
- FUJITSU: Improve handling of 10C Heat mode. (#1788 #1780)
- FUJITSU: Improve handling of short (command only) messages. (#1784 #1780)

**[Misc]**
- Improve the `_IRREMOTEESP8266_VERSION_VAL` macro (#1875 #1870)
- SONY: Update supported devices. (#1872)
- SAMSUNG: Update supported devices (#1873)
- NEC: Update supported devices (#1874)
- Give IRmacros.h smaller scope to avoid impacting projects using IRremoteESP8266 (#1857 #1853 #1851)
- Inhibit protocol names for not-included protocols (#1853 #1851)
- Test out codeql static analysis (#1842)
- Remove pylint disable=no-self-use (#1817)
- Fujitsu General: update supported devices (#1813)
- DAIKIN: Update supported devices (#1808 #1807)
- Fujitsu: Update supported remote info. (#1801 #1794)
- DAIKIN128: Update supported devices (#1754)
- Voltas: Add link to manual for 122LZF A/C. (#1800 #1799 #1238)
- Daikin128: Additional unit test. (#1795 #1754)
- MIDEA: Update supported devices (#1791 #1790)
@crankyoldgit
Copy link
Owner

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

@sorryusernameisalreadytaken

Wow, really cool foundings here. Good job!

The Remote AR-715 should be for the AC's (I guess there will be more, it's just branding thing):

  • Remko RKL495
  • Remko RKL494
  • Remko RKL491
  • Remko RKL490
  • TROTEC PAC 4600
  • Novamatic CL 990
  • Novamatic CL 1590
  • Rexair C15000N
  • Fischer ClimaButler (Clima|Butler) RCS-SD43UAI
  • Fischer ClimaButler (Clima|Butler) RCS-SD43UWI
  • freecom RCS-SD43UAI
  • freecom RCS-SD43UWI
  • Prem-i-air 15000 BTU

I try to add my Remko RKL490 DC also to esphome:
esphome/feature-requests#2826

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement help wanted more info Pending Analysis The issue can't progress without further message analysis Pending Confirmation Waiting for confirmation from user
Projects
None yet
Development

No branches or pull requests

4 participants