# 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="https://2906494444-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnuFF26iZs7gQn740zeZD%2Fuploads%2Fe44tCppKWaisMU6jNLTx%2Fimage.png?alt=media&#x26;token=083dccf9-506f-4395-8959-0acb71c4121b" 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)

***
