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

[FEATURE] Use S21 commands RzB2 to determine hvac_action #556

Open
sm-Fifteen opened this issue Nov 20, 2024 · 13 comments
Open

[FEATURE] Use S21 commands RzB2 to determine hvac_action #556

sm-Fifteen opened this issue Nov 20, 2024 · 13 comments
Assignees

Comments

@sm-Fifteen
Copy link

sm-Fifteen commented Nov 20, 2024

Daikin hardware
Two FTXS12LVJU (S21) in a multi-zone arrangement.

Is your feature request related to a problem? Please describe.
Currently, Faikin acts as if a unit that is set to heating mode is heating 100% of the time, both in Home Assistant and in the web UI. It does not expose what the unit is actually doing, whether is is active, idle or, in the case of heatpumps, defrosting.

Describe the solution you'd like

From having collected and analyzed a fair amount of S21 data (admittedly only on my own units), I'm pretty confident that commands RzC3 and RzB2 both represent the current state of the unit (as documented on the wiki), and that this could be used to determine an hvac_action status for Home Assistant, and possibly the web UI or the LED on the Faikin boards themselves.

Using RzB2, which would be the most straightforward, the mapping could be as follow:

RzB2 response Rectified Bitfield Bitfield meaning hvac_action value
SzB200 00 0b0000_0000 (Not online) OFF
SzB280 08 0b0000_1000 Online IDLE (unless fan mode, then FAN)
SzB2C0 0C 0b0000_1100 Online + Valve open HEATING/COOLING/DRYING
SzB2A0 0A 0b0000_1010 Online + Defrost DEFROSTING
SzB2E0 0E 0b0000_1110 Online + Valve open + Defrost DEFROSTING
SzB220 02 0b0000_0010 Defrost OFF

We would need to use the current mode to determine what the unit is doing between HEATING/COOLING/DRYING. Auto (heat-cool) mode would have to be omitted, since it's not currently possible to rely on what the unit is supposed to be doing while in this mode.

Describe alternatives you've considered
Using Faikin Auto mode, but I prefer sticking with the native controls.

Additional context
This has been raised before in #548, #293 and #290, among other places.

@revk
Copy link
Owner

revk commented Nov 20, 2024

I have defrost as a separate state for ducted unit from X50. So that would be what I set.

Separately it would make sense to work out what to report to HA for defrosting even when X50.

@sm-Fifteen
Copy link
Author

I have defrost as a separate state for ducted unit from X50. So that would be what I set.

Separately it would make sense to work out what to report to HA for defrosting even when X50.

Just "havc_action":"defrosting". It's not listed in their MQTT doc, but the unit tests show that it's what HAss is expecting.

@revk
Copy link
Owner

revk commented Nov 22, 2024

OK I have added vac action defrosting, but not yet looked at the Rz messages to set this using S21.

@sm-Fifteen
Copy link
Author

Do you think the LED on the Faikin board should represent the current mode or should it be changed to show the current action, now that there's a way to know when the unit is active, idle and defrosting?

@revk
Copy link
Owner

revk commented Nov 22, 2024

It sort of does, but could it work at a lower level and do defrost as well, maybe...

@sm-Fifteen
Copy link
Author

Ok, so other people in #408 (comment) with different S21 protocol versions have confirmed that my interpretation of RzB2 is both consistant across versions and seemingly correct. There is at least one extra bit to RzC3 I don't have on my v0 unit, but we haven't figured out that one yet.

Regardless or RzC3, though, I think out understanding of RzB2 is now complete enough to try using it for hvac_action. It has everything we need for per-Faikin-board status reporting, whether in single-zone or multi-zone configuration.

@sm-Fifteen sm-Fifteen changed the title [FEATURE] Use S21 commands RzC3 or RzB2 to determine hvac_action [FEATURE] Use S21 commands RzB2 to determine hvac_action Dec 4, 2024
@TechnicGuy1
Copy link

Would be nice to see defrost/status and also compressor frequency also in the WebUI :)

@revk
Copy link
Owner

revk commented Dec 9, 2024

Ah, OK the data is sent on the web socket, just needs a bit of javascript.

@sm-Fifteen
Copy link
Author

Regarding S21 support for detecting when the unit is idle, active or defrosting, is there any further information I should provide? By now it's pretty clear that RzB2 is the command we should be using for this, and I think we understand its return payload pretty well.

@revk
Copy link
Owner

revk commented Dec 10, 2024

OK, I tested RzB2 here, and I get SzB200 regardless of state of unit, heating/cooling/off.

So I don't think this works generically.

@sm-Fifteen
Copy link
Author

OK, I tested RzB2 here, and I get SzB200 regardless of state of unit, heating/cooling/off.

So I don't think this works generically.

In S21? That's odd, people with a lot of other units with different protocol versions and unit generations had it working. What of RzC3?

@revk
Copy link
Owner

revk commented Dec 10, 2024

  • Auto C310 (cooling)
  • Off C300
  • Heat C340
  • Cool C310
  • Dry C310
  • Fan C310

@sm-Fifteen
Copy link
Author

sm-Fifteen commented Dec 10, 2024

  • Auto C310 (cooling)

    • Off C300

    • Heat C340

    • Cool C310

    • Dry C310

    • Fan C310

Assuming the target temperature only allows for heating and that you switched between each mode in quick succession, that would check out. Based on the data I have, SzC340 means the unit is actively heating/cooling, and SzC310 means the compressor is locked for "3 minutes standby" (which won't prevent fan-only from running). Defrost would be SzC380 if it's starting/ending or SzC3C0 (40 + 80) if it's currently active.

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

No branches or pull requests

3 participants