Skip to main content

Connection and Solution Deployment

Overview​

Intended roles: This chapter is primarily intended for tenant administrators. The section "Access the All-in-One Device via Mobile App" applies to users who have registered an account on the all-in-one device.

The ThingsEye platform supports three types of device access: LoRaWAN devices connected directly through a gateway, MQTT devices connected directly, and pulling external broker data through an MQTT subscriber. This chapter covers LoRaWAN device and gateway onboarding, importing and installing prebuilt solutions, configuring public network access and MQTT Broker subscriptions. Users with registered accounts can also access the all-in-one device through the mobile App.

Important Notes

ItemDescription
Public Tunnel ServicePaid feature. Contact the ThingsEye support team to enable it.
Uninstalling SolutionsIrreversible operation. Confirm that business data flows will not be affected before performing it.
MQTT Broker SubscriptionAccepts only JSON format data. Customers must prepare their own independent MQTT Broker service.

1. Quick Registration of LoRaWAN Devices and Gateways​

Procedure​

Step 1: Download Decoder File

Visit the GitHub repository dragino-end-node-decoder, find and download the decoder for the corresponding sensor. If you have any questions, contact technical support.

Note: The decoder must use ES5 syntax

Decoders downloaded from vendor websites are not necessarily ES5 (many use const, arrow functions, etc.). After the script is uploaded, it may appear successful, but it fails silently at runtime, and telemetry contains only raw hexadecimal data.

After obtaining the script, first search for the three keywords const, let, and =>. If present, rewrite them into ES5 syntax (only var and function can be used).

For the complete rewrite reference table, ready-to-use decoder example, and debugging methods, see Appendix, Section 1.

Download decoder file

Step 2: Go to JavaScript Library Management Page

In the left sidebar, expand "Resources", then click "JavaScript Library" to enter the library list page.

Click the plus (+) icon in the upper right corner to add a new decoder file.

Go to JavaScript Library Management Page

Step 3: Add Decoder File

In the add dialog, select "Mode" as "Module", and fill in the relevant information (name, description, etc.).

If the downloaded file is a .js file, click "Upload JavaScript from File" to import it quickly. For other file types, manually copy and paste the content into the code area.

Add decoder file

Step 4: Create Device Profile

This step applies only to adding LoRaWAN devices. If you are adding a gateway, skip to Step 6.

In the left sidebar, expand "Configuration Templates", then click "Device Profiles" to enter the list page.

Click the plus (+) in the upper right corner, and select "Create New Device Profile" to open the creation dialog.

Go to Device Profiles list

In the "Device Profile Details" section, fill in the required basic fields (name is required), then click "Next: Transport Configuration".

Click Transport Configuration

Select "Transport Type" as "LoRaWAN", and fill in the corresponding parameters.

In the "Decoder" field, you can optionally select the decoder file uploaded in Step 3 (not required). If not configured, the raw data reported by the device will not be parsed.

Region Parameters (Frequency Band)

Must be consistent with the gateway and device. The all-in-one device opens 10 frequency bands, each corresponding to an independent UDP port:

Frequency BandUDP Port
EU8681700
US9151701 (sub-band 1)
CN4701702 (channel-plan 10)
AS9231703
AU9151704 (sub-band 1)
KR9201705
IN8651706
RU8641707
EU4331708
CN7791709
  • Mainland China uses CN470
  • US915 / AU915 always use sub-band 1. The gateway must also be set to the same sub-band, otherwise packets will not be received.
  • Once the frequency band is changed, joined devices must rejoin.

Device Type (Class):

TypeDescriptionPower ConsumptionDownlink Timing
Class AOpens two short receive windows after uplinkLowestOnly after device uplink
Class CContinuous receptionHighestAnytime

Class B is not supported. Battery-powered sensors use A; mains-powered actuators (valves, switches) use C.

Downlinks for Class A devices are queued. Commands are sent only when the device next uplinks. If the device reports once an hour, a downlink may wait up to an hour. This is a limitation of the LoRaWAN protocol itself.

RX1 Delay:

How long to wait after the device uplink ends before opening the first receive window. Default is 1 second. Unless explicitly required by the device vendor, do not change it—changing it may cause downlinks not to be received.

ADR (Adaptive Data Rate):

Enabled by default. Allows the network server to automatically adjust the device's data rate and transmit power based on signal quality. For mobile devices (vehicle-mounted, handheld), it is recommended to disable it.

To configure alarm rules, click "Next: Alarm Rules"; otherwise click "Add" to finish.

Select LoRaWAN

Step 5: Add LoRaWAN Device

In the left sidebar, expand "Entities", then click "Devices" to enter the device list page.

Click the plus (+) in the upper right corner, and select "Add New Device" to open the creation dialog.

Add LoRaWAN device

Fill in the basic device information (name, tags, etc.), and under "Device Profile", select the LoRaWAN profile created in Step 4.

It is recommended to name devices by location or purpose (e.g., "Building 1 Water Meter", "Cold Storage Temperature-A3"), not by DevEUI—the latter makes it impossible to tell which device it is in the list.

Click "Next: Credentials", and on the credentials page fill in Device EUI, AppKey, and AppEUI (available on the device packaging).

DevEUI is globally unique. The same DevEUI cannot appear twice in the system. If a duplicate is reported, first check whether it has already been created.

Select LoRaWAN profile Fill in credentials

After confirming the information, click "Add" to finish adding the device.

Step 6: Add LoRaWAN Gateway

In the left sidebar, expand "Entities", then click "Gateways" to enter the gateway list page.

Click the plus (+) in the upper right corner, and select "Add New Gateway" to open the creation dialog.

Go to gateway list page

Fill in the following information:

FieldDescriptionRequired
Gateway EUIUnique identifier of the gatewayYes
TagsCustom management tagsNo
Assigned to CustomerCustomer assignmentNo
DescriptionAdditional descriptionNo

A gateway can also (optionally) have a payload decoder added. If the gateway needs to parse its own status or downlink data, upload a decoder as in Step 3 and select it in the gateway configuration.

After filling in, click "Next: Credentials" to confirm the Gateway EUI, then click "Add" to finish.

Fill in gateway information

Gateway Hardware Configuration Tip

After adding the gateway in the all-in-one device UI, you must also configure the packet forwarder in the gateway's own management UI, pointing to the all-in-one device's UDP port. For detailed parameters and common configuration errors, see Appendix, Section 2.


2. Solution Templates​

Procedure​

Step 1: Go to Solution Center

In the left main menu, find and click "Solutions" to enter the solution template management page. This page displays all available solution templates under the current tenant, mainly divided into two lists:

  • Available: Templates uploaded but not yet installed.
  • Installed: Templates applied and in effect.

Solution Center page

Step 2: Import Solution Template

In the upper right corner of the Solutions page, click "Upload Folder", and in the dialog that appears, select the prepared solution template folder. The system will automatically parse the configuration files in the folder and add the template to the "Available" list.

Import solution template

Step 3: Apply (Install) Solution Template

Find the target solution in the template list, and click the "Install Now" button below the solution card.

The system displays a confirmation dialog listing the specific components to be created, helping you understand what the solution contains. The system also prompts: If components with the same name already exist, they will be skipped and will not be recreated or overwritten.

Confirm installation

After confirmation, click "Install" to complete installation. After installation, the solution will appear in the "Installed" list.

Users can use the solution directly, or make appropriate adjustments to configurations based on actual business needs (e.g., modify alarm thresholds, adjust dashboard layout, add new devices, etc.).

Note: Solution templates are provided by the ThingsEye official team or customization team to help users quickly complete scenario-based deployment. Different templates may contain different device types, asset models, and rule chains. Choose the appropriate template according to the actual scenario.

Step 4: (Optional) Uninstall Solution

If the installed solution is no longer needed, click the "Uninstall" button below the solution card.

Uninstallation deletes entities created by the template in a fixed order: dashboards → devices → device_profiles → customers → rule_chains. This order is the reverse of the import order because of reference relationships: devices reference device profiles, and device profiles reference rule chains. Referencing parties must be deleted before referenced parties.

System behavior during uninstallation:

  • Entities created by the template are deleted: Entities recorded as created in the ledger are deleted during uninstallation.
  • Entities with the same name that existed before import are skipped: Entities recorded as updated in the ledger are intentionally not deleted by the system, to avoid accidentally deleting your original data.
  • Independently created devices are not affected: If the user manually created new devices after applying the solution and referenced the solution's configurations, these new devices and referenced configurations will not be deleted during uninstallation.

After uninstallation, the system returns a result such as "Deleted N entities, skipped M, failed K."

Uninstall solution

Important: Uninstalling a solution is an irreversible operation and will delete the solution's related configurations and associations. Reinstalling can only redeploy the solution and cannot automatically restore configurations, device bindings, data flows, or historical data from before uninstallation. Before performing it, confirm that no active business data flows depend on the solution's configurations. If you are unsure whether existing devices are affected, contact the tenant administrator or ThingsEye technical support for confirmation.


3. Configure Public Network Access​

Procedure​

Step 1: Go to Public Tunnel Management

In the left sidebar, click "Public Tunnel Management" to enter the page.

Public Tunnel Management

By default, the public service is "Disabled".

Note: Each edge instance's public URL is unique. The URL in the screenshot is for reference only.

Step 2: Enable Public Service

This is a paid feature. To enable it, contact the ThingsEye support team.

Important Notes​

ItemDescription
Paid featureThis is a value-added service. Contact ThingsEye for pricing and activation method.
URL uniquenessEach edge instance has a unique public URL and cannot be shared.
SecurityAfter enabling public access, it is recommended to use the platform's built-in authentication and encryption mechanisms to ensure communication security.

4. Configure MQTT Broker Subscription​

Note: The ThingsEye platform supports not only MQTT but also NB-IoT and LTE-M (CB) cellular devices. Customers must prepare the corresponding protocol access services themselves.

NB-IoT and LTE-M

Prerequisites​

  • The customer already has an independent MQTT Broker service.
  • The ThingsEye platform accepts only JSON format data.

Procedure​

Step 1: Navigate

In the left sidebar, click "MQTT Subscriber".

MQTT Subscriber

Step 2: Add Subscription

Click "Add Subscription", and fill in the fields on the configuration page as shown and according to actual needs.

Add Subscription-1 Add Subscription-2 Add Subscription-3

Key Field Descriptions​

Connection

FieldDescription
Broker URLRequired, format tcp://host:port or ssl://host:port
QoSOptional, 0 / 1 / 2, default 0. TTN only supports QoS 0
Authentication MethodThree types: anonymous, username/password, TLS certificate (mutual TLS). ChirpStack uses certificate authentication; TTN uses username/password
Client IDOptional; if left blank, automatically generated
Subscription TopicRequired, supports + and # wildcards
Keep Alive Interval (seconds)Optional, default 60
Clean SessionUnchecking requires a fixed Client ID; the Broker caches messages when disconnected

Spaces before/after topic: When copying a topic from the TTN or ChirpStack console, leading spaces are often included. In the MQTT protocol, spaces are legal characters and look normal, but the broker returns SUBACK=128 (subscription rejected), manifesting as "connected but not receiving any messages."

JSON Parsing

FieldDescription
Device Name PathRequired, path to the device name in JSON, e.g., deviceName
Telemetry Data PathNode from which to get telemetry. Leave blank to use the entire JSON
Timestamp PathField from which to get the timestamp. Leave blank to use server time. 10-digit number automatically ×1000; 13-digit used directly

Device

FieldDescription
Auto-create DevicesAfter checked, automatically create a device when an unknown device name is received
Device ProfileWhich profile to use for automatically created devices
Device TagsTags for automatically created devices
Maximum Payload (bytes)Default 65536; discarded if exceeded

Downlink

FieldDescription
Downlink TopicLeave blank to receive only. Supports variable {deviceName}
Downlink fPort1..223
Downlink Message FormatTTN / ChirpStack v4 / Custom Template. Silent failure on format error, no error prompt
Custom Downlink TemplateAvailable variables: {deviceName} {fPort} {payloadHex} {payloadBase64} {confirmed}
Require Device ConfirmationAfter checked, the platform waits for device ACK and resends

Do not add quotes around numbers and booleans—this is the most common mistake.

❌ Wrong: {"port":"{fPort}", "ack":"{confirmed}"}
→ {"port":"2", "ack":"false"}

✅ Correct: {"port":{fPort}, "ack":{confirmed}}
→ {"port":2, "ack":false}

The three string variables (deviceName, payloadHex, payloadBase64) must be quoted; otherwise the generated content is not valid JSON. Template replacement is pure string replacement and does not perform JSON escaping—quotes or backslashes in the device name will break the JSON.

Certificate Authentication Notes

  • The private key must be in PKCS#8 format: The first line of the PEM file must be -----BEGIN PRIVATE KEY-----. If you have PKCS#1 (the first line is -----BEGIN RSA PRIVATE KEY-----), the system will clearly report an error and tell you the conversion command: openssl pkcs8 -topk8 -nocrypt -in old.key -out new.key
  • The three PEM contents must be pasted directly into the text boxes, not uploaded as files.
  • Encrypted private keys must have the private key password filled in.
  • The three files generated by ChirpStack are shown only once; be sure to save them on the spot.

Step 3: Save

Click "Save" to finish.

save


5. Access the All-in-One Device via Mobile App​

Prerequisites:

  • An account has been registered in the all-in-one device.
  • The phone has the thingseye.io App installed.
  • The phone can access the full access URL of the all-in-one device, e.g., http://192.168.1.100:8080.
  • The phone and the all-in-one device are network-connected: The phone and the all-in-one device must be on the same LAN, or the all-in-one device must have the public Tunnel enabled (see Section 3).

Procedure:

Step 1. Download the App

Search for and download thingseye.io in the App Store or Google Play.

Step 2. Enter the Address Configuration Entry

Open thingseye.io, and on the login screen, tap the bottom right corner repeatedly to enter the all-in-one device address configuration page.

Step 3. Enter and Save the Full Access URL of the All-in-One Device

Enter the full access URL of the all-in-one device, e.g., http://192.168.1.100:8080, then click "Save".

Enter and save the full URL of the all-in-one device

Note: You must enter the full URL, including http://, and the port number (e.g., :8080). Entering only the IP address or domain may not work.

Step 4. Log In and View

Use the account registered in the all-in-one device to log in and view the all-in-one device.

Notes:

  • The App requires the full address, e.g., http://192.168.1.100:8080; you cannot enter only 192.168.1.100.
  • If the actual IP or port of the all-in-one device differs, replace it with the actual deployed address and port.
  • If you cannot connect, check whether the full access URL is correct and whether the phone and the all-in-one device are network-connected. If the all-in-one device does not have the public Tunnel enabled, the phone must be on the same LAN as the all-in-one device.
  • Availability of the App Store and Google Play may vary by region.