Emit warning when current/voltage limits are near zero #76

Merged
sb10q merged 1 commits from esavkin/thermostat:72-warning-on-zeroed-limits into master 2023-03-23 17:01:29 +08:00
1 changed files with 9 additions and 0 deletions

View File

@ -1,5 +1,6 @@
import socket
import json
import logging
class CommandError(Exception):
pass
@ -8,6 +9,14 @@ class Client:
def __init__(self, host="192.168.1.26", port=23, timeout=None):
self._socket = socket.create_connection((host, port), timeout)
self._lines = [""]
self._check_zero_limits()
def _check_zero_limits(self):
pwm_report = self.get_pwm()
for pwm_channel in pwm_report:
for limit in ["max_i_neg", "max_i_pos", "max_v"]:
if pwm_channel[limit]["value"] == 0.0:
logging.warning("`{}` limit is set to zero on channel {}".format(limit, pwm_channel["channel"]))

rel_tol is not the correct one to use here. Please read the Python manual carefully or just write the formula explicitly, I don't think there's much of a point to math.isclose.

Did you even test this?

>>> isclose(0.00000000000000001, 0.0, rel_tol=1e-6)
False
``rel_tol`` is not the correct one to use here. Please read the Python manual carefully or just write the formula explicitly, I don't think there's much of a point to ``math.isclose``. Did you even test this? ``` >>> isclose(0.00000000000000001, 0.0, rel_tol=1e-6) False ```

Isn't just == 0.0 sufficient for the purpose explained in the Issue?

Isn't just ``== 0.0`` sufficient for the purpose explained in the Issue?

Looks like it's quite safe to do so

Looks like it's quite safe to do so

on channel

on channel
def _read_line(self):
# read more lines