Most LoRaWAN sensors use OTAA (over-the-air activation): the device joins the network with its AppKey, and the network server gives it a fresh session. This page shows how to register such a device. For devices that come with fixed session keys, see Add an ABP device. To add many devices that share one key, see Pairing mode.
You need the permission to add, edit and delete LoRaWAN devices (administrators by default).
What you need from the device’s supplier
| Value | Also called | Format |
|---|---|---|
| DevEUI | Device EUI | 16 hexadecimal digits |
| JoinEUI | AppEUI (in LoRaWAN 1.0.x) | 16 hexadecimal digits. Many devices use 0000000000000000. |
| AppKey | Application key | 32 hexadecimal digits |
| LoRaWAN version | MAC version | 1.0.2, 1.0.3 or 1.0.4 |
| Class | — | A (battery) or C (mains powered, always listening) |
These values are on the device’s label, on a sheet that came with it, or in the supplier’s portal. The device must be an EU868 device.
Add the device
- Open Devices and select New device.
- Choose LoRaWAN device (“An end device, by its DevEUI, JoinEUI and AppKey.”).
- Fill in the form:
| Field | What to enter | Rules |
|---|---|---|
| Activation | OTAA (joins with its AppKey) | Default |
| Name | A name you recognise. | Required, at most 128 characters |
| DevEUI | The device’s EUI. | 16 hexadecimal digits; not all zeros, not all F |
| JoinEUI (AppEUI) | The JoinEUI. Use 0000000000000000 when the device has none. | 16 hexadecimal digits. Pre-filled with zeros. |
| AppKey | The 32-digit key. | 32 hexadecimal digits |
| LoRaWAN version | The device’s version. | 1.0.2, 1.0.3 (default), 1.0.4 |
| Class | A (battery, answers after each uplink) or C (mains powered, always listening) | Default A |
Spaces, - and : in EUIs and keys are removed for you.
- Select Add device.
The drawer says The device was added. It shows as joined after its first join request. Select Open the device to go to its LoRaWAN tab, or Add another to clear the form.
- Power on the device, or make it join again (many devices have a button or a magnet for this). When the join succeeds, the join badge on its LoRaWAN tab says Joined.
Warning
The AppKey is stored encrypted and never shown again. Keep the supplier’s sheet. Only a person with the separate permission to reveal AppKeys can read it back, through the API, and every reveal is written to the audit log.
What Hermetry creates
| Created | Details |
|---|---|
| A device | On the built-in LoRaWAN EU868 Class A OTAA (1.0.3) profile. It counts as one device toward your limit. It has no access token: LoRaWAN devices never log in to the platform themselves. |
| A LoRaWAN record | DevEUI, JoinEUI, version, class, the encrypted AppKey, codec Automatic. |
| A platform-wide DevEUI claim | The DevEUI is now reserved for your organisation. |
The radio settings (RX1 delay, ADR) come from the profile. See LoRaWAN device profiles.
Errors
| Message | Cause |
|---|---|
| 16 hexadecimal digits. | DevEUI or JoinEUI has the wrong length or other characters. |
| 32 hexadecimal digits. | AppKey has the wrong length or other characters. |
| Give the device a name. | The name is empty. |
This DevEUI is already registered. (deveui_taken) | Another device on the platform has this DevEUI. Hermetry does not say where. |
| This LoRaWAN version is not supported yet. Use 1.0.2, 1.0.3 or 1.0.4. | LoRaWAN 1.1 was sent through the API. |
| The device limit of your plan is reached. | No room for one more device. |
If you are sure the DevEUI is yours and it is “already registered”, check whether it was added before in your own organisation, or by pairing mode.
Change the AppKey later
On the device’s LoRaWAN tab, under Keys, type the New AppKey and select Replace keys. Confirm Replace the keys: “The device must join again with the new AppKey. Set the same key in the device, or it stops being heard.” A new AppKey also clears the device’s DevNonce history, so it starts over. See The device’s LoRaWAN tab.
Add a device through the API
POST /tenant/<tenantId>/api/iot/lorawan/devices
Content-Type: application/json
{
"name": "Cold room 3",
"devEui": "1122334455667701",
"joinEui": "0000000000000000",
"appKey": "2B7E151628AED2A6ABF7158809CF4F3C",
"macVersion": "1.0.3",
"class": "A",
"codecId": "auto",
"anyJoinEui": false
}
Only name, devEui and appKey are required; the others have the defaults shown. The answer never contains the AppKey; it carries hasAppKey: true. See the LoRaWAN API.

