-
Notifications
You must be signed in to change notification settings - Fork 752
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. |
I've discovered that I'm not the only person to have observed this, and it does appear to be related to the thermostat being in heat pump mode. There's a cluster of issues/PRs in zigbee-herdsman-converters, e.g. Koenkk/zigbee-herdsman-converters#8605 about this. In theory, we could use the system_type_config attribute to figure out if correction is needed based on whether the system is a heat pump or not, but my thermostat is reporting "None" for that value, which I believe means that the thermostat is not providing that attribute. Sigh. |
I use zigbee2mqtt not zigpy but I just added a custom option to select if you have the device in heat pump mode or not, which determines whether to use the translation or not provided by this PR. Not sure if that translation is correct or not, but that might help you here. Some attributes are not reported by default by this device but I could not find one to request manually that reports what mode it's in. I wasn't able to set mine to heat pump mode on device (assuming because I don't have the wires for it connected). This is also my first foray into zigbee so some attribute might exist I didn't find. Just a data point that hopefully helps you, good luck, would appreciate a mention or comment over there if you find an attribute dictating if it's in heat pump mode or not. |
I have mentioned this to @gmacon out of band, but with a standard AC/furnace, this device seems working fine without this quirk. |
I have this same thermostat and it has been working fine with heat-only mode without this quirk. However the battery level never seems to be reported and is always "unknown". Have you been able to get battery level measurements working? |
Battery measurement is reporting unknown here too. I poked around in the clusters and nothing seems to be reporting anything except MAYBE |
My @bbenne10 can you test if your batteries are at ~3.3v? If so, I it looks like |
Spec says (for whatever that's worth):
… The BatteryVoltage attribute specifies the current actual (measured) battery voltage, in units of 100mV.
The value 0xff indicates an invalid or unknown reading.
On Sun, Feb 23, 2025, at 2:28 PM, Ian Foster wrote:
My `battery_voltage` reports 25, and if I read the voltage across all of the batteries, I read 2.45v.
image.png (view on web) <https://github.com/user-attachments/assets/49f09fb0-d63a-4a70-8d7c-3d6f195a5c0c>
@bbenne10 <https://github.com/bbenne10> can you test if your batteries are at ~3.3v? If so, I it looks like `battery_voltage`/10 is the real voltage.
—
Reply to this email directly, view it on GitHub <#3706 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAB2KBJZ7PIZCIFJMMLZ3B32RIONZAVCNFSM6AAAAABVAP6TJWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZXGA3TGNRWGQ>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
lanrat*lanrat* left a comment (zigpy/zha-device-handlers#3706) <#3706 (comment)>
My `battery_voltage` reports 25, and if I read the voltage across all of the batteries, I read 2.45v.
image.png (view on web) <https://github.com/user-attachments/assets/49f09fb0-d63a-4a70-8d7c-3d6f195a5c0c>
@bbenne10 <https://github.com/bbenne10> can you test if your batteries are at ~3.3v? If so, I it looks like `battery_voltage`/10 is the real voltage.
—
Reply to this email directly, view it on GitHub <#3706 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAB2KBJZ7PIZCIFJMMLZ3B32RIONZAVCNFSM6AAAAABVAP6TJWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZXGA3TGNRWGQ>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
33 would make sense if counted in 100mV increments. I am solo dadding right now, but I will try to whip out the multimeter when they go down to sleep later. |
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