Skip to content

Commit fe0d052

Browse files
JohannJohann
authored andcommitted
perf(reminder): only resolve config inside reminder window
Move sound/tts/speaker/volume lookups inside the time-window check. Eliminates ~2880 unnecessary get_volume() calls per day (logged at DEBUG level as 'Volume override actief' when night mode is on). Volume is now resolved only when we're actually about to play a reminder.
1 parent d302591 commit fe0d052

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

custom_components/nida/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
"nida"
1616
],
1717
"requirements": [],
18-
"version": "1.1.0"
18+
"version": "1.1.2"
1919
}

custom_components/nida/media/reminder.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -166,17 +166,12 @@ async def check_reminders(
166166
if not options.get(f"reminder_{r_num}_enabled", False):
167167
continue
168168

169+
# Alleen 'minutes' is nodig om het reminder-tijdstip te bepalen —
170+
# andere velden (sound, tts, speaker, volume) worden pas opgehaald
171+
# binnen de window-check, om onnodige werk + log-spam te voorkomen.
169172
minutes = options.get(
170173
f"reminder_{r_num}_minutes", 10 if r_num == 1 else 5
171174
)
172-
sound = options.get(f"reminder_{r_num}_sound", "")
173-
tts_text = options.get(f"reminder_{r_num}_tts", "")
174-
lang = options.get(f"reminder_{r_num}_lang", "nl")
175-
176-
speaker = options.get(CONF_DAY_SPEAKER, DEFAULT_SPEAKERS)
177-
if isinstance(speaker, str):
178-
speaker = [speaker]
179-
volume = get_volume(options, CONF_DAY_VOLUME, 50, hass=hass)
180175

181176
for prayer_name, time_str in prayers.items():
182177
today = datetime.now().strftime("%Y-%m-%d")
@@ -198,6 +193,15 @@ async def check_reminders(
198193

199194
_LOGGER.info("Reminder %d for %s in %d min", r_num, prayer_name, minutes)
200195

196+
# We zitten in het reminder-window — nú pas alle config lezen
197+
sound = options.get(f"reminder_{r_num}_sound", "")
198+
tts_text = options.get(f"reminder_{r_num}_tts", "")
199+
lang = options.get(f"reminder_{r_num}_lang", "nl")
200+
speaker = options.get(CONF_DAY_SPEAKER, DEFAULT_SPEAKERS)
201+
if isinstance(speaker, str):
202+
speaker = [speaker]
203+
volume = get_volume(options, CONF_DAY_VOLUME, 50, hass=hass)
204+
201205
# 1. Chime
202206
chime_wait = 0.0
203207
if sound:

0 commit comments

Comments
 (0)