waqas bhatti / hat project / hat remotecontrol

I built a neat browser-based real time monitoring and control system for all of the robotic HAT telescopes, so we could detect problems and fix them faster. Below, I describe its architecture and go through some of the user-interface elements (accompanied by videos showing what it looks like).

Architecture

The entire system is built upon two ZeroMQ command and message buses that are tunneled via SSH to our various observing sites around the world from our HQ in Princeton. On top of these buses, we've built real-time monitoring and control systems that talk to the browser via websocket and JSON. Users have privilege levels ranging from readonly to limited service capability (restart broken services, etc.), to full access (restart the full system, shut down telescopes and close/open domes as needed). We use Tornado as the frontend server; all other monitoring and control services are Python scripts talking to various low-level telescope control systems over UNIX and TCP sockets.

User Interface

Choosing telescopes to monitor

Basic observing and hardware status

Streaming logs and filtering

Real time snapshots from the telescopes

Diagnostic plots

Weather monitoring