
Programowanie
Tablice informacyjne w holu
Dwa ekrany w holu: tablica z rozmieszczeniem pokoi w czterech budynkach i pokaz slajdów z aktualnościami, wydarzeniami, pogodą i mapą. Dane same płyną z portalu gminy, a kiosk przy telewizorze tylko je wyświetla.
26.10.2026
Instytucja, dla której powstały tablice, mieści się w czterech budynkach. Mieszkaniec, który przychodzi pierwszy raz, zwykle zaczyna od pytania na portierni, gdzie załatwi swoją sprawę.
W holu wisiały dwa telewizory, ale pokazywały starą, ręcznie przygotowaną stronę. Zastąpiłem ją dwiema tablicami informacyjnymi, które same pobierają dane z portalu gminy i nie wymagają żadnej obsługi.
(powiększ)Gdzie załatwić sprawę
Większy ekran pokazuje rozmieszczenie referatów i pokoi w budynkach A, B, C i D. Każdy budynek ma swój kolor, a ten sam kolor pojawia się na mapie na drugim ekranie i na oznaczeniach w portalu.
- lista pokoi pochodzi z tej samej kolekcji w CMS portalu, co strona kontaktowa,
- zmiana numeru pokoju w panelu pojawia się na tablicy bez żadnego wdrożenia,
- u góry godziny pracy i duży zegar z datą,
- na dole pasek z najnowszą aktualnością z portalu,
- kod QR prowadzi do portalu gminy w telefonie.
(powiększ)Dzień i noc
Telewizor w holu świeci także wieczorem. Tablica sama przechodzi w tryb nocny po zachodzie słońca i wraca do dziennego po wschodzie. Godziny wschodu i zachodu liczy lokalnie, bez zewnętrznej usługi.
Godzinę strona bierze z serwera, a nie z zegara telewizora. Dzięki temu nie trzeba pilnować, czy ktoś ustawił czas po zmianie na zimowy.
(powiększ)Slajdy: aktualności, wydarzenia, pogoda
Mniejszy ekran pokazuje na zmianę kilka slajdów:
- wyróżnione aktualności z portalu, ze zdjęciem i kodem QR do pełnego artykułu,
- najbliższe wydarzenia z kalendarza portalu, z informacją, za ile dni się zaczynają,
- prognozę pogody z Open-Meteo,
- jakość powietrza z czujników Syngeos,
- mapę budynków z oznaczeniem „Tu jesteś”.
Kod QR pojawia się tylko wtedy, gdy strona, do której prowadzi, rzeczywiście działa. Serwer sprawdza adresy co 5 minut, więc nikt nie zeskanuje kodu do błędu 404.
(powiększ)
(powiększ)Mapa z OpenStreetMap, ale z własnego serwera
Obrysy budynków pochodzą z OpenStreetMap. Kafelki mapy serwer pobiera raz i trzyma u siebie, a legenda korzysta z tej samej listy pokoi co duża tablica.
(powiększ)Kiosk, który niczego nie wie
Przy telewizorze stoi mały komputer z Debianem. Uruchamia tylko Chromium w trybie kiosku w kompozytorze cage, bez pulpitu i bez możliwości wyjścia z przeglądarki. Watchdog restartuje go, gdy strona przestanie odpowiadać.
Cała logika jest na serwerze:
- usługa danych pobiera aktualności, wydarzenia, pogodę, powietrze, pokoje i mapę, a potem trzyma ostatnie dobre dane,
- kiosk pobiera wszystko, łącznie ze zdjęciami, tylko z serwera gminy,
- gdy na chwilę zabraknie internetu, tablica dalej pokazuje ostatnie dane, zamiast pustego ekranu,
- czas slajdów i źródła zmienia się w pliku konfiguracyjnym, bez przebudowy obrazu,
- nadzór na osobnym serwerze wysyła SMS, gdy ekran przestanie pytać o dane.
Ten sam mechanizm działa w tablicy przystankowej. Kolejne ekrany w gminie to już tylko nowy wpis w konfiguracji.
Wygląd z jednego szablonu
Obie tablice powstały z szablonu, z którego korzystają też inne usługi gminy. Mają te same kroje Atkinson Hyperlegible Next i Bricolage Grotesque, tę samą paletę i ten sam znak wieży. Układ jest jednak liczony pod telewizor oglądany z kilku metrów, a nie pod stronę czytaną z bliska.
Stack
- Astro (strony statyczne), Tailwind v4, fonty self-hosted,
- usługa danych w Node 24, TypeScript bez kompilacji i bez zależności,
- Directus portalu gminy jako źródło pokoi i wydarzeń,
- Open-Meteo, Syngeos, OpenStreetMap,
- Debian, cage i Chromium w trybie kiosku, systemd,
- Docker, wdrożenie timerem systemd z tagu wersji.
