-
Notifications
You must be signed in to change notification settings - Fork 842
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
Coolix variant (?) - sendRaw works, but not sending a hex code #579
Comments
For starters, thanks for the excellent bug report. It helps a lot! Looking at the raw data, it's longer than what I would expect. After a quick look, I think the message is being repeated. It may be the case that this protocol requires a single repeat by default.
In the meantime, I'll look into it deeper/further and also try to work out why Let me know if that works. I think you're the first person who's provided the raw data for a Coolix remote. |
FWIW,
That's the raw data line from your code example. If it is breaking on a different input, can you please supply it to me and I can see what might be causing it. Now, looking at that output, yes, it is two messages back to back, with the same payload. i.e. message + repeat. |
Issue #579 reported a variant of the Coolix remote that uses a second value for fan auto. - Add unit tests to cover real example and 2nd auto value.
Thanks for the help and feedback! Unfortunately |
I figured it out! I needed to do |
Another thing: |
Add support for optionally specifying the number of times a message should be repeated when sent via the A/C's specific `::send()` method. - Added for all A/C protocols Ref: Issue #579
@abstrakct Sorry for giving you the incorrect code example. i.e. I forgot to add the bit length. I wanted to wait till you confirmed the repeat solution worked for you before I coded a solution for the class method. I've just pushed a change to that branch that should make the class approach work for you.
Let me know if that works please. I'll look into why Python3.7 has an issue with the decoder. |
Change .format() usage to allow compatiblity with Python 3.x. Ref #579
@Hamper & @Hollako, Can you two please see if the Raw messages (via IRrecvDumpV2) from your Coolix remotes look like the ones here? i.e. approx 199 elements long vs. approx 98 elements long.
I'm asking as I'd like to investigate if we should change the default to be a repeat of 1. i.e. would that change break things for other Coolix A/C users. Xref #484 |
Change `.format()` usage to allow compatiblity with Python 3.x. Ref #579
@crankyoldgit I have tested the new branch, and can confirm that the new method works as expected! |
Issue #579 reported a variant of the Coolix remote that uses a second value for fan auto and has a repeat. * Add support for alt auto fan speed for coolix. * Add unit tests to cover real example and 2nd auto value. * Add support for optionally specifying the number of times a message should be repeated when sent via the A/C's specific `::send()` method. Fixes #579
@abstrakct Thanks for the confirmation that the patch works. |
FYI, this patch has been included in the newly released v2.5.4 of the library. |
Version/revison of the library used
2.5.3
Expected behavior
Actual behavior
Background:
I'm new to coding IR stuff, but I've been a hobby programmer for many years. I've been toying with esp8266 and arduinos for about a year.
I rent an apartment with an older AC/heat pump unit, the brand is NEX, but I can't find any info about the brand online. I'm trying to make a little wifi-connected remote to control this unit.
I uploaded the IRrecvDumpV2 program to a nodeMCU board with an IR receiver diode connected. The program recognized the remote control codes as the Coolix type/protocol, and the codes read from the remote seem to closely match the Coolix codes.
However, when I try to use the library to send codes to my unit, nothing happens. I've tried many variations, with no luck.
First I tried variations of this sequence:
No luck.
I also tried things like
irsend.sendCOOLIX(0xB2BF2C);
(B2BF2C is a code read from the remote control with the IRrecvDumpV2 program.)No luck.
(Btw, looking at the diode with cell phone camera I can see the diode lighting up, so something is being sent.)
BUT! When I send the rawData captured from the remote it works perfectly! The unit turns on/off just as expected!
So there has to be a way to make this work, hopefully without capturing/sending rawData for all combinations of settings. With 5 modes, 14 different temperatures and 4 different fan settings it'll be rather inconvenient to only deal with rawData... Probably doable, but I'd rather use this nice library!
I suspect my unit uses a slightly different version of the Coolix protocol? Or there is some data sent by my remote that isn't captured by IRrecvDumpV2? I've tried playing around with the kTimeout and kMinUnknownSize values, but no change in what IRrecvDumpV2 outputs.
My unit only lets me select Auto fan speed when the mode is Auto or Dry. I discovered that in those cases the library doesn't recognize the Auto fan speed. See output further down.
Also note that the power off command in the library (0xB27BE0) matches what is read from my remote, but sending the code still doesn't work.
Output of raw data from IRrecvDumpV2.ino (if applicable)
Power off command:
Power on, auto mode, 21 degrees C, auto fan speed:
Power on, heat mode, 20C, low fan speed:
Steps to reproduce the behavior
I don't see how you can reproduce this, unless you happen to have the same AC unit.
Example code used
Circuit diagram and hardware used (if applicable)
IR receiver (VS1838B) is connected to VCC, ground, pin D5
IR LED is connected as per the wiki, with a 2N3904 transistor and no other components.
I have followed the steps in the [Troubleshooting Guide]
Yes
Has this library/code previously worked as expected for you?
This is my first time using this library.
Other useful information
I also tried the auto_analyse_raw_data.py script, but it crashed:
I don't have a lot of experience with python, and didn't figure out how to fix this error.
If someone can help me decode the raw data (or get the auto analyse script to work), I wouldn't mind writing the code to support my unit. If the unit is too obscure to be included in the official library I can of course make my own fork.
Thanks in advance for any help!
The text was updated successfully, but these errors were encountered: