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

TurnOnFujitsuAC incompatibility with uniaxial swing #716

Closed
u4mzu4 opened this issue May 22, 2019 · 18 comments
Closed

TurnOnFujitsuAC incompatibility with uniaxial swing #716

u4mzu4 opened this issue May 22, 2019 · 18 comments
Assignees

Comments

@u4mzu4
Copy link

u4mzu4 commented May 22, 2019

Version/revison of the library used

v2.6.0

Expected behavior

Fujitsu air conditioner switch ON if use TurnOnFujitsuAC example

Actual behavior

Fujitsu air conditioner doesn't switch ON if use TurnOnFujitsuAC example

Steps to reproduce the behavior

Just compile, flash and run the example TurnOnFujitsuAC

Example code used

https://github.com/markszabo/IRremoteESP8266/tree/master/examples/TurnOnFujitsuAC

Circuit diagram and hardware used (if applicable)

https://github.com/chaeplin/rm-mini3-to-esp8266/blob/master/readme.md

I have followed the steps in the [Troubleshooting Guide]

Found the issue #275, changed the line
from
ac.setSwing(kFujitsuAcSwingBoth);
to
ac.setSwing(kFujitsuAcSwingVert);

And after the modification the AC is working! :-)

Has this library/code previously worked as expected for you?

No.

Other useful information

It would be great, if you can change the example line
ac.setSwing(kFujitsuAcSwingBoth);
to
ac.setSwing(kFujitsuAcSwingOff);
for wider compatibility of Fujitsu types.
Thanks in advaced

@crankyoldgit
Copy link
Owner

What is the model number of the aircon & remote? I think you have a different model number than that is supported.
I may be able to add some detection/changes to support it.

I'll also look at making the change to the example suggested.

@u4mzu4
Copy link
Author

u4mzu4 commented May 22, 2019

Hello, thanks for your quick response!
AC type: ASYG7LMCA
Remote: It's not available for me at the moment, but looks like this (based on the picture):
https://kzklima.hu/wp-content/uploads/fujitsu-oldalfali-split-klima-taviranyito-2.jpg

Anyway, thank you for your nice library and the hard work, I'm really-really happy with this. Smart AC was never so easy. :-)

@crankyoldgit
Copy link
Owner

Thanks. The model number of the remote is quite important, so I'll wait till I have that before I try to add better support for it.

@u4mzu4
Copy link
Author

u4mzu4 commented May 22, 2019

Is it possible, that the IR remote type is UTY-LNTY?
Based on Fujitsu website (https://www.fujitsu-general.com/eu/products/split/optionalparts.html).

@crankyoldgit
Copy link
Owner

@u4mzu4 Could be, but we can wait till you check for the model number on the unit you have.
Our current supported models (used by the setModel() function) are listed here: https://github.com/markszabo/IRremoteESP8266/blob/master/src/ir_Fujitsu.h#L72
i.e. ARRAH2E (default) and ARDB1

@u4mzu4
Copy link
Author

u4mzu4 commented May 22, 2019

The exact IR remote type is AR-REB1E.

@crankyoldgit
Copy link
Owner

@u4mzu4 Thanks. I've created a branch to test the functionality of setting the correct model via setModel() for your remote/aircon etc. Can you please try it out?
Also, can you please provide me with some captures via IRrecvDumpV2 for your remote, documenting what modes/settings they are. This may help me detect the difference between an AR-REB1E remote and a AR-RAH2E, which so far, only seem to differ between having horizontal swing options.

@u4mzu4
Copy link
Author

u4mzu4 commented May 23, 2019

@crankyoldgit Thanks! The branch looks perfect, I'll test it as soon as I have some spare time. The biggest challenge is the AR-REB1E further capturing, because I've disassembled the receiver cables since the sending is working properly. (The big boss -my wife- wouldn't be happy if I made it inaccessible again.) There are some extra feature on the controller (set spoiler postition, economy mode, outdoor uint low noise option, 10°C antifreeze heating, powerful mode and timer), I think nobody is using them, but who knows.
Anyway, I have an ESP32 evalboard with builtin IR option (Olimex ESP32-EVB). Is there any painless possibility to port the code from ESP8266 to ESP32, or do I have to find another solution?

@crankyoldgit
Copy link
Owner

Is there any painless possibility to port the code from ESP8266 to ESP32, or do I have to find another solution?

Unfortunately, no. This library isn't supported on the ESP32. The original library this one is based on does support the ESP32 (https://github.com/z3t0/Arduino-IRremote) but it doesn't have the same protocol support.

@u4mzu4
Copy link
Author

u4mzu4 commented May 24, 2019

Hello!

Here are some extra commands from AR-REB1E. I hope it will be helpful, and if you need any additional readout, do not hesitate to ask me. :-)

Powerful mode:
Timestamp : 000320.478
Encoding : FUJITSU_AC
Code : 146300101039C6 (56 bits)
Mesg Desc.: Power: On, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Command: N/A
Library : v2.6.0
uint16_t rawData[115] = {3320, 1610, 432, 406, 432, 406, 432, 1220, 432, 406, 432, 1192, 458, 406, 432, 406, 432, 406, 432, 1218, 432, 1220, 432, 406, 432, 406, 432, 406, 432, 1192, 458, 1192, 460, 406, 432, 406, 432, 406, 432, 406, 432, 406, 432, 406, 432, 406, 432, 408, 432, 406, 432, 406, 430, 406, 432, 406, 432, 406, 432, 1190, 460, 406, 432, 408, 430, 406, 432, 406, 432, 406, 432, 406, 432, 406, 434, 1192, 458, 406, 432, 406, 432, 406, 432, 1194, 458, 406, 432, 406, 432, 1194, 456, 1196, 454, 1220, 432, 406, 432, 406, 432, 408, 430, 1194, 458, 1194, 456, 406, 432, 406, 430, 406, 432, 1194, 458, 1194, 458}; // FUJITSU_AC
uint8_t state[7] = {0x14, 0x63, 0x00, 0x10, 0x10, 0x39, 0xC6};

Economy mode
Timestamp : 000449.237
Encoding : FUJITSU_AC
Code : 146300101009F6 (56 bits)
Mesg Desc.: Power: On, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Command: N/A
Library : v2.6.0
uint16_t rawData[115] = {3350, 1552, 490, 350, 464, 374, 464, 1186, 488, 350, 464, 1186, 488, 348, 466, 374, 464, 374, 464, 1186, 488, 1162, 490, 350, 488, 350, 464, 374, 464, 1186, 488, 1162, 488, 350, 488, 350, 488, 350, 466, 372, 488, 350, 464, 374, 488, 348, 474, 366, 488, 350, 488, 348, 490, 350, 488, 350, 466, 372, 488, 1162, 490, 350, 488, 350, 488, 348, 490, 350, 488, 350, 488, 350, 490, 348, 490, 1162, 490, 350, 488, 350, 490, 348, 490, 1162, 490, 348, 490, 350, 488, 1162, 490, 348, 490, 348, 488, 350, 490, 348, 490, 350, 488, 1162, 490, 1160, 490, 348, 490, 1162, 490, 1162, 490, 1160, 490, 1162, 488}; // FUJITSU_AC
uint8_t state[7] = {0x14, 0x63, 0x00, 0x10, 0x10, 0x09, 0xF6};

Outdoor uint low noise
Low noise:
Timestamp : 000487.258
Encoding : FUJITSU_AC
Code : 1463001010FE0930800110000000A09F (128 bits)
Mesg Desc.: Power: On, Mode: 1 (COOL), Temp: 24C, Fan: 0 (AUTO), Swing: Vert, Command: N/A
Library : v2.6.0

uint16_t rawData[259] = {3324, 1580, 464, 374, 464, 374, 464, 1186, 464, 374, 464, 1188, 464, 374, 464, 376, 462, 374, 464, 1188, 462, 1188, 464, 376, 464, 374, 462, 376, 464, 1186, 464, 1186, 464, 374, 462, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 462, 376, 464, 1188, 464, 374, 464, 374, 464, 376, 462, 374, 464, 374, 462, 376, 464, 374, 464, 1186, 464, 376, 462, 374, 464, 374, 462, 376, 464, 1188, 464, 1186, 464, 1188, 462, 1188, 464, 1186, 464, 1186, 466, 1186, 464, 1186, 464, 374, 466, 374, 464, 1186, 464, 374, 464, 374, 464, 374, 464, 374, 466, 372, 466, 372, 466, 374, 464, 374, 464, 1186, 490, 1162, 490, 348, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 1186, 490, 1162, 490, 348, 464, 374, 464, 374, 466, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 462, 376, 464, 1186, 488, 350, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 464, 374, 466, 372, 488, 350, 464, 374, 464, 376, 464, 374, 484, 352, 488, 350, 488, 348, 478, 362, 488, 350, 488, 350, 488, 350, 490, 348, 488, 350, 488, 350, 488, 350, 488, 348, 490, 348, 490, 348, 490, 348, 490, 348, 490, 348, 488, 350, 490, 1162, 490, 348, 488, 1162, 490, 1162, 490, 1162, 490, 1162, 490, 1160, 490, 1162, 490, 348, 490, 350, 488, 1162, 490}; // FUJITSU_AC
uint8_t state[16] = {0x14, 0x63, 0x00, 0x10, 0x10, 0xFE, 0x09, 0x30, 0x80, 0x01, 0x10, 0x00, 0x00, 0x00, 0xA0, 0x9F};

Set vane vertically
Timestamp : 000563.824
Encoding : FUJITSU_AC
Code : 14630010106C93 (56 bits)
Mesg Desc.: Power: On, Mode: 0 (AUTO), Temp: 16C, Fan: 0 (AUTO), Swing: Off, Command: Step vane vertically
Library : v2.6.0

uint16_t rawData[115] = {3352, 1556, 488, 350, 488, 376, 462, 1160, 490, 350, 486, 1164, 488, 374, 462, 376, 462, 376, 464, 1160, 488, 1164, 488, 374, 462, 376, 462, 376, 462, 1162, 490, 1162, 488, 376, 462, 376, 462, 350, 488, 376, 462, 378, 462, 376, 462, 376, 462, 376, 462, 352, 486, 376, 462, 376, 462, 376, 462, 376, 462, 1160, 490, 376, 462, 376, 462, 376, 462, 376, 462, 350, 488, 376, 462, 350, 488, 1162, 490, 376, 462, 376, 462, 376, 462, 376, 462, 376, 462, 1162, 490, 1160, 492, 374, 462, 1162, 490, 1162, 488, 376, 464, 1160, 490, 1162, 490, 374, 464, 352, 486, 1162, 490, 374, 462, 350, 488, 1162, 490}; // FUJITSU_AC
uint8_t state[7] = {0x14, 0x63, 0x00, 0x10, 0x10, 0x6C, 0x93};

10°C antifreezing heat
Timestamp : 000210.287
Encoding : FUJITSU_AC
Code : 1463001010FE0930810B000000002024 (128 bits)
Mesg Desc.: Power: On, Mode: 3 (FAN), Temp: 24C, Fan: 0 (AUTO), Swing: Off, Command: N/A
Library : v2.6.0

Raw Timing[259]:
uint16_t rawData[259] = {3288, 1614, 428, 412, 426, 412, 428, 1222, 428, 412, 426, 1224, 426, 412, 426, 412, 426, 412, 424, 1226, 428, 1224, 424, 414, 426, 410, 426, 414, 426, 1224, 428, 1222, 428, 412, 426, 412, 426, 412, 426, 414, 426, 412, 428, 410, 426, 412, 428, 410, 426, 412, 428, 410, 428, 410, 428, 408, 430, 410, 428, 1220, 456, 382, 458, 382, 456, 382, 456, 382, 454, 382, 456, 384, 456, 382, 458, 1192, 458, 382, 456, 380, 458, 380, 460, 378, 456, 1196, 456, 1194, 458, 1192, 458, 1192, 460, 1192, 460, 1188, 460, 1192, 460, 1192, 460, 378, 460, 378, 460, 1190, 460, 380, 458, 380, 458, 380, 458, 380, 456, 382, 458, 378, 460, 380, 458, 380, 458, 1192, 460, 1192, 458, 380, 458, 380, 458, 1192, 462, 378, 458, 380, 458, 380, 458, 380, 456, 382, 456, 382, 458, 1194, 458, 1190, 458, 1192, 460, 380, 458, 1192, 458, 380, 456, 382, 454, 384, 430, 408, 454, 382, 430, 408, 428, 410, 430, 408, 428, 410, 430, 408, 430, 408, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 426, 412, 426, 410, 428, 412, 426, 412, 426, 412, 426, 414, 426, 410, 428, 410, 426, 412, 426, 412, 426, 412, 428, 410, 426, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 428, 410, 430, 408, 428, 410, 430, 1220, 460, 378, 460, 378, 458, 380, 456, 382, 458, 1192, 458, 380, 458, 380, 458, 1192, 458, 380, 460, 378, 460}; // FUJITSU_AC
uint8_t state[16] = {0x14, 0x63, 0x00, 0x10, 0x10, 0xFE, 0x09, 0x30, 0x81, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24};

@crankyoldgit
Copy link
Owner

@u4mzu4 If you want those modes added, you'll need to give me the uint8_t state[16] = {...}; lines for each one with them ON and OFF. i.e. so only that function/setting has changed. I need that so I can be sure which bit(s) in the state have changed.

The state[7] ones I think are just fully self contained ... I think.

crankyoldgit added a commit that referenced this issue May 24, 2019
- Handle Powerful/Turbo & Econo mode for AR-REB1E.
- Report model info as best we can.
  o AR-REB1E & AR-RAH2E appear to be the same except on special commands.
- Update Common A/C stuff to support new Turbo & Econo modes for Fujitsu A/C

For #688, #703, & #716
@crankyoldgit crankyoldgit self-assigned this May 24, 2019
@u4mzu4
Copy link
Author

u4mzu4 commented May 25, 2019

Hello again!
I appreciate your work so far with a great respect! :-)

What I've found in the meantime:
Outdoor unit low noise [ON]
uint8_t state[16] = {0x14, 0x63, 0x00, 0x10, 0x10, 0xFE, 0x09, 0x30, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xAF};
Outdoor unit low noise [OFF]
uint8_t state[16] = {0x14, 0x63, 0x00, 0x10, 0x10, 0xFE, 0x09, 0x30, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2F};

Regarding the 10°C antifreezing heat it looks like you can only switch ON and there is no other option to switch OFF than power OFF, so I would love to forget it.

@crankyoldgit
Copy link
Owner

I've added support for "Outside Quiet" to PR #718 for your model. Please try it out if you can.

@u4mzu4
Copy link
Author

u4mzu4 commented May 26, 2019

I've tested the branch
https://github.com/markszabo/IRremoteESP8266/tree/ARREB1E
and for me working as expected :-). Thanks again!

@crankyoldgit
Copy link
Owner

Excellent. It should get merged with in 4 days or so.

crankyoldgit added a commit that referenced this issue Jun 9, 2019
_v2.6.1 (20190609)_

**[Breaking Changes]**
- Major rework/breaking changes to Argo A/C support. (#705)

**[Bug Fixes]**
- Correct `set/getQuiet` for Samsung A/C (#736)
- Add missing `on/off()` to IRCoolixAC class. (#725)
- Daikin `set/getEye()` uses wrong bit. (#711)
- IRMQTTServer: Continue to use same Temperature units. (#710)
- Fixed a bug with `setMode()`/`getMode()` for HAIER_AC. (#705)

**[Features]**
- Add set/getPowerful for Samsung A/C (#736)
- Add `calibrate()` to all the A/C classes. (#735)
- IRMQTTServer: Add sequencing for sending MQTT IR commands. (#723)
- Add support for Fujitsu AR-REB1E & AR-JW2 remotes. (#718)
- Add Beta `decodeTrotec()` support. (#719)
- Add experimental `decodeArgo()` support. (#717)
- Support for Goodweather A/Cs. (#715)
- Add `DISABLE_CAPTURE_WHILE_TRANSMITTING` feature to IRMQTTServer. (#713)
- Support for Lixil Inax Toilet protocol. (#712)
- Add `set/getWeeklyTimerEnable()` to Daikin (#711)
- IRMQTTServer: Update Common A/C settings based on received IR messages. (#705)
- Add day of week to DAIKIN protocol (#699)
- Add limited support for Sharp A/C (#696)
- SAMSUNG_AC: Make sure special power mode messages are sent. (#695)
- Add `set/getPowerful()` (turbo) to DAIKIN216 (#693)

**[Misc]**
- Add kPeriodOffset for CPU Freq of 160MHz. (#729)
- Example code for a Dumb IR repeater. (#737)
- Update swing handling for Fujitsu A/Cs. (#724)
- Add function to convert decode_results to sendRaw() array. (#721)
- Attempt to reduce heap fragmentation from strings. (#707)
- Update Fujitsu A/C example code to safer settings (#716)
- Enforce better `const` usage in IRUtils. (#708)
- Attempt to reduce heap fragmentation by A/C `toString()`s. (#694)
- Minor changes to DAIKIN216 timings and features. (#693)
crankyoldgit added a commit that referenced this issue Jun 9, 2019
_v2.6.1 (20190609)_

**[Breaking Changes]**
- Major rework/breaking changes to Argo A/C support. (#705)

**[Bug Fixes]**
- Correct `set/getQuiet` for Samsung A/C (#736)
- Add missing `on/off()` to IRCoolixAC class. (#725)
- Daikin `set/getEye()` uses wrong bit. (#711)
- IRMQTTServer: Continue to use same Temperature units. (#710)
- Fixed a bug with `setMode()`/`getMode()` for HAIER_AC. (#705)

**[Features]**
- Add set/getPowerful for Samsung A/C (#736)
- Add `calibrate()` to all the A/C classes. (#735)
- IRMQTTServer: Add sequencing for sending MQTT IR commands. (#723)
- Add support for Fujitsu AR-REB1E & AR-JW2 remotes. (#718)
- Add Beta `decodeTrotec()` support. (#719)
- Add experimental `decodeArgo()` support. (#717)
- Support for Goodweather A/Cs. (#715)
- Add `DISABLE_CAPTURE_WHILE_TRANSMITTING` feature to IRMQTTServer. (#713)
- Support for Lixil Inax Toilet protocol. (#712)
- Add `set/getWeeklyTimerEnable()` to Daikin (#711)
- IRMQTTServer: Update Common A/C settings based on received IR messages. (#705)
- Add day of week to DAIKIN protocol (#699)
- Add limited support for Sharp A/C (#696)
- SAMSUNG_AC: Make sure special power mode messages are sent. (#695)
- Add `set/getPowerful()` (turbo) to DAIKIN216 (#693)

**[Misc]**
- Add kPeriodOffset for CPU Freq of 160MHz. (#729)
- Example code for a Dumb IR repeater. (#737)
- Update swing handling for Fujitsu A/Cs. (#724)
- Add function to convert decode_results to sendRaw() array. (#721)
- Attempt to reduce heap fragmentation from strings. (#707)
- Update Fujitsu A/C example code to safer settings (#716)
- Enforce better `const` usage in IRUtils. (#708)
- Attempt to reduce heap fragmentation by A/C `toString()`s. (#694)
- Minor changes to DAIKIN216 timings and features. (#693)
crankyoldgit added a commit that referenced this issue Jun 9, 2019
_v2.6.1 (20190609)_

**[Breaking Changes]**
- Major rework/breaking changes to Argo A/C support. (#705)

**[Bug Fixes]**
- Correct `set/getQuiet` for Samsung A/C (#736)
- Add missing `on/off()` to IRCoolixAC class. (#725)
- Daikin `set/getEye()` uses wrong bit. (#711)
- IRMQTTServer: Continue to use same Temperature units. (#710)
- Fixed a bug with `setMode()`/`getMode()` for HAIER_AC. (#705)

**[Features]**
- Add set/getPowerful for Samsung A/C (#736)
- Add `calibrate()` to all the A/C classes. (#735)
- IRMQTTServer: Add sequencing for sending MQTT IR commands. (#723)
- Add support for Fujitsu AR-REB1E & AR-JW2 remotes. (#718)
- Add Beta `decodeTrotec()` support. (#719)
- Add experimental `decodeArgo()` support. (#717)
- Support for Goodweather A/Cs. (#715)
- Add `DISABLE_CAPTURE_WHILE_TRANSMITTING` feature to IRMQTTServer. (#713)
- Support for Lixil Inax Toilet protocol. (#712)
- Add `set/getWeeklyTimerEnable()` to Daikin (#711)
- IRMQTTServer: Update Common A/C settings based on received IR messages. (#705)
- Add day of week to DAIKIN protocol (#699)
- Add limited support for Sharp A/C (#696)
- SAMSUNG_AC: Make sure special power mode messages are sent. (#695)
- Add `set/getPowerful()` (turbo) to DAIKIN216 (#693)

**[Misc]**
- Add kPeriodOffset for CPU Freq of 160MHz. (#729)
- Example code for a Dumb IR repeater. (#737)
- Update swing handling for Fujitsu A/Cs. (#724)
- Add function to convert decode_results to sendRaw() array. (#721)
- Attempt to reduce heap fragmentation from strings. (#707)
- Update Fujitsu A/C example code to safer settings (#716)
- Enforce better `const` usage in IRUtils. (#708)
- Attempt to reduce heap fragmentation by A/C `toString()`s. (#694)
- Minor changes to DAIKIN216 timings and features. (#693)
@crankyoldgit
Copy link
Owner

FYI, The changes mentioned above have been include in v2.6.1 of this library, which has just been released.

@u4mzu4
Copy link
Author

u4mzu4 commented Jun 11, 2019

Awesome, thanks again!

@crankyoldgit
Copy link
Owner

@u4mzu4 As of v2.6.2 this library now supports the ESP32.

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

No branches or pull requests

2 participants