End-to-end monitoring data flow

Follow a reading from the probe wire through JSON feeds, storage, and the signed-in history dashboard.

Close-up of white Cat-5e Ethernet cables with RJ45 connectors
Probe JSON usually leaves the LAN over Ethernet or a nearby relay, not the public internet directly. Photo: DiscDepotDundee.co.uk. CC BY-SA 4.0

Every number on the home page travels through several layers. Understanding that pipeline helps when debugging stale readings, missing probes, or history gaps.

Step 1. Sensing in the space

Probes measure temperature and humidity. The Arduino sketch polls them every few seconds, discards obvious outliers, and prepares an in-memory JSON structure. Details: Arduino sketches and temperature probes.

Arduino Uno wired to a DHT temperature-humidity sensor with three jumper wires
A minimal MCU-plus-sensor bring-up before Ethernet, LCD, and dual-probe wiring. Photo: Wikimedia Commons contributor. CC BY-SA 4.0

Step 2. Publishing JSON

The board or a nearby relay exposes HTTPS JSON. A Python FastAPI service may cache responses in Redis so the wider internet never hits the residential uplink directly: see Python scripts and feeds.

Browser JSON viewer showing temp probe keys 0, 1, and avg with Fahrenheit Celsius and humidity
Live feed payload shape consumed by the website after leaving the local network.

Step 3. Website fetch and display

When you load the home page, server code retrieves each configured feed URL, parses probe keys, and renders stat cards. Signed-in users load feed and probe mappings from Supabase instead of defaults. Weather data follows a parallel path via OpenWeather using your optional city override.

Step 4. Persisting history

If you are authenticated, successful probe reads insert rows into Supabase with feed name, probe label, key, temperatures, humidity, and timestamp. Guests still see live data but do not append history. Learn more in historical data usage.

Step 5. Dashboard and export

The history table paginates those rows. CSV export streams the full set for admins and subscribers. Stripe webhooks maintain membership in the export-capable group. Account tools are described in accounts and dashboard.

Failure points to check

  1. Probe wiring or power: serial logs on the Arduino.
  2. Home network or certificate: curl the feed URL from a laptop on LTE.
  3. Relay cache stale: restart upstream pull in fast-api-relay.
  4. Dashboard mapping: probe key typos hide readings even when JSON is valid.
  5. Auth cookies: history saves only for signed-in sessions.

FAQ

How do readings reach the dashboard?
Devices push or feeds are pulled, readings land in storage, charts poll or stream updates, and alert jobs evaluate thresholds on a schedule.