This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| architecture:start [2026/01/21 20:15] – bsamuel | architecture:start [2026/02/23 01:11] (current) – [8. References] bsamuel | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== System Architecture Overview ====== | ====== System Architecture Overview ====== | ||
| - | This page defines the **AOFS system architecture**, | + | This page defines the **AOFS system architecture**, |
| It establishes **authority boundaries**, | It establishes **authority boundaries**, | ||
| Line 8: | Line 8: | ||
| ===== 1. Architecture Layers ===== | ===== 1. Architecture Layers ===== | ||
| - | AOFS defines | + | AOFS defines |
| - | | + | * [[architecture: |
| - | | + | * [[architecture: |
| - | | + | * [[architecture: |
| - | - **Human Interaction Layer** | + | |
| - | Each layer has a clearly defined role, authority, | + | All controller layers **expose |
| --- | --- | ||
| - | ==== 1.1 Field Controller Layer ==== | + | ===== 2. Authority & Data Flow Diagram ===== |
| - | **Purpose: | + | < |
| - | Safety-critical, authoritative irrigation control. | + | ┌───────────────────────┐ |
| + | │ HQ / Federated | ||
| + | │ Controller | ||
| + | │ Dashboards & Reports │ | ||
| + | | ||
| + | │ Push/Pull Config & Logs | ||
| + | ▼ | ||
| + | ┌───────────────────────┐ | ||
| + | │ Farm Controller | ||
| + | │ Local UI & Monitoring│ | ||
| + | │ Federation & Sync │ | ||
| + | └─────────┬─────────────┘ | ||
| + | │ Telemetry & Commands | ||
| + | ▼ | ||
| + | ┌───────────────────────┐ | ||
| + | │ Field Controller | ||
| + | │ Autonomous | ||
| + | │ Irrigation Control | ||
| + | │ Sensor Monitoring | ||
| + | └───────────────────────┘ | ||
| + | </ | ||
| - | **Requirements (normative):** | + | **Legend:** |
| - | * Must execute irrigation schedules locally. | + | |
| - | * Must read and enforce all sensor data (soil moisture, tank levels, rain, battery status). | + | |
| - | * Must enforce fail-safe rules: prevent flooding, over-irrigation, | + | |
| - | * Must operate fully offline, without network connectivity. | + | |
| - | * Must never accept remote commands that bypass safety logic. | + | |
| - | * Must log all irrigation events and safety-triggered actions for audit purposes. | + | |
| - | **Examples of Field Controller | + | * **Field Controller: |
| + | * **Farm Controller: | ||
| + | * **HQ Controller: | ||
| --- | --- | ||
| - | ==== 1.2 Farm Controller | + | ===== 3. Controller |
| - | **Purpose: | + | | Layer | Primary Role | Human Interface | Connectivity | Authority | |
| - | Supervisory and management layer on-site; provides local operator interface and federation. | + | |-------|-------------|----------------|-------------|----------| |
| - | + | | Field Controller | Execute irrigation & safety | |
| - | **Requirements (normative): | + | | Farm Controller | Local supervision & federation | Full UI: monitoring, configuration |
| - | * Must provide a full UI for field operators to monitor and configure the farm. | + | | HQ Controller |
| - | * Must operate fully offline with authoritative access to local data. | + | |
| - | * Must aggregate telemetry from Field Controllers. | + | |
| - | * Must support peer-to-peer federation with other Farm Controllers or HQ Controllers. | + | |
| - | * Must enforce the rule that **Field Controllers remain authoritative** for all safety-critical | + | |
| - | * Must support pull/push synchronization of configuration, | + | |
| - | * Must provide conflict resolution mechanisms for configurations | + | |
| - | + | ||
| - | **Behavioral Rules:** | + | |
| - | * Offline operation: farm continues irrigation and monitoring | + | |
| - | * Sync: data and configuration propagate when connectivity is restored. | + | |
| - | * Logging: all operator actions, sync events, and configuration | + | |
| - | + | ||
| - | **Examples of Farm Controller | + | |
| --- | --- | ||
| - | ==== 1.3 HQ / Federated Controller Layer ==== | + | ===== 4. Federation |
| - | **Purpose:** | + | |
| - | Global oversight, analytics, | + | * **Conflict Resolution:** |
| - | + | * Timestamp precedence | |
| - | **Requirements (normative):** | + | * Operator approval for schedule/ |
| - | | + | * Field Controller safety rules **always take priority** |
| - | * Must provide reporting, dashboards, and aggregated analytics. | + | * **Offline First:** |
| - | * Must support configuration distribution to Farm Controllers when authorized. | + | * Controllers |
| - | * Must **never override | + | * Logs and changes queue for synchronization once connectivity is restored |
| - | * Must maintain full audit trails of all data exchanges and actions. | + | |
| - | + | ||
| - | **Behavioral Rules:** | + | |
| - | * HQ controller may act as a “central” sync point, but the architecture **remains decentralized**. | + | |
| - | * Federation: HQ may push configuration updates or pull logs, but offline farms continue autonomous operation. | + | |
| --- | --- | ||
| - | ==== 1.4 Human Interaction Layer ==== | + | ===== 5. Human Interface Rules ===== |
| - | **Purpose:** | + | |
| - | Interface | + | |
| - | + | * Farm Controller: full local UI for monitoring, configuration, and federation | |
| - | **Requirements (normative):** | + | * HQ Controller: multi-farm dashboards, analytics, authorized configuration proposals |
| - | * Must allow operators to monitor | + | * No interface may bypass |
| - | * Must allow operators to submit configuration changes, schedules, or manual requests. | + | |
| - | * Must validate all requests against **Field Controller rules** before execution. | + | |
| - | * Must integrate with Farm and HQ controllers as necessary, respecting authority boundaries. | + | |
| --- | --- | ||
| - | ===== 2. Authority and Safety Rules ===== | + | ===== 6. Communication Model & Protocol Independence |
| - | 1. **Field | + | |
| - | * Field Controller decisions are **authoritative** and cannot be overridden remotely. | + | |
| + | | ||
| - | 2. **Supervisory Controller Rule: | + | * Field Controller |
| - | | + | * Remote commands received via MQTT, AMQP, or other protocols must always |
| + | | ||
| + | | ||
| - | 3. **Offline Operation: | + | * AOFS architecture is protocol-agnostic |
| - | * Any controller layer on-site must maintain **full operational capability** without connectivity. | + | * Multiple protocols |
| - | + | * Implementations | |
| - | 4. **Federation / Sync Rule: | + | |
| - | * Controllers | + | |
| - | * Conflict resolution must be deterministic and logged. | + | |
| - | + | ||
| - | 5. **Auditability: | + | |
| - | * All layers must log events, configuration changes, and synchronization actions. | + | |
| - | * Logs must be preserved locally | + | |
| --- | --- | ||
| + | ===== 7. Compliance Notes ===== | ||
| - | ===== 3. Layer Interaction Summary ===== | + | * AOFS-compliant deployments **must implement all three layers** as defined. |
| - | + | | |
| - | | Layer | Primary Role | Connectivity Requirement | Authority | | + | * All push/pull, configuration changes, and operator actions **must be logged**. |
| - | |-------|-------------|-------------------------|----------| | + | * Offline operation **must not compromise irrigation or safety**. |
| - | | Field Controller | + | * Failure to respect authority boundaries **invalidates AOFS compliance**. |
| - | | Farm Controller | Local supervision & peer sync | Optional (for federation) | Supervisory | | + | |
| - | | HQ Controller | Global oversight & analytics | Required for federation | Supervisory | | + | |
| - | | Human Interface | Operator monitoring & configuration | Optional | Supervisory | | + | |
| --- | --- | ||
| - | ===== 4. Compliance Notes ===== | + | ===== 8. References |
| - | + | ||
| - | - Any AOFS-compliant deployment **must implement all four layers** as defined, though multiple roles may be co-located on the same hardware. | + | |
| - | - Federated operations **must preserve local authority**. | + | |
| - | - Failure to respect authority boundaries **invalidates AOFS compliance**. | + | |
| + | * [[architecture: | ||
| + | * [[architecture: | ||
| + | * [[architecture: | ||
| + | * [[hydraulics: | ||
| + | * [[electrical|Electrical & Control Interfaces]] | ||
| + | * [[sensors|Measuring, | ||