98 lines
11 KiB
Markdown
98 lines
11 KiB
Markdown
# Atom production — all-site device dashboard
|
||
|
||
Verified October 21, 2026. Production host: https://www.atomhmi.com. Dashboard: https://www.atomhmi.com/site_atom/page_devices. This is separate from the Shop development site at dev.atomhmi.com/site_atom; see SHOP-BUILD.md for that environment. No Shop or atGVL_alarmManager changes were made.
|
||
|
||
## Published dashboard
|
||
|
||
Current status — October 21, 2026: the user deleted and retired Demo (site_demo) and Westland (site_westland). Removed their five dashboard rows: Demo/demo, Demo/main, Demo/unknown, Westland/test_trailer and Westland/trailer_1. The saved dashboard now has 33 non-Global devices across the 31 accessible sites (30 with devices; Atom has Global scope only). The current Select Site catalog independently showed 31 sites and neither retired site. Do not recreate either site, its devices, diagnostic registers or Terminal sources unless the user explicitly requests reinstatement.
|
||
|
||
The initial build expanded Devices from 26 to 38 rows across 33 sites; the retirement cleanup subsequently removed five rows and updated the coverage label to 31 sites · 33 devices. Global remains a site-wide configuration scope, not an extra physical-device row. Runtime reload verified 33 rows and zero Demo/Westland links; search and remaining columns retained. Only dashboard configuration was changed in this cleanup; the user had already deleted the sites.
|
||
|
||
The page now has three native roots: heading, coverage/freshness explanation, and All Sites Devices table. Route devices and page title Devices are preserved. Site and device names/IDs are separate searchable columns. Default columns: Site, Device, Telemetry, Uptime, Last Update, CPU Temp, HMI Version, Link. Column visibility retains optional CPU/memory/disk/network/firmware/Node/voltage/throttling fields, Update HMI and Reboot. Maintenance actions are hidden initially. No runtime update/reboot/restart commands were pressed.
|
||
|
||
Telemetry means uptime-data freshness, not an independent connectivity probe: Recent is a valid uptime timestamp no more than 120 seconds old; Stale is older; No data means missing uptime or an invalid timestamp. Missing values render an em dash instead of a fabricated zero or null.null.null.null. Uptime uses seconds converted to days/hours/minutes. Last Update displays age in s/m/h/d. CPU temperature is °C; other units retain the established register definitions. The display uses native Advanced Text Display expressions with explicit null handling, not custom component setup code.
|
||
|
||
Retained original rows keep their device-specific site-page destinations. New rows link to their site's observed root. Site link buttons read Open site and have normal line height and padding. Numeric display fields are read-only. Update HMI and Reboot retain their exact device-scoped command targets, but were not operationally tested.
|
||
|
||
Historical initial-build verification showed 38 rows and no duplicate DOM IDs or captured browser errors. Search by Chep HighPlains returned its one device with live HMI version 1010, uptime and CPU temperature; search grain returned Lazy B Grain Handling. Cleared search restores all 38. After polling settled, a dated snapshot showed 27 Recent, 1 Stale and 10 No data; these are transient observations, not permanent device classifications. Initial page load can briefly show No data while register requests populate.
|
||
|
||
## Historical diagnostic-register additions before retirement
|
||
|
||
Before the retirements, audited rpi_ registers on all 38 devices. The following addition counts are historical; Demo/Westland entries and sources are retired and must not be recreated. Twenty-nine devices already had the standard 29-register set; those definitions were not edited. Nine devices had 239 missing entries total. Created only those missing entries:
|
||
|
||
| Site | Device | Added |
|
||
| --- | --- | --- |
|
||
| Chep HighPlains | main | 29 |
|
||
| Demo Site | demo | 29 |
|
||
| Demo Site | main | 29 |
|
||
| Demo Site | unknown | 7 |
|
||
| Milferd Unruh | barn | 29 |
|
||
| Rosebud Feeders | mill | 29 |
|
||
| R Reimer Farms | water | 29 |
|
||
| Swalwell Church | controller | 29 |
|
||
| Westland | test_trailer | 29 |
|
||
|
||
The user explicitly approved creating Terminal connections on the eight devices lacking them. Created slave ID terminal, description Terminal, type Terminal, configuration {}. Demo unknown already had Terminal. These are the existing device agent's native Terminal sources; no credentials or SSH destinations were added.
|
||
|
||
The portable standard definitions are in terminal-register-templates.json. They were captured from APYD Strathmore Main's actual edit dialogs and checked against persisted native import previews. Add siteId and deviceId for the intended target before importing. Terminal command text is address.formula, not address.command; the register key is id, not _id. Never copy an unverified payload directly into production.
|
||
|
||
The 29 IDs are rpi_atom_hmi_update, rpi_atom_hmi_version, rpi_cpu_clock, rpi_cpu_temp, rpi_cpu_usage, rpi_disk_available, rpi_disk_percentage, rpi_disk_usage, rpi_firmware_version, rpi_ip_loc_addr_1..4, rpi_ip_tun_addr_1..4, rpi_memory_available, rpi_memory_usage, rpi_model, rpi_node_version, rpi_reboot, rpi_restart_service, rpi_service_uptime, rpi_throttled, rpi_throttling_occurred, rpi_under_voltage, rpi_under_voltage_occurred and rpi_uptime.
|
||
|
||
rpi_uptime reads /proc/uptime in seconds. rpi_service_uptime reads service age in seconds. HMI version is the repository commit count; firmware version is a timestamp, not a semantic version. CPU clock is MHz; CPU/disk usage are percent. Memory/disk figures retain the source commands' decimal MB / 1M block conventions. Network octets are displayed together. Pi-specific firmware/throttling commands depend on vcgencmd; availability on non-Pi hardware is not established. A configured definition does not establish a working reading.
|
||
|
||
All new entries are enabled. rpi_atom_hmi_update, rpi_reboot and rpi_restart_service have updateType DISABLED, meaning no automatic command polling; this is distinct from enabled=false. No command values were written. Other entries retain the source template's ON_CHANGE or CONTINUOUS recording type. New polling intervals were capped at 600 seconds because the current create form rejects intervals above ten minutes; existing definitions were preserved. The manifest records the actual new intervals.
|
||
|
||
## Safe native import and verification
|
||
|
||
Use Manage Registers → Import → select Device and Terminal → Advanced. Explicitly turn Delete Unused OFF; it defaults ON. Validate first and inspect the Confirm Import JSON: only the intended missing IDs may appear in insert; update and delete must be empty. Native validation sorts entries, so compare per ID rather than array order. Submit only after checking the exact source, command, recording type and enabled flag.
|
||
|
||
The initial Chep/partial Demo entries used individual Create Register forms; remaining batches used the supported native Advanced import. Each committed batch showed Import Successful. Reload Manage Registers before readback; returning to Edit can retain the old table. A read-only audit with JSON [] and Delete Unused OFF exposes the current Terminal entries in unchanged. Do not submit this audit. On all nine affected devices, freshly verified all 29 IDs and compared every new definition to its intended template (normalizing CRLF/LF only): all 239 matched. Existing entries stayed in unchanged with no updates/deletions.
|
||
|
||
Chep HighPlains, Milferd, Rosebud and R Reimer returned live diagnostics during verification. Demo's three devices, Swalwell and Test Trailer had no diagnostic values in their fresh verification snapshots. That observation does not prove they are powered off or identify the cause; agent/connection/platform investigation remains separate work. Existing K2 Mill, KAV Well Test, LPOP, Simon and Westland Trailer 1 also showed No data in the settled dashboard snapshot. Gladacres showed Stale.
|
||
|
||
## Local evidence
|
||
|
||
Original page Copy: /tmp/atom-devices-before.json. Final table draft: /tmp/atom-devices-draft.json. Initial full device/register inventory: /tmp/atom-all-register-audit.json. Created-entry ledger: /tmp/atom-created-diagnostics.json. Eight source ledger: /tmp/atom-created-terminal-sources.json. Fresh definition/readback audit: /tmp/atom-final-register-audit.json. Native import previews: /tmp/atom-import-*.json. Screenshots: /tmp/atom-devices-dashboard.jpg and /tmp/atom-devices-proof.jpg. These are local evidence paths, not remotely synchronized artifacts. Raw live readings/network addresses and browser credentials were not committed.
|
||
|
||
## Current site/device inventory — 31 sites / 33 devices
|
||
|
||
| Site | Site ID | Device ID — description |
|
||
| --- | --- | --- |
|
||
| APYD Strathmore | `agra_risk` | `main` — Main |
|
||
| Arco Poultry | `arco_poultry` | `barn_controller` — Barn Controller |
|
||
| Aspen Acres | `aspen_acres` | `main` — Main HMI |
|
||
| Atom | `atom` | Global scope only; no hardware device |
|
||
| Bruce Farms | `bruce_farms` | `water` — Water |
|
||
| Calhoun Cattle Co Ltd | `ccc` | `feed` — Feed - Raspberry pi |
|
||
| Chep | `chep` | `main` — Main PC |
|
||
| Chep HighPlains | `chep_hp` | `main` — Main |
|
||
| Darryl Reimer | `darryl_reimer` | `barn` — Barn |
|
||
| Dusty Road Farms | `dusty_road_farms` | `barn` — Barn Controller |
|
||
| Gladacres | `gladacres` | `barn` — Barn |
|
||
| Highland Milling | `highland` | `plant` — Plant |
|
||
| Highway 21 Feeders | `highway_21` | `water` — Water |
|
||
| KAV Main - Mill | `kav` | `mill` — Mill |
|
||
| KAV East - Mill | `kav_east_mill` | `mill` — Mill |
|
||
| KAV East - Water | `kav_east_water` | `water` — Water System |
|
||
| KAV Main - Water | `kav_water` | `water` — Water System; `well_test` — Well Test |
|
||
| K1 - Water | `korova_1_water` | `k1_water` — K1 Water PC |
|
||
| K2 - Mill | `korova_2_mill` | `k2_mill` — K2 Mill |
|
||
| K2 - Water | `korova_2_water` | `k2_water` — K2 Water PC |
|
||
| Lazy B Farm & Ranch | `lazy_b` | `grain` — Grain Handling; `water` — Water System |
|
||
| Lone Pine | `lone_pine` | `recycling` — Recycling; `sawdust_dryer` — Sawdust Dryer |
|
||
| LPOP | `lpop` | `lpop` — LPOP Raspberry |
|
||
| Milferd Unruh | `milferd_unruh` | `barn` — Barn |
|
||
| Rimrock - Mill | `rimrock_mill` | `mill` — Mill |
|
||
| Rimrock - Water | `rimrock_water` | `water` — Rimrock Water |
|
||
| Rosebud Feeders | `rosebud_feeders` | `mill` — Mill |
|
||
| R Reimer Farms | `rrf` | `water` — Water |
|
||
| Simon Loewen | `simon_loewen` | `main` — Main |
|
||
| Swalwell Church | `swalwell_church` | `controller` — Controller |
|
||
| Sweet Grass | `sweetgrass` | `main` — Main PC |
|
||
|
||
## Gladacres delayed readings investigation — October 21, 2026
|
||
|
||
October 21 Gladacres check: all 30 diagnostic/maintenance entries are enabled and Terminal is configured as {}. The native Device Status page and Atom dashboard both populated readings without any saved configuration change (CPU 63.7 °C, HMI 1012 observed). Most diagnostics poll every 600 seconds; uptime is configured for 10 seconds but was about 2–5 minutes old during checks. Initial blank register-table values were not proof of a complete outage. Delayed uptime reporting remains unexplained; no agent/connection cause or repair was established. No commands, resets, updates, reboots, service restarts or log uploads. See GLADACRES-GUIDE.md.
|
||
|
||
Cloud guide: https://chatgpt.com/space/page_31b800d9541c8191b7eddf6ee2fac319
|