Telemetry, Edge Action, and Command from the Cloud

The diagram below shows a fairly basic Octave implementation. involving a customer asset containing a thermometer and LED. The asset is connected to an Octave edge device, though that edge device is not shown in the diagram. Instead, this diagram illustrates the flow of communications to and from the asset which has been enabled by the Octave edge device behind the scenes.

The thermometer and LED are represented in Octave as Resources, more specifically as Sensor and Output (Actuator) Resources respectively.

An Observation has been created to monitor the thermometer Resource and an Edge Action has been implemented with logic at the edge, to send Events about the thermometer Resource to the cloud over the edge device's cellular link. In this example, a Virtual Resource representing an alert threshold has been created, and is used by the Edge Action's logic to determine if an alert Event should be sent to the cloud. The Edge Action has also been configured to update the asset's LED (e.g., to provide a visual status).

The Events are contained with a data Stream and then processed with cloud-side logic via a Cloud Action. The Cloud Action in turn, can forward these Events to an external cloud service (denoted as Your Cloud in the diagram).

The external Cloud Service can invoke endpoints in Octave's REST API to send data to Octave. In this example, the endpoint sends data to the virtual alert Resource by targeting the device's :command Stream.

📘

Key Takeaways:

  • Events pushed to the Cloud from an Edge Action are routed to the device/:default Stream.
  • To update a device Resource from the Cloud, send a command targeting that Resource to the device/:command Stream.
  • To create an Edge-side variable that is not related to a physical resource, use Virtual Resources.
  • An Edge Action can accomplish multiple goals: read local Resources, write local Resources, process and send data to the cloud.