Caffeine Tracker
Jak to działa: widget szacuje Twój aktualny poziom kofeiny (mg/L), stosuje rozkład półtrwania i przewiduje, kiedy spadniesz poniżej progu bezpieczeństwa snu.
Co oznacza „mg/L"?
mg/L oznacza miligramy kofeiny na litr. Aplikacja używa mg/L jako praktycznego wskaźnika zbliżonego do stężenia: jest łatwiejszy do interpretacji niż same mg, ponieważ masa ciała wpływa na to, jak silnie odczuwasz kofeinę.
- Ten sam napój działa na różnych ludzi inaczej
- Masa ciała zmienia stężenie
- Stężenie ułatwia zrozumienie progów
Co oznaczają poziomy (progi)
Każdy reaguje inaczej, ale te progi dobrze sprawdzają się jako praktyczne wskaźniki:
Rekomendacje snu i ustawienia Premium
Rekomendacja Pora ostatniego napoju jest dostępna w Premium. Pomaga zdecydować, kiedy możesz wypić określony napój i nadal utrzymać poziom kofeiny wystarczająco niski do snu.
Pora ostatniego napoju • Próg kofeiny • Bufor pory snu • Predefiniowane okresy półtrwania • Własne napoje
Pora snu
Twoja zwykła pora snu. Domyślnie pobierana z ustawień Garmin. Premium używa Pory snu jako punktu odniesienia dla rekomendacji snu.
Bufor pory snu (Premium)
Proste okno bezpieczeństwa przed porą snu. Istnieje z jednego powodu: aby zapobiec rekomendowaniu małego napoju z kofeiną zbyt blisko snu.
Nawet jeśli mały napój technicznie utrzymałby Cię poniżej progu kofeiny o porze snu, kofeina tuż przed snem może nadal pogorszyć jakość snu lub utrudnić zasypianie.
Bufor pory snu dodaje zabezpieczenie „bez kofeiny zbyt blisko snu". Nie wpływa na nic innego w modelu.
Próg kofeiny (Premium, domyślnie: 0,6 mg/L)
Limit bezpieczeństwa snu, którego Premium używa do rekomendacji. Aplikacja stara się zapewnić, że Twój przewidywany poziom kofeiny o porze snu pozostanie na lub poniżej tego progu.
- Jeśli jesteś wrażliwy lub sen się pogarsza → rozważ obniżenie progu
- Jeśli dobrze tolerujesz kofeinę i sen nie jest zaburzony → możesz go lekko podnieść
Okres półtrwania kofeiny (Predefiniowane Premium, domyślnie: 5 godz.)
Okres półtrwania kontroluje, jak szybko kofeina się rozkłada (rozkład wykładniczy). Krótszy okres półtrwania eliminuje szybciej; dłuższy okres półtrwania utrzymuje się dłużej i przesuwa porę ostatniego napoju wcześniej.
3 godziny • 4 godziny • 5 godzin • 6 godzin • 8 godzin • 10 godzin
Pora ostatniego napoju (Premium)
Dla każdego napoju Premium oblicza najpóźniejszą porę, o której możesz go wypić, aby Twój przewidywany poziom kofeiny o porze snu pozostał ≤ próg kofeiny. Następnie stosuje bufor pory snu jako ostatnie zabezpieczenie, aby rekomendacja nigdy nie była „zbyt blisko" snu.
- Zależy od Twojego aktualnego poziomu, okresu półtrwania, progu i pory snu
- Zależy też od ilości kofeiny w napoju (szczególnie przy własnych napojach)
Algorytm obliczeniowy (uproszczony)
Wewnętrznie aplikacja utrzymuje bieżący szacunek Twojego aktualnego poziomu kofeiny i aktualizuje go, gdy upływa czas lub logujesz napój. Model oparty jest na rozkładzie wykładniczym (okres półtrwania).
Krok 1: Zacznij od ostatniego znanego poziomu
Aplikacja przechowuje Twój ostatni obliczony poziom kofeiny i jego znacznik czasu.
Krok 2: Pozwól mu się rozkładać w czasie (okres półtrwania)
Gdy widget się aktualizuje, poziom jest redukowany na podstawie tego, ile czasu minęło od ostatniej aktualizacji:
poziomTeraz = poziomPoprzedni × 0,5^(Δt / okresPółtrwania)Gdzie Δt to czas, który upłynął (w tych samych jednostkach co okresPółtrwania).
Krok 3: Dodaj nowo zalogowane napoje
Gdy logujesz napój, jego ilość kofeiny (mg) jest przeliczana na wzrost poziomu na podstawie Twojej masy ciała i dodawana do aktualnego poziomu po rozkładzie:
poziomTeraz = poziomTeraz + deltaNapojudeltaNapoju jest obliczana z kofeiny napoju (mg) i Twojej skonfigurowanej normalizacji opartej na wadze.
Krok 4: Przewiduj „bezpieczną porę snu"
Aby oszacować, kiedy spadniesz poniżej wybranego progu, aplikacja rozwiązuje równanie rozkładu dla czasu:
czasDoProgu = okresPółtrwania × log2(poziomTeraz / próg)Jeśli poziomTeraz ≤ próg, czasDoProgu wynosi 0 (już poniżej).
Aplikacja automatycznie odświeża Twój szacunek (np. co 5 minut), więc Twój aktualny poziom pozostaje dokładny bez ręcznego odświeżania.