Skip to content
English
  • There are no suggestions because the search field is empty.

Juno TH TILT mioty® Blueprint – IFM Gateway Integration 

mioty® Blueprint – IFM Gateway Integration

📄 You can view the PDF above or download it here .

function Decoder(bytes, port) {

    // Conversion of signed integers
    function uncomplement(val, bitwidth) {
        var isnegative = val & (1 << (bitwidth - 1));
        var boundary   = (1 << bitwidth);
        var minval     = -boundary;
        var mask       = boundary - 1;
        return isnegative ? minval + (val & mask) : val;
    }

    var decoded = {};

    if (port === 1) {

        // Attributes
        decoded.base_id         = bytes[0] >> 4;
        decoded.major_version   = bytes[0] & 0x0F;
        decoded.minor_version   = bytes[1] >> 4;
        decoded.product_version = bytes[1] & 0x0F;

        // Telemetry
        decoded.up_cnt               = bytes[2];
        decoded.battery_voltage      = ((bytes[3] << 8) | bytes[4]) / 1000.0;              
        decoded.internal_temperature = bytes[5] - 128;

        var idx = 6;

        if (decoded.product_version & 0x01) {
            decoded.operating_seconds =
                (bytes[idx++] << 24) |
                (bytes[idx++] << 16) |
                (bytes[idx++] << 8) |
                bytes[idx++];

            decoded.cycles =
                (bytes[idx++] << 24) |
                (bytes[idx++] << 16) |
                (bytes[idx++] << 8) |
                bytes[idx++];

            decoded.utilization_rate =
                ((bytes[idx++] << 8) | bytes[idx++]) / 100.0;

            decoded.is_active = bytes[idx++];
        }

        if (decoded.product_version & 0x08) {
            decoded.temperature =
                ((bytes[idx++] << 8) | bytes[idx++]) / 10 - 100;

            decoded.humidity = bytes[idx++];
        }

    } else if (port == 197) {

        var format = bytes[0];
        var offset = 1;
        var results = [];

        if (format === 0) {

            var count = Math.floor((bytes.length - offset) / 6);

            for (var i = 0; i < count; i++) {

                var macBytes = bytes.slice(
                    offset + i * 6,
                    offset + i * 6 + 6
                );

                var mac = macBytes.map(function(b) {
                    return (b < 16 ? "0" : "") +
                        b.toString(16).toUpperCase();
                }).join(":");

                results.push({ mac: mac });
            }

        } else if (format === 1) {

            var count = Math.floor((bytes.length - offset) / 7);

            for (var i = 0; i < count; i++) {

                var rssiRaw = bytes[offset + i * 7];
                var rssi = rssiRaw > 127
                    ? rssiRaw - 256
                    : rssiRaw;

                var macBytes = bytes.slice(
                    offset + i * 7 + 1,
                    offset + i * 7 + 7
                );

                var mac = macBytes.map(function(b) {
                    return (b < 16 ? "0" : "") +
                        b.toString(16).toUpperCase();
                }).join(":");

                results.push({
                    mac: mac,
                    rssi: rssi
                });
            }

        } else {
            return {
                errors: ["Unknown payload format: " + format]
            };
        }

        decoded.format = format;
        decoded.access_points = results;
    }

    return decoded;
}
You can view the Blueprint JSON code above or download it here .

1. Version History

Version Date Revision
1.0.0 April 30, 2026 Created

2. Integrating Blueprint Sensors into the ifm mioty Gateway

Step 1

Commission the gateway. Follow the instructions provided by ifm. You should see the following screenshot below.

Gateway Startansicht
Figure 1: Gateway Start Screen

Step 2

Navigate to the "Data Interpretation" tab and then to the "Blueprint" tab.

Blueprint speichern
Figure 2: Navigation to Blueprint and Data Interpretation

Step 3

Download the blueprint for your selected sensor. To do this, go to the page docs.sentinum.de and search for your sensor and the corresponding blueprint. In this case, we're setting up a Juno temperature and relative humidity sensor.

Add New im Blueprint Reiter
Figure 3: Downloading the Blueprint for a selected sensor

Step 4

Click on the entry and then on the "JSON File" button. Alternatively, you can download a TXT file further down the page.

Blueprint mit zugewiesener EUI
Figure 4: Downloading a JSON file or, alternatively, a .txt file

Step 5

The blueprint should now open. Save this file to a folder by right-clicking and selecting "Save As…."

Anhangfenster mit Blueprint Auswahl
Figure 5: Saving the opened Blueprint file

Step 6

Now return to the gateway interface. Click the "+ Add New…" button in the "Data Interpretation" tab and in the "Blueprint" tab. Upload the saved blueprint file as a .json file.

Blueprint EUI eingeben
Figure 6. Create a New Blueprint

Step 7

You should now see a newly created blueprint—in this case, Juno. An EUI is automatically assigned to the blueprint. Copy or save this EUI, as you'll need it again later.

Sensor erfolgreich hinzugefuegt
Figure 7. Created blueprint with Blueprint EUI

Step 8

Now let's connect the sensor. To do this, navigate to the "mioty" tab on the gateway interface and click "+ Attach New."

Data Interpretation und Blueprint
Figure 8. Click "+Attach New"

Step 9

The following window will now appear. Check the "Blueprint" box at the top so that you see the "Blueprint EUI" input field at the bottom. Enter the required information here and then click "OK." You can find this information in the packaging as a QR code or conveniently request it as a CSV fileat beiinfo@sentinum.de. Important: You'll need the Blueprint EUI again for this step.

Graphansicht der Sensorwerte
Figure 9. Selecting the appropriate blueprint

Step 10

You have now successfully added the sensor.

Sensoruebersicht mit Informationen
Figure 10. Sensor with all relevant information

Step 11

You should now see the sensor with all the necessary information.

Sensorwerte nach Refresh 1
Figure 11. First updated sensor values

Step 11

Now activate the sensor using a magnet or NFC. Wait a moment, then click the "Refresh" button. You should then see the following values.

Sensorwerte nach Refresh 2
Figure 12. Additional updated sensor values

Step 12

Click on the graph on the right in the Actions column to view the sensor values.

Sensorwerte nach Refresh 3
Figure 13. Complete values after refresh