Gateway Connectivity Report
This recipe builds a connectivity health report across all gateways on your account. It combines the hwi-gateways endpoint for a paginated list with the gateway-info endpoint to pull signal strength, last check-in, firmware version, and whitelisted devices per Gateway. Use this for proactive monitoring, identifying Gateways that have gone silent, or validating a deployment before go-live.
The process for getting a Gateway connectivity report involves:
- Page through
GET /hwi-gateways/to collect all Gateway UUIDs on your account. - For each Gateway, call
GET /gateway-info/{gateway_uuid}/to retrieve detailed connectivity data.
The result is a ranked list of Gateways grouped by signal health.
Step 1 – Fetch All Gateways
Page through hwi-gateways to collect every Gateway UUID associated with your account. Set page_size to a value that works for your account size.
GET /clients/{CLIENT_DOMAIN}/hwi/hwi-gateways/?ordering=-last_measurement&page_size=100The result from this endpoint will be pagninated, with next and previous links in the root of the JSON schema.
{ "count": 0, "next": "http://example.com", "previous": "http://example.com", "results": [ { "gateway_uuid": "aabbcc001122", "last_signal_strength": 28, "last_measurement": "2025-10-14T09:22:00.000000Z", "shipped_on": "2025-09-01T00:00:00.000000Z", "assigned_on": "2025-08-15T00:00:00.000000Z" } ]}Useful Query Parameters
| Parameter | Description |
|---|---|
ordering | Sort by assigned_on, shipped_on, or last_measurement. Prefix with - for descending. |
last_measurement__isnull=true | Filter to Gateways that have never sent a measurement. |
shipped_on__isnull=false | Filter to Gateways that have been dropshipped. |
Step 2 – Get Detailed Gateway Info
For each gateway_uuid, call the gateway-info endpoint. The UUID must be passed with no hyphens.
GET /clients/{CLIENT_DOMAIN}/hwi/gateway-info/{gateway_uuid}/Example response:
{ "gateway_uuid": "aabbcc001122", "firmware_version": "2.170.38", "bootloader_version": "1.0.4", "provisioned": true, "last_signal_strength": 28, "last_checkin_time": "2025-10-14T09:22:00.000000Z", "assigned_on": "2025-08-15T00:00:00.000000Z", "shipped_on": "2025-09-01T00:00:00.000000Z", "whitelisted_devices": [ { "sensor_code": "10", "mac_address": "1a2b3c4d5e6f", "whitelist_status": "CO", "created": "2025-09-05T00:00:00.000000Z", "modified": "2025-09-05T00:00:00.000000Z" } ], "properties": []}Key Gateway Fields
| Field | Notes |
|---|---|
last_signal_strength | Integer between 0 and 30. |
last_checkin_time | Last time the Gateway connected to the Tenovi network. Null if never connected. |
provisioned | Boolean. If false, the Gateway has not completed provisioning. |
whitelisted_devices | Devices locked to this Gateway. whitelist_status is RE (Requested) or CO (Confirmed). |
Step 3 – Build the Report
With data from both endpoints, group gateways into buckets. A sample of what this could look like:
| Group | Criteria |
|---|---|
| Excellent | Signal strength >= 20 |
| Moderate | Signal strength 9-19 |
| Poor | Signal strength <= 8 |
| Offline | Last check-in time is null |
| Inactive | Last check-in time is more than X days |
You could also group and compare Gateway firmware versions. This is useful if you plan on introducing new Tenovi devices that weren’t available for order when the patient first received their kit and Gateway.
Common Issues
Gateway not found (404)
The Gatewaay is not yet associated with your account. It must be linked via a device activation or bulk order before gateway-info will return data.
last_checkin_time is null
The Gateway was assigned or shipped but has never connected. Check that the patient has plugged it in and that it reached a cellular signal.
provisioned: false
The Gateway has not completed provisioning. Contact Tenovi support if this persists after the Gateway has been powered on and connected.
Signal strength is 0 A value of 0 typically means the Gateway has not connected recently enough to report a current signal. Treat it the same as a poor signal.