yozik04 / nibe

Library for communication with Nibe heatpumps.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Out of range values from some pumps

elupus opened this issue · comments

Seems some pumps have really weird out of range values. See home-assistant/core#100852 (comment) these cause reading to throw exceptions.

I'm pondering if we should demote range checks for decode to only log warnings, or even just log debug messages. We can still validate on write.

If you read a single coil then ReadException is what you expect on failure. When a full table is read then, I think, it just logs a warning.

Well, its not like the max/min have a real affect on things. We can still represent the value. So getting the out of range value (on read) might be more useful, given the rather poor quality of the databases of parameters.

Raising on write does make sense, to not confuse the pump.

I've seen invalid temperature readings previously. My MAX485 module is not that good because I see some mess on the line. After adding pull up registers oscilloscope started to display a better picture but far from perfect.. I do get read errors quite frequently. I was thinking that in the read response packet checksum somehow managed to be correct but readings were off (1000 degrees or above).

Also during a reboot you can get out of range values quite easily. Maybe we fixed it with
def _is_hitting_integer_limit(self, coil: Coil, int_value: int):

I'd better keep range checks to keep these two issues away.