iotQi allows for many different IoT devices to connect to the LooUQ cloud and in-turn your systems.  This guide discusses the basic features found in all LooUQ Cloud device clients.



All LooUQ Cloud Device Clients Can Perform These 3 Activities

  1. Generate telemetry (data) samples at a specified interval or at event triggered times
  2. Generate alerts based on local device conditions (different workflow in the iotQi cloud)
  3. Respond to commands received from the LooUQ Cloud (commands may or may not return values)


A device can perform all of these activities or a subset, it is all up to you.  


Events

When your device performs data sampling and sends this information to the LooUQ Cloud, this is an event.  Some people will think of this as telemetry or sensor data. Events can be set to be periodic, running on a recurring timer; or based on interrupts, triggering when some physical condition has occurred. Events are usually a part of iotQi projects.  

When setting up events for periodic sampling, typically you will be limited sampling, at most, every 5 seconds.  Also, depending on your subscription there may be limits on the number of Events your device can source per day.  Events are processed in the LooUQ cloud on a buffered basis and may take a couple minutes to appear in your cloud data set. 


Alerts

Alerts are prioritized events.  As event, they could originate from a periodic data sampling cycle or be interrupt generated.  By prioritized, we mean that in the LooUQ Cloud, alerts follow a different path and are sent to the cloud's notifications processor as soon as they are received.  They will also be stored in your event data set, arriving at storage the same latency as events.

Alerts are metered based on your subscription, along with command responses (see below).  Alerts and command responses together are referred to as actions.  


Commands 

Commands provide a mechanism for you to "operate" your device remotely over the cloud. iotQi has a web API (REST) and a web-based Console application to help out here.  Commands may perform any task supported by your device's hardware.  Further, commands may (optionally) return a response value back to the cloud.


There are several built-in commands to iotQi that report back information about your device.  These are...

  • getdeviceid
  • getversioninfo
  • getnetworkinfo
  • getcommandinfo


You can implement your own commands by creating a method\function in your code and registering it with the iotQi device library.  




As you change your commands in your device code, iotQi cloud Web API functionality will be updated automatically.  


Creating Your Own Events, Alerts, and Commands

Since each device family (Arduino, ARM, Raspberry PI, .NET, and future environments) have differing code rules, detailed discussions for implementing these features are found in their respective guides.  


  • Getting Started with Arduino/ARM Devices
  • Getting Started with Raspberry PI (UWP) Devices
  • Getting Started with .NET Devices