# Filter

Der Filter-Service bietet eine umfassende Auswahl an Filtern, die auf eingehende Daten angewendet werden können. Diese Filter sind darauf ausgelegt, die Qualität und Relevanz der gespeicherten Daten zu erhöhen, indem sie nur signifikante Änderungen und wichtige Informationen durchlassen. Daten werden nur dann in der Datenbank gespeichert, wenn sie den Filter passiert haben, was bedeutet, dass der Filter erst nach der Berechnung auf den Wert angewendet wird.

Dies gewährleistet, dass nur relevante Datenpunkte erfasst werden, wodurch die Effizienz der Datenverarbeitung und Speicherung erhöht wird.

{% hint style="info" %}
Filter werden auf den Wert NACH der Berechnung angewendet!
{% endhint %}

## Unterstützte Filtertypen

<figure><img src="https://content.gitbook.com/content/Nyvwhz1kEMXcHf4HLuZ8/blobs/iZATu68bVLGsrkU5uXi3/Frame%202695.png" alt=""><figcaption></figcaption></figure>

## **1. Totband-Filter (Deadband)**

Der **Totband-Filter** speichert nur Werte, wenn sich der Wert nach der Berechnung signifikant vom vorherigen unterscheidet. Die Änderung wird durch die folgende Formel definiert:

**Formel:**

$$
\text{Epsilon} = \frac{\text{Toleranz}}{2} \cdot \left(\frac{\text{Max} - \text{Min}}{100}\right)
$$

Ein neuer Wert wird nur gespeichert, wenn die absolute Differenz zum vorherigen Wert größer oder gleich **Epsilon** ist:

$$
∣Neuer Wert−Vorheriger Wert∣ ≥ \text{Epsilon}
$$

**Beispiel:**

* **Toleranz:** 5 %
* **Maximalwert:** 100 °C
* **Minimalwert:** 0 °C
* **Epsilon:**

$$
\text{Epsilon} = \frac{5}{2} \cdot \left(\frac{100 - 0}{100}\right) = 2.5
$$

* **Eingehende Werte:** 20 °C → 21.5 °C → 23 °C → 24.4 °C → 26 °C
* **Ergebnis:**
  * 20 °C wird gespeichert (erster Wert).
  * 21.5 °C wird nicht gespeichert, da die Änderung |21.5 - 20| = 1.5  **< 2.5** nicht ausreicht.
  * 23 °C wird gespeichert, da |23 - 20| = 3  **≥ 2.5**
  * 24.4 °C wird nicht gespeichert, da |24.4 - 23| = 1.4 **< 2.5**
  * 26 °C wird gespeichert, da |26 - 23| = 3.0 **≥ 2.5**&#x20;

***

## **2. Gleitender Durchschnittsfilter (Moving Average)**

Der **Gleitende Durchschnittsfilter** speichert nicht die Originalwerte, sondern den Durchschnitt einer definierten Anzahl von aufeinanderfolgenden Werten (Fenstergrö**ss**e).

**Funktionsweise:**

* Der Filter sammelt Werte innerhalb eines festgelegten Fensters.
* Nach Erreichen der Fenstergrösse wird der Durchschnitt der Werte berechnet und gespeichert.
* Das Fenster wird dann um einen Wert verschoben, und der Prozess wiederholt sich.

**Beispiel:**

* **Fenstergrösse:** 3 Werte
* **Eingehende Werte:** 12 V → 15 V → 18 V → 21 V → 24 V

**Berechnungen:**

Durchschnitt der ersten 3 Werte (12 V, 15 V, 18 V):&#x20;

$$
\frac{15 + 18 + 21}{3} = 18 , \text{V}
$$

Durchschnitt der nächsten 3 Werte (18 V, 21 V, 24 V):&#x20;

$$
\frac{18 + 21 + 24}{3} = 21 , \text{V}
$$

**Gespeicherte Werte:** 15 V, 18 V, 21 V.

***

## **3. Hi-pass-Filter**

Der Hi-pass-Filter speichert nur Werte, die **strikt höher** als ein festgelegtes Limit sind. Dies ist ideal, um Schwellenwertüberschreitungen zu überwachen.

**Beispiel:**

* **Limit:** 50 kW
* **Eingehende Werte:** 45 kW → 52 kW → 48 kW → 55 kW
* **Gespeicherte Werte:** 52 kW, 55 kW

***

## **4. Low-pass-Filter**

Der Low-pass-Filter speichert nur Werte, die **strikt niedriger** als ein festgelegtes Limit sind. Dieser Filter ist nützlich, um niedrige Werte zu analysieren oder Obergrenzen einzuhalten.

**Beispiel:**

* **Limit:** 30 ppm
* **Eingehende Werte:** 25 ppm → 35 ppm → 20 ppm → 30 ppm
* **Gespeicherte Werte:** 25 ppm, 20 ppm

***

## **5. Band-pass-Filter**

Der Band-pass-Filter speichert nur Werte, die **innerhalb eines definierten Bereichs** (Band) liegen. Das Band wird durch ein Hi- und ein Low-Limit bestimmt.

**Beispiel:**

* **Band:** 10 bis 20 V
* **Eingehende Werte:** 9 V → 15 V → 25 V → 18 V
* **Gespeicherte Werte:** 15 V, 18 V

***

## **6. OnChange-Filter**

Der OnChange-Filter speichert Werte nur dann, wenn diese **nicht gleich dem vorherigen Wert** sind. Dadurch werden redundante Werte ausgeschlossen, und nur Änderungen werden aufgezeichnet.

**Beispiel:**

* **Eingehende Werte:** 100 l/h → 100 l/h → 105 l/h → 105 l/h → 110 l/h
* **Gespeicherte Werte:** 100 l/h, 105 l/h, 110 l/h
