# Lazy B Farm & Ranch site guide Verified through production Configure Pages and native element Copy on 2026-10-21 (America/Edmonton). This was a read-only context survey: no page saves, pastes, register writes, alarm changes, device actions, or operational command tests. Bindings describe the configured UI, not proven PLC behavior. No credentials or camera/map endpoints are retained. ## Identity and scope Production: https://www.atomhmi.com/site_lazy_b/ Configure: https://www.atomhmi.com/site_lazy_b/configure_pages All 21 page trees were opened on October 21. Native Copy inspected representative main, sequence, water, valve, compressor and boiler subtrees. The site combines water/heating (`water` device prefix) and grain handling (`grain`). Development equivalence, PLC tag addresses, polling/logging and alarm latching were not verified. ## Page map | Configure label | Slug | Role / roots | | --- | --- | --- | | Main | main | Trend + Wells and Pumps | | Outflow | outflow | div + row; 127 elements | | Well 1 | well_1 | div + operating row + information/map row; 111 elements | | Well 2 | well_2 | same three-root layout; 104 elements after timer removal | | Well 3 | well_3 | same three-root layout; includes motor/speed control | | Air Compressor | air | layout div + all operating root | | Boiler | boiler | layout div + row operating root | | House Valve | valve | spacer + all operating root | | Alarms | alarms | spacer + all; 16 elements | | Grain Alarms | grain_alarms | Main; 209 elements | | Grain Motors | grain_motors | Motors; 357 elements | | Receiving | receiving | Control Row; 77 elements | | Receiving Start Stop Delays | rec_startstopdelays | Motors; 52 elements | | Reclaim | reclaim | Control Row; 91 elements | | Reclaim Start/Stop Delays | rcl_startstopdelays | Motors; 112 elements | | Loadout | loadout | Control Row; 23 elements | | Device Status (Grain) | device_status_grain | All; 111 elements | | Device Status (Water) | device_status_water | All; 106 elements | | Settings | settings | div + Wells and Pumps; 65 elements | | Testing | testing | one Adjustible Gauge named Well 1 Flow rate | | testing grounds | test | Trend; 60 elements | Navigation table listed Grain Motors, Loadout, main, Main, Outflow, Receiving, Reclaim, Settings. Both main and Main target page_main. No cleanup performed. Well 1's inspected tree contains displays/charts and no switch/button motor-control types, while Wells 2 and 3 include controls. Do not assume the three wells have identical templates. ## Water examples: Well 3 Copied operating row contains 55 elements: | Role | Binding | Display/configuration | | --- | --- | --- | | Flow | water:aiWell3Flow_eu | gpm; gauge 0–25 | | Level | water:aiWell3Lvl_eu | ft | | Run feedback | water:well3_q_run | On/Off | | Mode | water:well3_i_autoMode | 1 Auto / 0 Manual; separate run feedback | | Start / Stop | water:well3_i_manStart / well3_i_manStop | each writes 1 | | Off / On level SP | water:well3OffLvlSP / well3OnLvlSP | editable, 0–100% | | Flow SP | water:Well3PIDSP | editable, 0–30 gpm | | Manual speed | water:Well3SpeedRefManSP | editable, 0–90 Hz | | Today / Yesterday volume | water:iWell3Vol_volDaily[0] / [1] | gal | | Power | water:well3Power_kw | kW | | Energy | water:well3Power_today_kwh / month_kwh / lastMonth_kwh | kWh | | Historical levels | water:aiWell3LvlAgg_Past24Avg / Max / Min | ft | Current flow/level chart navigator is water:aiWell3Flow_eu. Historical level navigator is water:aiWell3LvlAgg_Past24Avg, default button index 1. The information/map/report root is separate; preserve it during control-page replacement and do not publish its location details unnecessarily. **Resolved by removal — October 21, 2026:** at the user's request, removed Time Since Start and Hours from production Well 2 (well_2) and Well 3 (well_3). Both pages had copied wellNW1 references with no verified corresponding Water System timer registers. Removed only elements 3a7413f1-6213-44be-842c-350f715ceb6d and c8a9b2ea-35d5-448b-9d68-756715e25df6 (Well 2), and 6e6f612c-c2e5-4ee9-a468-849e6191b523 and 4e613f5b-e0e3-4526-88dd-b9a81695d75e (Well 3). Saved both pages and freshly reopened: Well 2 element count 106→104; Well 3 124→122; the only removed IDs were these four and no elements were added. Runtime pages show the remaining motor controls without timer fields. Well 1 has no timer fields and was unchanged. Local native Copy backups: /tmp/lazy-b-well-timer-removal-backup.json. No PLC counters were reset, register definitions altered, or operational commands submitted. Removal supersedes the earlier request to locate replacement timer bindings; adding timers later requires verified PLC tags/units. **Historical audit before removal — October 21, 2026:** rechecked production Well 3 (`well_3`). Time Since Start, element `6e6f612c-c2e5-4ee9-a468-849e6191b523`, then read `|{register:water:wellNW1_tssTmr}| * 1000`, non-editable, HH:mm:ss, blank updateRegister. Hours, element `4e613f5b-e0e3-4526-88dd-b9a81695d75e`, then read `|{register:water:wellNW1_totalTmr}| * 1000`, editable, writes `value / 1000` to `water:wellNW1_totalTmr`, format d [days] HH:mm. Captured both original configurations and left them unchanged. The Water System (water) register table contained 1,660 entries; searches for tss, totalTmr, runtime and wellNW1 returned no matches. The Well 3 family has no verified replacement for either timer. Existing enabled `iWell3Vol_rtDaily[0]` / `[1]` are daily counters, not established equivalents of time-since-start or lifetime Hours; units were not independently verified. `well3Power_total_onTime` exists disabled and is likewise not a verified replacement. Disabled `well3_i_UTS` has blank description, slave Well Shack 2080-LC20-20QBB, address well3.i.UTS; its role/units do not establish a timer binding. Do not invent well3_tssTmr/well3_totalTmr mappings or enable an unrelated counter. Initially requested correct PLC tags, units and lifetime-counter write semantics; the user subsequently chose removal instead. No page/register saves, counter resets, polling changes or operational tests were performed. ## Valve, compressor and boiler House Valve: - Feedback reads `water:doHouseVlvOp` and `water:doHouseVlvCl`. - Mode `water:HouseVlvAuto`, 1/0. - Open / Close / Stop → `water:HouseVlvCmdOpen` / `HouseVlvCmdClose` / `HouseVlvCmdStop`, each 1. - Maintain Pressure `water:spHousePrs` and Deadband `water:spHouseVlvCtrlDb`, direct editable values with configured limits 0–100 psi. Air Compressor: - Feedback `water:AirComp_q_run`; mode `AirComp_i_autoMode`, 1/0. - Start/Stop → `water:AirComp_i_manStart` / `AirComp_i_manStop`, each 1. - On Time displays `water:AirCompTimeSP * 1000` in Timespan (ms), writes `value / 1000`. Preserve conversion symmetry. Boiler: - Pressure `water:aiBoilerPrs_eu`, psi. - Water temperature `water:aiBoilerTe_eu`, °F. - Outside temperature `water:aiAmbianteu`, °C. - Trend uses separate case-sensitive scales `temp` (0–200 °F), `psi` (0–20), `Temp` (-40–40 °C), navigator water:aiBoilerTe_eu. - Internal element names such as Well 3 Water Temp / boiler water temp do not reliably describe their displayed binding. ## Grain sequences | Function | Receiving | Reclaim | | --- | --- | --- | | Status | grain:g_rec_out_status | grain:g_rcl_out_status | | Destination/source selection | grain:g_b_recDstIdx | grain:g_b_rclSrcIdx | | Start | grain:g_rec_in_manStart = 1 | grain:g_rcl_in_manStart = 1 | | Normal stop | grain:g_rec_in_manStop = 1 | grain:g_rcl_in_manStop = 1 | | Rapid stop | grain:g_hmiRecRpdStp = 1 | grain:g_hmiRclRpdStp = 1 | | Timed-stop value | grain:g_rec_in_manOnMaxSP | grain:g_rcl_in_manOnMaxSP | Both timed-stop fields use Timespan (ms), direct writeValue=value, configured limits 0–356400000 and HH:mm:ss. Their disable buttons write 0 to the same target. Receiving enable uses grain:g_recEn (1/0). Its chart includes M01/M03/M04 speed % and current A; navigator grain:g_m01_out_current. Receiving also shows M02Temp, M01, M02, M03, M04 feedback. M03 current control uses grain:g_m03CurCtlEn, g_m03CurSp, g_m03PID_Kp and g_m03PID_Tn. Kp/Tn limits=false despite populated 0/100 fields. Tn's displayed suffix is KP, a possible label issue left unchanged. Reclaim includes M21–M29 run feedback among its motor cards. Reopen the precise motor before adapting it. Loadout controls M41: - Position buttons target grain:g_m41_in_autoPos with values 0,20,40,60,80,100. - Mode grain:g_m41_in_autoMode (1/0); Open/Stop/Close grain:g_m41_in_manOpen/manStop/manClose, each 1. - One internal name is 100% Button but its configured value is 80; another writes 100. Internal element names alone are insufficient to establish a button's behavior. - Status expression references grain:g_m41_out_fault/open/close. No claim about physical valve movement or interlocks. ## Future use Use Main/Settings for navigation context, the specific well for water, Receiving/Reclaim for sequence controls, and Grain Motors for individual equipment. Diagnostics contains consequential maintenance actions; inspect its element configuration without clicking the operational buttons. Treat alarms pages as UI content, not an audit of Manage Alarms definitions. Test-named pages are existing content, not authorized disposable pages.