Overview
A clear view of your sensor network.
Device readings
Latest values · individual report timesGateway connections
Add sites and gateways, then connect your devices. Use API access to give clients permission to read their data.
Connections show site ownership, not measured Zigbee routing. LQI is reported link quality; battery percentage is a reported value, not a remaining-life estimate.
Uses the chosen local-time range, or the last 24 hours. Empty intervals stay missing; no interpolation. Cumulative meter summaries are not consumption totals.
When a device omits a timestamp, observation time is the logging computer’s receipt time. Initial Home Assistant snapshots retain their original report times.
Alarm conditions
Configured rules
Recent transitions
Commands carry an expiry time. Offline gateways respond when they reconnect; expired commands are not executed.
New destinations start paused. Store the one-time signing secret in the receiver and verify each signature before accepting events. Automatic retries last up to 24 hours. Receivers must deduplicate event IDs; manual replay sends the same event again.
Delivery queue
Recent attempts
Issue a client key for one tenant, then use it from the client's server. Gateway ingest credentials and MQTT certificates have separate permissions.
OpenAPI specificationAuthentication
Authorization: Bearer YOUR_CLIENT_KEY
Read-only keys can access inventory, readings and alarms. Keys can be revoked immediately through API access. Create a replacement key before revoking the old one when rotating.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/inventory | Tenant sites, gateways and sensors |
| GET | /api/v1/topology | One site with its gateways, devices and channels |
| GET | /api/v1/diagnostics | Battery, signal and measurements with individual report times |
| GET | /api/v1/readings | History; UTC from/to, cursor pagination, limit up to 500, site/gateway/sensor filters |
| GET | /api/v1/channels | Stable measurement IDs, units and reporting metadata |
| GET | /api/v1/channels/latest | Batch channel_ids, up to 100 |
| GET | /api/v1/channels/aggregates | Raw min/max/average/count and coverage; maximum 31 days |
| GET | /api/v1/readings/latest | Latest event per sensor |
| GET | /api/v1/alarms | Configured rules, alarm states and recent transitions |
| GET | /api/v1/alarm-events | Durable transition feed; poll next_cursor for new events |
| GET | /api/v1/alarms/{id} | One condition, scoped to the credential tenant |
| POST | /api/v1/ingest | Gateway-bound credential only; acknowledgements follow commit |
Development boundaries
Public HTTPS termination, OAuth, energy reset/consumption calculations, offline alarms, bulk provisioning and AI processing are not enabled yet. This portal uses local operator access and development storage. MQTT mutual TLS supports only typed gateway status requests at this stage.
Display timezone
Choose how dates and times appear throughout the portal. Your preference is saved to your operator account.
Site timezones
Each site has its own timezone for local operating schedules and future calendar-day reports. Configure it using Edit site in Sites & hardware. Changing your display timezone does not change site settings or recorded timestamps.
Devices, gateway timestamps, databases and APIs use UTC. CSV exports use UTC and identify it in the column headings. Current interval summaries are fixed elapsed-time buckets, not site calendar days.
Operator activity across all workspaces. Resource identifiers are retained for traceability.
