Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 3.59 KB

File metadata and controls

55 lines (43 loc) · 3.59 KB

Synoptic View

Upstream sources

The deployed HAL page and its source repository use the same frontend updater and server-side conditionals:

The website repository's latest commit at the time of review was b4bc350bdfc250845d054d6595e1a31a864b52ba from September 16, 2025. The latest condition-related changes were June 26, 2025 for the updater, March 9, 2024 for backend sensor normalization, and January 27, 2021 for the SVG template.

The newer HalReporter collects MQTT checkups and forwards them to the website. The haldor collector defines the physical GPIO and temperature sensor names. Neither repository overrides the display conditions below.

Mirrored conditions

Component Condition
Whole view Technical failure when the newest sensor update is older than 15 minutes
Space status Open when Open Switch is 1 and recent, or while an in-person calendar event is active
Privacy Privacy_Switch = 1 takes precedence over the open switch and calendar events: public-facing status and doors are closed, and motion is hidden
Doors Open when the binary field is 1; closed when 0
Motion Active when the binary field is 1 and its sample is no more than 20 minutes old
Temperatures Grafana millidegrees Celsius divided by 1000 and rounded to whole degrees
Failure rendering Unknown status, red failure marks, and XX°C temperatures

The bot reads all required fields with one Grafana datasource-proxy request. The SVG geometry is stored locally in data/static/maglab_synoptic_template.svg, and Python applies the same conditions before rasterizing it. The output is 800×320 pixels (a 5:2 Discord event-banner ratio) with a view box selected to retain the full floor plan without stretching it.

The recurring Public Business Meeting is remote-only and is excluded from the calendar override; during that event the Space status continues to follow the Grafana Open Switch exclusively.

Discord cropping

Discord's API documents the scheduled-event image field and supported image formats, but not a fixed display crop. The expanded event view displays nearly all of the 800×320 image, while the Events list currently uses a shallow, center-aligned crop. Measurements from the desktop client put that list viewport at approximately 4.6:1, which retains about image rows 73 through 247 from an 800×320 source.

The compact space, front-door, and pod-bay-door text panel therefore sits wholly inside that center safe area and follows the original floorplan's room-label styling. It also shows the newest Grafana sample timestamp in MAGLab local time. Temperature labels use SVG paths rather than emoji for their thermometer symbols, so they do not depend on the fonts installed on the bot host.