Skip to content

Commit ab3e0b1

Browse files
committed
Don't show invalid schedules as available and last_used
Move debug-message
1 parent 4111ae9 commit ab3e0b1

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

plugwise/helper.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)