# 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**](https://ask.simplehw.eu/kb/sensors/temperature-reaction-time)

### 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).
