# Filter

Der Filterdienst 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 nur signifikante Änderungen und wichtige Informationen durchgelassen werden. 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.

Dadurch wird sichergestellt, dass nur relevante Datenpunkte erfasst werden, was die Effizienz der Datenverarbeitung und -speicherung erhöht.

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

## Unterstützte Filtertypen

<figure><img src="https://3489494878-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9GvUpaatBiReR43XFSMg%2Fuploads%2FRtJZrHDQ8XyKsKtEhIIw%2FFrame%202695.png?alt=media&#x26;token=0c8f8a6c-8b99-4fc2-a6c9-46f242f6de0f" alt=""><figcaption></figcaption></figure>

## **1. Totbandfilter**

Die **Totbandfilter** speichert Werte nur dann, wenn der Wert nach der Berechnung sich deutlich vom vorherigen unterscheidet. Die Änderung ist durch die folgende Formel definiert:

**Formel:**

$$\text{Epsilon} = \frac{\text{Tolerance}}{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**:

$$∣\text{New value}−\text{Previous value}∣ ≥ \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, weil die Änderung |21,5 - 20| = 1,5 **< 2.5** nicht ausreichend ist.
  * 23 °C wird gespeichert, weil |23 - 20| = 3 **≥ 2,5**
  * 24,4 °C wird nicht gespeichert, weil |24,4 - 23| = 1,4 **< 2.5**
  * 26 °C wird gespeichert, weil |26 - 23| = 3,0 **≥ 2,5**

***

## **2. Gleitender-Mittelwert-Filter**

Die **Gleitender-Mittelwert-Filter** speichert nicht die Originalwerte, sondern den Mittelwert einer definierten Anzahl aufeinanderfolgender Werte (Fenstergröße).

**So funktioniert es:**

* Der Filter sammelt Werte innerhalb eines definierten Fensters.
* Nachdem die Fenstergröße erreicht ist, wird der Mittelwert der Werte berechnet und gespeichert.
* Anschließend wird das Fenster um einen Wert verschoben, und der Vorgang wiederholt sich.

**Beispiel:**

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

**Berechnungen:**

Mittelwert der ersten 3 Werte (12 V, 15 V, 18 V):

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

Mittelwert der nächsten 3 Werte (18 V, 21 V, 24 V):

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

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

***

## **3. Hochpassfilter**

Der Hochpassfilter speichert nur Werte, die **streng höher** als ein definierter Grenzwert sind. Dies ist ideal zur Überwachung von Grenzwertüberschreitungen.

**Beispiel:**

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

***

## **4. Tiefpassfilter**

Der Tiefpassfilter speichert nur Werte, die **streng niedriger** als ein definierter Grenzwert sind. Dieser Filter ist nützlich, um niedrige Werte zu analysieren oder obere Grenzwerte einzuhalten.

**Beispiel:**

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

***

## **5. Bandpassfilter**

Der Bandpassfilter speichert nur Werte, die **innerhalb eines definierten Bereichs** (Band) liegen. Das Band wird durch einen oberen und einen unteren Grenzwert 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 sie **nicht gleich dem vorherigen Wert**sind. Dadurch werden redundante Werte ausgeschlossen und nur Änderungen erfasst.

**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
