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:27] – 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 14: | Line 14: | ||
| * [[architecture: | * [[architecture: | ||
| - | Each layer has a clearly defined role, authority, and interface. | ||
| All controller layers **expose a human interface appropriate to their authority and audience**, while **never bypassing Field Controller safety rules**. | All controller layers **expose a human interface appropriate to their authority and audience**, while **never bypassing Field Controller safety rules**. | ||
| --- | --- | ||
| - | ==== Field Controller Layer ==== | + | ===== 2. Authority & Data Flow Diagram ===== |
| - | See detailed page: [[architecture: | + | |
| - | **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. | + | |
| - | * Must provide an embedded UI for on-site operators to monitor and override **only non-critical functions**. | + | |
| - | **Examples of Field Controller | + | * **Field Controller: |
| + | * **Farm Controller: | ||
| + | * **HQ Controller: | ||
| --- | --- | ||
| - | ==== Farm Controller | + | ===== 3. Controller |
| - | See detailed page: [[architecture: | + | |
| - | **Purpose: | + | | Layer | Primary Role | Human Interface | Connectivity | Authority | |
| - | Supervisory | + | |-------|-------------|----------------|-------------|----------| |
| + | | Field Controller | Execute irrigation & safety | Embedded UI for monitoring / non-critical overrides | None (offline) | Authoritative locally | | ||
| + | | Farm Controller | Local supervision & federation | Full UI: monitoring, configuration | Optional (for federation) | Supervisory | ||
| + | | HQ Controller | Multi-farm oversight & analytics | Dashboards, reporting, config proposals | Required for federation | ||
| - | **Requirements (normative): | + | --- |
| - | * Must provide a full UI for field operators to monitor and configure the farm. | + | |
| - | * 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 actions. | + | |
| - | * Must support pull/push synchronization of configuration, | + | |
| - | * Must provide conflict resolution mechanisms for configurations (e.g., timestamp-based, | + | |
| - | * Must allow operators to trigger manual requests or schedule changes, **validated against Field Controller safety rules**. | + | |
| - | **Behavioral Rules:** | + | ===== 4. Federation / Sync Model ===== |
| - | * Offline operation: farm continues irrigation and monitoring normally if internet is unavailable. | + | |
| - | * Sync: data and configuration propagate when connectivity is restored. | + | |
| - | * Logging: all operator actions, sync events, and configuration changes must be logged. | + | |
| - | **Examples of Farm Controller | + | * **Push/ |
| + | * **Conflict Resolution: | ||
| + | * Timestamp precedence | ||
| + | * Operator approval for schedule/ | ||
| + | * Field Controller | ||
| + | * **Offline First:** | ||
| + | * Controllers continue autonomous operation if disconnected | ||
| + | * Logs and changes queue for synchronization once connectivity is restored | ||
| --- | --- | ||
| - | ==== HQ / Federated Controller Layer ==== | + | ===== 5. Human Interface Rules ===== |
| - | See detailed page: [[architecture: | + | |
| - | **Purpose:** | + | |
| - | Global oversight, analytics, and management of multiple farms. | + | * Field Controller: embedded status UI, safety alerts, non-critical operator overrides |
| - | + | * Farm Controller: full local UI for monitoring, configuration, and federation | |
| - | **Requirements (normative):** | + | * HQ Controller: multi-farm dashboards, analytics, authorized configuration |
| - | * Must receive telemetry and logs from multiple Farm Controllers. | + | * No interface |
| - | * Must provide reporting, dashboards, and aggregated analytics. | + | |
| - | * Must support configuration distribution to Farm Controllers when authorized. | + | |
| - | * Must **never override Field Controller | + | |
| - | * Must maintain full audit trails of all data exchanges and actions. | + | |
| - | * Must provide interfaces for managers to monitor multiple farms, analyze data, and submit | + | |
| - | + | ||
| - | **Behavioral Rules:** | + | |
| - | * HQ controller | + | |
| - | * Federation: HQ may push configuration updates or pull logs, but offline farms continue autonomous operation. | + | |
| --- | --- | ||
| - | ===== 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 | Human Interface | | + | * All push/pull, configuration |
| - | |-------|-------------|-------------------------|----------|----------------| | + | * 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 | Full UI for monitoring, configuration, | + | |
| - | | HQ Controller | Global oversight & analytics | Required for federation | Supervisory | Dashboards and reporting for managers; may submit authorized configuration updates | | + | |
| --- | --- | ||
| - | ===== 4. Compliance Notes ===== | + | ===== 8. References |
| - | - Any AOFS-compliant deployment | + | |
| - | - Federated | + | |
| - | - All human interface interactions | + | * [[architecture: |
| - | - Failure to respect authority boundaries | + | |
| + | | ||
| + | * [[sensors|Measuring, | ||