1212
1313from homeassistant .components .number import (
1414 DOMAIN as NUMBER_PLATFORM ,
15+ NumberDeviceClass ,
1516 NumberEntity ,
1617 NumberEntityDescription ,
1718 NumberExtraStoredData ,
@@ -107,6 +108,9 @@ def __init__(
107108 if description .mode_fn is not None :
108109 self ._attr_mode = description .mode_fn (coordinator .device .config [key ])
109110
111+ if hasattr (self , "_attr_name" ) and description .role != ROLE_GENERIC :
112+ delattr (self , "_attr_name" )
113+
110114 @property
111115 def native_value (self ) -> float | None :
112116 """Return value of number."""
@@ -181,7 +185,6 @@ async def async_set_native_value(self, value: float) -> None:
181185 ("device" , "valvePos" ): BlockNumberDescription (
182186 key = "device|valvepos" ,
183187 translation_key = "valve_position" ,
184- name = "Valve position" ,
185188 native_unit_of_measurement = PERCENTAGE ,
186189 available = lambda block : cast (int , block .valveError ) != 1 ,
187190 entity_category = EntityCategory .CONFIG ,
@@ -200,20 +203,20 @@ async def async_set_native_value(self, value: float) -> None:
200203 key = "blutrv" ,
201204 sub_key = "current_C" ,
202205 translation_key = "external_temperature" ,
203- name = "External temperature" ,
204206 native_min_value = - 50 ,
205207 native_max_value = 50 ,
206208 native_step = 0.1 ,
207209 mode = NumberMode .BOX ,
208210 entity_category = EntityCategory .CONFIG ,
211+ device_class = NumberDeviceClass .TEMPERATURE ,
209212 native_unit_of_measurement = UnitOfTemperature .CELSIUS ,
210213 method = "blu_trv_set_external_temperature" ,
211214 entity_class = RpcBluTrvExtTempNumber ,
212215 ),
213216 "number_generic" : RpcNumberDescription (
214217 key = "number" ,
215218 sub_key = "value" ,
216- removal_condition = lambda config , _status , key : not is_view_for_platform (
219+ removal_condition = lambda config , _ , key : not is_view_for_platform (
217220 config , key , NUMBER_PLATFORM
218221 ),
219222 max_fn = lambda config : config ["max" ],
@@ -229,9 +232,11 @@ async def async_set_native_value(self, value: float) -> None:
229232 "number_current_limit" : RpcNumberDescription (
230233 key = "number" ,
231234 sub_key = "value" ,
235+ translation_key = "current_limit" ,
236+ device_class = NumberDeviceClass .CURRENT ,
232237 max_fn = lambda config : config ["max" ],
233238 min_fn = lambda config : config ["min" ],
234- mode_fn = lambda config : NumberMode .SLIDER ,
239+ mode_fn = lambda _ : NumberMode .SLIDER ,
235240 step_fn = lambda config : config ["meta" ]["ui" ].get ("step" ),
236241 unit = get_virtual_component_unit ,
237242 method = "number_set" ,
@@ -241,10 +246,11 @@ async def async_set_native_value(self, value: float) -> None:
241246 "number_position" : RpcNumberDescription (
242247 key = "number" ,
243248 sub_key = "value" ,
249+ translation_key = "valve_position" ,
244250 entity_registry_enabled_default = False ,
245251 max_fn = lambda config : config ["max" ],
246252 min_fn = lambda config : config ["min" ],
247- mode_fn = lambda config : NumberMode .SLIDER ,
253+ mode_fn = lambda _ : NumberMode .SLIDER ,
248254 step_fn = lambda config : config ["meta" ]["ui" ].get ("step" ),
249255 unit = get_virtual_component_unit ,
250256 method = "number_set" ,
@@ -254,10 +260,12 @@ async def async_set_native_value(self, value: float) -> None:
254260 "number_target_humidity" : RpcNumberDescription (
255261 key = "number" ,
256262 sub_key = "value" ,
263+ translation_key = "target_humidity" ,
264+ device_class = NumberDeviceClass .HUMIDITY ,
257265 entity_registry_enabled_default = False ,
258266 max_fn = lambda config : config ["max" ],
259267 min_fn = lambda config : config ["min" ],
260- mode_fn = lambda config : NumberMode .SLIDER ,
268+ mode_fn = lambda _ : NumberMode .SLIDER ,
261269 step_fn = lambda config : config ["meta" ]["ui" ].get ("step" ),
262270 unit = get_virtual_component_unit ,
263271 method = "number_set" ,
@@ -267,10 +275,12 @@ async def async_set_native_value(self, value: float) -> None:
267275 "number_target_temperature" : RpcNumberDescription (
268276 key = "number" ,
269277 sub_key = "value" ,
278+ translation_key = "target_temperature" ,
279+ device_class = NumberDeviceClass .TEMPERATURE ,
270280 entity_registry_enabled_default = False ,
271281 max_fn = lambda config : config ["max" ],
272282 min_fn = lambda config : config ["min" ],
273- mode_fn = lambda config : NumberMode .SLIDER ,
283+ mode_fn = lambda _ : NumberMode .SLIDER ,
274284 step_fn = lambda config : config ["meta" ]["ui" ].get ("step" ),
275285 unit = get_virtual_component_unit ,
276286 method = "number_set" ,
@@ -281,21 +291,20 @@ async def async_set_native_value(self, value: float) -> None:
281291 key = "blutrv" ,
282292 sub_key = "pos" ,
283293 translation_key = "valve_position" ,
284- name = "Valve position" ,
285294 native_min_value = 0 ,
286295 native_max_value = 100 ,
287296 native_step = 1 ,
288297 mode = NumberMode .SLIDER ,
289298 native_unit_of_measurement = PERCENTAGE ,
290299 method = "blu_trv_set_valve_position" ,
291- removal_condition = lambda config , _status , key : config [key ].get ("enable" , True )
300+ removal_condition = lambda config , _ , key : config [key ].get ("enable" , True )
292301 is True ,
293302 entity_class = RpcBluTrvNumber ,
294303 ),
295304 "left_slot_intensity" : RpcNumberDescription (
296305 key = "cury" ,
297306 sub_key = "slots" ,
298- name = "Left slot intensity " ,
307+ translation_key = "left_slot_intensity " ,
299308 value = lambda status , _ : status ["left" ]["intensity" ],
300309 native_min_value = 0 ,
301310 native_max_value = 100 ,
@@ -311,7 +320,7 @@ async def async_set_native_value(self, value: float) -> None:
311320 "right_slot_intensity" : RpcNumberDescription (
312321 key = "cury" ,
313322 sub_key = "slots" ,
314- name = "Right slot intensity " ,
323+ translation_key = "right_slot_intensity " ,
315324 value = lambda status , _ : status ["right" ]["intensity" ],
316325 native_min_value = 0 ,
317326 native_max_value = 100 ,
@@ -402,6 +411,9 @@ def __init__(
402411 self .restored_data : NumberExtraStoredData | None = None
403412 super ().__init__ (coordinator , block , attribute , description , entry )
404413
414+ if hasattr (self , "_attr_name" ):
415+ delattr (self , "_attr_name" )
416+
405417 async def async_added_to_hass (self ) -> None :
406418 """Handle entity which will be added."""
407419 await super ().async_added_to_hass ()
0 commit comments