# Merged - Custom Device Types

{% hint style="warning" %}
Merged into [Custom Device Types](/akenza.io/get-started/your-data-flow/device-type/device-type.md)
{% endhint %}

A Custom Device Type is used to decode data sent by devices and turn it into an actionable and human readable format (uplink decoder) or encode data that is used to send commands to devices (downlink encoder).

Uplink decoders are detailed here:

{% content-ref url="/pages/HIuHOWDjLX1upUUb2NFW" %}
[Uplink](/akenza.io/get-started/your-data-flow/device-type/device-type/uplink.md)
{% endcontent-ref %}

Downlink encoders are detailed here:

{% content-ref url="/pages/-MUx\_4bAAuSZPyfly16s" %}
[Downlink](/akenza.io/get-started/your-data-flow/device-type/device-type/downlink.md)
{% endcontent-ref %}

The data format of a device is defined by its device type (uplink decoder and downlink encoder). Once a device sends a data point the uplink decoder script of the device type will decode the raw data into a structured JSON format. Device types can either be created by akenza users (custom device type) or an akenza predefined device type can be used (akenza device type library). Alternatively, it is possible to synchronize a custom device type library, which will be available to all users of the akenza deployment (only available for enterprise customers).

In order to store multiple different message formats on a device, each data point is assigned to a topic (e.g. lifecycle information, configuration and measurements), which can then be used at query-time to retrieve data for a specific schema/purpose. It is advised to use one topic per payload type (i.e. always output data with the same structure to the same topic and try to prevent mixing data structures within the same topic). Generally, it is advised to use different topics for data that is not sent in the same message.

Each device type defines a data schema per topic. The data schema definition is defined in JSON schema. The schema definition is used throughout the akenza appliction to display and control data. Data types, the value range and units are managed by the data schema and do not have to be stored for every data point. A set of default measurement types is defined in `data-models`, that can be used and extended throughout JSON schemas.

A set of device types can be found here:

<https://github.com/akenza-io/device-type-library>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.akenza.io/akenza.io/deprecated/merged-custom-device-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
