-
Notifications
You must be signed in to change notification settings - Fork 836
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
Support for Maxwell AC (Probably advanced Mirage support) #1573
Comments
Can you please elaborate on this with examples/documentation/data etc?
Where is the
I can confirm that the library does decode the above as a Note: The library only has basic support for this (MIRAGE) protocol. That means it can send & receive |
Here the example: Here are the captured data:
as you can see, for the same state (16°C), pressing 3 times the down button, the remote controller will send 3 differents payloads: |
Looking at the data, it's fairly clear the temperature is stored in the second byte. i.e. As for why the other digits are changing, as per the wiki that's why we recommend setting the clock to You are the one that has to do the break-down/analysis/reverse-engineering. We can provide assistance & help etc, but most of the leg work requires your effort. I strongly suggest you follow that wiki link etc and let us know when you got all the bits that change explained. |
Thank you for your help and support. I will refine that to break-down the different bytes and states. By reading the Wiki page that you sent, I also understood that the varying bits/bytes are certainly checksum/CRC bits. I put some data into Thanks for your help again, and in the meantime, if you have more advices on how to decode this, as obviously your eye and experience on this in sharper than mine, please feel free to comment. |
Good news, I was about to give up on your checksum value too after I tried a few things, then I got lucky. e.g. I've tried it on a few values, and it works. Also, The |
@akram How are you going with the analysis? Have you got enough of it worked out to do/explain what you want yet? |
@crankyoldgit I added "Decode" tab in the stylesheet to add bits or snipple signification findings. Until now I was not able to make the AC respond to this. I will continue this evening. |
Cool. The key factors we need to add/support first are Power on/off control & Operation mode. After that, concentrate on Fan Speed. As we already have Temp figured out, you just need those before we can start on adding the beginnings of Detailed support to the library. |
Looking at the data you've collected, a candidate for the operation mode is the 8th nibble (i.e high nibble of state[4]) i.e. https://docs.google.com/spreadsheets/d/1Ucu9mOOIIJoWQjUJq_VCvwgV3EwKaRk8K2AuZgccYEk/edit#gid=380909393&range=D35:D38 |
@akram How goes the analysis? |
@crankyoldgit I think I am almost done with it. Also, I still have many nibbles which seems to have fixed value to 0 or C. What could be the next step to test my assumptions? trying to send IrSend based on these findings ? |
Cool. Good work. I'll look at coding up something based on your Decode sheet soon. I'll let you know when it's ready for some testing. I'm sure I'll have questions as I go. |
awesome @crankyoldgit , I will be waiting for the update and your questions then. |
What are the Model numbers for your Maxwell A/C and it's remote, please? |
Remote controller has the following model number on the back: KKG9A-C1 |
Thanks for the rapid response. |
you're welcome. Things get faster with a proper github notification helper. In MX-CH18CF , the number 18 seems to be the cooling power of 18k BTU, other less powerfull model have 12 and 9. And CF may refer to Chaud - Froid (Hot and Cool in French) as the device can be used to heat the room also. I have contacted Maxwell a few months ago, and they seem to have discontinued ACs during covid but they may restart in the future. |
Is there an "Auto" mode? Seems unusual to not have one. |
Also, a big piece of critical info that is missing from your spreadsheet. How is Also I don't see anything for |
Hey @crankyoldgit , Then, regarding Power on/off . I added some captures, and it seems that Power ON does not have a special value, it is only about sending a valid state based on what I have captured. However, Power Off seems to be adding 0xBE to byte number 5. Thus the whole state is also sent on poweroff. |
* Add detailed support for: - Temp - Fan speed - Turbo - Clock - Sleep - Light - Note: Missing POWER control. * Unit test coverage for what we have so far. * Update `IRac` class. For #1573
Thanks for the updated info. I might make "Recycle" map to "Auto. I'll think about it. Let me know how it goes. |
I think you need to analyse byte[5] more. It doesn't make sense. You may need to look at the bit patterns. |
I will add more captures to find out the exact behaviour of byte[5]. Regarding QUIET mode, it seems related to nibble[7] (display, sleep) . But also to Fan mode in nibble[9] (fan). |
By adding more captures, I still have this pattern between on an off state: TURN OFF TEMP=16, FAN=HIGH, SWING=SWIPE
TURN ON TEMP=16, FAN=HIGH, SWING=SWIPE
For the first lines of each table, there is always a difference of |
Mode heat, 24C, fan speed low
All unknown bits stay at 0. If there are bits in the other model that are always 1, this might be an okayish differentiation. I don't have much knowledge about IR protocols yet. So I don't know if this is a feasible soulution. UVC is a UV-C light in the unit which should kill bacteria and such things. |
Thanks for that. Unfortunately, we can't use timings it seems to differentiate the protocols. So, it's down to guesses with bits in the Re: UVC. We have two common features in the |
Then probably filter for UVC is suitable as there is also a clean button which obviously should be mapped to clean. UVC is kind of a filter as it filters out bacteria by destroying them. |
Is there a model number/code for the device? |
FYI, |
What is with the two |
* Add support for KKG29A-C1 model. - IFeel - Sensor Temp - Quiet - Filter (UVC) - Clean - On & Off Timers - SwingH * Add model detection. * Add support to `IRac` class. * Update existing unit tests. - Lots more unit tests needed for the new stuff. * Update supported models. For #1573
@dschulte I've coded up some stuff to try to support your different model. Can you please download branch: https://github.com/crankyoldgit/IRremoteESP8266/tree/KKG29AC1 / PR #1660 , test it out, and give me some feedback please? |
Model number of indoor and outdoor unit is just "Reykir 9000".
Ahh, that makes sense. I'll investigate.
I should have explained that a bit more. The remote sends both messages on one button press. I'll check if both messages are necessary or if the last message is sufficient. The branch looks good at first glance. I'll check it thoroughly this evening. |
* Tweak model detection in `getModel(state)` * Various improvements/fixes found in testing. * Update unit tests for `KKG29AC1` model. - Clock - Sleep - Light - Turbo - Power - SwingV * New unit tests for `KKG29AC1` - SwingH - Filter - Quiet - CleanToggle - Timers - IFeel & SensorTemp For #1573
|
Oh, haven't seen your last commit. Will check... |
* Fix power state for KKG29AC1 * Make light a toggle for KKG29AC1. * Use different bits for Fan Low & Medium. For #1573
@dschulte I've updated the branch again based on some of your feedback. Please download & try again. |
Looks good so far, except the quiet button isn't represented in "Mesg Desc.". Unfortunately the model detection is still not working correctly. The if-statement for KKG29AC1 is too narrow. Only heat and "recycle" mode will be detected correctly. Other modes like cool with no other settings are detected as KKG9AC1. |
Thanks for the feedback. Can you supply those |
* Based on real-world data/experience/feedback. * Add quiet to `toString()` * Improve model detection (hopefully) * Reduce code duplication between `IRMirageAc` & `IRac` using new `fromCommon()` method. * make `setModel()`s argument a `const`. * Update/adjust unit tests. For #1573
FYI, I've updated the branch based on your feedback. Please try it again and let me know. |
@dschulte , I am really interested in knowing if you will make your model work. I will not have access to my unit before a few months. But, in the meanwhile, I can buy the components to build a test module; that would be easier than testing with tasmota flashed devices. |
Here one message, which is detected wrong with the old commit. The current commit detects the message correctly. Mode cool, 22°C, fan speed medium, commit ecc60cc
Mode cool, 22°C, fan speed medium (same as above), commit be51b41
For my use case the implementation is probably fully functional already as I will send only where I can select the correct model. So now it is just to get everything to a 100% working state. @crankyoldgit I think we got it. Thanks a lot for your help and this awesome work! I will assemble a transmitting circuit in the next days and will give feedback. But I don't expect any problems there... |
Thanks. I've added it as a test case, so if we change model detection in the future we will know if we broke it.
Famous last words. ;-) Please let us know when you've tested it, as once you've confirmed it's working, I'll merge it into the rest of the library proper. Hopefully in time for the next version release. |
* Add support for KKG29A-C1 model. - IFeel - Sensor Temp - Quiet - Filter (UVC) - Clean - On & Off Timers - SwingH * Add model detection. * Add support to `IRac` class. * Add & Update existing unit tests. * Update supported models. For #1573
_v2.8.0 (20211119)_ **[Bug Fixes]** - Fix compilation issue when using old 8266 Arduino Frameworks. (#1639 #1640) - Fix potential security issue with `scrape_supported_devices.py` (#1616 #1619) **[Features]** - SAMSUNG_AC - Change `clean` setting to a toggle. (#1676 #1677) - Highest fan speed is available without Powerful setting. (#1675 #1678) - Change `beep` setting to a toggle. (#1669 #1671) - Fix Beep for AR12TXEAAWKNEU (#1668 #1669) - Add support for Horizontal Swing & Econo (#1277 #1667) - Add support for On, Off, & Sleep Timers (#1277 #1662) - Fix power control. Clean-up code & bitmaps from Checksum changes. (#1277 #1648 #1650) - HAIER_AC176/HAIER_AC_YRW02 - Add support A/B unit setting (#1672) - Add support degree Fahrenheit (#1659) - Add support `Lock` function (#1652) - Implement horizontal swing feature (#1641) - Implement Quiet setting. (#1634 #1635) - Basic support for Airton Protocol (#1670 #1681) - HAIER_AC176: Add Turbo and Quiet settings (#1634) - Gree: Add `SwingH` & `Econo` control. (#1587 #1653) - MIRAGE - Add experimental detailed support. (#1573 #1615) - Experimental detailed support for KKG29A-C1 remote. (#1573 #1660) - ELECTRA_AC: Add support for "IFeel" & Sensor settings. (#1644 #1645) - Add Russian translation (#1649) - Add Swedish translation (#1627) - Reduce flash space used. (#1633) - Strings finally in Flash! (#1493 #1614 #1623) - Add support for Rhoss Idrowall MPCV 20-30-35-40 A/C protocol (#1630) - Make `IRAc::opmodeToString()` output nicer for humans. (#1613) - TCL112AC/TEKNOPOINT: Add support for `GZ055BE1` model (#1486 #1602) - Support for Arris protocol. (#1598) - SharpAc: Allow position control of SwingV (#1590 #1594) **[Misc]** - HAIER_AC176/HAIER_AC_YRW02 - Replace some magic numbers with constants (#1679) - Small fix `Quiet` and `Turbo` test (#1674) - Fix `IRHaierAC176::getTemp()` return value description (#1663) - Security Policy creation and changes. (#1616 #1617 #1618 #1621 #1680) - IRrecvDumpV2/3: Update PlatformIO envs for missing languages (#1661) - IRMQTTServer - Use the correct string for Fan mode in Home Assistant. (#1610 #1657) - Move a lot of the strings/text to flash. (#1638) - Minor code style improvements. (#1656) - Update Supported Devices - HAIER_AC176 (#1673) - LG A/C (#1651 #1655) - Symphony (#1603 #1605) - Epson (#1574 #1601) - GREE (#1587 #1588) - SharpAc (#1590 #1591) - Add extra tests for LG2 protocol (#1654) - Fix parameter expansion in several macros. - Move some strings to `IRtext.cpp` & `locale/default.h` (#1637) - RHOSS: Move include and defines to their correct places (#1636) - Make makefile only build required files when running `run-%` target (#1632) - Update Portuguese translation (#1628) - Add possibility to run specific test case (#1625) - Change `googletest` library ignore (#1626) - Re-work "Fan Only" strings & matching. (#1610) - Address `C0209` pylint warnings. (#1608)
## _v2.8.0 (20211119)_ **[Bug Fixes]** - Fix compilation issue when using old 8266 Arduino Frameworks. (#1639 #1640) - Fix potential security issue with `scrape_supported_devices.py` (#1616 #1619) **[Features]** - SAMSUNG_AC - Change `clean` setting to a toggle. (#1676 #1677) - Highest fan speed is available without Powerful setting. (#1675 #1678) - Change `beep` setting to a toggle. (#1669 #1671) - Fix Beep for AR12TXEAAWKNEU (#1668 #1669) - Add support for Horizontal Swing & Econo (#1277 #1667) - Add support for On, Off, & Sleep Timers (#1277 #1662) - Fix power control. Clean-up code & bitmaps from Checksum changes. (#1277 #1648 #1650) - HAIER_AC176/HAIER_AC_YRW02 - Add support A/B unit setting (#1672) - Add support degree Fahrenheit (#1659) - Add support `Lock` function (#1652) - Implement horizontal swing feature (#1641) - Implement Quiet setting. (#1634 #1635) - Basic support for Airton Protocol (#1670 #1681) - HAIER_AC176: Add Turbo and Quiet settings (#1634) - Gree: Add `SwingH` & `Econo` control. (#1587 #1653) - MIRAGE - Add experimental detailed support. (#1573 #1615) - Experimental detailed support for KKG29A-C1 remote. (#1573 #1660) - ELECTRA_AC: Add support for "IFeel" & Sensor settings. (#1644 #1645) - Add Russian translation (#1649) - Add Swedish translation (#1627) - Reduce flash space used. (#1633) - Strings finally in Flash! (#1493 #1614 #1623) - Add support for Rhoss Idrowall MPCV 20-30-35-40 A/C protocol (#1630) - Make `IRAc::opmodeToString()` output nicer for humans. (#1613) - TCL112AC/TEKNOPOINT: Add support for `GZ055BE1` model (#1486 #1602) - Support for Arris protocol. (#1598) - SharpAc: Allow position control of SwingV (#1590 #1594) **[Misc]** - HAIER_AC176/HAIER_AC_YRW02 - Replace some magic numbers with constants (#1679) - Small fix `Quiet` and `Turbo` test (#1674) - Fix `IRHaierAC176::getTemp()` return value description (#1663) - Security Policy creation and changes. (#1616 #1617 #1618 #1621 #1680) - IRrecvDumpV2/3: Update PlatformIO envs for missing languages (#1661) - IRMQTTServer - Use the correct string for Fan mode in Home Assistant. (#1610 #1657) - Move a lot of the strings/text to flash. (#1638) - Minor code style improvements. (#1656) - Update Supported Devices - HAIER_AC176 (#1673) - LG A/C (#1651 #1655) - Symphony (#1603 #1605) - Epson (#1574 #1601) - GREE (#1587 #1588) - SharpAc (#1590 #1591) - Add extra tests for LG2 protocol (#1654) - Fix parameter expansion in several macros. - Move some strings to `IRtext.cpp` & `locale/default.h` (#1637) - RHOSS: Move include and defines to their correct places (#1636) - Make makefile only build required files when running `run-%` target (#1632) - Update Portuguese translation (#1628) - Add possibility to run specific test case (#1625) - Change `googletest` library ignore (#1626) - Re-work "Fan Only" strings & matching. (#1610) - Address `C0209` pylint warnings. (#1608)
FYI, the changes mentioned above have now been included in the new v2.8.0 release of the library. |
Version/revision of the library used
IRremoteESP8266 2.7.18 which comes with Tasmota 9.5.0
Describe the bug
I have a Maxwell AC (not a very well known brand) that seems to be using Mirage protocol, however controlling it does not work. After receiving and replaying payload data, the IRSend command does not trigger any action on the AC side.
To Reproduce
Install tasmota 9.5 (uses IRremoteESP8266 uses v2.7.18 ) capture data from the remote controller and replay it. No reaction on the AC side
e.g.
Example code used
Using tasmota, enable raw mode with:
and replay the received raw data after converting it
Expected behaviour
The AC reacts to the command:
Output of raw data from [IRrecvDumpV2.ino]
I don't have the required hardware to run this thest.
Note: Output from Tasmota is not acceptable. We can't easily use their raw format.
arf....I just read this after submitting the bug.
What brand/model IR demodulator are you using?
YFJ IR Bridge (Tuya)
Circuit diagram and hardware used (if applicable)
None
I have followed the steps in the [Troubleshooting Guide]
Yes
Has this library/code previously worked as expected for you?
No
Other useful information
Before upgrading to 2.7.18 , I was using a Tasmota version embedding IRremote that does not support Mirage. At that time, Tasmota was IRReceiving an UNKNOWN protocol with a payload of 122bits. After upgrading, it is now seen as MIRAGE with 120bits payload.
During my AC remote captures, I was also seeing sometings for IRreceived with KELON protocol.
So, I wonder if the AC is really using MIRAGE and if its protocol is interpreted as is, but that could be a different protocol.
Also, one important thing: same commands and even same state does not have the same data. Some part of the payload is identical accross calls, but, some others always vary whatever the sent state.
The text was updated successfully, but these errors were encountered: