-
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
No support for tracking power state when receiving signals for Airwell and Whirlpool ACs #1275
Comments
* Add a `prev` optional arg to `toCommon()` in Whirlpool and Airwell. * Remove `this->` from Whirlpool code. For #1275
@ayavilevich Can you please try out the code in this branch: https://github.com/crankyoldgit/IRremoteESP8266/tree/Issue1275 and let me know if it solves the issue you're describing. Regarding:
I disagree. The library should report a "toggle" rather than the ultimate state of the A/C, as that is exactly what the message contains/is/says etc. If we force down that level of abstraction onto the raw protocol, that removes flexibility & granularity of operation to a user of the library. However, I do agree that adding the option for the library to do some of that (via a TL;DR: I disagree with your wording of the "expected" behaviour, but I agree with the sentiment. ;-) |
@crankyoldgit thanks for the patch. I will check it and report. Might take me a few days as I will need to dive deeper into the code. Regarding expectations, let me elaborate on what I meant. I think the disagreement is because of naming. I agree that the library should provide receiving and parsing of messages (messages/results/packets/events, etc) in their raw form. We should not hide that away. But we should not call that "state". Once we call something "state", and once it has a property called "power" there is an expectation. |
Another question. I noticed that where decodeToState makes no check on |
Re: "state". No argument. The naming is less-than-perfect. But we live in a less-than perfect world. ;-P As for "power", hey, there is no definition of what it means. It could me "is there or isn't there a power toggle bit set?" :-) But seriously, there is no way to make a short & simple unified programmatic representation of all A/C operations, settings, & controls. |
TL;DR: The whole The longer version: It's at this point I should point out that I added the existing support for converting to "common" (e.g. In summary, |
@crankyoldgit Agree with what you wrote above. This is not perfect but IMO it is the best library in this category so I am happy it does what it does and gives the flexibility for the user to implement variable logic. Making some code changes, will test the blaster with the new firmware and will update. |
@crankyoldgit so far all good. Seems to work. If you are curious you can take a look at my fork of tasmota: Asked a few people to help test. |
Thanks for the confirmation. PR #1276 should fix/close out this issue when reviewed/submitted. |
…1276) * Add a `prev` optional arg to `.toCommon()` in Whirlpool & Airwell. * Remove `this->` from Whirlpool code. Confirmed working in #1275 (comment) Fixes #1275
_v2.7.11 (20200902)_ **[Features]** - Transcold: Add detailed support. (#1256 #1278) - Airwell/Whirlpool: Add handling of previous state to `.toCommon()` (#1275 #1276) - IRMQTTServer: Change how MQTT packet/buffer size is set. (#1271) - Fujitsu: Add support for timers. (#1255 #1261 #1262) - Neoclima: Add Economy & Fahrenheit support (#1260 #1265) - Technibel: Cleanup and code fixes/improvements. (#1259 #1266) - Technibel: Add detailed A/C support (#1259) - Transcold: Add basic support. (#1256 #1258) **[Misc]** - refactor ir_Delonghi (#1285) - Whirlpool: Change default mode in `convertMode()` (#1283 #1284) - SamsungAC: Unit tests to help debug poor signal (#1277 #1280) - Add question & note about VS1838b use to issue template. (#1281) - rewrite ir_Corona (#1274) - tools/mkkeywords: Fix minor parsing issue. (#1272) - Add Zhongxian Li to Contributers.md (#1270) - rewrite Carrier (#1269) - rewrite ir_Argo by using bit field (#1264) - rewrite ir_Amcor by using bit field (#1263) - Update Fujitsu supported model info. - Clarify the scope of the LittleFS breaking change.
_v2.7.11 (20201002)_ **[Features]** - Transcold: Add detailed support. (#1256 #1278) - Airwell/Whirlpool: Add handling of previous state to `.toCommon()` (#1275 #1276) - IRMQTTServer: Change how MQTT packet/buffer size is set. (#1271) - Fujitsu: Add support for timers. (#1255 #1261 #1262) - Neoclima: Add Economy & Fahrenheit support (#1260 #1265) - Technibel: Cleanup and code fixes/improvements. (#1259 #1266) - Technibel: Add detailed A/C support (#1259) - Transcold: Add basic support. (#1256 #1258) **[Misc]** - refactor ir_Delonghi (#1285) - Whirlpool: Change default mode in `convertMode()` (#1283 #1284) - SamsungAC: Unit tests to help debug poor signal (#1277 #1280) - Add question & note about VS1838b use to issue template. (#1281) - rewrite ir_Corona (#1274) - tools/mkkeywords: Fix minor parsing issue. (#1272) - Add Zhongxian Li to Contributers.md (#1270) - rewrite Carrier (#1269) - rewrite ir_Argo by using bit field (#1264) - rewrite ir_Amcor by using bit field (#1263) - Update Fujitsu supported model info. - Clarify the scope of the LittleFS breaking change.
* Regenerate Doxygen documentation * v2.7.11 release _v2.7.11 (20201002)_ **[Features]** - Transcold: Add detailed support. (#1256 #1278) - Airwell/Whirlpool: Add handling of previous state to `.toCommon()` (#1275 #1276) - IRMQTTServer: Change how MQTT packet/buffer size is set. (#1271) - Fujitsu: Add support for timers. (#1255 #1261 #1262) - Neoclima: Add Economy & Fahrenheit support (#1260 #1265) - Technibel: Cleanup and code fixes/improvements. (#1259 #1266) - Technibel: Add detailed A/C support (#1259) - Transcold: Add basic support. (#1256 #1258) **[Misc]** - refactor ir_Delonghi (#1285) - Whirlpool: Change default mode in `convertMode()` (#1283 #1284) - SamsungAC: Unit tests to help debug poor signal (#1277 #1280) - Add question & note about VS1838b use to issue template. (#1281) - rewrite ir_Corona (#1274) - tools/mkkeywords: Fix minor parsing issue. (#1272) - Add Zhongxian Li to Contributers.md (#1270) - rewrite Carrier (#1269) - rewrite ir_Argo by using bit field (#1264) - rewrite ir_Amcor by using bit field (#1263) - Update Fujitsu supported model info. - Clarify the scope of the LittleFS breaking change.
FYI, the changes mentioned above have now been included in the new v2.7.11 release of the library. |
Hello @crankyoldgit! How do you handle th state to keep it in sync using external remotes too? thank you |
@koalazak In future, please create a new issue rather than hijacking/adding to another long-closed issue. This is a problem inherent with the one-way nature of typical IR remote communication. You can't verify the state of the AC unit, nor if it got a command. IRMQTTServer has code to try to do what you're asking by using an IR receiver. You can look through the source code for how it tries to do it. However, inherently, there is no sure-fire way. |
Version/revision of the library used
2.7.10
Expected behavior
When receiving IR signals from physical remote for Airwell AC (and others such as Whirlpool) the power that is reported should be power state of the AC. Whether it is on or off. Disregarding any issues that could arise from getting out of sync (as there is no feedback).
Actual behavior
The power that is reported in the state object is actually "power toggle" and not "power".
This seems to be like this because
ac.toCommon()
for these ACs doesn't accept a previous state despite these ACs having a_.PowerToggle
field rather than Power. SoIRAcUtils::decodeToState
doesn't passprev
is available.There are vendors that currently accept "prev" in their "toCommon". for example COOLIX.
Output of raw data from IRrecvDumpV2.ino (if applicable)
IRrecvDumpV2 behaves correctly because
IRAirwellAc::toString
reports the field askPowerToggleStr
. It doesn't report "power". It also doesn't try to generate state.Steps to reproduce the behavior
Here is one example that you can transmit:
I have followed the steps in the Troubleshooting Guide & read the FAQ
Yes
Has this library/code previously worked as expected for you?
No but it got better. Previously didn't detect this AC at all.
Other useful information
Related to discussion in #1228
There you explain that
ac.sendAc
andIRac::handleToggles
address this issue for sending. Including for the ACs mentioned here.The text was updated successfully, but these errors were encountered: