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

Additional Midea toggle codes #1733

Closed
normanr opened this issue Jan 10, 2022 · 7 comments · Fixed by #1734
Closed

Additional Midea toggle codes #1733

normanr opened this issue Jan 10, 2022 · 7 comments · Fixed by #1734

Comments

@normanr
Copy link

normanr commented Jan 10, 2022

#1318 mentioned that self-clean doesn't produce an ir signal, but it only works in some modes. The Silence/FP button is also mentioned, but it was not fully documented. The full codes (from my RG57A6/BGEFU1 remote) are:

const uint64_t kMideaACToggleSelfClean        = 0xA20DFFFFFF70;  // Mode must be Auto, Cool, or Dry
const uint64_t kMideaACToggleFreezeProtection = 0xA20FFFFFFF73;  // Mode must be Heat
const uint64_t kMideaACToggleSilenceOn        = 0xA212FFFFFF6E;
const uint64_t kMideaACToggleSilenceOff       = 0xA213FFFFFF6F;

Note that the toggles are all in the 2nd byte. The 3rd, 4th and 5th bytes are 0xFF and the checksum is the same logic as the other codes. So the toggles could be shortened to a single byte, and the code updated to populate the other fields and checksum).

The Lennox mini-split wireless controller user manual can be found here: https://coolairsolutions.com/wp-content/uploads/Lennox-Minisplit-Wireless-Remote-M0STAT60Q-1-User-Manual.pdf. The Mr COOL mini-split systems look identical to the Lennox systems, their remote manual can be found here: https://mrcool.com/wp-content/dox_repo/mc-rmt-um-en-01.pdf. I suspect they're the same base-unit just with slightly different control electronics, eg Mr COOL offers a Smart Wifi Kit, but I can't find one for Lennox.

Freeze Protection is also called "Frost Prevention" in some places. Silence is a toggle and actives a lower-than-low fan speed, replacing the fan speed indicator with a picture of "a person holding their index finger up to their mouth" ("hush").

@crankyoldgit
Copy link
Owner

Lennox systems, their remote manual can be found here: https://mrcool.com/wp-content/dox_repo/mc-rmt-um-en-01.pdf

FYI, the "direct" link above does not work.

Freeze Protection is also called "Frost Prevention" in some places.

There are other brands/models that have a similar feature. I may use different text to describe it when decoding, but I'll see what I can do/add.

@crankyoldgit crankyoldgit self-assigned this Jan 10, 2022
crankyoldgit added a commit that referenced this issue Jan 11, 2022
* Add support for Quiet setting controls.
* Add support for Clean and Freeze Protect toggle controls/settings/logic.
* Add & update unit test coverage.
* Minor code and output cleanup.
* Update supported model info.

Fixes #1733
@crankyoldgit crankyoldgit added the Pending Confirmation Waiting for confirmation from user label Jan 11, 2022
@crankyoldgit
Copy link
Owner

Hi @normanr Can you please download/test PR #1734 / Branch https://github.com/crankyoldgit/IRremoteESP8266/tree/Issue1733 and confirm if that adds the functionality you've documented?

Fingers crossed I got it all correct.

@normanr
Copy link
Author

normanr commented Jan 11, 2022

Lennox systems, their remote manual can be found here: https://mrcool.com/wp-content/dox_repo/mc-rmt-um-en-01.pdf
FYI, the "direct" link above does not work.

blegh, it works fine if the referrer is missing (copy the link and paste it manually, you may need to refresh) or one of the well known search engines - github.com is not on the "allow list".

Freeze Protection is also called "Frost Prevention" in some places.

There are other brands/models that have a similar feature. I may use different text to describe it when decoding, but I'll see what I can do/add.

sgtm.

Hi @normanr Can you please download/test PR #1734 / Branch https://github.com/crankyoldgit/IRremoteESP8266/tree/Issue1733 and confirm if that adds the functionality you've documented?

Fingers crossed I got it all correct.

I don't have an ESP8266 that I can test with. I have not yet tried to integrate the library with the code I wrote for the BL602 device I finally got NuttX running on, but it has been extremely useful to understand how to decode/encode the midea signals.

I reviewed the code: M0STAT60Q-1 doesn't appear anywhere on the physical remote (only the manual). I assume it's a Lennox specific code. The model number of the back of the remote is RG57A6/BGEFU1 (like the existing Mr Cool brand remote listed in the code).

I also noticed that quiet/silent mode is (currently) a separate toggle, where-as on the remote it behaves more like an extra fan speed. If you enable silent (toggle on code is sent), then fan speed "disappears" on the remote (silent shows instead). If you disable silent then fan speed re-appears however it was before (only the toggle silence off code is sent by the remote). If silent is on and you change fan speed, then silent is forced off on the remote's display (and only the regular mode/fan/setpoint code is sent by the remote).

I'm not 100% sure that my indoor unit understands what to do with the silent on/off codes because it doesn't beep, or seem to change behavior (I have not confirmed that the outdoor unit behavior is unchanged). Interestingly the Lennox manual annotates the figure on the remote screen as "Not used" (like ECO and the leaf), but the text provides details about silent/quite mode, so it's not consistent. The Mr Cool manual does not include the "Not used" graphics (including the silence icon), but also describes the function in the text. (I noticed that the "%" and "H" units are not described at all, and also never seem to be used).

@crankyoldgit crankyoldgit removed the Pending Confirmation Waiting for confirmation from user label Jan 12, 2022
@crankyoldgit
Copy link
Owner

I don't have an ESP8266 that I can test with. I have not yet tried to integrate the library with the code I wrote for the BL602 device I finally got NuttX running on, but it has been extremely useful to understand how to decode/encode the midea signals.

Bummer, then I guess you can't verify it then.

I reviewed the code: M0STAT60Q-1 doesn't appear anywhere on the physical remote (only the manual). I assume it's a Lennox specific code. The model number of the back of the remote is RG57A6/BGEFU1 (like the existing Mr Cool brand remote listed in the code).

Okay, I'll adjust it.
Just confirming. The remote is Lennox branded?
And what is the brand/model etc of the actual AC unit?

I also noticed that quiet/silent mode is (currently) a separate toggle, where-as on the remote it behaves more like an extra fan speed. If you enable silent (toggle on code is sent), then fan speed "disappears" on the remote (silent shows instead). If you disable silent then fan speed re-appears however it was before (only the toggle silence off code is sent by the remote). If silent is on and you change fan speed, then silent is forced off on the remote's display (and only the regular mode/fan/setpoint code is sent by the remote).

Alas, that is the best way to implement it given the rest of the library.

I'm not 100% sure that my indoor unit understands what to do with the silent on/off codes because it doesn't beep, or seem to change behavior (I have not confirmed that the outdoor unit behavior is unchanged). Interestingly the Lennox manual annotates the figure on the remote screen as "Not used" (like ECO and the leaf), but the text provides details about silent/quite mode, so it's not consistent. The Mr Cool manual does not include the "Not used" graphics (including the silence icon), but also describes the function in the text. (I noticed that the "%" and "H" units are not described at all, and also never seem to be used).

Bummer. Oh well, hopefully someone will find it useful for their A/C.

@normanr
Copy link
Author

normanr commented Jan 12, 2022

Bummer, then I guess you can't verify it then.

Yea, I was trying to figure out if I could hook IRremoteESP8266 into my existing code. Maybe if I define UNIT_TEST so that the ESP code is ~mostly disabled, and then populate rawbuf and rawlen from my capture routine it would work. I currently wait for a POSIX signal (triggered from an interrupt) that the gpio pin has changed, and then disable task scheduling and tight loop reading the gpio pin. I get very reasonable results that way (I have not tried to go 100% with interrupts/signals, because I feared it wouldn't be good enough. Also I currently only have a 1ms resolution clock, so raw loop counts are more accurate). Annoyingly the BL602 has a hardware support for receiving IR code, but the receive buffer only has 64-bits of data (so fine for "regular" remotes, but useless for HVAC).

Okay, I'll adjust it. Just confirming. The remote is Lennox branded? And what is the brand/model etc of the actual AC unit?

Yes, It has Lennox branding (pictures: front back). The indoor units are model MWMA009S4-3P (and MWMA012S4-3P for the large room). Based on the convert page of their product specifications pdf (11MB) I'd guess the remote works with all of their mini-split non-ducted indoor units (MWMA/MFMA/M22A/M33A/MCFA/MCFB)

Alas, that is the best way to implement it given the rest of the library.

acknowledged. It wasn't clear from #1528 whether the logic was the same or not (I suspect it might be). Would need to get @thanxx to check if TCL works in the same way or not.

@crankyoldgit
Copy link
Owner

Yea, I was trying to figure out if I could hook IRremoteESP8266 into my existing code. Maybe if I define UNIT_TEST so that the ESP code is ~mostly disabled, and then populate rawbuf and rawlen from my capture routine it would work. I currently wait for a POSIX signal (triggered from an interrupt) that the gpio pin has changed, and then disable task scheduling and tight loop reading the gpio pin. I get very reasonable results that way (I have not tried to go 100% with interrupts/signals, because I feared it wouldn't be good enough. Also I currently only have a 1ms resolution clock, so raw loop counts are more accurate). Annoyingly the BL602 has a hardware support for receiving IR code, but the receive buffer only has 64-bits of data (so fine for "regular" remotes, but useless for HVAC).

Correct, enabling UNIT_TEST will make it safe to compile on a "normal" system. e.g. See the programs under test/ e.g. test/ir_Midea_test.cpp. There are plenty of examples in that directory of how to simulate/extract/reproduce signals generated by the library.

Yes, It has Lennox branding (pictures: front back). The indoor units are model MWMA009S4-3P (and MWMA012S4-3P for the large room). Based on the convert page of their product specifications pdf (11MB) I'd guess the remote works with all of their mini-split non-ducted indoor units (MWMA/MFMA/M22A/M33A/MCFA/MCFB)

Thanks for the info.

crankyoldgit added a commit that referenced this issue Jan 13, 2022
* Add support for Quiet setting controls.
* Add support for Clean and Freeze Protect toggle controls/settings/logic.
* Add & update unit test coverage.
* Minor code and output cleanup.
* Update supported model info.

Fixes #1733
crankyoldgit added a commit that referenced this issue Mar 14, 2022
_v2.8.2 (20220314)_

**[Bug Fixes]**
- ESP32-C3: Fix reboot/crashes on ESP32-C3s when receiving. (#1768 #1751)

**[Features]**
- HITACHI_AC296: Add `IRac` class support & tests. (#1776 #1758 #1757)
- Support for Hitachi RAS-70YHA3 (remote RAR-3U3) (#1758 #1757)
- LG: Add Swing Toggle support for Model `LG6711A20083V` (#1771 #1770)
- IRMQTTServer: add `MQTT_SERVER_AUTODETECT_ENABLE` via mqtt mDNS (#1769)
- Experimental basic support for Kelon 168 bit / 21 byte protocol. (#1747 #1745 #1744)
- MitsubishiAC: Tweak repeat gap timing. (#1760 #1759)
- Gree YAP0F8 (Detected as Kelvinator) vertical position set support (#1756)
- Make KELON (48 bit) protocol decoding stricter. (#1746 #1744)
- IRMQTTServer V1.6.1 (#1740 #1739 #1729)
- HITACHI_AC264: Add minimal detailed support. (#1735 #1729)
- LG2: Improve Light toggle msg handling. (#1738 #1737)
- MIDEA: Add support for Quiet, Clean & Freeze Protect controls. (#1734 #1733)
- Add basic support for HITACHI_AC264 264bit protocol. (#1730 #1729)
- ESP32-C3: Work around for some C3 specific compiler issues again. (#1732 #1695)

**[Misc]**
- MIDEA: Update supported devices (#1774 #1773 #1716)
- Update devices supported by ELECTRA_AC (#1766 #1765)
- Improve documentation for `encodePioneer()` (#1761 #1749)
- Update (un)supported DAIKIN128 devices. (#1752)
- Refactor `decodeCOOLIX()` code & add another test case. (#1750 #1748)
- Simplify code based on state_t being initialised by default. (#1736 #1699)
- Add comments to help Teknopoint users. (#1731 #1728)
- Fix library version string calculation. (#1727 #1725)
- Confirm we can reproduce `TurnOnFujitsuAC.ino` via IRac/IRMQTTServer. (#1726 #1701)
crankyoldgit added a commit that referenced this issue Mar 15, 2022
##_v2.8.2 (20220314)_

**[Bug Fixes]**
- ESP32-C3: Fix reboot/crashes on ESP32-C3s when receiving. (#1768 #1751)

**[Features]**
- HITACHI_AC296: Add `IRac` class support & tests. (#1776 #1758 #1757)
- Support for Hitachi RAS-70YHA3 (remote RAR-3U3) (#1758 #1757)
- LG: Add Swing Toggle support for Model `LG6711A20083V` (#1771 #1770)
- IRMQTTServer: add `MQTT_SERVER_AUTODETECT_ENABLE` via mqtt mDNS (#1769)
- Experimental basic support for Kelon 168 bit / 21 byte protocol. (#1747 #1745 #1744)
- MitsubishiAC: Tweak repeat gap timing. (#1760 #1759)
- Gree YAP0F8 (Detected as Kelvinator) vertical position set support (#1756)
- Make KELON (48 bit) protocol decoding stricter. (#1746 #1744)
- IRMQTTServer V1.6.1 (#1740 #1739 #1729)
- HITACHI_AC264: Add minimal detailed support. (#1735 #1729)
- LG2: Improve Light toggle msg handling. (#1738 #1737)
- MIDEA: Add support for Quiet, Clean & Freeze Protect controls. (#1734 #1733)
- Add basic support for HITACHI_AC264 264bit protocol. (#1730 #1729)
- ESP32-C3: Work around for some C3 specific compiler issues again. (#1732 #1695)

**[Misc]**
- MIDEA: Update supported devices (#1774 #1773 #1716)
- Update devices supported by ELECTRA_AC (#1766 #1765)
- Improve documentation for `encodePioneer()` (#1761 #1749)
- Update (un)supported DAIKIN128 devices. (#1752)
- Refactor `decodeCOOLIX()` code & add another test case. (#1750 #1748)
- Simplify code based on state_t being initialised by default. (#1736 #1699)
- Add comments to help Teknopoint users. (#1731 #1728)
- Fix library version string calculation. (#1727 #1725)
- Confirm we can reproduce `TurnOnFujitsuAC.ino` via IRac/IRMQTTServer. (#1726 #1701)
@crankyoldgit
Copy link
Owner

FYI, the changes mentioned above have now been included in the new v2.8.2 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

Successfully merging a pull request may close this issue.

2 participants