apetrycki / daikinskyport

API for accessing a DaikinOne+ Thermostat
63 stars 27 forks source link

feat: sensors for heat/cool demand, power, and frequency #25

Closed knightjoel closed 3 years ago

knightjoel commented 3 years ago

This commit exposes more of the data from the Skyport API as sensors, notably, the various heating and cooling demand properties.

knightjoel commented 3 years ago

One thing I don't understand is why some of these sensors are reading > 100% when my system is cooling. (ctOutdoorCoolRequestedDemand, ctOutdoorFrequencyInPercent, and ctOutdoorFanRequestedDemandPercentage all exhibit this behavior).

apetrycki commented 3 years ago

One thing I don't understand is why some of these sensors are reading > 100% when my system is cooling. (ctOutdoorCoolRequestedDemand, ctOutdoorFrequencyInPercent, and ctOutdoorFanRequestedDemandPercentage all exhibit this behavior).

I think I mentioned this in the API info. It looks like they use a scale from 0-200, so you need to divide by 2 for the percentage. I guess they wanted 1/2 a percent resolution.

knightjoel commented 3 years ago

Oh, thanks for the pointer.

I see in the API info that ctAHFanCurrentDemandStatus looks like a percent using the formula x/255*100. Nothing specific about cutting in half. However, Thermostat.device_state_attributes() does divide the demand values by two (including ctAHFanCurrentDemandStatus).

Based on my readings peaking at 200% even, it would seem dividing by two is accurate.

apetrycki commented 3 years ago

Yeah, the divide by 2 is correct. I guess I never went back and updated the API doc when I figured it out. I'll fix it.

I'm wondering if we want all of these as sensors or if most should just be attributes. You can always turn an attribute into a sensor in HA. Are you using these for automations?

knightjoel commented 3 years ago

I'm wondering if we want all of these as sensors or if most should just be attributes. You can always turn an attribute into a sensor in HA. Are you using these for automations?

I've thought of this, too. My feeling is if they're attributes, it's more work for users to use them because they have to manually create their template sensors. I'm a fan of exposing data via an integration's sensors so that people can use that data right away, without additional work.