Skip to content

Commit

Permalink
Fully customize opening/closing texts. The default open/close texts c…
Browse files Browse the repository at this point in the history
…an't differentiate between open/close and opening/closing.

Generate a fake middle position when the motor controller is "stopped", to allow Home Assistant GUI to show both open and close buttons.
  • Loading branch information
billsq committed Sep 30, 2023
1 parent 9daa247 commit 38129f8
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions custom_components/xiaomi_miot/cover.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,8 @@ async def async_added_to_hass(self):

self._motor_reverse = self.custom_config_bool('motor_reverse', False)
self._position_reverse = self.custom_config_bool('position_reverse', self._motor_reverse)
self._open_texts = [
*(self.custom_config_list('open_texts') or []),
'Opening', 'Opened', 'Open', 'Up', 'Rising', 'Risen', 'Rise',
]
self._close_texts = [
*(self.custom_config_list('close_texts') or []),
'Closing', 'Closed', 'Close', 'Down', 'Falling', 'Descent',
]
self._open_texts = self.custom_config_list(key='open_texts', default=['Opening', 'Opened', 'Open', 'Up', 'Rising', 'Risen', 'Rise'])
self._close_texts = self.custom_config_list(key='close_texts', default=['Closing', 'Closed', 'Close', 'Down', 'Falling', 'Descent'])
if self._motor_reverse:
self._open_texts, self._close_texts = self._close_texts, self._open_texts

Expand Down Expand Up @@ -170,6 +164,11 @@ def current_cover_position(self):
elif range_max != 100:
pos = cur / range_max * 100
if pos < 0:
# If the motor controller is stopped, generate fake middle position
if self._prop_status:
sta = int(self._prop_status.from_dict(self._state_attrs) or -1)
if sta in self._prop_status.list_search("Stopped"):
return 50
return None
dev = int(self.custom_config_integer('deviated_position', 1) or 0)
if pos <= dev:
Expand Down

0 comments on commit 38129f8

Please sign in to comment.