golles / ha-kamstrup_403

Custom component that integrates the Kamstrup 403 heating system into Home Assistant. This component does also support a few other heating systems
MIT License
70 stars 10 forks source link

Read precision #24

Closed Marquo1 closed 1 year ago

Marquo1 commented 1 year ago

Hi, golles

I've been running the component for a while but my heat readings have a precision of only 2 decimal places. I see on your screenshots that you have 3. Do you know if it is meter specific or if it's dependent on meter settings? I'm running on Multical 601.

image

golles commented 1 year ago

Hmmm, this might be related to your meter, the component doesn't do any rounding or reducing on the decimal place. What is even odder, is that the thousand separator (the dot) is there

golles commented 1 year ago

Looking at my own meter now, I see the value is 27,491 GJ. With the comma separator, it looks like the value needs to be *1000 to fix this

Marquo1 commented 1 year ago

Thanks for looking into it.

So as i understand it's raw value sent by the meter and multiplying it will not improve accuracy, we'll just end up with 0 at the end. I can imagine it could depend on the configuration done by the technician who mounted it (locale etc.). I will try again to call the company delivering the heat, but I don't have high hopes.

My current workaround is to use integration sensor with the Power reading provided by integration, this way I also get kW for energy dashboard. It seems accurate enough for now.

P.S.: I already voted for your Feature Request for GJs as an energy unit ;)

golles commented 1 year ago

This should be fixed here, I'll try to look into it soon...

Thanks for voting, yesterday I noticed on the forums that gj will be added to long term statistics, so that's good news.

golles commented 1 year ago

I did a bit of checking as I'm working on an improvement for this component and I do think the reading is correct. The reason you do only see 2 decimal points is that the third decimal is a 0 and the HA recognizes the value as a number and shows it like this. eg 380.89 is the exact same as 380.890 and 380.89000000 (I think you get my point now)