-
Notifications
You must be signed in to change notification settings - Fork 740
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
Add quirk for CentraLite 3156105 thermostat #3706
base: dev
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev #3706 +/- ##
==========================================
+ Coverage 89.86% 90.69% +0.83%
==========================================
Files 322 327 +5
Lines 10387 10637 +250
==========================================
+ Hits 9334 9647 +313
+ Misses 1053 990 -63 ☔ View full report in Codecov by Sentry. |
39fcf85
to
376b3ec
Compare
OK, here's a slight modification. I noticed that the updates were instantaneous when the fan mode was "Auto", but delayed when it was "On" and realized this was because the incorrect running_state implementation in the thermostat resulted in no change to the running state when the system stopped. This updates both attributes whenever either is updated, which should prevent the delay. |
It's gotten warmer here, and I no longer believe this is 100% correct. When the system is running in cooling mode, it's reporting heat. This makes me suspect that something unusual is happening related to my home having a reversible heat pump... |
376b3ec
to
8c8b5a9
Compare
Now I have no idea what the firmware developers were thinking. With my heat pump:
Edited to add: I know @bbenne10 has one of these thermostats and a conventional AC/furnace system. Can you chime in with the corresponding table for your system when you get a chance? Thanks! |
@gmacon: How did you go about grabbing these values? As discussed (out-of-band, for anyone else watching), I'm happy to report back, but I'm not sure I see a way to grab these values through either a dashboard or log graph. Based on your table and reading the diff, some assumptions:
Is this right? Reading your table, I agree that it looks like the |
That's not obvious, is it? With the quirk disabled, on the device page, in the three dots menu on the "Device info" card, select "Manage zigbee device". In the dialog, select the "Thermostat" cluster, then in the attribute menu select |
I should be able to get that to you shortly (likely over lunch today). Thanks for the hand-holding :) |
Sorry for the delay. Thought I could do this during lunch, but life had other plans. I thought this would be simple, but it is getting a bit more interesting. Even still: this is about what I would expect given the enum definitions you linked (and a new working understanding of the two variables involved).
|
Interesting. It clearly is to do with being in heat pump mode. Except for Heat-On-No, your Now that you've pointed it out, I've also noticed that HA displays the fan mode as "on" when the system is running... maybe there's another thing we need to override for that, too... |
I have updated my table - you noticed a mistake (right around then was when I started noticing the fan mode switching in the UI, so I got distracted and didn't check the right table row). I tried again and - as you'd expect - it is actually |
Based on that, I now speculate that I have bad hardware, specifically, the running_state bit 0 is stuck on! Does HA behave normally with the quirk disabled for you? (Other than the fan auto/on thing we previously mentioned, of course.) |
Best I could tell it was working okay, but I didn't futz with it too much other than to generate the table. I'll have a go at it this evening. |
Proposed change
This adds a quirk for the CentraLite 3156105 thermostat, which has the semantics of the Running Mode and the heat/cool bits of Running State swapped.
Additional information
I'm using this as a custom quirk with my thermostat, and it correctly reports Idle, Heating, and Fan states.
It's freezing here, so I haven't tried cool, but I see no reason that it wouldn't work.Edit: It's warmed up, and I was wrong. See below for details.This fixes the issue I originally reported on Discourse.
Checklist
pre-commit
checks pass / the code has been formatted using Black