@@ -101,6 +101,8 @@ def _parse(self):
101101 self ._temperature = float (fields [3 ][:- 1 ])
102102 self ._fan_speed = fields [4 ].lower ()
103103 self ._mode = fields [5 ].lower ()
104+ self ._error_code = fields [6 ] if fields [6 ] != "OK" else None
105+ self ._clean_filter = fields [7 ] == "#"
104106 self ._swing = _SWING_CHAR_TO_NAME .get (self ._swing_raw )
105107
106108 async def _make_unit_request (self , request ):
@@ -140,6 +142,16 @@ def mode(self):
140142 """The current mode (e.g. heat, cool)."""
141143 return self ._mode
142144
145+ @property
146+ def error_code (self ):
147+ """Error code on error, otherwise None."""
148+ return self ._error_code
149+
150+ @property
151+ def clean_filter (self ):
152+ """True when the air filter needs to be cleaned."""
153+ return self ._clean_filter
154+
143155 @property
144156 def swing (self ):
145157 """The current swing mode (e.g. horizontal)."""
@@ -195,8 +207,12 @@ async def turn_off(self):
195207 await self ._make_unit_request ("off UID" )
196208 return await self .refresh ()
197209
210+ async def reset_filter (self ):
211+ """Report that the air filter was cleaned and reset the timer."""
212+ await self ._make_unit_request (f"filt UID" )
213+ return await self .refresh ()
214+
198215 async def feed (self , value ):
199216 """Provides ambient temperature hint to the unit."""
200217 rounded = round (value , 1 )
201218 await self ._make_unit_request (f"feed UID { rounded } " )
202-
0 commit comments