Platform Documentation

Endpoints & Devices

Endpoints & Devices is where data from your hardware enters NEQTO.ai. An Endpoint holds the connection settings and credentials your hardware uses. A Device is one piece of equipment sending data. An Attribute is one measurement from that device, such as temperature, humidity, or battery. Stored device data can then be used in dashboards, alerts, analytics, and maps.

How these pieces fit: one Endpoint can receive data from many Devices, and one Device can report many Attributes. You create the Endpoint. NEQTO.ai can create the Devices and Attributes when it receives a valid payload with a stable device identifier and mappable readings. You can also create a Device manually before its data arrives.
Flow diagram: hardware or the built-in simulator sends JSON to a Device Endpoint over MQTT, HTTPS, or WSS. NEQTO.ai identifies the Device from the topic or payload and auto-maps its readings into Attributes. The data then feeds dashboards, alerts, analytics, and maps.
How data flows: Endpoint in, Device and Attributes out, then on to dashboards and alerts.

Data reaches NEQTO.ai in two ways. Most devices publish to a Device Endpoint, as shown above. A device can also be created from an Integration, which pulls in data from an external cloud service instead of receiving it from the device. Either way it becomes a Device with auto-mapped Attributes. Every device is labelled by its Source (Endpoint or Integration) so you can tell the two apart; see the Source column on the Devices list below.

Quick start

Use these steps to connect a device and confirm its first reading.

  • 1
    Open an application and go to Device Endpoints. Click Add Device Endpoint and pick a connectivity type: MQTT, HTTPS, or WSS.
  • 2
    Copy the credentials shown on the final step (Stream ID, host/URL, port, username, password, and the CA certificate). Use Download details to save them all, or copy each value with its own copy button.
  • 3
    Open How to connect a device and use the recommended neqtoai-std example or another supported JSON shape. No hardware yet? Create a Demo endpoint and use the built-in Simulator instead.
  • 4
    After NEQTO.ai processes the first valid message, the Device appears and mappable readings become Attributes. Open the device’s Device Data tab to confirm the stored values before using them in a dashboard or alert.

Device endpoints

An Endpoint holds one protocol and authentication configuration. Devices that publish through it are linked to it and appear in its details.

Device Endpoints list shown as a table inside an application. Columns: Name (with a demo tag where applicable), Description, Protocol, Account, Created by, Applications, and a Devices count showing connected device names. A search box sits above the table and each row has an actions menu.
The Device Endpoints list. Each row is one connection, and the Devices column shows what is publishing to it.

Connectivity types

You choose the type when you create the endpoint, and it cannot be changed afterward.

Type Use it for You receive
MQTT Most IoT devices and gateways. Persistent, low-overhead connection. Stream ID, broker URL, port, topic, username, password, and a CA certificate.
HTTPS Devices, scripts, or services that push data with an HTTP request. Stream ID, an ingestion URL, port, method (POST), a CA certificate, and (with Basic Authentication) a username and password. Max payload 1 MB per request.
WSS Apps and gateways that keep a live WebSocket open and stream frames. Stream ID, a secure WebSocket URL, port, a CA certificate, and (with Basic Authentication) a username and password.

Each type also has an Authentication Type. For MQTT the choices are “MQTT with TLS (Recommended)” (a security token over a TLS connection) or “MQTT with no TLS” (username and password). For HTTPS and WSS the choices are “Basic Authentication” (username and password) or “None”. The older fully unencrypted HTTP and WS variants have been retired, so only the secure HTTPS and WSS types are offered.

Create an endpoint

Click Add Device Endpoint. You first choose how to set it up: Create Device Endpoint (a new one), Create Demo Device Endpoint (for the Simulator), Use an existing Device Endpoint (shown only when you already have one), or Create Aruba Device Endpoint (the HPE Aruba integration). Choosing Create Device Endpoint opens the form below.

Create Device Endpoint form: a Device Endpoint Name field (required), then a card for each connectivity type (MQTT, HTTPS, WebSocket), each with radio buttons for its authentication type.
Step 1: name the endpoint and pick the connectivity and authentication type.
  • 1
    Enter a Device Endpoint Name (required, up to 100 characters). The name must be unique within the account. You can also add a description of up to 500 characters.
  • 2
    Pick the connectivity type (MQTT, HTTPS, or WebSocket) and, where there is more than one option, its authentication type. The connectivity type is fixed once created. To change it, you create a new endpoint.
  • 3
    If you have permission to manage applications, you can assign the endpoint to applications so the right teams can see it.

Endpoint access is permission-based. Viewing, creating, editing, and deleting endpoints are separate permissions at the account or application level, so an action may be hidden even when you can open the list.

The credentials summary after creating an endpoint: rows for Stream ID, host or URL, port, topic or method, username, a masked password with a copy button, and a CA certificate with copy, download, and expiry date. The exact rows depend on the connectivity and authentication type. A How to connect a device link and a Download details button sit at the bottom.
Step 2: copy or download the credentials before configuring your hardware.
Store credentials securely. The summary gives each value its own copy button, and the CA certificate has a separate download. Download details saves all of the connection details as a text file. The password is masked by default. If you still have permission, you can reopen View Details later to reveal or copy it and download the details again.

Sending data: payload guidance

NEQTO.ai accepts flexible JSON payloads and provides neqtoai-std as the recommended, most predictable envelope. Every endpoint has a built-in How to connect a device helper that shows this example tailored to your endpoint’s protocol, with supported alternatives, a field reference, and troubleshooting tips.

The How to connect a device helper panel, opened for an MQTT endpoint. A tip at the top explains that you configure the device with this endpoint's connection details and use the recommended example or another supported JSON shape. Below it, an MQTT topic options block gives the endpoint's own topic, notes that supported vendor topic shapes may be used instead with no setting changed, and lists the preconfigured topic formats and their limits. Under that is the recommended neqtoai-std payload example with a Copy button, followed by the start of the field reference table.
The in-product “How to connect a device” helper. The same content is documented below.
The envelope fields are recommended, not always required. payload_format selects the standard format directly; without it, NEQTO.ai detects the payload shape. If no timestamp field is present, NEQTO.ai uses the time the worker received the message. A timestamp that parses outside the accepted range is skipped, and malformed timestamps may also be rejected depending on how the device was identified. Omit the field if you want to use receive time. Device identity can come from a supported MQTT topic, a top-level or stable nested payload field, or the endpoint’s only linked active device. The data wrapper is optional: readings may be top-level or nested under an object wrapper.

MQTT topic options

For an MQTT endpoint, the topic shown in the endpoint details is the recommended NEQTO.ai topic. You can publish to that topic as before, or use one of the supported vendor-native topic shapes below. Use the same endpoint username and password or security token; you do not need to change the endpoint configuration.

The MQTT login identifies the endpoint. A vendor topic does not need to contain the endpoint ID. NEQTO.ai securely attributes the message to the endpoint whose credentials were used to connect. A client cannot select another endpoint by putting its ID in the topic.

Names in braces are placeholders: replace them with your values. For example, losant/{deviceId}/state could be losant/freezer-17/state. The trailing {...} shown for Azure means that an optional vendor suffix is accepted; do not publish the braces literally.

Topic style Accepted topic pattern Device identity and telemetry rules
NEQTO.ai default data/v1/{endpointId} or data/v1/{endpointId}/{...} Optional suffix levels are accepted but do not identify the device. Use a stable payload identifier, or, when exactly one active device is linked, the automatic fallback.
Losant losant/{deviceId}/state deviceId identifies the device. Only the state channel is ingested.
Azure IoT device devices/{deviceId}/messages/events/{...} deviceId identifies the device. Azure property-bag suffixes are accepted.
Azure IoT module devices/{deviceId}/modules/{moduleId}/messages/events/{...} deviceId identifies the device; moduleId is also extracted.
Tasmota tele/{deviceId}/SENSOR or tele/{deviceId}/STATE deviceId identifies the device. Other Tasmota channels are not ingested.
ChirpStack application/{applicationId}/device/{devEui}/event/up devEui identifies the device. Only up events are ingested.
The Things Stack v3/{applicationId}/devices/{deviceId}/up deviceId identifies the device.
ThingsBoard v1/devices/me/telemetry The topic has no device identifier. Use a stable payload identifier for multiple devices; a single linked device can use the automatic fallback.
Generic hierarchy sites/{siteId}/devices/{deviceId}/telemetry deviceId identifies the device; siteId is also extracted.

When a supported topic contains a device identifier, that value becomes the device’s External ID and takes precedence over device_id in the payload. Without a topic identifier, NEQTO.ai can use a stable top-level or nested payload identifier, or the endpoint’s only linked active device. Literal channel segments such as state, SENSOR, and up are case-sensitive.

MQTT topics may be at most 512 characters. A device identifier captured from a supported topic may be at most 128 characters. Control characters are rejected in topics and topic-derived identifiers; printable vendor punctuation and Unicode are accepted.

Topic and payload support are separate. The recommended payload guidance below works with every supported topic. AWS IoT topic names and other custom topic hierarchies are application-defined, so they require a platform administrator to configure an additional topic template before the broker will accept them.

Third-party names identify compatible topic formats only and do not imply affiliation with or endorsement by those third parties.

This neqtoai-std JSON is the recommended starting point. Equivalent supported JSON shapes are accepted. Reading keys are your own sensor names and may be top-level or nested under any object wrapper; you do not need to encode units into the names.

{
  "payload_format": "neqtoai-std",
  "timestamp": 1716806400000,
  "device_id": "AA:BB:CC:AA:BB:02",
  "data": {
    "temperature":     { "value": 22.4, "unit": "c" },
    "humidity":        { "value": 62.3, "unit": "%" },
    "battery_percent": { "value": 82,   "unit": "%" },
    "rssi_dbm":        { "value": -55,  "unit": "dBm" }
  }
}

Envelope fields

Field Status Type Notes
payload_format Recommended string A routing hint. "neqtoai-std" selects the standard format directly. When absent, the payload shape is detected automatically.
timestamp Recommended number, string, or object Unix epoch seconds or milliseconds, or ISO 8601. When absent, worker receive time is used. Out-of-range timestamps are skipped; malformed timestamps can also be rejected. The structured object below is supported with neqtoai-std.
device_id Recommended string or number A stable per-device id. This becomes the device’s External ID in the UI. On a supported MQTT topic containing a device identifier, the topic value takes precedence. When absent, NEQTO.ai can inspect a stable nested payload identifier. Automatic fallback is used only when the endpoint has one active device.
data Recommended object or key/value array Your sensor readings. The wrapper is optional: readings may be top-level or nested under any object wrapper. Recognized identifiers, timestamps, and metadata are excluded.

At the top level, envelope field names match case-insensitively after underscores and hyphens are removed. Common device-ID aliases include device, mac, serial, sn, dev_eui, imei, and external_id. Timestamp aliases include ts, time, datetime, reported_at, and epoch. Wrapper names are not special; nested objects and arrays are inspected for readings and stable identifiers.

Use an unambiguous device identifier. Strong nested identifiers such as device_id, device, uuid, mac_address, serial_number, dev_eui, imei, bdAddr, and hwId are recognized as identity metadata rather than readings. Generic nested fields such as id, sender, and destination are not assumed to identify a device. At the top level, sn, ts, time, index and sequence are always reserved as metadata; nested fields with those short names may be treated as sensor readings.
The rest of the How to connect a device helper. A field reference table lists payload_format, timestamp, device_id and data, each marked Recommended, with its accepted types and a note on what happens when it is absent. Beneath the table, a paragraph gives the accepted device-id and timestamp aliases and the case-insensitive matching rule. A Reading fields list then gives the value-and-unit form, the free-form unit rule, and the plain scalar form.
The same helper, scrolled down: the field reference, the accepted aliases, and the reading forms described below.

Reading fields

  • Sensor reading: { "value": <number | string | boolean>, "unit": "<unit>" }.
  • Unit: free-form text, up to 50 characters. Common units: °C, °F, %, hPa, V, A, W, dBm, m/s, kWh, lux, ppm. Use "state" for on/off or categorical values.
  • Scalar / categorical: a plain string, number, or boolean, for example "status": "normal". NEQTO.ai attempts to classify it and infer a measurement unit or "state". If it cannot find a valid mapping, the message reports that no readings could be extracted.
  • Naming: field names are your own labels. You do not need to put the unit in the name; NEQTO.ai classifies each reading automatically.
  • Mixed: you can mix the reading and scalar forms in the same payload.

Multiple devices through one endpoint

One endpoint can carry many devices. Give each message a stable, unique device identifier in a supported MQTT topic or payload (for example, device_id, serial, or a strong nested identifier). Without an identifier, automatic fallback only applies when exactly one active device is linked to the endpoint.

A top-level JSON array can carry a batch of device objects. NEQTO.ai processes each array item as a separate reading, so each item should contain or inherit an unambiguous device identity and valid measurement fields.

Structured timestamp (neqtoai-std only)

With payload_format set to "neqtoai-std", you can use this object instead of an epoch timestamp. The offset uses the ±HHMM convention. Use valid calendar and offset values; unsupported values may be rejected or resolve to a different date than intended.

"timestamp": {
  "year": "2026", "month": "05", "day": "26",
  "hour": "14", "minute": "30", "second": "00",
  "offset": "+0900"
}

How to deliver it

Protocol How to send
MQTT Publish the JSON message to your MQTT topic.
HTTPS Send the JSON as an HTTP POST to your endpoint URL.
WSS Send the JSON over your WebSocket connection as a text frame.

Troubleshooting

Symptom Likely cause
Connection or TLS handshake fails Wrong host or port, or connecting without TLS. Check the endpoint details on the credentials summary.
Authentication is rejected The username or password does not match, or the endpoint was deleted or its credentials were changed.
Connected, but no device appears Publishing to the wrong or unsupported topic or URL, using a non-telemetry channel, or the payload could not be parsed. On the default MQTT topic, the endpoint ID must match.
Device appears, but readings are missing No mappable sensor fields were found, the readings were empty or malformed, or the payload contained only identifiers, timestamps, and metadata.
Gateways: Some third-party gateways stream to NEQTO.ai without you setting up a payload. The HPE Aruba integration (the Create Aruba Device Endpoint option) is one: its devices send data to the endpoint automatically. For devices you configure yourself, neqtoai-std is the recommended starting point, while other supported JSON shapes are accepted.

Managing endpoints

Each row in the Device Endpoints table has an actions menu. Click the (three-dot) icon in the Actions column on the right of the row to open it. This menu contains the actions your permissions allow, including Edit and, for demo endpoints, Simulator.

The actions menu opened from the three-dot icon in the Actions column of a Device Endpoints row. The menu lists View Details, Simulator, Delete, and Edit.
The endpoint actions menu. Open it from the three-dot icon to reach View Details, Simulator, Edit, and Delete.
  • Search the list by endpoint name.
  • View Details re-opens the credentials summary and lists every device currently publishing to the endpoint.
  • Simulator opens the built-in Simulator (shown only for demo endpoints, inside an application, and only when you have the Simulator view and execute permissions). See below.
  • Edit changes only the name and description. Connection settings stay fixed.
  • Delete disables the endpoint and its credentials, stops its demo simulator if applicable, and removes the endpoint’s device and application links. It does not delete the Device records. A device linked through another source can remain usable, but a device that relied on this endpoint stops receiving through it. Deleted endpoints cannot be restored in the UI; create a new endpoint and update the hardware with its new credentials.

Real-time ingestion feedback

While an endpoint’s details or one of its linked device pages is open, notifications in the top-right show how new messages move through ingestion. They let you confirm a new connection or see why a message failed without refreshing the page.

The stages

A payload that ingests cleanly reports these stages as it moves through processing:

Notification What has happened
Message received. Deciphering the format. The message arrived, and NEQTO.ai matched it to this endpoint.
Deciphering the message format. NEQTO.ai is reading the payload and normalizing it.
Device recognized. Extracting readings. NEQTO.ai matched the message to a device and parsed its readings.
Reading stored successfully. The readings are saved. They now feed dashboards, alerts and analytics.
Four stacked notifications. From top to bottom they read: Reading stored successfully; Device recognized, extracting readings; Message received, deciphering the format; Deciphering the message format. The first two are green and the last two are grey.
The four notifications for a clean ingestion. Live updates may stack in a different order. Each one appears once per visit, not once per message.

Each stage announces itself once per visit. A device publishing every few seconds would otherwise fill the screen, so later messages do not repeat successful stages. Reopen the endpoint or device page to see a fresh set.

Message received. Deciphering the format. is specific to MQTT. Over HTTPS and WSS, feedback starts at Deciphering the message format, which means the same thing.

When a message is rejected

A rejected message produces a full-size error notification. Repeated failures with the same reason on the same endpoint are deduplicated, so a recurring problem does not produce a new notification for every message.

A red error notification reading: The message could not be read as JSON. Check the payload format.
A rejected payload says what went wrong, in terms you can act on.
Message What to do
No device id found. Add a device_id field to the payload, or include the id in the topic. Nothing in the message identified a device, and the endpoint has no single device to fall back on. Add a stable identifier, as described under Sending Data.
The message could not be read as JSON. Check the payload format. The payload is not valid JSON, or the MQTT topic it arrived on is not one this endpoint accepts. Check both against the endpoint’s How to connect a device helper.
The message was received but no readings could be extracted from it. Check the payload fields. The device was recognized, but no valid reading mapping was found. The payload may contain only identifiers, timestamps, and metadata, or its reading fields may be empty, malformed, or unclassifiable. Add or correct the measurement fields and resend.
A reading from device … was skipped because its timestamp is outside the accepted range (or … is more than N minutes in the future, … is too far in the past, … is not a valid date) The device’s clock is wrong, or its timestamp is in a format NEQTO.ai read differently than you intended. The future case is the common one and usually means an unsynchronized clock; the message names the device and the size of the window. Fix the clock, or leave the timestamp out and let arrival time be used.
This message shape failed N times and is paused for H hours. Fix the payload and it will retry. NEQTO.ai sets aside a payload shape that keeps failing identification, so one misconfigured device cannot occupy the pipeline. Correct the payload. The pause lifts on its own, and a corrected shape counts as a new one.
Data ingestion is paused because your plan is not active. Nothing is being stored for the account. Check Billing. An expired plan or a lapsed grace period stops ingestion.
Device limit reached for your plan; this device was not created. A new device tried to register and could not. Remove devices you no longer need, or move to a plan with a higher device count.
The system is briefly overloaded and dropped a message. It will catch up shortly. A burst filled the intake queue and this message was dropped. It is not stored or retried; later messages can still be processed. If this happens repeatedly, reduce or stagger the devices’ publish rate.
A reading was received but could not be saved due to a temporary storage error. It was not stored. The write failed, and this reading is not retried automatically. A later message may succeed. Contact support if the error continues.
These notifications are live, not a log. They describe messages arriving while you watch, and once dismissed they are gone. There is no history to go back to. For what actually landed, use the device’s Device Data tab.

Devices

A Device represents one piece of equipment. NEQTO.ai can create it from the first identified payload, or you can create it manually to register hardware before it begins sending data.

Devices list as a table. The Device Name column shows a green Wi-Fi icon for connected devices and a red icon for disconnected ones. Other columns include Device Endpoints, a Source badge reading Endpoint or Integration, External ID, Tags, Profiles, Attributes, Vendor, Model, Account, Applications, Notes, Created and Last connected. Above the table are a search box, a Tags filter, a Columns control, and an Enabled/Disabled toggle.
The Devices list. Green means connected, and the Last connected column tells you when data last arrived.

The list view

  • Connectivity shows next to each device name: green Wi-Fi when connected, red when not.
  • Source shows how each device entered NEQTO.ai: an Endpoint badge for devices that publish to a Device Endpoint, or an Integration badge (with the integration’s name beside it) for devices pulled in from an external service through an Integration. This column is shown by default.
  • Search by name, and filter by tag from either the toolbar Tags filter or the Tags column header.
  • Switch between Enabled and Disabled devices with the toggle. Disabled devices are ones you have soft-deleted.
  • Sort by most columns, including Last connected to surface quiet devices.
  • Choose your columns with the Columns control. Several (External ID, Vendor, Model, Account, Notes, Profiles, and Systems in application scope) are hidden by default, and your choice is remembered per application.
  • Profiles shows how each device’s data is parsed: EnOcean (with its EEP), BLE, or STD. This column is hidden by default.
  • Dashboards opens Related dashboards for that device, listing every dashboard with a widget showing it and how many widgets on each. Check it before you change or remove a device. The same view is on the row’s actions menu. Device list and alert list widgets do not count as showing a device; the Dashboards page covers the rest.

Add a device manually

Select Create a Device above the Devices list if you have create permission. In the form, External ID, Device Name, Vendor, Model, and at least one Tag are required. You can also enter firmware, firmware version, gateway, notes, and an image, or use Scan QR Code to fill available details. Device names are limited to 100 characters, and External IDs to 255.

Use the same External ID when the hardware starts publishing. A manually created device has no Attributes or Device Data until NEQTO.ai receives and maps readings for that identity. External IDs are unique within the account.

Device Edit page

Click a device row, or choose View Details or Edit from its actions menu, to open Device Edit. You can review the device on this page and, with edit permission, change its settings. It has these tabs:

Tab What’s there
General Information Editable metadata: device name, vendor, model, firmware, tags, notes, and image. External ID is read-only. EnOcean devices also show an editable EEP selector (you pick the code from a dropdown).
Attributes The auto-detected measurements for this device. See below.
Device Data The live and recent payload values arriving from the device.
Connectivity Monitoring Shown only inside an application: the device’s offline-timeout and connectivity-alert settings. See the Alerts page.
Anomaly Detection Settings Shown only inside an application: per-sensor anomaly detection for this device. See the Alerts page.
The Device Edit screen on its General Information tab. Five tabs run down the left: General Information, Attributes, Device Data, Connectivity Monitoring, and Anomaly Detection Settings. The middle column holds a Device Image drop area and, beneath it, the device's endpoint and its detected attributes. The right column holds editable fields for Device Name, Vendor, Model, Firmware Version, Tags and Notes, with External ID greyed out as read-only. Cancel, Save Changes, and Delete sit in the header.
With edit permission, you can change the General Information fields except External ID.
The Device Edit screen on its Device Data tab. A Latest reading card gives the timestamp of the most recent reading and then each attribute with its current value and unit: Temperature in degrees Celsius, Humidity and Battery as percentages. Below it a Trend of the device panel plots those same three attributes over time as coloured lines, with a legend naming each one.
Device Data shows the latest stored reading and a live trend for its Attributes.

How connectivity status is decided

This is not a live ping. A device counts as connected while data keeps arriving. If nothing is received within its Offline Timeout, it is marked offline. You set the timeout in minutes on the device’s Connectivity Monitoring tab (inside an application); the smallest value you can enter is 10 minutes and the largest is 24 hours. A device that reports less often than its timeout will read as offline between reports, so match the timeout to how often the device actually sends.

The same tab lets you turn connectivity alerts on or off and choose in-app, email, SMS, and payload-push behavior. SMS requires a phone number on the recipient’s profile and SMS opt-in. These controls are read-only without device edit permission.

Connectivity changes update the Devices list and the device page while those screens are open; you do not need to refresh them.

Searching for a device

The device pickers on alerts, widgets and maps search as you type. An empty result and a search that could not run are two different things, and they say so. Search failed. Please Retry. means the lookup never completed, which is not evidence that the device is missing. Retry it before you conclude anything about the device.

Organizing devices

  • Tags are key:value labels (for example floor:3 or site:warehouse-A) you can filter the whole list by. See the Tags section for managing them.
  • Vendor and Model are device metadata you can show as columns and sort by; use Tags when you want to filter or group devices.
  • Add to application from a device’s actions menu (on the main Devices list) to control which teams see it.

Disabling, restoring, and deleting

Disable is reversible; Permanently Delete is not. Disabling an active device moves it to the Disabled list and keeps its External ID reserved. Switch the list toggle to Disabled to find it. From there, choose Enable to restore it, or Permanently Delete to remove it and release its External ID. Permanent deletion is available only after the device is disabled.

Enabling a device rechecks the account’s device limit and whether the same device name is now in use on one of its linked endpoints. If either check fails, the device remains disabled until you resolve the conflict.

When an External ID is already in use

A device’s External ID is unique across your account, so creating a second device on an identifier that is already taken is refused. You meet this most often when creating a device from an integration’s sample, or through the API.

A red error notification reading: A device with this identifier already exists for this account.
The identifier is held by a device you can already see. Find it by showing the External ID column on the Devices list.

A disabled device can cause a less obvious collision. Disabling keeps the External ID reserved, but disabled devices are hidden from the default list. The error names the disabled device and gives both options: enable that device, or permanently delete it to release the identifier.

A red error notification reading: The disabled device "Rooftop Weather" still uses this identifier. Enable it, or delete it permanently, to reuse the identifier.
A disabled device still holds its identifier. Switch the Devices list to Disabled to find the one named here.

Attributes

An Attribute is one mapped measurement from a device, such as temperature, humidity, battery, or occupancy. Attributes supply the named values used by widgets, alerts, and analytics.

Attributes are auto-mapped. When a device’s payload arrives, NEQTO.ai reads the available fields recursively and creates an Attribute for each reading it finds, recording the exact path to that value. A data wrapper is not required. You do not create or delete Attributes manually; they follow valid mappings from the data. A new payload structure may require classification before its fields can be mapped. Later messages with the same mapped structure reuse those mappings.
The Device Edit screen on its Attributes tab, listing the auto-detected measurements in a table. A heading reads Attributes with the count, beside a Live indicator and a refresh button. The columns are Kind, Attribute Name, Display Name, Unit, and an Actions menu with an Edit option on each row. The Kind column shows a thermometer beside the temperature row, a droplet beside humidity and a battery beside battery. Each row has a readable Display Name, such as Temperature, Humidity, or Battery, beside its raw attribute name.
Auto-detected Attributes. Icons reflect the kind of measurement; display names and units are yours to refine.

What you can edit

This screen does not change the detected JSON path or raw Attribute Name. To change how an Attribute is presented, open its actions menu and choose Edit:

  • Display Name: a friendly label (required, up to 255 characters), for example rename t1 to “Supply air temp”.
  • Units: the unit shown with the value (up to 50 characters), for example °C, %, or hPa.

The underlying Attribute Name is fixed and shown read-only on the edit form.

Display Name and Units are account-scoped: a change applies everywhere that attribute appears across your account, for every user (the raw unit sent in the payload stays as the fixed mapping key; only the display unit shown in the UI changes). Permission to edit Attributes can be granted at the application level as well as the account level.

Edit attribute form with a read-only Attribute Name field, an editable Display Name field, and an editable Units field, plus Cancel and Save Changes buttons.
Editing an Attribute: display name and units only.
Supported value types: NEQTO.ai accepts standard JSON values: number, string, boolean, null, array, and object. Nested objects and arrays are inspected for candidate reading fields. If the message produces no valid mapping, no final reading is stored; the live ingestion feedback reports that no readings could be extracted. Correct the payload or provide an explicit value and unit, then send it again.

Location fields do not turn the Maps feature into a geographic map. NEQTO.ai Maps use image overlays with manually placed pins; see the Maps documentation for setup.

Demo endpoints and the simulator

A Demo endpoint lets you generate data without hardware. Use its Simulator to test payload mapping, dashboards, alerts, and anomaly detection.

Requirements: the Simulator works only with demo device endpoints, lives inside an application, and requires the Simulator view and Simulator execute permissions. You can reach it two ways: from a demo endpoint’s Simulator row action, or from the Simulator item in the application sidebar below Devices. Creating a new demo endpoint also requires permission to create Device Endpoints in that application.
Sidebar shortcut: select Simulator in the application sidebar to open a picker with two tabs: Use existing (jump straight to one of your demo endpoints) and Create new (name a demo endpoint and open its Simulator in one step). The Create new tab is hidden without endpoint create permission. After you visit a Simulator, the sidebar entry also expands to a short list: a Browse all / Create… item that reopens the same picker, followed by your three most recently visited demo endpoints in that application as quick links.
The application sidebar with its Simulator item below Devices, and the Simulator endpoint picker open beside it. The picker is headed Simulator with the line Pick a demo endpoint to simulate, or create a new one. It has Use existing and Create new tabs, a Demo endpoints list with one endpoint in it, and Cancel and Open Simulator buttons.
The sidebar Simulator entry and its endpoint picker. Use an existing demo endpoint or create and open a new one.
Simulator screen for a demo endpoint. A Start/Stop Gateway control sits at the top, then an Add Device panel and a Send Raw Payload panel. Each simulated device is a card with Start, Pause, Resume, Stop and delete controls, an editable interval, a value-ranges control, and a recent-activity log.
The Simulator publishes template-based payloads through the selected demo endpoint.
  • 1
    Create a demo device endpoint from within an application (Device Endpoints, Add Device Endpoint, Create Demo Device Endpoint).
  • 2
    Open the endpoint’s Simulator action. Select Start Gateway to connect its custom-device gateway to the endpoint.
  • 3
    Select Add Device, choose a Device Template, enter a unique Device Name for this endpoint, and set Interval (s). A device added while the gateway is running starts immediately. If you add it while the gateway is stopped, Start Gateway starts it with the other devices.
  • 4
    Confirm that the simulated device links to the main Devices list and that its Attributes appear. The status beside the device changes from waiting, to renaming, to linked when that process completes.

Many templates use time-of-day curves rather than uniform random values. Supported temperature and humidity fields rise and fall across the day, and the people-counter template produces more activity during business hours. Other fields use their template’s ranges and behavior rules.

The default demo device is separate from the gateway controls. Creating a demo endpoint starts an always-on [SIM] Demo Multi-sensor that publishes temperature, humidity, and battery readings. Start Gateway and Stop Gateway control only the custom simulated devices you add on this page, not that default device.
  • Device controls: start, pause, resume, stop, or delete each custom simulated device, and change its publish interval.
  • Edit default ranges: change numeric minimums, maximums, units, and generation behavior, or change the allowed choices for text fields. You can reset fields to the template defaults.
  • Quick Fill Presets: fill values for conditions such as a temperature spike, high humidity, open contact, current spike, or people-count burst, then send them on demand.
  • Custom fields: add numeric or text fields. A field can be sent once or set to auto-publish on every device tick after it has a valid value.
  • Send Raw Payload: validate, format, and send a specific JSON object through the demo endpoint. Replace the sample timestamp of 0 with a current valid timestamp, or remove it to use receive time; otherwise ingestion rejects it as too old.

The Simulator header shows the device cap and minimum interval enforced for your current plan. The current plan limits for custom devices are:

Plan Custom devices per gateway Minimum interval
Trial 3 10 seconds
Monthly 10 5 seconds
Annual 25 5 seconds

For a custom plan or if the displayed values differ, use the live cap and interval shown in the Simulator header.

Limits and operational details

These limits affect endpoint configuration, ingestion, and connectivity monitoring. Plan-specific device and payload allowances are shown in Billing; use the live values shown for your account.

Limit Value
HTTPS payload size 1 MB per request
HTTPS request rate Limited by client IP and endpoint. The service default is 100 requests per 15 minutes, but deployments can override it. Read the RateLimit-* response headers for the active window and remaining requests.
MQTT topic length 512 characters maximum
MQTT topic-derived device identifier 128 characters maximum; control characters are not accepted
Connectivity timeout 10 min minimum, 24 hr maximum
Endpoint name and description 100 characters for the name; 500 characters for the description
  • Keep device identity stable. Use a supported topic identifier or payload field such as device_id. If the chosen identifier changes, NEQTO.ai treats the hardware as a new device.
  • neqtoai-std is recommended, not required. It selects the most predictable path directly; payloads without payload_format are detected and normalized automatically.
  • Endpoint type is permanent. Decide MQTT, HTTPS, or WSS up front.
  • Quiet devices look offline. Match each device’s connectivity timeout to how often it actually reports.
  • Keep payload structures consistent. Reusing the same field paths and value forms lets later messages reuse existing Attribute mappings. A changed structure may require new fields to be classified.
  • MQTT ingestion monitors for stalled broker delivery. If the worker remains connected but stops receiving messages, it restarts its broker session automatically. This requires no device configuration change. Delivery of messages sent during the interruption still depends on the device’s MQTT QoS and session settings.