Skip to content

Commit b46805b

Browse files
authored
fix: airer status for cover entity (#1235)
* fix: xiaomi.airer.pro3 airer status rising (#1222) * fix: airer status * fix: filter out non alphabetic characters from status descriptions
1 parent a43447e commit b46805b

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

custom_components/xiaomi_home/cover.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@
4646
Cover entities for Xiaomi Home.
4747
"""
4848
from __future__ import annotations
49-
import logging
5049
from typing import Any, Optional
50+
import re
51+
import logging
5152

5253
from homeassistant.config_entries import ConfigEntry
5354
from homeassistant.core import HomeAssistant
@@ -97,7 +98,6 @@ class Cover(MIoTServiceEntity, CoverEntity):
9798
_prop_status: Optional[MIoTSpecProperty]
9899
_prop_status_opening: Optional[list[int]]
99100
_prop_status_closing: Optional[list[int]]
100-
_prop_status_stop: Optional[list[int]]
101101
_prop_status_closed: Optional[list[int]]
102102
_prop_current_position: Optional[MIoTSpecProperty]
103103
_prop_target_position: Optional[MIoTSpecProperty]
@@ -122,7 +122,6 @@ def __init__(self, miot_device: MIoTDevice,
122122
self._prop_status = None
123123
self._prop_status_opening = []
124124
self._prop_status_closing = []
125-
self._prop_status_stop = []
126125
self._prop_status_closed = []
127126
self._prop_current_position = None
128127
self._prop_target_position = None
@@ -159,13 +158,21 @@ def __init__(self, miot_device: MIoTDevice,
159158
self.entity_id)
160159
continue
161160
for item in prop.value_list.items:
162-
if item.name in {'opening', 'open', 'up'}:
161+
item_str: str = item.name
162+
item_name: str = re.sub(r'[^a-z]', '', item_str)
163+
if item_name in {
164+
'opening', 'open', 'up', 'uping', 'rise', 'rising'
165+
}:
163166
self._prop_status_opening.append(item.value)
164-
elif item.name in {'closing', 'close', 'down', 'dowm'}:
167+
elif item_name in {
168+
'closing', 'close', 'down', 'dowm', 'falling',
169+
'dropping', 'downing', 'lower'
170+
}:
165171
self._prop_status_closing.append(item.value)
166-
elif item.name in {'stop', 'stopped', 'pause'}:
167-
self._prop_status_stop.append(item.value)
168-
elif item.name in {'closed'}:
172+
elif item_name in {
173+
'stopatlowest', 'stoplowerlimit', 'lowerlimitstop',
174+
'floor', 'lowerlimit'
175+
}:
169176
self._prop_status_closed.append(item.value)
170177
self._prop_status = prop
171178
elif prop.name == 'current-position':

custom_components/xiaomi_home/miot/miot_mips.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1178,7 +1178,7 @@ def on_prop_msg(topic: str, payload: str, ctx: Any):
11781178
or 'piid' not in msg
11791179
or 'value' not in msg
11801180
):
1181-
# self.log_error(f'on_prop_msg, recv unknown msg, {payload}')
1181+
self.log_info('unknown prop msg, %s', payload)
11821182
return
11831183
if handler:
11841184
self.log_debug('local, on properties_changed, %s', payload)

0 commit comments

Comments
 (0)