Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
magnuselden authored and magnuselden committed Nov 6, 2024
1 parent a15f0a2 commit ea236d1
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 19 deletions.
20 changes: 15 additions & 5 deletions custom_components/peaqhvac/service/hub/hubsensors.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,25 @@ def tolerances(self) -> Tuple[float, float]:
return self.set_temp_indoors.min_tolerance, self.set_temp_indoors.max_tolerance

def get_tempdiff(self) -> float:
_indoors = getattr(self.average_temp_indoors, "value", 0)
_indoors = self._get_indoors()
_set_temp = getattr(self.set_temp_indoors, "adjusted_temp", 0)
if _indoors == 0 and _set_temp != 0:
return 0
return _indoors - _set_temp

def get_tempdiff_in_out(self) -> float:
_indoors = min([getattr(self.average_temp_indoors, "median",0),
getattr(self.average_temp_indoors, "value", 0)
])
_indoors = self._get_indoors()
_outdoors = getattr(self.average_temp_outdoors, "value", 0)
return _indoors - _outdoors
return _indoors - _outdoors

def _get_indoors(self) -> float:
return min(
[
getattr(self.average_temp_indoors, "median", 0),
getattr(self.average_temp_indoors, "value", 0)
]
)

def get_min_indoors_diff(self):
min_temp = getattr(self.average_temp_indoors, "min", getattr(self.average_temp_indoors, "value", 0))
return getattr(self.set_temp_indoors, "adjusted_temp", 0) - min_temp
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@
_LOGGER = logging.getLogger(__name__)


def get_tempdiff_inverted(current_offset: int, temp_diff: float, determine_tolerance: callable) -> int:
def get_tempdiff_inverted(current_offset: int, temp_diff: float, min_temp_diff: float, determine_tolerance: callable) -> int:
diff = temp_diff + 0.00001
if abs(diff) < 0.2:
min_diff_influence = min_temp_diff * 0.5
combined_diff = diff + min_diff_influence

if abs(combined_diff) < 0.2:
return 0
"""get the inverted tolerance in this case"""
_tolerance = determine_tolerance(diff * -1, current_offset)
ret = floor(abs(diff) / _tolerance) * -1
if diff > 0:

_tolerance = determine_tolerance(combined_diff * -1, current_offset)
ret = floor(abs(combined_diff) / _tolerance) * -1

if combined_diff > 0:
return ret
return ret * -1

Expand Down
24 changes: 16 additions & 8 deletions custom_components/peaqhvac/test/test_temperature_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,35 @@ def _current_tolerances(determinator: bool, current_offset: int, adjust_toleranc
return tolerances[0] if (determinator > 0 or determinator is True) else tolerances[1]


def test_tempdiff_one_room_cold():
tempdiff = 0.5
ret1 = get_tempdiff_inverted(0, tempdiff, 0, _current_tolerances)
assert ret1 == -1
ret2 = get_tempdiff_inverted(0, tempdiff, -1.5, _current_tolerances)
assert ret2 == 1


def test_tempdiff_cold():
tempdiff = -0.5
ret1 = get_tempdiff_inverted(0, tempdiff, _current_tolerances)
ret1 = get_tempdiff_inverted(0, tempdiff,0, _current_tolerances)
assert ret1 == 2
ret2 = get_tempdiff_inverted(-1, tempdiff, _current_tolerances)
ret2 = get_tempdiff_inverted(-1, tempdiff, 0,_current_tolerances)
assert ret2 == 2
ret3 = get_tempdiff_inverted(-2, tempdiff, _current_tolerances)
ret3 = get_tempdiff_inverted(-2, tempdiff, 0,_current_tolerances)
assert ret3 == 2
ret4 = get_tempdiff_inverted(-3, tempdiff, _current_tolerances)
ret4 = get_tempdiff_inverted(-3, tempdiff, 0,_current_tolerances)
assert ret4 == 2


def test_tempdiff_hot():
tempdiff = 0.5
ret1 = get_tempdiff_inverted(0, tempdiff, _current_tolerances)
ret1 = get_tempdiff_inverted(0, tempdiff,0, _current_tolerances)
assert ret1 == -1
ret2 = get_tempdiff_inverted(-1, tempdiff, _current_tolerances)
ret2 = get_tempdiff_inverted(-1, tempdiff, 0,_current_tolerances)
assert ret2 == -1
ret3 = get_tempdiff_inverted(-2, tempdiff, _current_tolerances)
ret3 = get_tempdiff_inverted(-2, tempdiff,0, _current_tolerances)
assert ret3 == -1
ret4 = get_tempdiff_inverted(-3, tempdiff, _current_tolerances)
ret4 = get_tempdiff_inverted(-3, tempdiff,0, _current_tolerances)
assert ret4 == -1


Expand Down

0 comments on commit ea236d1

Please sign in to comment.