Concept

Sylvia-IoT provides HTTP APIs to manage the following entities:

  • User Account:
    • Access to Sylvia-IoT's management interface is possible through user accounts.
    • Clients can obtain access tokens to access HTTP APIs.
  • Client:
    • Represents entities that access HTTP APIs.
    • Third parties can develop management features for Sylvia-IoT through HTTP APIs.
    • Users authorize clients to access resources using OAuth2.
  • Unit:
    • Each unit can have an owner and multiple members.
    • Units can manage their own devices, networks, and applications.
  • Device:
    • Represents IoT terminal devices, such as sensors, trackers, and more.
  • Application:
    • Analyzes device data and presents it based on requirements, such as a smart home control center.
  • Network:
    • Connects different network servers to receive and send device data based on communication requirements.
    • Common communication protocols include LoRa, WiFi, and TCP/IP.
    • Network adapters can be developed to integrate existing network servers (e.g., TTN, ChirpStack) with Sylvia-IoT.
  • Routing Rules:
    • Associate devices with applications.
    • Individual devices can be bound using network addresses or entire networks can be bound to specific applications.
    • Supports many-to-many relationships, allowing multiple devices to be bound to one application or vice versa.

Communication Protocols

Currently, Sylvia-IoT supports the following protocols for message transmission between applications and networks:

  • AMQP 0-9-1
  • MQTT 3.1.1

Any message queuing model with explicit names (excluding wildcards) can be supported, such as AMQP 1.0, Apache Kafka, NATS, etc. However, topic publish/subscribe, broadcast, and multicast modes are currently not supported.