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

Fix sendPioneer with Pioneer specific timings #830

Merged
merged 2 commits into from
Jul 23, 2019
Merged

Fix sendPioneer with Pioneer specific timings #830

merged 2 commits into from
Jul 23, 2019

Conversation

s-hadinger
Copy link
Contributor

Here is a proposal to adjust timing for sendPioneer. Pioneer encoding is identical to NEC, but timing or slightly different. As frequency is 40KHz instead of 38KHz, it looks like the number of pulses are the same as NEC, hence timing is 5% shorter. For example, NEC preamble is 9.0ms/4.5ms, whereas Pioneer preamble is 8.5ms/4.25ms.

Most Pioneer devices accept NEC timings, but some don't. This change will hopefully make it comatible with all devices.
See: arendst/Tasmota#6100

I also changed the following:

  • repeat now resend the full 64 bits sequence, instead of the NEC specific repeat
  • ability to send only 32 bits, with a single sequence. Older devices still use 32 bits commands.

Hope this helps!

@crankyoldgit crankyoldgit self-requested a review July 22, 2019 20:45
@crankyoldgit
Copy link
Owner

Hey @s-hadinger, thanks for this. I'll look at cleaning this up shortly. e,g, Unit tests will be failing at the very least.

Do you have any raw captures (from IRrecvDumpV2) to back up that's how the repeat operation works at all? and so I can use them in the unit tests too! :) e.g. Going from a NEC-style special repeat mesg to just simple repeats of the entire message. It would also allow us to confirm what the inter-message gap is too. It is probably the same as NEC, but I'd like to make sure.

Code comments to follow :)

Copy link
Owner

@crankyoldgit crankyoldgit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this btw. I was only expecting an "issue" not a PR. :)

* Fix some code style issues so it is consistent with the rest of the code base.
* Fix a bunch of linter errors.
* Update existing unit tests to reflect the code changes.

FYI @s-hadinger
@crankyoldgit crankyoldgit merged commit 4eef786 into crankyoldgit:master Jul 23, 2019
jorgecis added a commit to jorgecis/IRremoteESP8266 that referenced this pull request Jul 23, 2019
Fix sendPioneer with Pioneer specific timings (crankyoldgit#830)
@s-hadinger
Copy link
Contributor Author

Hi, No I don't have full capture of long presses. But from the capture I have, the repeat is definitely not the NEC's one.

Thanks for integrating the changes so fast.

@crankyoldgit
Copy link
Owner

No I don't have full capture of long presses.

Pity.

Thanks for integrating the changes so fast.

No worries.

@s-hadinger s-hadinger deleted the fix_pioneer branch July 24, 2019 08:28
crankyoldgit added a commit that referenced this pull request Jul 26, 2019
_v2.6.4 (20190726)_

**[Bug Fixes]**
- Fix some swing problems with the Mitsubishi HAVC protocol (#831)
- Fix parameter ordering for Gree in common a/c code. (#815)
- Fix parameters for Coolix in IRac::sendAc() (#829)
- IRMQTTServer: Fix sending >64 bit codes. (#811)

**[Features]**
- Daikin128: Full detailed support & common a/c support. (#832)
- Midea: Support native temp units of Celsius & SwingV. (#823)
- Gree: Support `YBOFB` models and bug fix. (#815)
- Pioneer: Fix sendPioneer with Pioneer specific timings (#830)
- Daikin128: Initial support for Daikin 17 Series/BRC52B63 (#828)
- Coolix: Better `toCommon()` support. (#825)
- Experimental detailed support for Daikin 176 bits (#816)
- Add setting of output options to A/C classes. (#808)
- Add invert flag support to Samsung AC (#807)

**[Misc]**
- Daikin176: making some change on Daikin176 to work with IRMQTTServer (#826)
- Reduce duplicate code to save (3K+) space. (#813)
- Daikin176: Experiment Daikin176bits with IRMQTTServer (#824)
- Update platformio.ini files for PlatformIO v4.0.0 (#812)
- Change repo URLs to new location. (#806)
- Move `htmlEscape()` to the IRutils namespace (#801)
@crankyoldgit crankyoldgit mentioned this pull request Jul 26, 2019
crankyoldgit added a commit that referenced this pull request Jul 26, 2019
_v2.6.4 (20190726)_

**[Bug Fixes]**
- Fix some swing problems with the Mitsubishi HAVC protocol (#831)
- Fix parameter ordering for Gree in common a/c code. (#815)
- Fix parameters for Coolix in IRac::sendAc() (#829)
- IRMQTTServer: Fix sending >64 bit codes. (#811)

**[Features]**
- Daikin128: Full detailed support & common a/c support. (#832)
- Midea: Support native temp units of Celsius & SwingV. (#823)
- Gree: Support `YBOFB` models and bug fix. (#815)
- Pioneer: Fix sendPioneer with Pioneer specific timings (#830)
- Daikin128: Initial support for Daikin 17 Series/BRC52B63 (#828)
- Coolix: Better `toCommon()` support. (#825)
- Experimental detailed support for Daikin 176 bits (#816)
- Add setting of output options to A/C classes. (#808)
- Add invert flag support to Samsung AC (#807)

**[Misc]**
- Daikin176: making some change on Daikin176 to work with IRMQTTServer (#826)
- Reduce duplicate code to save (3K+) space. (#813)
- Daikin176: Experiment Daikin176bits with IRMQTTServer (#824)
- Update platformio.ini files for PlatformIO v4.0.0 (#812)
- Change repo URLs to new location. (#806)
- Move `htmlEscape()` to the IRutils namespace (#801)
@crankyoldgit
Copy link
Owner

FYI, this PR has been included in the v2.6.4 release of the library.

@s-hadinger
Copy link
Contributor Author

Thanks a lot. I will update Tasmota with this new version, unless Theo does it before me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants