Files

7.0 KiB
Raw Permalink Blame History

Mandel development site — page build

Built and verified on October 20, 2026 at https://dev.atomhmi.com/site_mandel.

Follow-up settings expansion is documented in MANDEL-SETTINGS.md: coop setpoints and fan target are now editable, fan speed is adjustable, and five pages have alarm threshold/hysteresis controls. The owner confirmed the washer pressure sensor is not active yet.

Plan and delivered pages

Page Route Delivered behavior
Home (existing Main) page_main Live compressor pressure, coop temperature, compressor/heater status, house daily volume, and six equipment links
Air Compressor (updated) page_comp Correct Main-device pressure binding, 0–200 psi display range, run status, runtime hours, current-run minutes, manual sequence start/stop buttons, pressure history
Pressure Washer (new) page_pressure_washer Pressure readout, sequence/pump/valve status, runtime, manual sequence start/stop buttons, pressure history
Chicken Coop (new) page_chicken_coop Temperature, heating/cooling setpoint readouts, daily fan target in hours, heater/fan/door-output/light statuses, temperature/setpoint history
Ventilation (new) page_ventilation Fan speed, output, negative pressure, engineering-unit note, two-axis history
Water Usage (new) page_water_usage House flow/today/yesterday/total, plus today's/yesterday's well volumes using the working Well page's history registers
Well (existing) page_well Inspected and retained unchanged

Added navigation entries for Pressure Washer, Chicken Coop, Ventilation, and Water Usage. The existing default Main route remains the home page. Existing Temperature, Hot Tub, and Device Status navigation was retained; no hot-tub data group was found in Main's inventory, so no hot-tub equipment controls were fabricated.

Register survey

Inspected all 1,167 Main-device register definitions through Manage Registers. Full inventory and the enable audit are saved in artifacts/mandel/mandel-register-inventory.json. Inventory values and Enabled flags are the initial snapshot; verifiedEnabledDuringBuild records the later enable verification.

The new pages reference these groups:

  • Compressor: g_airPressure_out_eu, g_airCompressor_out_run, g_airCompressor_out_runTime, g_airCompressor_out_tss, g_airCompressor_in_manStart, g_airCompressor_in_manStop.
  • Washer: g_pressureWasherPres_out_eu, g_pressureWasher_out_run, g_pressureWasherPump_out_run, g_pressureWasherValve_out_run, g_pressureWasher_out_runTime, g_pressureWasher_out_tss, g_pressureWasher_in_manStart, g_pressureWasher_in_manStop.
  • Coop: g_coopTemp_out_eu, g_coopHeatSP, g_coopCoolSP, g_coopDailyFanDur, g_coopHeater_out_val, g_coopExhaustFan_out_val, g_coopDoorOpen_out_val, g_coopInteriorLights_out_val, g_coopExteriorLights_out_val.
  • Ventilation: g_houseFanSpeed, g_fanSpdOut_in_eu, g_negAirPres_out_eu.
  • Water usage: g_houseFlow_out_eu, g_houseVol_todayEu, g_houseVol_yesterdayEu, g_houseVol_euTotal, g_well_history_today_vol, g_well_history_yday_vol.

All 32 referenced registers are enabled. The first enable pass also enabled the legacy g_well_out_volTdy and g_well_out_volYest definitions; the final Water Usage page instead uses the already-enabled history registers from the existing Well page. No PLC register values were written during the build.

Register definitions use the existing OPC UA slave and Home.g... tag addresses. Preserved their existing one-second On Change update configuration. Unlike the previously studied production register editor, the development editor did not expose separate logging interval/duration fields. The new history widgets use enabled register sources; separate backend retention settings were not changed.

Binding and formatting decisions

The old compressor/home widgets used shop:PRES_EU, shop:TEMP_EU, and unmatched pressure-setpoint references. Updated them to actual Mandel main: registers. Replaced the unmatched compressor setpoint widgets with runtime displays rather than guessing a control register.

Runtime descriptions specify seconds: total hours divide by 3,600, and current-run minutes divide by 60. The coop's daily fan duration returns 3,600,000 for its one-hour target; its display divides by 3,600,000. Heating/cooling setpoints and fan target remain readouts. No new coop or ventilation write controls were added.

The compressor's gauge range is a display range only and does not change pressure setpoints. Pressure-washer pressure remains a numeric readout to avoid inventing gauge bounds. House-water and ventilation fields with unverified physical units are identified as using PLC engineering units rather than assigned guessed units.

The two manual Start/Stop pairs each write 1 to their equipment sequence's in_manStart or in_manStop register. These are configured buttons; they were not pressed. Pump/valve direct-output commands were not added.

Validation

  • Observed successful page-save messages, reopened pages, and followed saved navigation links.
  • Verified Enabled = Yes for the register enable pass and compared the final well-total bindings with the existing Well page.
  • Checked all five equipment pages and the home page visually, with screenshots saved under artifacts/mandel/.
  • Verified live examples: compressor pressure around 130.6 psi and 2.2 runtime hours; coop temperature 20.7 °C, heat/cool setpoints 10/25 °C, daily fan target 1.0 h; house today 160 and yesterday 71; well today 171 gal and yesterday 298 gal. Values are snapshots and will change.
  • Corrected clipped home status badges and the fan-duration conversion during visual review.
  • No operational Start/Stop, setpoint submission, or output-control test was performed.

Observations requiring separate follow-up

  • The washer reports approximately −118.5 psi because its pressure sensor is not active yet, as subsequently confirmed by the owner. Its page now includes an inactive-sensor commissioning note.
  • History has only the data available from enabled register sources; newly enabled signals may initially have little history.
  • The development page editor intermittently left modal pickers open and timed out. Its console also recorded repeated chart-library loading errors and missing chart/gauge globals during editor previews. Saved runtime pages rendered successfully; underlying application/library loading was not modified.
  • Copy/Paste did not transfer the source Well subtree during the test, so the new pages were assembled using native elements.

Repeatable review workflow

  1. Open a page from the home tiles or navigation and verify live values against Manage Registers.
  2. Use Configure Pages to select the exact page and check its Title/URL before edits.
  3. Save the component, close any lingering picker, then save the page separately. Verify the successful-save message before navigating away or reloading.
  4. Reopen the runtime page to verify persistence and layout. Test equipment commands only as a separate authorized operational check.