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

108 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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; 106 elements |
| 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.
**Unresolved timer reference:** Well 3's Time Since Start reads `water:wellNW1_tssTmr * 1000`; editable Hours reads `water:wellNW1_totalTmr * 1000` and writes `value / 1000` to `water:wellNW1_totalTmr`. These names differ from the Well 3 family. Verified in copied JSON; intended PLC mapping remains unknown. No reset/write was made.
## 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.