-
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
Voltas AC Remote IR Mapping #1238
Comments
Yes, it looks like you're on the correct path. Given you've got a steadily increasing value for the temp in Byte 3, I'd say you've got the bit ordering correct. So, congrats! You're well on the way to having this all figured out, or already have enough to make it completely usable. Feel free to submit a PR with what you've got so far and we can work on getting it as supported as we can. Things I'll ask in advance:
|
Coming back to Byte[3] b7, I did some testing by modifying the IRsendDemo. |
No worries. If there isn't one printed on the remote (sometimes in the battery compartment) then we will just do without. ;-) |
I've looked in the battery compartment too, though without any breakthroughs. Plus, I hope I was able to clear your previous doubts with regards to the state mapping. |
No rush & not urgent.
Yep. All good. I won't know more till I start coding. Speaking of which, can you please send what you've got working so far? Preferably in the form of a Pull Request (PR). Once I have it I'll start working on it. |
* Basic send/decode for the Voltas A/C protocol. * Unit test coverage for above. These are all the changes I made on my end so far, to make the library capable of sending and recognizing the various states (as bytes) of the Voltas protocol. User-friendly functions for sending and decoding are yet to be implemented. Ref #1238 Co-authored-by: David <[email protected]>
Now I've cleaned up & merged your PR, I'll start on the detailed support for the protocol. |
* Checksum support. * Power, toString, toCommon, set/GetRaw etc. For #1238
@manj9501 I'm adding detailed support in branch: https://github.com/crankyoldgit/IRremoteESP8266/tree/detailed_voltas |
Yes, doing it now! |
No sooner did I upload the IRrecvDumpV3 example from detailed_voltas branch on to my NodeMCU setup than I discovered the significance of the 'don't expect much' part of your statement. I encountered a rapidly, repeatedly crashing NodeMCU with the following Serial Log:
|
Bugger. Please comment out the |
Ref: #1238 (comment) X-Ref: #1232 Fixes #1244
Commenting that line out definitely helped and I can confirm that the basic functionality is working as expected. Attaching some samples of the decoded signals below:
|
Let me know if the descriptions don't match at any time. |
Sure, I'll keep you updated! |
Ref: #1238 (comment) X-Ref: #1232 Fixes #1244
Thanks for confirming! |
* Checksum support. * Power, toString, toCommon, set/GetRaw etc. For #1238
@manj9501 What's the difference between "Chill" and "Cool" operation modes? |
Turns out I was wrong! I did some research and well, the mode I've mistaken for 'Cool' all this while is actually the Heat mode. My bad! |
So, are these values correct then for the modes?
|
Yes, these are the right values. |
Yes, thanks for keeping me busy with the investigation ;-)
Correct! |
I don't know if it's worth mentioning or not, but I've noticed that Turbo mode disables the Fan Speed option, i.e. whatever fan speed was set when Turbo mode was activated, it'll remain so until and unless the Turbo mode is deactivated. I've tested the I've one question though. There is the Dry mode with constraints(24C, Low Fan) and the Econo option in the Cool mode with constraints(24C, Med Fan). |
Do we have to constrain it? The user of the library can always add additional limits. |
Yes and No.
Correct.
Here is the crux of it. In my opinion, we should not let a user trivially create/construct a message that the unit won't recognise or respond to. If the A/C silently ignores an entire command because it has econo set whilst in heat mode, then I think we should not allow it. However, if the A/C just ignores the econo part, and sets everything else in the message because "heat and econo mode are incompatible" then I'm fine with the library sending it. For example, the SwingH mode in this very protocol & a/c. The A/C didn't recognise a command with SwingH set because it doesn't support it, so allowing a user to send that sort of message is not great. However, the A/C doesn't support WiFi, but it happily accepts messages with the WiFi setting turn on. So, allowing it to be sent is fine. Basically, I'm all for maximal functionality & possibility w.r.t. to the library. i.e. We don't have to be bound by the remote's or manufacturer's limitations thus unlocking extra functionality. However, making messages that won't even be partially recognised is something we should avoid if we can trivially do it. |
@crankyoldgit I second you! |
That may be what the remote does/sends, but will the A/C unit accept the econo & dry mode that deviate from those restrictions/limitations? |
Yes, it responds correctly, with the fan speed remaining LOW, as expected. |
Hmm. Then I'm tempted to not enforce it in the library if the similar restrictions behave similarly. |
Yes, the AC automatically know what to do when the Econo option is activated. |
* Add `IRVoltas` class to handle detailed setting support. - Model - Power - Mode - Fan Speed - Temperature - Turbo (Cool Mode only) - Econo (Cool Mode only) - Sleep (Cool Mode only) - Wifi - Light/Lamp - SwingV - SwingH (Unavailable for Model 122LZF) - Off Timer - On Timer * Add support for `VOLTAS` to Common A/C API (`IRac`) * Unit tests. * Tested against real received messages, and sending messages to a real device. Fixes #1238
Thanks a lot @crankyoldgit for making this journey worth embarking on! |
_v2.7.10 (20200831)_ **[BREAKING CHANGES]** - move SPIFFS to LittleFS for ESP8266 (#1182 #1226) - Daikin176: Change & increase operating mode values. (#1233 #1235) **[Bug Fixes]** - TOSHIBA_AC: not turning off when using `IRac` class. (#1250 #1251) - Haier: change position of Fan speed bits. (#1246 #1247) **[Features]** - Voltas: Add detailed support for Voltas A/Cs (#1238 #1248) - Add support for Metz protocol. (#1241 #1242) - Basic support for Voltas A/C protocol (#1238 #1243) - Add low level bit formatting sanity checks. (#1232) **[Misc]** - Rewrite Airwell by using bit fields (#1254) - Rewrite Haier YRW02 using bit fields (#1253) - rewrite Haier HSU07-HEA03 (#1246 #1247) - rewrite ir_Gree & ir_Midea by using bit field (#1240) - Incorrect usage of `assert()` (#1244 #1245 #1232) - rewrite Gree (#1210)
## v2.7.10 release _v2.7.10 (20200831)_ **[BREAKING CHANGES]** - move SPIFFS to LittleFS for ESP8266 (#1182 #1226) - Daikin176: Change & increase operating mode values. (#1233 #1235) **[Bug Fixes]** - TOSHIBA_AC: not turning off when using `IRac` class. (#1250 #1251) - Haier: change position of Fan speed bits. (#1246 #1247) **[Features]** - Voltas: Add detailed support for Voltas A/Cs (#1238 #1248) - Add support for Metz protocol. (#1241 #1242) - Basic support for Voltas A/C protocol (#1238 #1243) - Add low level bit formatting sanity checks. (#1232) **[Misc]** - Rewrite Airwell by using bit fields (#1254) - Rewrite Haier YRW02 using bit fields (#1253) - rewrite Haier HSU07-HEA03 (#1246 #1247) - rewrite ir_Gree & ir_Midea by using bit field (#1240) - Incorrect usage of `assert()` (#1244 #1245 #1232) - rewrite Gree (#1210)
The code changes mention have now been included in the newly released v2.7.10 of the library. |
Thanks for the information! I'll update it right away |
Note: It may take up to 24 hours for the standard Arduino library manager(s) to get the updated version of the library. but it's available now from github if you want to do it manually. |
Yeah, I took the manual route. Thanks! |
Hello, I've been trying to make a voltas remote decoding using gpio interrupts and timers. I've analysed the remote burst and noticed that there wasn't any start bit. I'm almost near to the end and all I miss now is the integrity. Since because I don't see a start bit, IR receiver easily gets pulled to other signals. It would of great help if some one can guide me to the finish line. Also please correct me if I was wrong at any point. |
@gokul12051997 Please create a new issue and include all the data & code you've worked out thus far. With out data & code etc, how can we help you? |
Are you maybe trying to write your own decoder, and not using this library and want help with understanding the raw or signal? |
@crankyoldgit Sorry and I'll create a new issue with the data's. |
_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)
**_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)
Hola @crankyoldgit et al.
I have put in a day's work to try and reverse engineer my AC's IR Remote mapping and after necessary following the steps given in the two wiki articles explaining how to do so, I've come up with the following results:
My setup is a NodeMCU connected to an IR receiver I salvaged from a digital photo frame.
A few of the IRrecvDumpV3 outputs after modifying the library are given below:
Also I've built an IR sender circuit and can confirm that the AC is responding to the change in parameters, with the correct checksum only.
Can you please confirm if I'm on the right path, so I can proceed towards the coding part, which admittedly, doesn't happen to be my strongest suit.
Voltas Remote pic:
The text was updated successfully, but these errors were encountered: