esphome-daikin-s21 icon indicating copy to clipboard operation
esphome-daikin-s21 copied to clipboard

Support powerful and econo modes

Open ddv2005 opened this issue 2 years ago • 7 comments

ddv2005 avatar Jul 13 '23 20:07 ddv2005

this is working only for some units, should we make this in someway conditional?

MassiPi avatar Jul 14 '23 18:07 MassiPi

Added has_preset config option in 605db07

ddv2005 avatar Jul 16 '23 22:07 ddv2005

I was recently working on this independent of this pull request and I also found that my unit won't accept what's sent in D6/D7 (F6/F7) queries. Interestingly, if I change the preset via remote, it will correctly report back powerful or eco mode. I was thinking that maybe it could be toggled via YAML?

danijelt avatar Aug 14 '23 20:08 danijelt

Seems like this PR would benefit from merging with changes in #11 which adds the concept of failable queries?

wrouesnel avatar Dec 20 '23 15:12 wrouesnel

@wrouesnel Maybe for some units? My FTXC-D responds with success to these queries but it doesn't change the mode (it returns 0x00s in the packet). Alhough it does report the correct mode when I change it with IR remote.

However, the pull requests are in conflict with their queries array which would have to be addressed when merging.

All in all, I think there's still too many unknowns in S21 protocol to correctly implement everything for all units. In the end, I resorted to capturing the IR signals sent by original remote and implementing that in a custom ESPHome component. That way, I also get econo+sleep mode (while I couldn't find any reference to the sleep mode in reverse engineered S21 docs at all).

danijelt avatar Dec 20 '23 15:12 danijelt

By comparison to the ESP32-Faikin project, if you look at https://github.com/revk/ESP32-Faikin/blob/d1c87cdb4c49ee9d6dd9d10e5c863b9341edeae4/ESP32/main/Faikin.c#L416 then it looks like it's possible that the mode change on your might actually be reported as "G3". When I run debug protocol on the unit I have access to FTXD80CV4 I get no response for F6, but I do get a response for G3 (which faikin revk concludes is a synonym for G6).

This is a unit at my parents place so I'm not sitting in front of it with the remote, but I'll see if I can map out what's happening - it's possible your issues are just that the response codes are all over the place (if it works I'll borrow the work here and try and see if using it in #11 can make it reliable).

[03:10:30][D][climate:380]: 'Air Conditioning' - Sending state:
[03:10:30][D][climate:383]:   Mode: OFF
[03:10:30][D][climate:385]:   Action: OFF
[03:10:30][D][climate:391]:   Custom Fan Mode: 5
[03:10:30][D][climate:400]:   Swing Mode: BOTH
[03:10:30][D][climate:403]:   Current Temperature: 22.00°C
[03:10:30][D][climate:409]:   Target Temperature: 0.00°C
[03:10:30][D][daikin_s21:304]: S21: G1 -> 03B7 (4)
[03:10:30][D][daikin_s21:304]: S21: G5 -> 7?0\x80 (4)
[03:10:30][D][daikin_s21:304]: S21: Sd -> 000 (3)
[03:10:30][D][daikin_s21:271]: NAK from S21 for F6 query
[03:10:30][D][daikin_s21:271]: NAK from S21 for F7 query
[03:10:30][D][daikin_s21:271]: NAK from S21 for F9 query
[03:10:31][D][daikin_s21:304]: S21: SH -> 022+ (4)
[03:10:31][D][daikin_s21:304]: S21: SI -> 002+ (4)
[03:10:31][D][daikin_s21:304]: S21: Sa -> 081+ (4)
[03:10:31][D][daikin_s21:304]: S21: SL -> 000 (3)
[03:10:31][D][daikin_s21:405]: ** BEGIN STATE *****************************
[03:10:31][D][daikin_s21:407]:   Power: OFF
[03:10:31][D][daikin_s21:410]:    Mode: Cool (idle)
[03:10:31][D][daikin_s21:413]:  Target: 19.0 C (66.2 F)
[03:10:31][D][daikin_s21:415]:     Fan: 5 (0 rpm)
[03:10:31][D][daikin_s21:417]:   Swing: H:YES V:YES
[03:10:31][D][daikin_s21:419]:  Inside: 22.0 C (71.6 F)
[03:10:31][D][daikin_s21:421]: Outside: 18.0 C (64.4 F)
[03:10:31][D][daikin_s21:423]:    Coil: 20.0 C (68.0 F)
[03:10:31][D][daikin_s21:425]: ** END STATE *****************************
[03:10:31][D][daikin_s21:392]: ** UNKNOWN QUERIES **
[03:10:31][D][daikin_s21:304]: S21: G2 -> <;\x00\x80 (4)
[03:10:31][D][daikin_s21:361]: Unknown response G2 -> "<;\x00\x80"
[03:10:31][D][daikin_s21:304]: S21: G3 -> 0000 (4)
[03:10:31][D][daikin_s21:361]: Unknown response G3 -> "0000"
[03:10:31][D][daikin_s21:304]: S21: G4 -> 0\x00\x80\x00 (4)
[03:10:31][D][daikin_s21:361]: Unknown response G4 -> "0\x00\x80\x00"
[03:10:31][D][daikin_s21:304]: S21: G8 -> 0\x00\x00\x00 (4)
[03:10:31][D][daikin_s21:361]: Unknown response G8 -> "0\x00\x00\x00"
[03:10:31][D][daikin_s21:271]: NAK from S21 for F9 query
[03:10:31][D][daikin_s21:271]: NAK from S21 for F0 query
[03:10:31][D][daikin_s21:271]: NAK from S21 for FA query
[03:10:31][D][daikin_s21:271]: NAK from S21 for FB query
[03:10:31][D][daikin_s21:271]: NAK from S21 for FC query
[03:10:31][D][daikin_s21:271]: NAK from S21 for FD query
[03:10:31][D][daikin_s21:271]: NAK from S21 for FE query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FF query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FG query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FH query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FI query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FJ query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FK query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FL query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FM query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FN query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FO query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FP query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FQ query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FR query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FS query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FT query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FU query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FV query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FW query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FX query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FY query
[03:10:32][D][daikin_s21:271]: NAK from S21 for FZ query

wrouesnel avatar Dec 20 '23 23:12 wrouesnel

I think I didn't experiment with F3, but, as I said, my AC won't change the mode when sending F5/F6, but it will report back powerful mode in G5/G6 if set on remote. I'm sitting right next to it when experimenting so I'd know if it reacted to the command.

But, even if F3 would set powerful mode, it won't set eco mode according to Faikin's code, and there's no documented way to enable sleep mode at all, which is a must for me (sleep+eco mode can be enabled with original IR remote).

I got a B45 adapter which is listed as compatible with FTXC-D, but the problem is that it doesn't offer powerful/eco/sleep modes, they're missing from both the old and the new Daikin Android app - so I can't capture the command that it would send. I read somewhere that some adapters don't offer all features, so maybe B41 or B42 would do the trick, but at the prices of 40-50 euros/dollars per adapter, I don't plan on spending a small fortune on experimenting when a 50 cent IR diode soldered to ESP8266 does the trick. Unless someone wants to trade their extra adapter for my B45.

danijelt avatar Dec 22 '23 19:12 danijelt

Is there any chance of this being merged?

benwa avatar Mar 01 '25 11:03 benwa

There's uncertainty about the best solution to the issue posed in this PR and it has conflicts. I'll be happy to consider another PR targeting this issue, but I don't think we've got it here yet. Given its age and lack of activity, I'm closing.

joshbenner avatar Mar 01 '25 14:03 joshbenner