In this release

The last step of the actuation flow is finally added and sensor status is estimated from telemetry patterns.

New functionality

Actuation endpoint

All phases of the actuation flow from request to response from the edge device and sensor observing the outcome, is collated in the response of the new endpoint /actuation/{id}.

{
  “actuationId”: “<< ID of the actuation>>”,
  “actuationRequest”: {
    “agent”: “<< user or application making the request>>”,
    “targetActuator”: “a4019775-cee8-45a1-b8ca-ae08c88f4bf8”,
    “targetInterface”: “d00b5a67-03dd-4526-bbc7-2b52ba81b012”,
    “payload”: “18”,
   “requestTime”: “2021-06-09T07:00:00.50000Z”
  },
  “actuationRequestResponse”: {
   “accepted”: true
  },
  “actuationCommand”: {
   “actuatorId”: “a4019775-cee8-45a1-b8ca-ae08c88f4bf8”,
   “value”: “18”
  },
  “actuationCommandResponse”: {
   “responseCode”: 200
  },
  “actuationObservedBy”: “8c9871af-47e4-4eb2-a2ee-b5f43ca728ff”
}

When requesting an actuation (PUT /actuator/{actuator ID}/actuation), the response includes the resulting actuation ID. Since an actuation is an asynchronous process, following up the result of the actuation is a separate request to /actuation/{actuation ID}.

New endpoints:

GET /actuation/{id}
GET /json/actuation/{id}

Sensor Edge Status

With this feature, ProptechOS builds a statistical model of each sensor to estimate how often it is expected to send observations. Based on that model and the time since the last message, the status of the sensor is determined.

  • OK: the time since the last observation is within the expected range, reasonably close to the typical interval.
  • WARNING: the time since the last observation is significantly larger than the expected range.
    (there is a 1 in 44 probability that normal behaviour would be categorized as warning.)
  • ERROR: the time since the last observation is so much larger than the expected range that it is unlikely to occur if the sensor is functioning normally.
    (there is a 1 in 32 000 probability that normal behaviour would be categorized as error.)
  • WARM_UP: Awaiting sufficient observations to build the model for the sensor.

New endpoints:
GET /sensor/{id}/edgestatus
GET /json/sensor/{id}/edgestatus
POST /sensors/edgestatus
POST /json/sensors/edgestatus

Local coordinates for Assets

Asset location can now be determined via local coordinates (meters from the local origo of the building).
“isLocatedAtLocalCoordinates”: “22;4.40;0”
Previously, the location could only be inferred from the building component it was located in.

Updated endpoints:
GET /asset/
GET /asset/{id}/
POST /asset/{id}/
PUT /asset/{id}/
POST /assets/
PUT /assets/

ProptechOS Trace ID

Logging includes a trace ID, that is consistent across all involved components in ProptechOS. So when a warning or error is generated, it can quickly be found and investigated. Users will see the ProptechOS trace ID in a custom header p8s-trace-id in all API responses:

cache-control: no-cache,no-store,max-age=0,must-revalidate
content-encoding: gzip
content-type: application/json
date: Wed,09 Jun 2021 10:04:15 GMT
expires: 0
p8s-trace-id: 8cdba1357a704492
pragma: no-cache
server: nginx/1.17.7
strict-transport-security: max-age=15724800; includeSubDomains
vary: Accept-Encoding,Origin,Access-Control-Request-Method,Access-Control-Request-Headers
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-property-owner:
x-xss-protection: 1; mode=block

Breaking changes

None.

Fixes and minor updated

New QuantityKind: Irradiance

http://qudt.org/vocab/quantitykind/Irradiance