✨ Improvements

Webhook Latest Event Object
The "content" field has been removed from the "mostRecentEvents" object returned from requests to webhooks-related endpoints. We identified that the field did not offer any valuable information, while it was also causing unnecessary data transfer. The latest event object now only includes the following fields:

{
  "hookId": "string",
  "correlationId": "string",
  "url": "string",
  "createdAt": "string",
  "completedAt": "string",
  "updatedAt": "string",
  "statusCode": 0,
}

🐛 Fixes

Battery History Before Provided Time Range

When using the GET /devices/{serialNumber}/battery endpoint with both query parameters start and end provided, the response could include battery history before the provided time range. This has now been fixed.

The issue was present only when using the start and end parameters together and with relatively low-time ranges (e.g., 10 hours). It was a fallback mechanism to ensure that the response always includes the latest battery status. The fallback mechanism has now been removed. You can increase the time range or use the latest battery endpoint to fetch the latest battery status.

💥 Breaking change

As a part of improving and introducing a major update on our Webhook service, we've updated the payload format for hub-meta-data-feed events. The main change is that the value of the "data" key is now an array instead of an object. The reason for this change is to;

  1. Improve consistency between the event types, as all other events follow this format
  2. Allow more data to be sent in one Webhook, to reduce the amount of events you receive.

Here, is the updated the payload posted from the new webhook system.

{
  "id": "cca4e4c8-da9d-4e82-98e0-d997adff5f8a",
  "type": "airthings-webhook-cloudevent-hub-meta-data-feed",
  "source": "https://dashboard.airthings.com/integrations/webhooks/3ae27258-314e-41ae-98ca-ae1702eea68d?version=v2",
  "dataContentType": "application/json",
  "labels": {},
  "data": [
    {
      "serialNumber": "2820006349",
      "recorded": "2023-07-05T13:09:43",
      "lastSeenDevices": [
        "2969013284",
        "3110004513",
        "2920016285",
        "2930117404"
      ],
      "devices": {
        "2930117404": {
          "lastSeen": 1688562583,
          "rssi": -46,
          "type": "wavePlus"
        },
        "3110004513": {
          "lastSeen": 1688562583,
          "rssi": -51,
          "type": "spaceCo2Mini"
        },
        "2969013284": {
          "lastSeen": 1688562583,
          "rssi": -81,
          "type": "viewPlusBusiness"
        },
        "2920016285": {
          "lastSeen": 1688562583,
          "rssi": -76,
          "type": "waveMini"
        }
      },
      "connectionType": "cellular"
    }
  ],
  "time": "2023-07-05T13:09:43.673535",
  "specVersion": "0.2"
}

📝 Documentation

We have updated the documentation of Webhook Event Types with the latest payload change (see above) regarding Hub Metadata feed.

✨ Improvements

We migrated the Airly feed to the new webhook system. Besides existing measurement system changes, the payload looks the same as before:

{
  "id": "00000000-0000-0000-0000-0000000000",
  "type": "airthings-webhook-cloudevent-airly-sample-feed",
  "source": "https://dashboard.airthings.com/integrations/webhooks/00000000-0000-0000-0000-0000000000?version=v2",
  "dataContentType": "application/json",
  "labels": {},
  "data": [
    {
      "serialNumber": "ARL0000000",
      "recorded": "2023-11-30T10:00:00Z",
      "outdoorHumidity": 73,
      "outdoorPm10": 28,
      "outdoorPm1": 13,
      "outdoorPm25": 22,
      "outdoorPressure": 1002.8,
      "outdoorTemp": -2.5,
      "ratings": {
        "outdoorPm25": "FAIR",
        "outdoorPm1": "FAIR",
        "outdoorPm10": "FAIR",
        "outdoorPressure": "GOOD"
      },
      "sensorUnits": {
        "outdoorPm25": "mgpc",
        "outdoorPm1": "mgpc",
        "outdoorPm10": "mgpc",
        "outdoorHumidity": "pct",
        "outdoorTemp": "c",
        "outdoorPressure": "hpa"
      }
    }
  ],
  "time": "2023-11-30T10:00:00.0Z",
  "specVersion": "0.2"
}

🐛 Fixes

  • Airly sample feed now respects unit preferences in the webhook settings.

📝 Documentation

We have updated the documentation of Webhook Event Types with the latest payload
change (see above) regarding mold feed.

🚀 Feature release

We added "ventilation rate" samples to the latest-samples endpoints:

... and new endpoints for historical samples:

Now, there are two new properties in the response:

  • airflow - cubic meters per hour (m³/h)
  • airExchangeRate - air changes per hour (ACH)

The availability of the virtual sensors will depend on your device type, and if the feature is enabled for the device in
the Dashboard. airflow is only available for devices where room size information has been entered.

✨ Improvements

We migrated the mold feed to the new webhook system. Besides existing measurement system changes, the payload looks the same as before:

{
  "id": "00000000-0000-0000-0000-0000000000",
  "type": "airthings-webhook-cloudevent-mold-sample-feed",
  "source": "https://dashboard.airthings.com/integrations/webhooks/00000000-0000-0000-0000-0000000000?version=v2",
  "dataContentType": "application/json",
  "labels": {},
  "data": [
    {
      "serialNumber": "0000000000",
      "recorded": "2023-10-02T20:00:00Z",
      "mold": 1,
      "ratings": {
        "mold": "GOOD"
      },
      "sensorUnits": {
        "mold": "riskIndex"
      }
    }
  ],
  "time": "2023-10-02T20:00:00.0Z",
  "specVersion": "0.2"
}

📝 Documentation

We have updated the documentation of Webhook Event Types with the latest payload change (see above) regarding mold feed.

✨ Improvements

Lux is now available in the payload. The devices that have light sensor and collect this are currently Space CO2 Mini and Space Nano.

✨ Improvements

We have improved the fields below:

  • pressure is now converted from Pascal to HectoPascal.
  • light is now presented in percentages.