Change percent_open calculation method (#772)
* Change percent_open calculation method Modified 'percent_open' calculation method : - Before : If < min_opening_degree then =min_opening_degree - Now : Each % step is calculated (100 - min_opening_degree)/100 * Code aesthetics * Code aesthetics * Updated test_overclimate_valve.py
This commit is contained in:
@@ -1080,10 +1080,17 @@ class UnderlyingValveRegulation(UnderlyingValve):
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
# Send opening_degree
|
# Caclulate percent_open
|
||||||
if 0 < self._percent_open < self._min_opening_degree:
|
if self._percent_open >= 1:
|
||||||
self._percent_open = self._min_opening_degree
|
self._percent_open = round(
|
||||||
|
self._min_opening_degree
|
||||||
|
+ (self._percent_open
|
||||||
|
* (100 - self._min_opening_degree) / 100)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self._percent_open = 0
|
||||||
|
|
||||||
|
# Send opening_degree
|
||||||
await super().send_percent_open()
|
await super().send_percent_open()
|
||||||
|
|
||||||
# Send closing_degree if set
|
# Send closing_degree if set
|
||||||
|
|||||||
@@ -627,11 +627,11 @@ async def test_over_climate_valve_multi_min_opening_degrees(
|
|||||||
assert mock_service_call.call_count == 6
|
assert mock_service_call.call_count == 6
|
||||||
mock_service_call.assert_has_calls([
|
mock_service_call.assert_has_calls([
|
||||||
# min is 60
|
# min is 60
|
||||||
call(domain='number', service='set_value', service_data={'value': 60}, target={'entity_id': 'number.mock_opening_degree1'}),
|
call(domain='number', service='set_value', service_data={'value': 68}, target={'entity_id': 'number.mock_opening_degree1'}),
|
||||||
call(domain='number', service='set_value', service_data={'value': 40}, target={'entity_id': 'number.mock_closing_degree1'}),
|
call(domain='number', service='set_value', service_data={'value': 32}, target={'entity_id': 'number.mock_closing_degree1'}),
|
||||||
call(domain='number', service='set_value', service_data={'value': 3.0}, target={'entity_id': 'number.mock_offset_calibration1'}),
|
call(domain='number', service='set_value', service_data={'value': 3.0}, target={'entity_id': 'number.mock_offset_calibration1'}),
|
||||||
call(domain='number', service='set_value', service_data={'value': 70}, target={'entity_id': 'number.mock_opening_degree2'}),
|
call(domain='number', service='set_value', service_data={'value': 76}, target={'entity_id': 'number.mock_opening_degree2'}),
|
||||||
call(domain='number', service='set_value', service_data={'value': 30}, target={'entity_id': 'number.mock_closing_degree2'}),
|
call(domain='number', service='set_value', service_data={'value': 24}, target={'entity_id': 'number.mock_closing_degree2'}),
|
||||||
call(domain='number', service='set_value', service_data={'value': 12}, target={'entity_id': 'number.mock_offset_calibration2'})
|
call(domain='number', service='set_value', service_data={'value': 12}, target={'entity_id': 'number.mock_offset_calibration2'})
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user