System blueprint
This page is the map of the whole RISER system — every wire from a sensor in the boiler room to the operator’s browser. It is written for developers and field technicians. If you are pulling wire, start here and on Controller & field wiring. If you are reading code, pair it with From code to copper.
The drawing below is the per-building connection diagram (Sheet 1). It is the same drawing an electrician would work from. A print/PDF-ready version with the full parts list (Sheet 2) is here: open the full blueprint (two sheets, with a Download-PDF button).
The one rule the whole drawing obeys. The controller drives the interposing relay only — it never switches line voltage directly, and it never touches the boiler’s native safety chain (aquastat, low-water cutoff, relief valve). Lose the cloud, the cellular link, or the whole controller, and the boiler falls back to its own controls. The system fails safe to heat.
How to read the drawing
Section titled “How to read the drawing”The system is drawn in four horizontal bands, left to right = field to cloud:
| Band | What lives there | Who cares |
|---|---|---|
| Field sensors | RTDs, pressure transmitter, thermocouple (S1–S5) |
Field tech |
| Edge controller | ModBerry 500 CM4 running the RISER edge agent (C1) |
Both |
| Actuation, boiler & native safety | Interposing relay, boiler, aquastat / LWCO / relief (R1, B1, B2, SF1–SF3) |
Field tech |
| Cloud & connectivity | LTE → internet → FastAPI backend, Postgres, operator web app (N1–N4, K1–K3) |
Developer |
| Power | 120 VAC service → 24 VDC PSU → UPS (P1–P3) |
Field tech |
Wire colors (the legend)
Section titled “Wire colors (the legend)”Every line on the drawing is a real cable, and its color tells you the signal:
| Color / style | Signal | Notes |
|---|---|---|
| Green solid | 4–20 mA analog | Supply/return/outdoor temp, steam pressure → controller analog inputs |
| Amber solid | Type-K thermocouple | Flue gas temp → controller TC1 |
| Blue dashed | RS-485 / Modbus | Onboard sensor module (internal bus) and the boiler controller (external bus) |
| Orange heavy | Relay-switched / call-for-heat | Controller DO1 → relay coil → boiler’s call-for-heat |
| Red | 120 VAC mains | Service feed and the switched line through the relay contact |
| Black | 24 VDC power | PSU → UPS → controller |
| Purple dotted | Cellular / RF | Antenna and SIM up to the LTE carrier |
| Teal | Internet / HTTPS | Carrier → internet → backend → web app |
Tag key
Section titled “Tag key”Every box carries a tag. The first letter is its family:
S# sensor · C# controller · P# power · R# relay · B# boiler · SF# native safety · N# network · K# cloud
These same tags key the bill of materials and the code-to-hardware map, so a part on the drawing, a part on the shelf, and a channel in the config all line up.
The path of one heat cycle
Section titled “The path of one heat cycle”Follow the wires end to end and this is what happens on a normal call for heat:
- Sensors read. The supply/return RTDs, the outdoor RTD, and (on steam) the pressure transmitter push 4–20 mA into the controller; the flue thermocouple pushes a Type-K signal.
- The agent decides — locally. The edge agent runs its control loop on the ModBerry, checks the interlocks, and decides whether to call for heat. This never waits on the internet.
- The relay switches. The agent energizes
DO1→ the interposing relayR1→ the boiler’s call-for-heat. The controller drives only the low-voltage coil, never line voltage. - Native safety has the last word. The call passes through the series burner-enable string
(
SF1aquastat →SF2low-water cutoff →SF3relief). Any one of them can kill firing on its own, independently of RISER. - Telemetry goes up. Every ~15 s the agent posts readings over LTE → internet → the FastAPI
backend (
K1), which stores them in Postgres (K2). Every ~5 s it polls for commands. - Operators watch. People manage the fleet from the operator web app (
K3). See Operator & admin panels.
Cloud loss is not a fault. Cut the antenna, pull the SIM, or unplug the internet, and steps 1–4 keep running on the controller. Telemetry buffers on the controller (SQLite) and drains in order when the link returns — nothing is lost. See The safety rules.