AMON Formato de datos para intercambio de información M2M

AMON es un formato de datos apropiado para la descripción del intercambio de datos de medición y monitorización de dispositivos que usa JSON.

Se puede usar gratuitamente y está licenciado vía http://creativecommons.org/licenses/by/2.0/uk/ que permite la copia, distribución, trabajos derivados y uso comercial.

El estándar AMON ha sido desarrollado por AMEE UK Limited con la asistencia de muchas otros empresas expertas en la toma de medidas y monitorización de dispositivos industriales.

Sin embargo, AMON no es el único estándar en el campo del intercambio de datos de medida y monitorización entre dispositivos, una alternativa es el Sensor Model Language (SensorML) de la OGC (Open GeoSpatial Consortium).

Las diferencias entre estos dos estándares son:

· El desarrollo de AMON es abierto; el de SensorML no sigue un modelo abierto, cualquier cambio del estándar debe ser validado por miembros técnicos del OGC

· El estándar de intercambio de datos AMON usa JSON en lugar de XML

· AMON es mucho más fácil de empezar a usarlo ya que su documentación es más sencilla (5 páginas frente a 180)

· AMON es más actual, la última actualización de SensorML se produjo en 2007 mientras que la última versión v3.1 es de 2012

· AMON es usado activamente en UK (Energy Saving Trust (http://www.energysavingtrust.org.uk/) y Technology Strategy Board (https://www.innovateuk.org/))

· AMON se centra puramente en el intercambio de datos de la forma más rápida y eficiente posible

· AMON es extensible mediante metadata y no tiene restricciones en que tipos de datos pueden ser representados

Aquí podemos ver el formato de Datos AMON al completo:

{

"devices": [

{

"deviceId": required string UUID,

"entityId": required string UUID,

"parentId": optional string UUID,

"meteringPointId": optional string UUID,

"description": optional string,

"privacy": required string, either "private" or "public",

"location": {

"name": optional string,

"latitude": optional latitude in degrees,

"longitude": optional longitude in degrees

},

"metadata": {

optional JSON object

},

"readings": [

{

"type": required string,

"unit": optional string,

"resolution": optional number,

"accuracy": optional number,

"period": required string, either "INSTANT", "CUMULATIVE" or "PULSE",

"min": optional number,

"max": optional number,

"correction": optional boolean,

"correctedUnit": optional string,

"correctionFactor": optional number,

"correctionFactorBreakdown": optional string

},

],

"measurements": [

{

"type": required string, must match a defined reading type,

"timestamp": required RFC 3339 string,

"value": number, boolean or string, required unless "error" (below) is present,

"error": string, required unless "value" (above) is present,

"aggregated": optional boolean

},

]

}

],

"meteringPoints": [

{

"meteringPointId": required string UUID,

"entityId": required string UUID,

"description": optional string,

"metadata": {

optional JSON object

}

}

],

"entities": [

{

"entityId": required string UUID,

"deviceIds": [ optional array of string UUIDs, empty array permitted ],

"meteringPointIds": [ optional array of string UUIDs, empty array permitted ]

}

]

}

Consiste de tres principales secciones:

devices: Representa a los dispositivos físicos o virtuales y sus datos (entre ellos su geolocalización)

meteringPoints: Se usa para representar puntos de medición separados de los datos de los dispositivos (ej: si el dispositivo falla)

entities: Representa entidades del mundo real o virtuales que podrían estar relacionadas con el dispositivo o los meteringPoints (propiedades, edificios, etc…)

Existen definidos muchos tipos de datos de lectura

Type Name

Default Unit JSON Type
absoluteHumidity g/Kg Number
barometricPressure mbar Number
co2 ppm Number
currentSignal mA Number
electricityAmps Amps Number
electricityConsumption kWh Number
electricityExport kWh Number
electricityFrequency Hz Number
electricityGeneration kWh Number
electricityImport kWh Number
electricityKiloVoltAmpHours kVArh Number
electricityKiloWatts kW Number
electricityVolts V Number
electricityVoltAmps VA Number
electricityVoltAmpsReactive VAr Number
flowRateAir m^3/h Number
flowRateLiquid Ls^-1 Number
gasConsumption m^3, ft^3, kWh Number
heatConsumption kWh Number
heatExport kWh Number
heatGeneration kWh Number
heatImport kWh Number
heatTransferCoefficient W/m^2.K Number
liquidFlowRate Litres/5min Number
oilConsumption m^3, ft^3, kWh Number
powerFactor Number (0-1)
pulseCount Number
relativeHumidity %RH Number
relativeHumidity wm-2 Number
solarRadiation W/m^2 Number
status Number (0/1)
temperatureAir C Number
temperatureAmbient C Number
temperatureFluid C Number
temperatureGround C Number
temperatureRadiant C Number
temperatureSurface C Number
thermalEnergy kWhth Number
time millisecs Number
voltageSignal mV Number
waterConsumption L Number
windDirection degrees Number
windSpeed ms^-1 Number

Un ejemplo JSON en formato AMON que muestra un dispositivo medidor de potencia eléctrica sería el siguiente

{

 "devices": [
    {
      "deviceId": "c1810810-0381-012d-25a8-0017f2cd3574",
      "entityId": "50af27e0-e61a-11e1-aff1-0800200c9a66",
      "description": "Example 2 Device",
      "meteringPointId": "c1759810-90f3-012e-0404-34159e211070",
      "readings": [
        {
          "type": "apparentPower",
          "unit": "kVAh",
          "accuracy": 0.01
        },
        {
          "type": "reactivePower",
          "unit": "kVArh",
          "accuracy": 0.2
        }
      ],
 "measurements": [
        {
          "type": "apparentPower",
          "timestamp": "2010-07-02T11:39:09Z",
          "value": 7.23
        },
        {
          "type": "reactivePower",
          "timestamp": "2010-07-02T11:44:09Z",
          "value": 6.8
        }
      ]
 }
 ],
 "meteringPoints": [
    {
      "meteringPointId": "c1759810-90f3-012e-0404-34159e211070",
      "description": "Example 2 Metering Point"
    }
  ]
}

Más información en http://amee.github.io/AMON/#goals

Respuestas

  1. […] SOFIA2 soporta el estándar AMON para la definición de […]

  2. […] SOFIA2 soporta el estándar AMON para la definición de […]

  3. […] Data Model using a Sofia2 Ontology. Indeed, Sofia2 supports the Ontology Definitions based on AMON model, that has many similarities with this […]

Replica a What is OGC SensorThings API and how fits Sofia2 | about Cancelar la respuesta