Skip to content

Implement Device Manager/Registry for Downstream Devices #73

@rodneyosodo

Description

@rodneyosodo

Overview

Implement a dynamic device registry similar to Aeolus that can manage 100+ downstream devices with persistent storage.

Description

The Aeolus Zephyr agent includes a comprehensive device manager that:

  • Maintains a registry of downstream devices (BLE, Zigbee/Thread, I2C, UART/Modbus)
  • Supports dynamic provisioning via API
  • Routes commands to the correct interface
  • Persists device registry to NVS

Requirements

  1. Device Registry

    • Store device metadata (ID, type, interface, config)
    • Support 100+ concurrent devices
    • Persistent storage (file-based for Linux)
    • CRUD operations via HTTP API
  2. Dynamic Provisioning

    • REST API for adding/removing devices
    • Webhook support for device lifecycle events
    • Device authentication/authorization
  3. Interface Routing

    • Route commands to specific device interfaces
    • Handle device responses
    • Support for multiple protocol adapters
  4. Storage

    • Persistent JSON file or SQLite database
    • Backup/restore functionality
    • Migration support

Reference

See Aeolus implementation:

  • src/device/device_manager.c
  • src/device/device_registry.c
  • docs/provisioning.md

Acceptance Criteria

  • Device can be added via API
  • Device can be queried by ID
  • Device can be removed
  • Registry persists across restarts
  • Commands can be routed to registered devices
  • API documentation included

Priority

High

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions