Jak dodaję informacje pogodowe do notatki w Obsidian

Po co dodawać informacje pogodowe do notatki? Nie wiem, ale dla mnie jest to niezwykle przydatne. Przez lata pracy w Obsidianie próbowałem wielu różnych sposobów, żeby to jakoś sensownie rozwiązać. Od instalacji wtyczek, przez korzystanie z API i pisanie własnych skryptów. Ostatecznie stworzyłem skrót w Apple Shortcuts, który tworzy raport pogodowy automatycznie!

Jak to działa

Najpierw pobierane są warunki pogodowe z wybranej lokalizacji. Każda z wartości umieszczana jest w polu tekstowym, z którego jest następnie dodawana do notatki codziennej w Obsidian, w miejsce %%weather%%.

Jakie informacje są dodawane

Informacje te są zapisane w następującej formie:

- weather:: Pogodnie
- low:: 13 st. C
- high:: 21 st. C
- sunrise:: 04:20
- sunset:: 21:00
- day:: 183

Następnie tworzę podsumowanie w oddzielnej notatce w formie tabeli, za pomocą wtyczki Dataview.

table
	weather as Weather,
	low as Low,
	high as High,
	sunrise as Sunrise,
	sunset as Sunset,
	dur(date(sunset, "T") - date(sunrise, "T")) as Daytime,
	day as Day
from "journal/2024/07-July"
where
	!contains(file.name,"template")
sort day desc

Wykluczyłem pliki, w których nazwie znajduje się słowo template, żeby nie wyświetlały się w tabeli.

Daytime to długość dnia. Mimo że czas wschodu i zachodu słońca dodane są jako ciąg znaków (string), a nie poprawna data (bo wtedy wyświetla się cała data), to udało mi się poprawnie wyświetlić długość dnia, licząc czas od wschodu do zachodu słońca.

Jest to możliwe dzięki temu, że dataview może narzucić format (luxon) na podane dane, niezależnie od ich rodzaju. Oczywiście to nie zadziała, jeśli dane nie będą dopasowane. Przykład: gdybym w sunrise i sunset podał wartość tekstową, dataview zwróci błąd.