Status TV: Troubleshooting
Screen shows the desktop / wallpaper instead of a dashboard
- Are the kiosks running?
pgrep -fa "kiosk.s[h]"– expect two. If not:~/status-tv/restart.sh. Logs:/tmp/status-tv-left.log,/tmp/status-tv-right.log(when started byrestart.sh). - Both dashboards on the same screen (one hidden behind the other)?
The labwc window rules weren't loaded. Reload them, then restart:
(
LABWC_PID=$(pgrep -x labwc) WAYLAND_DISPLAY=wayland-0 labwc --reconfigure ~/status-tv/restart.shlabwc --reconfigurewithoutLABWC_PIDfails over SSH with "LABWC_PID not set".) - Is the second TV detected?
WAYLAND_DISPLAY=wayland-0 wlr-randr. If a TV is off/disconnected, kanshi uses thesingleprofile and only one kiosk is visible.
Both screens black
First check whether the Pi is still sending a picture:
ssh statusadmin@10.10.75.9 '~/status-tv/tv-power.sh status'
- Outside 07:00–18:00 or at the weekend: the schedule switched the TVs off on purpose.
- standby during working hours: the TV switched itself off (check that
Auto Power Off is off in the TV), or someone used the remote. Switch them
back on with
~/status-tv/tv-power.sh on. - no reply: Anynet+ is off in the TV, or the TV's power is cut.
- on, but still black: the TV is on another input.
tv-power.sh onalso selects the Pi's input. Otherwise take a screenshot (see Operations) to check that the Pi itself is fine.
One Samsung ignores the CEC off command unless the Pi is its active input
first. tv-power.sh handles this, but keep it in mind when sending commands by
hand with cec-ctl.
Grafana login page, "Unauthorized" or empty panels everywhere
The token is not accepted.
curl -s http://127.0.0.1:3000/api/user
Unauthorized/invalid API key→ token deleted, expired or service account disabled. Create a new one, see Status TV Operations.- Connection refused → nginx down:
sudo systemctl status nginx,sudo nginx -t. - Works, but one dashboard says "not found / access denied" → the service account lacks View permission on that dashboard's folder.
Dashboards show old data / wrong time
The Pi's clock is off. timedatectl must say System clock synchronized: yes.
Public NTP is blocked on this network; the Pi must use the internal servers
(/etc/systemd/timesyncd.conf.d/10-local-ntp.conf):
cat /etc/systemd/timesyncd.conf.d/10-local-ntp.conf # [Time] / NTP=172.31.0.20 172.31.0.17
sudo systemctl restart systemd-timesyncd
journalctl -u systemd-timesyncd -n 20
The same issue causes apt update to fail with
Not live until <date> signature errors.
Variables show empty values / "No data" in some panels
If a URL with var-...=$__all was passed through a shell (e.g. directly in a
.desktop Exec= line or bash -c "…"), $__all gets expanded to an empty
string. Keep URLs only in urls.conf – kiosk.sh reads them with awk, no
shell expansion. With playlists this doesn't apply (they use saved defaults).
Dashboard looks half-loaded right after switching
Normal for big dashboards on a Pi 4 – rendering 40+ panels takes 10–20 s. Use playlist intervals of minutes, reduce panels, or upgrade to a Pi 5.
Part of a dashboard is missing at the bottom
Kiosk mode can't scroll. The playlists should only contain the TV dashboards
from the Status-TV folder, which are built to fit one screen (see
Status TV Dashboards). For other dashboards,
move important panels to the top or split the dashboard. (&autofitpanels in a single-dashboard URL squeezes all panels onto
one screen, but large dashboards become unreadable.)
Slow / stuttering / hot
uptime; vcgencmd measure_temp; vcgencmd get_throttled
throttled≠0x0→ overheating or under-voltage. Use the official 15 W (5V/3A) USB-C power supply and a case with heatsink/fan.- Don't run the TVs at 4K: the Pi 4 can only do 4K at 30 Hz and Chromium can't render two 4K dashboards smoothly. Keep 2560×1440 (or 1920×1080).
Screen goes black after a while
Screen blanking got re-enabled: raspi-config nonint get_blanking should
print 1. Fix: sudo raspi-config nonint do_blanking 1 and reboot. Also check
the TV's own power-saving / auto-off settings.
"Restore pages?" or other Chromium pop-ups
kiosk.sh resets Chromium's crash flag before each start and disables the
usual pop-ups. If something still appears, remove the profile and restart:
rm -rf ~/.config/chromium-status-tv-left ~/.config/chromium-status-tv-right
~/status-tv/restart.sh
Can't SSH in
ping 10.10.75.9. The Pi gets its address via DHCP – if it changed, check the DHCP leases or plug a keyboard into the Pi.- From some networks (e.g. 10.10.6.x Wi-Fi) the Pi's subnet may not be routed; try from the office LAN/VPN.
Gotcha for scripts: pkill -f over SSH
ssh pi 'pkill -f status-tv/kiosk.sh; …' kills its own SSH session,
because the remote shell's command line contains the same text. Use
~/status-tv/restart.sh, or a pattern like "status-tv/[k]iosk.sh" that
doesn't match itself – and don't put the literal path elsewhere in the same
command.