Skip to content

Off-grid farm execution topology — Demory (Mermaid)

Purpose

Three Mermaid views for SITE_FARM (Demory) : reference (intended off-grid + field network ) , pilot (Phase 0/1 ) , degraded (low SOC / WAN loss / local-only ) — with power domains and trust zones .

Doctrine package : Off-grid systems doctrine package — Demory .

Policy pages : Off-grid power doctrine — Demory farm site , Mesh and field networking strategy — off-grid Demory farm , Off-grid degraded modes — power and connectivity .

Two-site WAN context (Claxton vs Demory ) : Execution topology package — two-site smart farm (Mermaid) .**

Mermaid : mkdocs.yml (mermaid2 plugin ).


Legend

Mark Meaning
Pcrit Battery-backed “ keep alive ” loads (policy — placeholder list ) .**
Popt Sheddable optional loads (cameras dense , Starlink CPE , extra RF ) .**
Z2 Field OT / LAN — hostile lateral assumption (Remote access) .
Z3 WAN / Internet — untrusted .
Solid Intended normal path .
Dashed Optional / sheddable .

1. Reference topology — off-grid Demory farm (intended)

```mermaid flowchart TB subgraph PD["Power domain — DC / AC plant (placeholder sizing)"] pv["PV array"] batt["Battery + BMS\n(Pcrit reserve policy)"] inv["Inverter / charger\nAC distribution"] pv --> batt batt --> inv end

subgraph Pcrit["Pcrit — continuous policy loads"] pump["Water / interlock logic\n(local safe defaults)"] gw["Field gateway\n(edge buffer)"] inv --> pump inv --> gw end

subgraph Popt["Popt — optional / sheddable"] cpe["Starlink / LTE CPE\n(WAN uplink)"] cam["Cameras / NVR\n(policy)"] inv -.-> cpe inv -.-> cam end

subgraph Z2["Z2 — field LAN / OT"] eth["Ethernet / Wi‑Fi AP\n(barn zone)"] mesh["Meshtastic / LoRa mesh\n→ gateway"] halow["Wi‑Fi HaLow segment\n(optional IP links)"] gw --> eth gw --> mesh eth -.-> halow end

subgraph Z3["Z3 — WAN (optional)"] cloud["Cloud / MQTT egress\n(convenience)"] end

cpe -.-> Z3 gw -.->|"TLS / MQTT"| cloud ```

Interpretation: Networking loads sit inside the same energy budget as pumps — Starlink and dense video are Popt unless you promote them in writing . Mesh / HaLow stay below WAN for local survivability .


2. Pilot topology — Phase 0/1 minimum viable

```mermaid flowchart LR subgraph PDp["Power — pilot"] pvp["Small PV + battery\n(measure first)"] invp["Single inverter / bus"] pvp --> invp end

subgraph Z2p["Z2 — field"] g1["One gateway"] m1["Few mesh nodes\n(tank / gate class)"] g1 --> m1 end

subgraph WANp["WAN — optional"] sp["Starlink or LTE\n(one uplink)"] end

cloudp["Cloud / phone\n(convenience)"]

invp --> g1 invp -.-> sp sp -.->|"egress when up"| cloudp ```

Interpretation: Prove Wh/day before adding HaLow infrastructure or a second WAN path (Decision rules) .


3. Degraded topology — low SOC and/or WAN loss

```mermaid flowchart TB subgraph stress["Stress — low SOC or charge fault"] note["Load shed: Popt first"] end

subgraph Pcritd["Pcrit — may still run if policy allows"] pumpd["Interlocks / critical logic"] gwd["Gateway (if not shed)"] end

subgraph meshonly["Local-only survivable"] meshd["Mesh / LoRa local path\n(no cloud required)"] sens["Sensors / actuators\nfail-safe"] gwd --> meshd meshd --> sens end

subgraph dead["WAN — down or intentionally off"] z3d["No cloud trust"] end

stress -.-> Pcritd gwd -.->|"blocked"| z3d ```

Interpretation: When SOC is deep , shed Popt before you lose pump logic . When WAN is gone , mesh may still carry local telemetry to a live gateway ; if gateway is shed , revert to manual rounds (Off-grid degraded modes) .