
    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 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 )TowelRailHeaterDevicez<
    Represents a Tuya based Towel Rail Heating Element
    116242111c                 H    d|vs|d   sd|d<   t        t        | 
  |i | y )Nversiong333333@)superr   __init__)selfargskwargs	__class__s      S/DATA/.local/lib/python3.12/site-packages/tinytuya/Contrib/TowelRailHeaterDevice.pyr   zTowelRailHeaterDevice.__init__;   s1    F"&*; #F9#T3TDVD    c                    | j                         d   }|| j                     | j                  || j                           | j                  || j                           || j
                     | j                  || j                           dS )zMWrapper around status() that replaces DPS indices with human readable labels.dps)zPower OnzSet temperaturezCurrent temperaturezOperating modeTimer)status	DPS_POWERtuya_temperature_to_celsiusDPS_SET_TEMPDPS_CUR_TEMPDPS_MODEtuya_duration_to_minutes	DPS_TIMERr   r   s     r   status_jsonz!TowelRailHeaterDevice.status_jsonA   s}    u%t~~.#??tGXGX@YZ#'#C#CF4K\K\D]#^$T]]3226$..3IJ
 	
r   c                 2    t        t        |      dz  d      S )N
      )roundfloatr   temperatures     r   r   z1TowelRailHeaterDevice.tuya_temperature_to_celsiusL   s    U;'",a00r   c                 B    t        t        t        |      dz              S )Nr#   )intr%   r&   r'   s     r   celsius_to_tuya_temperaturez1TowelRailHeaterDevice.celsius_to_tuya_temperatureO   s    5{+b0122r   c                 d    | j                         d   }| j                  || j                           S Nr   )r   r   r   r    s     r   get_current_temperaturez-TowelRailHeaterDevice.get_current_temperatureR   .    u%//t7H7H0IJJr   c                 d    | j                         d   }| j                  || j                           S r-   )r   r   r   r    s     r   get_target_temperaturez,TowelRailHeaterDevice.get_target_temperatureV   r/   r   c                     d } ||      sy t        |      }| j                  | j                  | j                  |             y )Nc                 :    	 t        |        y# t        $ r Y yw xY w)NTF)r&   
ValueError)fs    r   is_floatz>TowelRailHeaterDevice.set_target_temperature.<locals>.is_float[   s#    a s    	)r&   	set_valuer   r+   )r   tr6   targets       r   set_target_temperaturez,TowelRailHeaterDevice.set_target_temperatureZ   s;    	 {qt(($*J*J6*RSr   c                 F    | j                         d   }|| j                     S r-   )r   r   r    s     r   get_operating_modez(TowelRailHeaterDevice.get_operating_modei   s!    u%dmm$$r   c                 F    |dvry | j                  | j                  |       y )N)coldhotecoauto)r7   r   )r   modes     r   set_operating_modez(TowelRailHeaterDevice.set_operating_modem   s     55t}}d+r   c                 N    | j                         d   }|| j                     rdS dS )Nr   OnOff)r   r   r    s     r   get_current_statez'TowelRailHeaterDevice.get_current_stater   s(    u%dnn-t858r   c                     |dz  S N    r   durations     r   r   z.TowelRailHeaterDevice.tuya_duration_to_minutesv   s     !|r   c                     t        |dz        S rI   )r*   rL   s     r   minutes_to_tuya_durationz.TowelRailHeaterDevice.minutes_to_tuya_duration{   s     8a<  r   c                 d    | j                         d   }| j                  || j                           S r-   )r   r   r   r    s     r   	get_timerzTowelRailHeaterDevice.get_timer   s,    u%,,VDNN-CDDr   c                     |dk  s|dkD  ry |dz  dk7  ry | j                  | j                  | j                  |             y )N   i  r   )r7   r   rO   )r   delays     r   	set_timerzTowelRailHeaterDevice.set_timer   s=    2:2:?t~~t'D'DU'KLr   )__name__
__module____qualname____doc__r   r   r   r   r   r   r!   r   r+   r.   r1   r:   r<   rC   rG   r   rO   rQ   rU   __classcell__)r   s   @r   r   r   0   so     ILLHIE	
13KKT%,
9
!
EMr   r   N)tinytuya.corer   r   rK   r   r   <module>r\      s     *ZYMF YMr   