Files
atom-hmi-ui-chatgpt/LAZY-B-GUIDE.md
T

9.1 KiB
Raw Blame History

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.