ZKM Python

gallerycontrol

Centralized exhibition device control for museums — projectors, power, and computers via PJLink, NETIO, ANEL, and SSH from one interface.

museumdevice-controlpjlinknetiofastapiinfrastructure

What it does

A centralized control system for museums and galleries that replaces walking around with remotes or juggling browser tabs. From a single interface it turns whole exhibitions on and off, schedules opening hours so devices power up and down automatically, and monitors device health across the floor. Production daily-driver at ZKM Karlsruhe since 2025, running 50+ devices across multiple exhibitions.

Key features

  • One switch for the museum — open or close an entire exhibition with a single click
  • Scheduled opening hours — devices turn on and off automatically to match the calendar
  • Health monitoring — see what’s online, offline, or needs attention
  • Artwork protection — automated shutdown when sensors detect issues
  • Multi-protocol device control — PJLink (projectors/displays), NETIO and ANEL (smart power), and SSH for any reachable computer

Tech stack

FastAPI REST API with a React web UI, backed by PostgreSQL, with a cron-based scheduler and per-protocol device managers. Containerized with Docker Compose.