# Analog monitoring independent events

These events are quite similar to how API 6 works with temperature (thresholds, delta, and periodic aggregated event), but work with data from one or two analog inputs.

Please note that **Analog monitoring independent events** are only **available in custom SimpleIndustry devices** as they are not included in the standard API 6 build due to size.

Analog monitoring independent events are available in API 6 revision **6.0.247** and up. Please note that this feature is only available upon request as it’s contained in a **separate firmware build**.

This independent alert works and reports **analog input records** over a period of time; you can adjust both the number of new records sent in one message and also the length between each record.

In addition to this, you can set up **analog thresholds** and the device will send you an alert when either of the three thresholds is breached (both upwards and downwards). **Analog delta alert** is available as well.

Generally speaking, analog monitoring implements firmware functionality that’s very similar to how the API 6 works with **temperature.** Thresholds, delta alerts, and periodic recording.

This independent alert works in \*\*ANY mode (\*\*note that availability of modes is limited in the APP2 separate build). It uses a GPIO analog input and is connected to whatever you need to measure via a cable.

### **Events (uplink messages)**

| **Hex** | **Event name**             | **Trigger**                              |
| ------- | -------------------------- | ---------------------------------------- |
| 0xA2    | Analog below threshold A   | Threshold breach                         |
| 0xA3    | Analog above threshold A   | Threshold breach                         |
| 0xA4    | Analog below threshold B   | Threshold breach                         |
| 0xA5    | Analog above threshold B   | Threshold breach                         |
| 0xA6    | Analog below threshold C   | Threshold breach                         |
| 0xA7    | Analog above threshold C   | Threshold breach                         |
| 0xA8    | Analog probe error         | Fault threshold breach                   |
| 0xA9    | Analog probe error cleared | Fault threshold breach                   |
| 0xD9    | Analog delta alert         | Measured voltage higher/lower than delta |
| 0xDA    | Analog periodic event      | Time                                     |

### **Relevant downlink registers**

| **Hex** | **Register name**                            | **Value**                                                               | **Default** |
| ------- | -------------------------------------------- | ----------------------------------------------------------------------- | ----------- |
| 0x91    | Channel A DIR\* (16 bit - LSB)               | Total value is calculated from 2 registers (LSB+MSB), 0x7FFF = 32767 mV | 0x7F        |
| 0x92    | Channel A DIR\* (16 bit - MSB)               | 0xFF                                                                    |             |
| 0x93    | Channel B DIR\* (16 bit - LSB)               | Total value is calculated from 2 registers (LSB+MSB), 0x7FFF = 32767 mV | 0x7F        |
| 0x94    | Channel B DIR\* (16 bit - MSB)               | 0xFF                                                                    |             |
| 0x95    | Analog fault threshold                       | Value in dec = x10 mV, 0x14 = 200 mV                                    | 0x14        |
| 0x96    | Analog measurement period                    | SimpleTime                                                              | 0x0A        |
| 0x97    | Analog number of samples                     | Value in dec = x10, 0x01 = 10 samples                                   | 0x00        |
| 0x98    | Analog delta voltage                         | Value in dec = mV, 0x0A = 10 mV                                         | 0xFF        |
| 0x99    | Analog periodic aggregation (redundancy)     | 1, 2, 3, 6                                                              | 0x00        |
| 0x9A    | Analog threshold A                           | Value in dec = x10 mV, 0x0A = 100 mV                                    | 0x00        |
| 0x9B    | Analog threshold B                           | Value in dec = x10 mV, 0x0A = 100 mV                                    | 0x00        |
| 0x9C    | Analog threshold C                           | Value in dec = x10 mV, 0x0A = 100 mV                                    | 0x00        |
| 0x9D    | Analog hysteresis                            | Value in dec = mV, 0x0A = 10 mV                                         | 0x00        |
| 0x9E    | Analog min. time filter to trigger threshold | SimpleTime                                                              | 0x00        |

\***DIR = Divider Integer Ratio**

If Q is the divider integer ratio as a real number (ie. R\_lower/(R\_upper + R\_lower), then QI = int(round(0x10000) \* Q) - 1 - Domain of Q is <1,0) - Domain of QI is <0xffff, 0x0000)

Examples: - Q = 1 -> QI = 0xffff - Q = 0.5 -> QI = 0x7fff - Q = 0.000015 -> QI = 0x0000 - Q = 0.0 -> QI = N/A

### How it works

There are two inputs (channel A & B) that can be used both separately and at the same time. The **divider integer ratio** is used to internally translate the voltage values - and set the voltage range. In default settings, the range is approx. 0-30V.

**Measurement period** is how often voltage is measured. **Number of samples** tells the device how many measurements need to be taken before an event is sent/record is stored.

E.g. if you measure every 6 seconds and you set the number of samples to 10, the device will perform 10 measurements, **calculate an average** and then perform other actions based on this average (send an event, save a periodic record). If the number of samples is 0, every measurement can be an action trigger.

The average/measurement can then be an **action trigger**, if conditions to trigger an alert are met (**threshold** is crossed, **delta** is crossed, **aggregation > 0** which means the average/measurement will be recorded to the **periodic event** buffer). You can find everything in the flow diagram below.

**Analog min. time filter to trigger threshold** works like sensor detection delay - value has to be above/below the threshold for this time period in order to trigger the event.

### Flow diagram

<figure><img src="/files/kPP9uzWctlMC3ajXmn5h" alt=""><figcaption></figcaption></figure>

### **Example 1: Record voltage every hour and send periodic aggregated records every 6 hours**

0x96 = 0x05 (Analog measurement period 5 seconds)

0x97 = 0x48 (Analog number of samples 720)

0x98 = 0xFF (Analog delta off)

0x99 = 0x06 (Analog periodic aggregation 6)

### **Example 2: Send an event every hour**

0x96 = 0x05 (Analog measurement period 5 seconds)

0x97 = 0x48 (Analog number of samples 720)

0x98 = 0x00 (Analog delta zero)\*

0x99 = 0x00 (Analog periodic aggregation zero)

\*The event is triggered by the delta, which is set to zero = event will be sent every time

### **Example 3: Send delta event if delta=200 mV while 1-minute average is used for decision**

0x96 = 0x06 (Analog measurement period 6 seconds)

0x97 = 0x01 (Analog number of samples 10)

0x98 = 0xC8 (Analog delta 200 mV)

0x99 = 0x00 (Analog periodic aggregation zero)

***


---

# 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/simple-api-6-generation/modes/api-6-mode-independent-information-and-events_15237121/analog-monitoring-independent-events.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.
