SmartSense proporciona un conjunto de puntos finales para recopilar datos de activos y sensores mediante programación. SmartSense organiza dispositivos, sensores y sus lecturas en unidades lógicas denominadas activos. Repasemos algunas definiciones a continuación.
Definiciones
Asset – An asset is a logical abstraction of something that is being monitored. A common example is a fridge or a freezer.
Sensor Reading – A sensor reading is a figure or amount of data that is based on input from a sensor, such as information related to temperature or humidity.
Sensor Point – A sensor point is a logical abstraction for what is being monitored. A fridge asset, for example, could have a temperature and a humidity sensor point.
Sensor points cannot be moved between assets and can only have one sensor associated with it at a time.
Sensor – A sensor is a device that measures physical occurrences such as the current temperature or humidity. At SmartSense, a sensor gets attached to a sensor point to link its data to an asset.
A sensor is also attached to a singular device, never more than one.
Example: A store has a fridge and an asset in SmartSense. The temperature and humidity in the fridge must be monitored, so the asset has two sensor points, one for temperature and one for humidity.
Inside the fridge is a device with a temperature and humidity sensor attached. At SmartSense, these sensors get linked with the asset's sensor points. If the Device in the fridge gets replaced with a new device and sensors, the new sensors would be associated with the same sensor points on the asset in SmartSense.
Querying the readings for the fridge's sensor points would show the readings from the first set of sensors for the times when they were attached to the sensor points, and the new sensors after being attached.
Device – Devices communicate data from the sensors to the SmartSense cloud, and a sensor must be connected to a device to properly measure a reading.
Tipos específicos de datos
La API de datos de SmartSense define los siguientes tipos:
Fechas
Parameters of type date should be sent to (and are sent from) the service as a combined date and time in ISO 8601 format. Time zone information must be included or the results of the API call are not defined.
Nota: Todas las fechas devueltas por el servicio están en UTC.
fecha de lectura
readingDate especifica el momento en que un sensor o dispositivo capturó una lectura, por ejemplo, un sensor de temperatura registró una temperatura de 32,45°F el viernes 15 de enero a las 3:17 pm, UTC.
processedDate
processedDate specifies the point in time when a reading was processed by SmartSense.
Example: An external temperature sensor, attached to a device, records a temperature of 32.45°F on Friday, January 15th at 3:17 pm, UTC. Due to an interruption in cellular service, the device is unable to send the reading to SmartSense for five minutes. Thus, the reading would have a readingDate of 3:17 pm, but a processedDate of 3:22 pm.
Applications using this API to capture all readings processed by SmartSense should use the processedAfterDate filter to request new readings since the last request.
lastActivityDate
lastActivityDate especifica la hora en que un dispositivo o sensor contactó por última vez con SmartSense. Si el dispositivo nunca ha contactado con SmartSense, este campo será nulo.
Números
DeviceId
El campo deviceId es un número de 20 dígitos que se convierte en una cadena y se transmite. Se convierte en una cadena para facilitar la interoperabilidad.
Valores de lectura de potencia
Un tipo de lectura de dispositivo de Alimentación indica el estado de la fuente de alimentación de un dispositivo. Los valores van de 0 a 10 para los dispositivos que sólo funcionan con batería (por ejemplo, el sensor inalámbrico Z-Point). Para dispositivos alimentados por CA con batería de reserva, los valores van de 16 a 26 cuando el dispositivo está enchufado y de 0 a 10 cuando no lo está. Un valor de 16 indica sólo alimentación de CA, mientras que un valor superior a 16 indicaría alimentación de CA más alguna batería de reserva.
Valores de lectura de la intensidad de la señal
Un tipo de lectura de dispositivo de Intensidad de señal es un estado normalizado de la señal inalámbrica de un dispositivo. Los valores oscilan entre 1 y 10.
IncidentSeverity
IncidentSeverity describe la gravedad de un incidente o alarma. La gravedad de un incidente es siempre igual a la gravedad más alta de cualquier alarma asociada al incidente. La gravedad de una alarma siempre es igual a la gravedad configurada en la alarma configurada que la creó. Este tipo tiene 5 valores:
1: Más bajo
2: Bajo
3: Medio
4: Alta
5: El más alto
IncidentStatus
IncidentStatus describe el estado de un incidente. Estos valores pueden ser actualizados por el sistema a medida que llegan nuevas lecturas que resuelven o reactivan alarmas o por los usuarios que interactúan con los incidentes en la interfaz de usuario. Este tipo tiene 4 valores:
0: Nuevo
1: Activo
2: En espera
99: Closed
The New status means the system has created the incident, but no user action has been taken. Active indicates a user has been assigned to the incident. On Hold is functionally the same as Active, with the addition that a user has selected to put the incident on hold in the UI. Closed means the incident is resolved and will no longer be used by the system; this means that new reading violations will result in new incidents being created.
AlarmStatus
AlarmStatus describe el estado de una alarma. Un incidente puede tener muchas alarmas, por lo que su estado se sigue por separado para cada alarma. Este tipo tiene 4 valores:
0: Cerrado
1: Abierto
2: Reconocido
3: Resuelto
El estado Cerrado significa que el sistema ya no realizará ninguna acción con la alarma. Nuevas violaciones de lectura darán lugar a nuevas alarmas. El estado Abierto significa que la alarma está activa. La lectura actual está fuera de rango y la alarma está disponible para la acción del usuario. Reconocida es lo mismo que Abierta, con el añadido de indicar que un usuario ha reconocido la alarma en la interfaz de usuario. Una alarma Resuelta significa que las lecturas han vuelto al rango.
ViolaciónOperador
ViolationOperator describe el operador relacional utilizado para comparar una lectura entrante con un umbral de alarma. Todos los incidentes y alarmas son creados por el sistema comparando las lecturas recogidas por los sensores con los umbrales de alarma configurados. Estos umbrales consisten en un valor y un operador de comparación, que también se rastrean en la instancia de alarma. Este tipo tiene 3 valores:
-1: Menos que
0: Igual a
1: Mayor que
Tipo de umbral
ThresholdType describe el tipo de lecturas para las que se establece o activa una alarma. Cada incidente sólo registrará alarmas para un tipo de lectura. Como ejemplo, considere un activo con sensores de temperatura y humedad que tiene dos alarmas configuradas: una para temperatura y otra para humedad. Si ambos sensores se salen del rango para sus respectivas alarmas configuradas, se crearán dos incidentes (uno por tipo de lectura). El tipo de lectura del que es responsable cada incidente se controla con esta enumeración ThresholdType. Los valores posibles para este tipo son:
1: Temperatura
2: Informe omitido
3: Humedad
4: Potencia
5: Velocidad del viento
6: Humedad del suelo
7: Inundación
8: Tensión
9: Presión
10: Presión Pascal
11: Humedad de las hojas
12: Precipitaciones
13: Porcentaje de CO2
14: Porcentaje de O2
15: Presión OLPHC
16: Contacto seco
17: Presión CentiPascal
18: Batería baja
20: Vigilancia Estelar Presión
21: Nivel Starwatch
23: Presión KiloPascal
24: Corriente MilliAmp
25: Corriente Amp
26: Carga
27: Nivel
28: Capacitancia PicoFarad
99: Validación
Enums
Los enums son tipos de variables que tienen un conjunto limitado de valores, y los campos que son enums se devuelven como cadenas en JSON. El valor de la cadena se limitará a los posibles valores enum definidos para el tipo. Todos los tipos enum tienen la posibilidad de ser nulos.
Tipo de lectura
Especifica el tipo de lectura.
Valores:
"Temperatura"
"Humedad"
"Poder"
"Intensidad de la señal"
Unidad
Especifica la unidad de una lectura.
Valores:
"F"
"C"
"%"
TipoDispositivo
Especifica el tipo de dispositivo.
Valores:
"Nodo"
"Repetidor"
"Pasarela"
Tipo de sensor
Especifica el tipo de sensor.
Valores:
"Temperatura"
"Humedad"
Lista de ID
Paginación de resultados
Results paging is a method of separating multiple search results into individual pages to make the information more comprehensive, to not overwhelm the service, and to mitigate time-out issues. Paging also helps limit responses so that the entire data set isn't pulled with each request. Many of the endpoints that return a list of data are subject to paging.
Paged responses include the following paging information:
Nombre | Tipo | Descripción |
totalCount | El número total de artículos encontrados para la solicitud. | |
pageSize | El número máximo de elementos que podrían devolverse en esta respuesta. | |
cuente | El número real de elementos que se han devuelto en esta respuesta. | |
númeroDePágina | El número de página actual. Este número es 1 indexado. |
If there is an additional page, a link to the next page is specified in the HTTP response header called next. This header may include default values for non-required GET parameters that were not specified in the original request, so this header is preferred over manually creating the URI for your next page to guarantee correct results.
The default pageSize can be overridden by setting a pageSize query parameter:
Nombre | Ubicación | Tipo | Requerido | Descripción |
pageSize | cadena de consulta | no | Establezca el tamaño de página deseado para los resultados. Por defecto es 50. El máximo es 1000. | |
númeroDePágina | cadena de consulta | no | Establezca el número de página deseado. Por defecto es 1. Como se ha indicado anteriormente, la recomendación es utilizar la siguiente cabecera de respuesta cuando se extraen varias páginas. |
Sincronización de lecturas
Los clientes que deseen tener su propia copia de las lecturas de los sensores o dispositivos pueden utilizar el parámetro de consulta processedAfterDate para mantenerse al día con SmartSense. Siempre que se devuelva la última "página" de resultados de una consulta que contenga un valor processedAfterDate, se incluirá una cabecera (nextProcessedAfterDate) en la respuesta especificando el valor processedAfterDate que se utilizará en la siguiente consulta.
Example: Client Alice wants all sensor readings since March 1st, 2021 (UTC), as well as any readings that arrive after that point. Alice will poll SmartSense every 15 minutes using the processedAfterDate query parameter.
To begin, Alice makes the following request:
GET /v1/data/asset/4146/sensorpoint/55689?processedAfterDate="2021-03-01T00:00:00.00Z"
The response from the server may contain several "pages" of data. Each "page" (except the last) will have a header in the response with a link to the next "page." The final "page" will contain a nextProcessedAfterDate header with a datetime value. Alice saves this value as X.
After retrieving all "pages," Alice now has a copy of all sensor readings from the account up to and including the datetime X.
After 15 minutes have passed, Alice queries SmartSense for readings and uses a new value for processedAfterDate: specifically, nextProcessedAfterDate value X from the last "page" of the previous request. SmartSense will respond with any new readings that have arrived since Alice’s last query.
Alice repeats this process every 15 minutes to stay up to date with SmartSense.
Interactive API Documentation
For detailed endpoint documentation and the ability to test API calls directly, visit our Swagger documentation:
The Swagger interface provides:
Complete endpoint specifications
Request and response schemas
Interactive API testing
Real-time examples