@@ -110,12 +110,6 @@ def schemas_schedule_temp(schedules: dict[str, Any], name: str) -> float | None:
110110
111111 length = len (schema_list )
112112 schema_list = sorted (schema_list )
113-
114- # Schema with less than 2 items
115- if length == 1 :
116- LOGGER .debug ("Invalid schedule, only one entry, ignoring." )
117- return
118-
119113 for i in range (length ):
120114 j = (i + 1 ) % (length - 1 )
121115 now = dt .datetime .now ().time ()
@@ -1166,6 +1160,7 @@ def _schemas(self, location: str) -> tuple[str, ...]:
11661160 rule_ids : dict [str ] = {}
11671161 schedule_temperature : str | None = None
11681162 selected = "None"
1163+ tmp_last_used : str | None = None
11691164
11701165 # Legacy Anna schedule, only one schedule allowed
11711166 if self ._smile_legacy :
@@ -1184,17 +1179,27 @@ def _schemas(self, location: str) -> tuple[str, ...]:
11841179 for rule_id , loc_id in rule_ids .items ():
11851180 name = self ._domain_objects .find (f'./rule[@id="{ rule_id } "]/name' ).text
11861181 schedule : dict [str , float ] = {}
1182+ temp : dict [str , float ] = {}
11871183 locator = f'./rule[@id="{ rule_id } "]/directives'
11881184 directives = self ._domain_objects .find (locator )
1185+ count = 0
11891186 for directive in directives :
11901187 entry = directive .find ("then" ).attrib
11911188 keys , dummy = zip (* entry .items ())
11921189 if str (keys [0 ]) == "preset" :
1193- schedule [directive .attrib ["time" ]] = float (
1190+ temp [directive .attrib ["time" ]] = float (
11941191 self ._presets (loc_id )[entry ["preset" ]][0 ]
11951192 )
11961193 else :
1197- schedule [directive .attrib ["time" ]] = float (entry .get ("setpoint" ))
1194+ temp [directive .attrib ["time" ]] = float (entry .get ("setpoint" ))
1195+ count += 1
1196+
1197+ LOGGER .debug ("HOI 1 %s, %s" , count , name )
1198+ if count > 1 :
1199+ schedule = temp
1200+ else :
1201+ # Schema with less than 2 items
1202+ LOGGER .debug ("Invalid schedule, only one entry, ignoring." )
11981203
11991204 if schedule :
12001205 available .append (name )
@@ -1203,10 +1208,13 @@ def _schemas(self, location: str) -> tuple[str, ...]:
12031208 self ._last_active [location ] = selected
12041209 schedules [name ] = schedule
12051210
1211+ LOGGER .debug ("HOI 2 %s" , schedules )
12061212 if schedules :
12071213 available .remove ("None" )
1208- last_used = self ._last_used_schedule (location , rule_ids )
1209- schedule_temperature = schemas_schedule_temp (schedules , last_used )
1214+ tmp_last_used = self ._last_used_schedule (location , rule_ids )
1215+ if tmp_last_used in schedules :
1216+ last_used = tmp_last_used
1217+ schedule_temperature = schemas_schedule_temp (schedules , last_used )
12101218
12111219 return available , selected , schedule_temperature , last_used
12121220
0 commit comments