Skip to content

Device connectivity

Autoconnecto accepts telemetry through native device transports and tenant integration webhooks. Every path normalizes into the same telemetry pipeline (dashboards, alarms, retention).

In the web app

TaskWhere
Copy token, HTTP/MQTT/WS examplesDevices → device → Check connectivity
LoRa DevEUISame modal → LoRa / webhook tab (or optional field on Create device)
Webhook URLs + secretTenant Settings → LoRa & integration webhooks

On create device, integration.external_id is set automatically to the device ID (for generic webhooks). LoRa networks still need DevEUI because they send hardware id, not your access token.

Native device transports

HTTP

http
POST https://api.autoconnecto.in/api/v1/{deviceToken}/telemetry
Content-Type: application/json

{"temperature": 24.5, "humidity": 61}
  • CBOR: Content-Type: application/cbor with the same object shape.
  • Batch: POST .../telemetry/batch with { "items": [ { "telemetry": {...}, "ts": optional } ] } (max 100 items).

SDK: TelemetryBatch_http in autoconnecto-sdk.

MQTT

Topics (token in path):

  • devices/{deviceToken}/telemetry
  • v1/devices/{deviceToken}/telemetry (ThingsBoard-style)

MQTT username = device access token.

SDK: BasicTelemetry_mqtt, SwitchControl_mqtt, etc.

WebSocket (device protocol)

Not the dashboard Socket.IO client. Connect to the device WebSocket port shown in Check connectivity, then:

  1. {"type":"auth","deviceToken":"..."}
  2. {"type":"telemetry","data":{"temperature":24.5}}

Gateway devices

  1. Create a device with Mark as Gateway Device.
  2. Create child devices with Parent gateway set.
  3. Publish with the gateway token and body:
json
{
  "childDeviceId": "child-device-uuid",
  "telemetry": { "temperature": 24.5 }
}

SDK: GatewayRelay_http. See backend GATEWAY_DEVICES.md for rules (one parent level, child must exist).

Integration webhooks

Auth: X-Webhook-Secret or Authorization: Bearer {secret}.

Generate per-tenant secret in Tenant Settings. Optional global env INTEGRATION_WEBHOOK_SECRET for ops.

AdapterEndpoint
GenericPOST /api/v1/integrations/generic/telemetry?tenantId={uuid}
ChirpStackPOST /api/v1/integrations/chirpstack/telemetry?tenantId={uuid}
TTN v3POST /api/v1/integrations/ttn/telemetry?tenantId={uuid}

Generic webhook

Identify the device with token or device id:

json
{
  "deviceToken": "access-token",
  "temperature": 22.5,
  "humidity": 60
}
json
{
  "externalDeviceId": "device-uuid",
  "telemetry": { "temperature": 22.5 }
}

Reserved top-level keys (not counted as telemetry): deviceToken, externalDeviceId, tenantId, childDeviceId, ts, timestamp.

Gateway relay on generic webhook: include childDeviceId with the gateway token or mapped gateway id.

LoRaWAN

Map DevEUI on the Autoconnecto device (integration.lorawan.dev_eui). ChirpStack and TTN adapters read their native uplink JSON (deviceInfo.devEui, end_device_ids.dev_eui).

Script samples: SDK examples/integrations/.

Catalog

http
GET /api/v1/connectivity/catalog

Returns transport metadata and endpoint templates.

SDK & examples

Operations

  • Run migration 0013_tenant_integration_secrets.sql before using tenant webhook secrets.
  • Set PUBLIC_API_BASE_URL on the API host so generated webhook URLs match your environment.

support@autoconnecto.in · founder@autoconnecto.in · +91 92121 00555 · app.autoconnecto.in