Skip to content

Status TV: Troubleshooting

Screen shows the desktop / wallpaper instead of a dashboard

  1. 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 by restart.sh).
  2. 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.sh
    
    (labwc --reconfigure without LABWC_PID fails over SSH with "LABWC_PID not set".)
  3. Is the second TV detected? WAYLAND_DISPLAY=wayland-0 wlr-randr. If a TV is off/disconnected, kanshi uses the single profile 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 on also 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.