
    i                     j    S r SSKJr  SSKJr  SSKJrJrJr  SSK	J
r
   " S S5      r " S	 S
\5      rg)zBosch base entity.    )UnitOfTemperature)async_dispatcher_connect   )DEFAULT_MAX_TEMPDEFAULT_MIN_TEMPDOMAIN)
DeviceInfoc                   l    \ rS rSrSrS r\S 5       r\S 5       rS r	\S 5       r
\S\4S	 j5       rS
rg)BoschEntity   zBosch base entity class.c                    [        U S5      (       d  UR                  S5      U l        UR                  S5      U l        UR                  S5      U l        UR                  S5      U l        UR                  S5      U l        g)zInitialize the entity._domain_namedomain_namehassbosch_objectgatewayuuidN)hasattrgetr   r   _bosch_object_gateway_uuid)selfkwargss     //config/custom_components/bosch/bosch_entity.py__init__BoschEntity.__init__   sa    t^,, &

= 9DJJv&	#ZZ7

9-ZZ'
    c                     U R                   $ )zReturn the name of the entity.)_namer   s    r   nameBoschEntity.name   s     zzr   c                     U R                   $ )z/Return upstream component. Used for refreshing.)r   r!   s    r   r   BoschEntity.bosch_object   s     !!!r   c                    #    U R                  [        U R                  U R                  U R                  5      5        g7f)zRegister callbacks.N)async_on_remover   r   signalasync_updater!   s    r   async_added_to_hassBoschEntity.async_added_to_hass   s-     $TYYT=N=NO	
s   <>c                     U R                   R                  (       a(  [        U R                   R                  U R                  41$ [        U R                  U R                  41$ N)r   	parent_idr   r   r   r!   s    r   _domain_identifierBoschEntity._domain_identifier$   sK    ''T//994::FGG**DJJ788r   returnc           
          [        U R                  U R                  R                  U R                  R                  U R
                  U R                  R                  U R                  [        U R                  4S9$ )z Get attributes about the device.)identifiersmanufacturermodelr"   
sw_version
hw_version
via_device)	r	   r/   r   device_modeldevice_typedevice_namefirmwarer   r   r!   s    r   device_infoBoschEntity.device_info*   s]     //33--++!!}}--zz

+
 	
r   )r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   propertyr"   r   r*   r/   r	   r=   __static_attributes__ r   r   r   r      sf    "(   " "
 9 9
 

Z 

 

r   r   c                      ^  \ rS rSrSrU 4S jr\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       rSrU =r$ )BoschClimateWaterEntity8   z,Bosch climate and water entities base class.c                   > [         TU ]  " S0 UD6  U R                  R                  U l        [
        R                  U l        U R                   U R                  R                   3U l
        S U l        S U l        S U l        g )NrF   )superr   r   r"   r    r   CELSIUS_temperature_unitr   id_attr_unique_id_current_temperature_state_target_temperature)r   r   	__class__s     r   r    BoschClimateWaterEntity.__init__;   sm    "6"'',,
!2!:!:"&**d.@.@.C.C-DE$(!#' r   c                 R    [         U R                  R                  U R                  41$ r-   )r   r   rN   r   r!   s    r   r/   *BoschClimateWaterEntity._domain_identifierD   s"    ++..

;<<r   c                 8    U R                    SU R                   3$ )z%Return name displayed in device_info. )_name_prefixr    r!   s    r   r;   #BoschClimateWaterEntity.device_nameH   s      ##$Adjj\22r   c                     U R                   $ )zReturn the unit of measurement.)rM   r!   s    r   temperature_unit(BoschClimateWaterEntity.temperature_unitM   s     %%%r   c                     U R                   $ )zReturn the current temperature.)rP   r!   s    r   current_temperature+BoschClimateWaterEntity.current_temperatureR   s     (((r   c                     U R                   $ )z'Return the temperature we try to reach.)rR   r!   s    r   target_temperature*BoschClimateWaterEntity.target_temperatureW   s     '''r   c                 p    U R                   R                  (       a  U R                   R                  $ [        $ )zReturn the minimum temperature.)r   min_tempr   r!   s    r   re    BoschClimateWaterEntity.min_temp\   3    
 !!** ''	
 "	
r   c                 p    U R                   R                  (       a  U R                   R                  $ [        $ )zReturn the maximum temperature.)r   max_tempr   r!   s    r   ri    BoschClimateWaterEntity.max_tempe   rg   r   )rO   rP   r    rQ   rR   rM   )r?   r@   rA   rB   rC   r   rD   r/   r;   r\   r_   rb   re   ri   rE   __classcell__)rS   s   @r   rH   rH   8   s    6( = = 3 3 & & ) ) ( ( 
 
 
 
r   rH   N)rC   homeassistant.constr    homeassistant.helpers.dispatcherr   constr   r   r   homeassistant.helpers.entityr	   r   rH   rF   r   r   <module>rp      s.     1 E = = 3-
 -
`4
k 4
r   