
    j>                     (    d dl mZ 	  G d de      Zy)    )Devicec                        e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )ClimateDevicez1
    Represents a Tuya based Air Conditioner
    1234519222530101c                 H    d|vs|d   sd|d<   t        t        | 
  |i | y )Nversiongffffff
@)superr   __init__)selfargskwargs	__class__s      K/DATA/.local/lib/python3.12/site-packages/tinytuya/Contrib/ClimateDevice.pyr   zClimateDevice.__init__D   s0    F"&*; #F9mT+T<V<    c           
      *   | j                         d   }|| j                     || j                     || j                     || j                     || j
                     || j                     || j                     || j                     || j                     d	S )zLWrapper around status() that replace DPS indices with human readable labels.dps)	zPower OnzSet temperaturezCurrent temperaturez	Fan speedzTemperature unitzSleep preset OnzSwing OnzOperating modez
Timer left)
status	DPS_POWERDPS_SET_TEMPDPS_CUR_TEMPDPS_FANDPS_TEMP_UNITDPS_SLEEP_PRESET	DPS_SWING	DPS_STATE	DPS_TIMERr   r   s     r   status_jsonzClimateDevice.status_jsonJ   s    u%t~~.%d&7&78#)$*;*;#<- &t'9'9 :%d&;&;<t~~.$T^^4 0

 
	
r   c                 F    | j                         d   }|| j                     S Nr   )r   r   r&   s     r   get_room_temperaturez"ClimateDevice.get_room_temperatureY   #    u%d''((r   c                 F    | j                         d   }|| j                     S r)   )r   r   r&   s     r   get_target_temperaturez$ClimateDevice.get_target_temperature]   r+   r   c                 T    d } ||      sy | j                  | j                  |       y )Nc                 :    	 t        |        y# t        $ r Y yw xY w)NTF)float
ValueError)fs    r   is_floatz6ClimateDevice.set_target_temperature.<locals>.is_floatb   s#    a s    	)	set_valuer   )r   tr3   s      r   set_target_temperaturez$ClimateDevice.set_target_temperaturea   s'    	 {t((!,r   c                 F    | j                         d   }|| j                     S r)   )r   DPS_MODEr&   s     r   get_operating_modez ClimateDevice.get_operating_modeo   s!    u%dmm$$r   c                 F    |dvry | j                  | j                  |       y )N)coldhot
dehumidify)r4   r8   )r   modes     r   set_operating_modez ClimateDevice.set_operating_modes   s     44t}}d+r   c                 F    | j                         d   }|| j                     S r)   )r   r    r&   s     r   get_fan_speedzClimateDevice.get_fan_speedx   s!    u%dll##r   c                 F    |dvry | j                  | j                  |       y )N)autolowmiddlehigh)r4   r    )r   values     r   set_fan_speedzClimateDevice.set_fan_speed|   s     99t||U+r   c                 N    | j                         d   }|| j                     rdS dS )Nr   OnOff)r   r   r&   s     r   get_current_statezClimateDevice.get_current_state   s(    u%dnn-t858r   c                 F    | j                         d   }|| j                     S r)   )r   r%   r&   s     r   	get_timerzClimateDevice.get_timer   s!    u%dnn%%r   c                 R    |dk  s|dkD  ry | j                  | j                  |       y )Nr      )r4   r%   )r   delays     r   	set_timerzClimateDevice.set_timer   s$    19
t~~u-r   c                 F    | j                         d   }|| j                     S r)   )r   r!   r&   s     r   get_temperature_unitz"ClimateDevice.get_temperature_unit   s#    u%d(())r   c                 <    | j                  | j                  |       y )N)r4   r!   )r   units     r   set_temperature_unitz"ClimateDevice.set_temperature_unit   s    t))40r   )__name__
__module____qualname____doc__r   r   r   r8   r    r!   r%   r"   r#   r$   r   r'   r*   r-   r6   r9   r?   rA   rH   rL   rN   rR   rT   rW   __classcell__)r   s   @r   r   r   4   s     ILLHGMIII=
))-%,
$,
9&.
*1r   r   N)tinytuya.corer   r    r   r   <module>r_      s     .b`1F `1r   