@@ -98,6 +98,68 @@ class SystemairNumberEntityDescription(NumberEntityDescription):
9898 native_unit_of_measurement = UnitOfTemperature .CELSIUS ,
9999 registry = parameter_map ["REG_ECO_T_Y1_OFFSET" ],
100100 ),
101+ SystemairNumberEntityDescription (
102+ key = "free_cooling_outdoor_low_limit" ,
103+ translation_key = "free_cooling_outdoor_low_limit" ,
104+ entity_category = EntityCategory .CONFIG ,
105+ device_class = NumberDeviceClass .TEMPERATURE ,
106+ native_step = 0.1 ,
107+ mode = NumberMode .BOX ,
108+ native_unit_of_measurement = UnitOfTemperature .CELSIUS ,
109+ registry = parameter_map ["REG_FREE_COOLING_OUTDOOR_NIGHTTIME_DEACTIVATION_LOW_T_LIMIT" ],
110+ ),
111+ SystemairNumberEntityDescription (
112+ key = "free_cooling_outdoor_high_limit" ,
113+ translation_key = "free_cooling_outdoor_high_limit" ,
114+ entity_category = EntityCategory .CONFIG ,
115+ device_class = NumberDeviceClass .TEMPERATURE ,
116+ native_step = 0.1 ,
117+ mode = NumberMode .BOX ,
118+ native_unit_of_measurement = UnitOfTemperature .CELSIUS ,
119+ registry = parameter_map ["REG_FREE_COOLING_OUTDOOR_NIGHTTIME_DEACTIVATION_HIGH_T_LIMIT" ],
120+ ),
121+ SystemairNumberEntityDescription (
122+ key = "free_cooling_room_cancel_temp" ,
123+ translation_key = "free_cooling_room_cancel_temp" ,
124+ entity_category = EntityCategory .CONFIG ,
125+ device_class = NumberDeviceClass .TEMPERATURE ,
126+ native_step = 0.1 ,
127+ mode = NumberMode .BOX ,
128+ native_unit_of_measurement = UnitOfTemperature .CELSIUS ,
129+ registry = parameter_map ["REG_FREE_COOLING_ROOM_CANCEL_T" ],
130+ ),
131+ SystemairNumberEntityDescription (
132+ key = "free_cooling_start_time_hours" ,
133+ translation_key = "free_cooling_start_time_hours" ,
134+ entity_category = EntityCategory .CONFIG ,
135+ native_step = 1 ,
136+ mode = NumberMode .BOX ,
137+ registry = parameter_map ["REG_FREE_COOLING_START_TIME_H" ],
138+ ),
139+ SystemairNumberEntityDescription (
140+ key = "free_cooling_start_time_minutes" ,
141+ translation_key = "free_cooling_start_time_minutes" ,
142+ entity_category = EntityCategory .CONFIG ,
143+ native_step = 1 ,
144+ mode = NumberMode .BOX ,
145+ registry = parameter_map ["REG_FREE_COOLING_START_TIME_M" ],
146+ ),
147+ SystemairNumberEntityDescription (
148+ key = "free_cooling_end_time_hours" ,
149+ translation_key = "free_cooling_end_time_hours" ,
150+ entity_category = EntityCategory .CONFIG ,
151+ native_step = 1 ,
152+ mode = NumberMode .BOX ,
153+ registry = parameter_map ["REG_FREE_COOLING_END_TIME_H" ],
154+ ),
155+ SystemairNumberEntityDescription (
156+ key = "free_cooling_end_time_minutes" ,
157+ translation_key = "free_cooling_end_time_minutes" ,
158+ entity_category = EntityCategory .CONFIG ,
159+ native_step = 1 ,
160+ mode = NumberMode .BOX ,
161+ registry = parameter_map ["REG_FREE_COOLING_END_TIME_M" ],
162+ ),
101163)
102164
103165
@@ -119,8 +181,6 @@ async def async_setup_entry(
119181class SystemairNumber (SystemairEntity , NumberEntity ):
120182 """Representation of a Systemair Number."""
121183
122- _attr_has_entity_name = True
123-
124184 entity_description : SystemairNumberEntityDescription
125185
126186 def __init__ (
@@ -133,8 +193,11 @@ def __init__(
133193
134194 self .entity_description = entity_description
135195 self ._attr_unique_id = f"{ coordinator .config_entry .entry_id } -{ entity_description .key } "
136- self .native_min_value = float (entity_description .registry .min_value or 0 )
137- self .native_max_value = float (entity_description .registry .max_value or 100 )
196+
197+ # Apply scale_factor to min/max values if present
198+ scale_factor = entity_description .registry .scale_factor or 1
199+ self .native_min_value = float (entity_description .registry .min_value or 0 ) / scale_factor
200+ self .native_max_value = float (entity_description .registry .max_value or 100 ) / scale_factor
138201
139202 @property
140203 def native_value (self ) -> float :
0 commit comments