# Temperature (cold chain) monitoring whitepaper

Introduction

**We offer temperature monitoring with:**

* different precision possibilities
* different devices
* different business logics
* different price points

**Temperature monitoring can also be combined with data from other sensors:**

* door opening (light, reed contact, magnetometer, or accelerometer)
* tilt detection (accelerometer)
* movement (accelerometer)
* button press (button)
* position/location (from 2m to 1km+ precision - Sigfox/WiFi tracking)

{% hint style="success" %}
Please **contact us** to find the best solution for you if you want to combine sensors!
{% endhint %}

### Precision and resolution of sensors <a href="#precision-and-resolution-of-sensors" id="precision-and-resolution-of-sensors"></a>

**4 different ways to measure temperature:**

1. Accelerometer/MCU with a precision of **2°C-3°C**. We call this **ambient temperature**.
2. Internal STMicro high-resolution and high-precision calibrated MEMS sensor (SimplePack, SimpleMeter, SimpleIndustry) with a precision of **0.5°C**. We call this **precise temperature**.
3. External precise and calibrated NTC on the case with **extreme precision**.
4. External 1-2 **extremely precise** NTC sensors **on a cable** (e.g. water pipe monitoring with pipe sensors - we can provide the devices with 50 or 100 cm cable length).

### Firmware resolution <a href="#firmware-resolution" id="firmware-resolution"></a>

API 6 supports a resolution of **0,5°C in the range of -40°C to 87°C**. For **SimpleIndustry Hot**, the range is shifted upwards by 35° to a range of **-5°C to 122°C**.

{% hint style="success" %}
If the regulation concerning the use case would require a **higher resolution**, please let us know!
{% endhint %}

### Overview of the devices <a href="#overview-of-the-devices" id="overview-of-the-devices"></a>

* **SimpleLeak** - Ambi temp only
* **SimplePack 3.0/4.0 Basic** - ambi
* **SimplePack 3.0/4.0 Temp** - precise
* **SimplePack 3.0/4.0 Full/PoC** - precise plus other sensors
* **SimpleMeter** - precise
* **SimpleIndustry internal** - precise
* **SimpleIndustry external on the case** - precise
* **SimpleIndustry external on cable 1-2 sensors** - precise
* **SimpleIndustry Hot** - project-based

### Device positioning <a href="#device-positioning" id="device-positioning"></a>

* **SimpleLeak** is dust, air, and waterproof, therefore any temperature change outside will take some time to be noticed inside the device.
* **SimplePack** can be mounted directly on a pipe using non-metallic duct tape. Or pretty much anywhere else.
* **SimpleMeter** measures air temperature and humidity and since the device case has air intakes, the change is noticed quickly.
* **SimpleIndustry** has an IP68-rated case and measures air temperature and humidity.
* **SimpleIndustry** external on the wire 1-2 sensors can measure air or water or pipe surface temperatures

[Check out this **Reaction time comparison table**](/kb/sensors/temperature-reaction-time.md)

### Overview of smart business logic <a href="#overview-of-smart-business-logic" id="overview-of-smart-business-logic"></a>

{% hint style="info" %}
IoT devices (sensors) should behave the same way as human senses. Report only relevant information, changes and thresholds, and more.
{% endhint %}

**You need to decide what will trigger the temperature message:**

1. Temperature threshold breach (smart mode - nothing is sent in stable temperature)
2. Temperature change (smart mode as you don't send anything if the temperature is stable)
3. External event (e.g. movement - smart mode as you send information only when needed)
4. Time interval - (you send information all the time)

This can be achieved either using regular **Heartbeats** or using the **Periodic temperature independent event** from FW revision 6.0.117+. We support sending **redundant measurements** in case the messages get lost. You can **reconstruct all data** even when you lose messages with this.

* With the Periodic temperature event, you can choose a redundancy of 1-9 measurements.
* With temperature pipeline modes, you have redundancy of 4 messages that can get lost.

| Feature                | Heartbeat with temperature | Appended payload               | Periodic temperature event | Temperature threshold alert | Temperature threshold pipeline | Temperature change alert | Temperature change pipeline |
| ---------------------- | -------------------------- | ------------------------------ | -------------------------- | --------------------------- | ------------------------------ | ------------------------ | --------------------------- |
| Data can be aggregated | ❌                          | ❌                              | ✔️                         | ❌                           | ❌                              | ❌                        | ❌                           |
| Data can be redundant  | ❌                          | ❌                              | ✔️                         | ❌                           | ✔️                             | ❌                        | ✔️                          |
| Trigger                | Time                       | External event (e.g. movement) | Time                       | Threshold breach            | Threshold breach               | Temperature change       | Temperature change          |

#### Overview of independent temperature reports <a href="#overview-of-independent-temperature-reports" id="overview-of-independent-temperature-reports"></a>

1. **Heartbeat with temperature**

   Receive **regular temperature updates** at any time interval. **You can append temperature from both external NTCs of the SimpleIndustry!**
2. **Appended payload with temperature**

   You can append various data to every uplink event with the hex symbol <0x7F. This means that you can **receive a temperature measurement** with every e.g. movement or light sensor event. **Temperature from 2 NTCs is supported too!**
3. **Periodic temperature-independent event**

   This independent alert reports **temperature records** over a period of time; you can adjust the time between each record and how many new records a message will contain. This event works in **ANY mode** and can use **ANY temperature sensor** (including MCU).

#### Overview of the temperature modes <a href="#overview-of-the-temperature-modes" id="overview-of-the-temperature-modes"></a>

1. **Temperature threshold alert**

   In this mode, you set up 3 temperature thresholds and optional hysteresis. Temperature is measured every 3 minutes by default but you can define your own measurement period. If any of the three thresholds **are crossed, either way**, an uplink message is sent. In default settings, the temperature is **appended** to every message as appended payload.
2. **Temperature threshold pipeline**

   The device will send you the last **5 measured temperature exceptions with the respective time period for each exception**. The message will first report the last measured temperature with 0 minutes and then the one before it and how long it occurred before the final measurement (from the 0 minutes). The temperatures will be recorded only when they cross one of the three thresholds either way.
3. **Temperature change alert**

   In this mode, you set up a temperature delta. An event is triggered by the measured temperature being **different from the last measurement by X**. This variance is called the **delta** and can be adjusted - the default is 2°C. In default settings, the temperature is **appended** to every message as appended payload.
4. **Temperature change pipeline**

   The message will first report the last measured temperature with 0 minutes and then the one before it and how long it occurred **before the final measurement** (from the 0 minutes). The temperatures will be recorded only when they are **outside the delta window** (between the last measured temperature and the last measured temperature ± the predefined delta).


---

# 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://ask.simplehw.eu/kb/pre-sales-support/untitled/temperature-cold-chain-monitoring-whitepaper.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.
