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, and analytics.

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, and analytics.
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. The same goes for its authentication type.

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.
WebSocket Secure (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)” (username and password over an encrypted TLS connection, with a CA certificate) or “MQTT with no TLS” (username and password, unencrypted). For HTTPS and WSS the choices are “Basic Authentication” (username and password) or “None”. The older HTTP and WS variants have been retired.

Ways to add an endpoint

Add Device Endpoint first asks how you want to set the endpoint up. Every choice in the wizard, here and on the form that follows, has a ? that opens a short explanation of when it applies.

The Choose a Device Endpoint dialog with an Assisted Setup button at the top right and four tiles: Use an existing Device Endpoint, Create Device Endpoint, Create Demo Device Endpoint with a DEMO ribbon, and Create Aruba Device Endpoint with the HPE Aruba Networking logo. Each tile has a question-mark icon in its corner. A Cancel button sits below.
Each way in has its own explanation behind the ?.
Choice When it applies
Use an existing Device Endpoint The equipment speaks the same protocol as something already connected, so it reuses that endpoint’s credentials. Shown only when you already have an endpoint.
Create Device Endpoint Equipment that is not sending data to the platform yet.
Create Demo Device Endpoint Your hardware is not ready. A built-in Simulator feeds the endpoint instead, and nothing you build on it is wasted — real equipment can be connected later.
Create Aruba Device Endpoint Your equipment is managed in Aruba Central. Signing in binds the endpoint to one Aruba group, and the devices in it report without per-device setup.

Create an endpoint

Choosing Create Device Endpoint opens the form below.

The Create Device Endpoint form with an Assisted Setup button at the top right. The Device Endpoint Name field reads HVAC and Lighting Controllers. A blue note warns that the connection type is fixed once the endpoint is created. Below it are cards for MQTT, HTTPS and WebSocket, each with a question-mark icon. MQTT is selected and shows two options, MQTT with TLS (Recommended), which is chosen, and MQTT with no TLS, each with its own question-mark icon. Back, Cancel and Next buttons sit at the bottom.
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.
The same form with the MQTT card's question-mark icon opened. A popover titled MQTT describes it as a lightweight publish and subscribe protocol for equipment that reports continuously, and recommends choosing it unless your equipment cannot.
Open a ? to read when that choice is the right one.

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 summary after creating an MQTT endpoint named HVAC and Lighting Controllers, headed The device endpoint has been created. An MQTT connection details label sits beside an Assisted Setup button. Rows for Stream ID, Broker URL, Port, Topic, Username and a masked Password each have a Copy button, and the CA certificate row shows its expiry date with Copy and Download. Back, Add another Endpoint, Add a device and Finish buttons 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 always stays masked on screen, but its copy button and Download details give you the real value. If you still have permission, you can reopen View Details later to copy it or download the details again.

Assisted Setup

Every step of the endpoint wizard carries an Assisted Setup button that asks the assistant about the step you are on. The question is written and sent for you, and the answer arrives in the assistant panel beside the wizard. The button appears if you have permission to use the assistant. See Ask AI for what the assistant can do elsewhere in NEQTO.ai.

Your credentials are never part of the question. Assisted Setup sends the name of the step and a fixed list of the choices you made on it, such as the endpoint name and the connection type. Your connection details are not among them — passwords and certificates stay on the form.

Sending data: payload guidance

NEQTO.ai accepts flexible JSON payloads and provides neqtoai-std as the recommended, most predictable envelope. The endpoint wizard’s How to connect a device helper 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. Timestamps and time zones covers the accepted forms, the range, and why to send UTC. 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; 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 in UTC. 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. See Timestamps and time zones.
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"
}

Timestamps and time zones

The timestamp field is the time a reading was measured. NEQTO.ai stores the reading at that time, and charts plot it there. Send it in UTC. Unix epoch time is the safest choice because it carries no time zone at all. An ISO 8601 string that ends in Z works as well.

What you send Example How NEQTO.ai reads it
Unix epoch seconds 1716806400 Recommended. A number under ten billion is read as seconds.
Unix epoch milliseconds 1716806400000 Recommended. A larger number is read as milliseconds. Both examples are 27 May 2024, 10:40 UTC.
ISO 8601 in UTC "2024-05-27T10:40:00Z" Read exactly as written.
ISO 8601 with an offset "2024-05-27T19:40:00+09:00" Converted to UTC with the offset you give. The structured object above works the same way.
ISO 8601 with no offset "2024-05-27T10:40:00" Read as UTC, whatever time zone the device meant. See the warning below.
No timestamp Field left out The time NEQTO.ai received the message.

Epoch values also work as numeric strings, such as "1716806400". Microsecond and nanosecond values are not supported, and NEQTO.ai skips readings that use them.

If the device has no reliable clock, leave the field out. NEQTO.ai then uses the time it received the message, which is accurate to within network delay. Readings that a device holds while offline and sends later all get the time they arrive, not the time they were measured.

Timestamps must fall between 1 January 1970 UTC and 24 hours ahead of NEQTO.ai’s clock. Out-of-range readings are skipped and reported in real-time ingestion feedback. Other valid readings in the message are still stored.

Include a UTC offset when sending local time. NEQTO.ai reads timestamps without an offset as UTC.
  • In New York, a timestamp without an offset is 4 or 5 hours early. Daylight saving time also creates one-hour gaps or overlaps in local timestamps; a fixed -05:00 offset is wrong during daylight saving time.
  • In Tokyo, omitting the offset places readings 9 hours in the future. They fall within the 24-hour limit, so NEQTO.ai accepts them without warning.

Set the device clock to UTC, or send Unix epoch time. If you send local time, use the UTC offset that applied when the reading was measured.

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 for demo endpoints inside an Application. It appears for Account owners, users with full access to every Application in the Account, and members with both View simulator and Run simulator operations in that Application. See Built-in Simulator for its controls.
  • 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 of the same kind for the same device are deduplicated, so a recurring problem does not raise a new notification for every message. A second device failing the same way gets its own.

A failure stays until you dismiss it. The progress notifications above clear after a few seconds; a failure you have to act on remains on screen. A mapping failure also clears once the device sends a message whose readings map again. Overload and temporary-storage messages expire on their own.
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 Sending data.
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.
Device … sent a message, but none of its mapped fields were found in it. — followed by Expected fields and Received fields lists The same failure as the row above, on a message NEQTO.ai could attribute to a device — usually a firmware or payload change that renamed the reading fields. The expected and received field lists tell you which names moved. They are left out only when there is nothing to compare, such as a device with no mapped fields yet.
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 means the timestamp is more than 24 hours ahead, usually from a clock set to the wrong date or a microsecond epoch value. The past case means a date before 1970. The message names the device. Fix the clock, or leave the timestamp out and let arrival time be used. See Timestamps and time zones.
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. An expired plan or a lapsed grace period stops ingestion. Contact support to reactivate the account.
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 limit on the Billing tab; see Administration. If your account has no Billing tab, contact support to raise the limit.
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.
A red error notification reading: Device NT-RTU-ROOF-07 sent a message, but none of its mapped fields were found in it. Expected fields: data.humidity.value, data.battery.value, data.temperature.value. Received fields: payload_format, timestamp, device_id, data, data.maintenance_note, data.ticket_ref. Check the device's data field mappings, or the payload format if the field names changed.
A mapping failure names the device and lists the fields it expected and the fields it received, so you can see which names changed.
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.
  • Open alerts show as a small red count between the connectivity icon and the name, in an application’s Devices list when you can view alerts. It counts the device’s alert events that are still New, In Progress or Pending in that application, reads 99+ above 99, and is absent when nothing is open. Click it to open Alert History in a new tab, filtered to that device and to those three statuses. The account-level list has no count, because Alert History belongs to an application.
  • 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.
An application's Devices list with a red outline around an open alert count of 8 beside a connected device. Two disconnected devices show counts of 1; another connected device has no badge.
The red count is the device’s open alert events. A device with nothing open shows none.

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.

When the account already holds as many devices as its plan allows, the device is not created and Device Limit Reached says You have reached the maximum number of devices allowed. Remove devices you no longer need, or move to a plan with a higher device limit on the Billing tab; see Administration.

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 Per-sensor anomaly detection for this device, from the account-level Devices list or inside an application. Warm-up progress and the sigma setting appear in both. The anomaly alert switches appear only inside an application, because alerts belong to one. 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. 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 and widgets 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.

Disabling leaves the device’s alerts alone. Permanent deletion does not:

  • Threshold alerts lose every trigger and unlock condition that named the device, and the device leaves their device lists. The alerts themselves stay. One that still has conditions on other devices keeps running on those. One left with no trigger condition shows a Device unassigned badge on the Threshold Alerts list until someone assigns an active device. Any approved payload push whose trigger conditions change needs approval again, even if the alert still has conditions on other devices. Its Action reads Config changed, and it cannot send payloads until you approve and enable it again.
  • Connectivity and anomaly alerts covering the device are deleted.
  • Alert History stops showing the device’s events once it is disabled, and they do not come back after permanent deletion.
  • The device also leaves its applications, Systems, tags and widget series. The widgets themselves stay.

To replace a faulty device, update its alert conditions and restore any affected payload pushes before permanently deleting it:

  • 1
    Register the new device and add it to every application that uses the old one.
  • 2
    Open Threshold Alerts in each of those applications, open each alert that uses the old device, switch its trigger and unlock conditions to the new device, then save it.
  • 3
    Open Actions in each application. Reapprove affected pushes that were previously approved, and re-enable those that were previously enabled.
  • 4
    Return to the Disabled list and permanently delete the old device.

Changing a condition’s device removes any calculation on it, so add those again for the new device. The Alerts page covers the badge.

Enabling a device rechecks whether the same device name is now in use on one of its linked endpoints, and the account’s device limit if its plan has one. 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.

Demo endpoints and the simulator

A Demo endpoint lets you generate data without hardware. Its built-in Simulator publishes sample Device readings through the endpoint, so you can check payload mapping and build dashboards and alerts before connecting equipment.

Open the Simulator from a demo endpoint’s Simulator row action, or from Simulator in the application sidebar. Built-in Simulator covers adding simulated Devices, creating them with AI, and every Simulator control.

Limits and operational details

These limits affect endpoint configuration, ingestion, and connectivity monitoring. Your plan also sets a monthly payload allowance.

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
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.