Skip to content

v4.2.3 - Naprawa krytyczna: Filtrowanie lekcji po dacie

Choose a tag to compare

@piterkos piterkos released this 30 Oct 12:04
· 1 commit to master since this release

🎯 NAPRAWA KRYTYCZNA - Wymagana aktualizacja!

Ta wersja naprawia krytyczny błąd powodujący wyświetlanie lekcji z przyszłych dat zamiast dzisiejszych.

🐛 Problem który został naprawiony

Objawy:

  • Wszystkie sensory lekcji pokazują "niedostępny" (unavailable)
  • Lekcje 9-10 pokazują "-" (co jest OK gdy nie ma tylu lekcji)
  • Logi pokazują daty z 2026 roku (czerwiec 2026) zamiast dzisiejszej daty

Przyczyna:

  • API zwraca lekcje na cały rok szkolny (2025-2026, setki lekcji)
  • Kod w fetch_data.py nie filtrował po dacie
  • W rezultacie dla każdej pozycji (1, 2, 3...) brał OSTATNIĄ znalezioną lekcję
  • Ostatnie lekcje w bazie były z czerwca 2026
  • Sensory pokazywały dane z przyszłości → available() zwracało False → "niedostępny"

✅ Co zostało naprawione

Dodano filtrowanie lekcji po dacie w fetch_data.py (linie 103-122):

# Only add lessons for the requested date (date_from)
lesson_date_str = temp_dict.get("date")
if lesson_date_str and date_from:
    # Convert lesson date to date object for comparison
    if isinstance(lesson_date_str, str):
        try:
            lesson_date = datetime.datetime.strptime(lesson_date_str, "%Y-%m-%d").date()
        except (ValueError, TypeError):
            lesson_date = None
    elif isinstance(lesson_date_str, datetime.date):
        lesson_date = lesson_date_str
    else:
        lesson_date = None

    # Only add if date matches date_from
    if lesson_date == date_from:
        dict_ans[f"lesson_{lesson_position}"] = temp_dict

Teraz:

  • ✅ Kod filtruje lekcje tylko dla żądanej daty (date_from)
  • ✅ Sensory "dzisiaj" pokazują lekcje z dzisiejszej daty
  • ✅ Sensory "jutro" pokazują lekcje z jutrzejszej daty
  • ✅ Wszystko działa poprawnie!

📋 Jak zaktualizować

Przez HACS:

  1. Otwórz HACS → Integrations
  2. Znajdź "Librus (Private API)"
  3. Kliknij "Update"
  4. Zrestartuj Home Assistant

Ręcznie:

cd /config/custom_components/librus_private
git pull
# Zrestartuj Home Assistant

🧪 Jak sprawdzić czy działa

Po aktualizacji i restarcie:

  1. Sprawdź sensory lekcji - powinny pokazywać dzisiejsze lekcje
  2. Sprawdź atrybuty sensora - data powinna być dzisiejsza
  3. Logi debug powinny pokazywać:
    Lesson 1: lesson_date_str = 2025-10-30
    Lesson 1 (today): 2025-10-30 == 2025-10-30 -> True
    

📝 Zmiany techniczne

Zmienione pliki:

  • custom_components/librus_private/fetch_data.py - dodano filtrowanie lekcji po dacie
  • custom_components/librus_private/manifest.json - zaktualizowano wersję do 4.2.3
  • README.md - aktualizacja changelog

🙏 Podziękowania

Dziękuję za cierpliwość podczas debugowania tego problemu. Logi debug z wersji 4.2.2 pomogły zidentyfikować problem!


Pełna dokumentacja: https://github.com/piterkos/HALibrus
Zgłaszanie problemów: https://github.com/piterkos/HALibrus/issues