Lüfter: 2-Punkt-Regelung

Szenario

Ein IOZER basic liest die Temperatur eines 1-Wire-Sensors und schaltet einen Lüfter über den digitalen Ausgang 1. Eine Freigabe aktiviert die Regelung. Solltemperatur und Hysterese werden als eigene Datenpunkte angelegt und können optional über Home Assistant verändert werden.

Die Regelung läuft lokal im IOZER. Home Assistant dient zur Anzeige und Bedienung.

Ziel

Die 2-Punkt-Regelung besitzt zwei Ausgangszustände: Lüfter ein und Lüfter aus. Die Hysterese trennt die Ein- und Ausschaltschwelle, damit kleine Temperaturschwankungen nicht ständig zu Schaltvorgängen führen.

Für dieses Beispiel gelten eine Solltemperatur von 25 °C und eine Hysterese von 0,5 K:

Bedingung Aktion
Freigabe aus Lüfter ausschalten
Freigabe ein und Temperatur > Solltemperatur + Hysterese, hier > 25,5 °C Lüfter einschalten
Freigabe ein und Temperatur < Solltemperatur − Hysterese, hier < 24,5 °C Lüfter ausschalten
Freigabe ein und Temperatur zwischen den Schwellen, einschließlich der Grenzen Aktuellen Lüfterzustand beibehalten

Die Hysterese wird hier als Abstand zur Solltemperatur verwendet. Mit 0,5 K liegen die beiden Schaltschwellen insgesamt 1 K auseinander. Bei genau 24,5 °C oder 25,5 °C erfolgt noch keine Umschaltung.

Eingesetzte Hardware

  • IOZER basic (IOZ-B-10) mit geeigneter Spannungsversorgung
  • 1-Wire-Temperatursensor DS18B20
  • Lüfter mit einer für den Ausgang geeigneten Ansteuerung
  • Rechner mit Zugriff auf die Weboberfläche
  • optional: Home Assistant mit MQTT-Broker

Voraussetzungen

  • IOZER, Sensor und Lüfter sind gemäß den Sicherheitshinweisen und dem elektrischen Anschluss installiert.
  • I/O & Schnittstellen sind aktiviert.
  • Für die lokale Regelung läuft das gespeicherte Programm.
  • Für die optionale Home-Assistant-Anbindung sind IOZER und Home Assistant mit demselben MQTT-Broker verbunden.

Umsetzung

1. Ausgang und Lüfter-Datenpunkt konfigurieren

Öffnen Sie I/O & Schnittstellen → Digitale Ausgänge und bearbeiten Sie Ausgang 1.

Digitaler Ausgang 1 mit der Bezeichnung Lüfter
Digitaler Ausgang 1 mit der Bezeichnung Lüfter
Einstellung Wert
Bezeichnung Lüfter
Aktiviert Ein
Name luefter
Invertiert Aus
Anfangszustand Aus
Stopp-Zustand Aus
Auto-Aus Deaktiviert
Blinken Deaktiviert

Speichern und übernehmen Sie die Ausgangskonfiguration. Legen Sie anschließend unter Datenpunkte oder über das Plus-Symbol in der Ausgangszeile den zugehörigen Datenpunkt an:

Einstellung Wert
Bezeichnung Lüfter
Name luefter
Datentyp Boolean (Bool)
Datenquelle Digitaler Ausgang → Lüfter → Zustand
Datenziel Digitaler Ausgang → Lüfter → Zustand

Die Datenquelle liefert die Rückmeldung des Ausgangs. Die Logik steuert das Datenziel mit dp.set("luefter", true) oder dp.set("luefter", false) an. Eine automatische Weiterleitung von Quellwerten an das Ziel wird dafür nicht benötigt.

Weitere Einstellungen sind unter Digitale Ausgänge beschrieben.

2. Temperatursensor und Datenpunkt konfigurieren

Wechseln Sie zu I/O & Schnittstellen → 1-Wire. Starten Sie bei Bedarf die Sensorentdeckung und übernehmen Sie den DS18B20 in die Konfiguration.

Einstellung Wert
Leseintervall 5 Sekunden
Sensortyp DS18B20
Sensorbezeichnung Temperatur
Aktiviert Ein
Temperaturwert Aktiviert, Faktor 1, Offset 0, Einheit °C

Verwenden Sie die Hardwareadresse des tatsächlich angeschlossenen Sensors. Die Adresse im Screenshot gehört zum Beispielaufbau.

1-Wire-Konfiguration mit fünf Sekunden Leseintervall und einem DS18B20 namens Temperatur
1-Wire-Konfiguration mit fünf Sekunden Leseintervall und einem DS18B20 namens Temperatur

Legen Sie über das Plus-Symbol in der Sensorzeile oder unter Datenpunkte den Temperaturdatenpunkt an:

Einstellung Wert
Bezeichnung Temperatur
Name temperatur
Datentyp Float
Einheit °C
Klasse Temperatur
Nur lesen Ein
Datenquelle 1-Wire → Temperatur → Temperaturwert
Datenziel keines

Speichern und übernehmen Sie die Konfiguration. Der Datenpunkt muss einen plausiblen Messwert mit Status OK anzeigen und regelmäßig aktualisiert werden. Details finden Sie unter 1-Wire.

3. Freigabe, Hysterese und Solltemperatur anlegen

Erstellen Sie unter Datenpunkte drei weitere Datenpunkte ohne Datenquelle und ohne Datenziel. Diese Werte werden vom Programm beziehungsweise von der Bedienung gesetzt.

Bezeichnung Technischer Name Datentyp Einheit Startwert im Beispiel
Lüfter Freigabe luefter_freigabe Boolean (Bool) keine false
Hysterese hysterese Float K 0,5
Solltemperatur solltemperatur Float °C 25

Aktivieren Sie die Datenpunkte und lassen Sie Nur lesen ausgeschaltet. Verwenden Sie für die Hysterese einen positiven Wert. Die Startwerte werden in Schritt 4.1 durch ein Programmstart-Ereignis gesetzt.

Fünf Datenpunkte für Lüfter, Temperatur, Lüfter Freigabe, Hysterese und Solltemperatur vor der Initialisierung
Fünf Datenpunkte für Lüfter, Temperatur, Lüfter Freigabe, Hysterese und Solltemperatur vor der Initialisierung

Der Screenshot zeigt einen Zwischenstand: Freigabe und Hysterese besitzen noch den Status Unbekannt, die Hysterese zeigt 0. Nach dem Programmstart müssen die drei Einstellwerte gültig sein. Die Datenpunkt-IDs können abweichen; die folgenden Programme verwenden technische Namen.

4. Ereignisse und Regelungslogik erstellen

Öffnen Sie Programm. Für die Umsetzung können Sie je Ereignis Blockly oder alternativ JavaScript verwenden.

4.1 Startwerte setzen

Legen Sie ein aktiviertes Ereignis Programm → Start an. Setzen Sie in Blockly mit vier Blöcken Datenpunkt auf Wert setzen die Freigabe auf falsch, den Lüfter auf falsch, die Hysterese auf 0,5 und die Solltemperatur auf 25.

Alternativ hinterlegen Sie diesen JavaScript-Code:

dp.set("luefter_freigabe", false);
dp.set("luefter", false);
dp.set("hysterese", 0.5);
dp.set("solltemperatur", 25);

Dieses Beispiel setzt die Werte bei jedem Programmstart neu. Nach dem Start muss die Freigabe bewusst eingeschaltet werden. Sollen Einstellwerte später über Neustarts erhalten bleiben, verwenden Sie Datenpunkt-Persistenz und initialisieren Sie nur noch Werte, für die dp.get keinen gültigen Wert liefert.

4.2 Regelung bei Temperaturaktualisierung ausführen

Legen Sie ein aktiviertes Ereignis Datenpunkt → Wert aktualisiert mit dem Datenpunkt Temperatur als Quelle an. Dadurch wird die Regelung bei jeder erfolgreichen Messwertaktualisierung ausgeführt, auch wenn die Temperatur unverändert bleibt.

Erstellen Sie in Blockly die folgende Logik:

  1. Prüfen Sie in einem falls/sonst-Block, ob der Datenpunkt Lüfter Freigabe den Wert wahr besitzt.
  2. Vergleichen Sie im mache-Bereich Temperatur > Solltemperatur + Hysterese. Setzen Sie bei erfüllter Bedingung den Datenpunkt Lüfter auf wahr.
  3. Fügen Sie darunter einen zweiten falls-Block für Temperatur < Solltemperatur − Hysterese ein. Setzen Sie bei erfüllter Bedingung Lüfter auf falsch.
  4. Setzen Sie im äußeren sonst-Bereich Lüfter auf falsch.

Die inneren Vergleiche erhalten keinen sonst-Zweig. Dadurch bleibt der Ausgang innerhalb des Hysteresebands in seinem bisherigen Zustand. Verwenden Sie Wert setzen, damit eine gleichbleibende Temperatur den Lüfter nicht bei jeder Messung umschaltet.

Blockly-Regelung mit Freigabe, Einschalten oberhalb Solltemperatur plus Hysterese und Ausschalten unterhalb Solltemperatur minus Hysterese
Blockly-Regelung mit Freigabe, Einschalten oberhalb Solltemperatur plus Hysterese und Ausschalten unterhalb Solltemperatur minus Hysterese

Die JavaScript-Alternative ergänzt vor den Temperaturvergleichen eine Prüfung auf gültige Zahlen und eine positive Hysterese:

if (dp.get("luefter_freigabe", false)) {
  const temperatur = dp.get("temperatur");
  const solltemperatur = dp.get("solltemperatur");
  const hysterese = dp.get("hysterese");

  if (typeof temperatur = "number" &&
      typeof solltemperatur = "number" &&
      typeof hysterese === "number" && hysterese > 0) {
    if (temperatur > solltemperatur + hysterese) {
      dp.set("luefter", true);
    }
    if (temperatur < solltemperatur - hysterese) {
      dp.set("luefter", false);
    }
  }
} else {
  dp.set("luefter", false);
}

Bei fehlenden Zahlenwerten wird in dieser JavaScript-Variante keine neue Temperaturentscheidung getroffen. Bei fehlender Freigabe wird der Lüfter ausgeschaltet.

4.3 Auf Bedienänderungen reagieren

Erstellen Sie drei weitere aktivierte Ereignisse mit derselben Regelungslogik aus Schritt 4.2:

Auslöser Datenpunkt Zweck
Wert geändert Lüfter Freigabe Freigabeänderung direkt auswerten
Wert geändert Hysterese Neue Schaltschwellen direkt berücksichtigen
Wert geändert Solltemperatur Neuen Sollwert direkt berücksichtigen

Diese Ereignisse reagieren beispielsweise auf Änderungen aus Home Assistant. Die Logik verwendet jeweils die aktuellen Datenpunktwerte und benötigt keine eigene Dauerschleife oder Wartezeit.

Speichern und übernehmen Sie das Programm. Starten Sie es bei aktiven I/O & Schnittstellen und kontrollieren Sie die initialisierten Werte sowie den Ausführungsstatus der Ereignisse. Hinweise zu Auslösern und Gerätefunktionen finden Sie unter Ereignisse und JavaScript.

5. Optional: Bedienung über Home Assistant

Konfigurieren und aktivieren Sie unter I/O & Schnittstellen → MQTT die Verbindung zum gemeinsamen Broker. Öffnen Sie anschließend Datenpunkte → ⋮ → Home Assistant AutoDiscovery.

Wählen Sie die fünf Datenpunkte aus und verwenden Sie die Zuordnung aus dem Screenshot:

Datenpunkt Home-Assistant-Typ Minimum Maximum Schrittweite
Lüfter Automatisch (Schalter) — — —
Temperatur Automatisch (Sensor), nur lesen — — —
Lüfter Freigabe Schalter — — —
Hysterese Zahlen-Eingabe 0,5 5 0,5
Solltemperatur Zahlen-Eingabe 20 30 0,5
Home Assistant AutoDiscovery für die fünf Datenpunkte der Lüftersteuerung mit Einstellbereichen für Hysterese und Solltemperatur
Home Assistant AutoDiscovery für die fünf Datenpunkte der Lüftersteuerung mit Einstellbereichen für Hysterese und Solltemperatur

Lassen Sie den Discovery-Präfix auf homeassistant, sofern Ihre Installation diesen verwendet. Aktivieren Sie Benötigte MQTT-Einstellungen automatisch aktivieren, prüfen Sie die Änderungen und wählen Sie Speichern, anwenden & veröffentlichen. Die Aktion übernimmt auch weitere noch offene Konfigurationsänderungen.

Nach der Veröffentlichung können Sie die Temperatur anzeigen, die Regelung über Lüfter Freigabe aktivieren und Solltemperatur sowie Hysterese verändern. Direktes Schalten von Lüfter setzt den Ausgang; die lokale Regelung kann diesen Zustand bei der nächsten Auswertung wieder ändern. Verwenden Sie für die normale Bedienung die Freigabe.

Die Einrichtung ist unter Home Assistant und MQTT ausführlich beschrieben.

Funktion prüfen

Verwenden Sie 25 °C Solltemperatur und 0,5 K Hysterese. Aktivieren Sie die Freigabe nach dem Programmstart, beispielsweise über Home Assistant. Für einen Test ohne Home Assistant legen Sie ein benutzerdefiniertes Ereignis mit folgendem JavaScript-Code an und führen es einmal über Ausführen aus:

dp.set("luefter_freigabe", true);

Zum Ausschalten setzen Sie den Wert auf false. Das Anlegen solcher Ereignisse ist unter Ereignisse beschrieben.

Prüfung Erwartetes Ergebnis
Freigabe aus, beliebige gültige Temperatur Lüfter aus
Freigabe ein, Temperatur auf etwa 26 °C erhöhen Lüfter ein
Temperatur danach auf 25 °C absenken Lüfter bleibt ein
Temperatur weiter auf etwa 24 °C absenken Lüfter aus
Temperatur danach wieder auf 25 °C erhöhen Lüfter bleibt aus
Freigabe bei laufendem Lüfter ausschalten Lüfter wird durch das Freigabe-Ereignis ausgeschaltet
Solltemperatur oder Hysterese verändern Regelung verwendet die neuen Schwellen

Warten Sie bei Temperaturänderungen auf die nächste Sensoraktualisierung. Mit dem eingestellten Leseintervall wird der Sensor alle fünf Sekunden abgefragt. Kontrollieren Sie die Rückmeldung des Ausgangs und die Ausführungsstatus der Ereignisse.

Fehlerbehebung

Fehlerbild Mögliche Ursache und Prüfung
Temperatur fehlt oder ist ungültig Aktives I/O, 1-Wire-Verdrahtung, Sensoradresse und Temperaturdatenpunkt prüfen.
Freigabe oder Hysterese ist Unbekannt Programmstart-Ereignis anlegen, speichern, übernehmen und Programm neu starten.
Lüfter bleibt trotz hoher Temperatur aus Freigabe, laufendes Programm und obere Schaltschwelle prüfen. Im Beispiel muss die Temperatur größer als 25,5 °C sein.
Lüfter bleibt bei 25 °C eingeschaltet Das liegt innerhalb des Hysteresebands; ausgeschaltet wird erst unterhalb 24,5 °C.
Lüfter schaltet bei jeder Messung um In der Regelung Werte mit dp.set setzen; einen versehentlich verwendeten Umschaltblock ersetzen.
Bedienänderungen werden erst später wirksam Die drei Ereignisse aus Schritt 4.3 ergänzen oder ihre Datenpunktzuordnung prüfen.
Datenpunktbefehl schaltet den Ausgang nicht Datenziel Digitaler Ausgang → Lüfter → Zustand, Ausgangsaktivierung und I/O prüfen.
Home-Assistant-Einträge fehlen oder sind nicht verfügbar MQTT-Verbindung, Discovery-Auswahl und gültige Datenpunktwerte prüfen.

Ergebnis und Erweiterung

Der IOZER steuert den Lüfter anhand zweier Temperaturschwellen. Die Freigabe erlaubt das Ein- und Ausschalten der Regelung, während Solltemperatur und Hysterese als veränderbare Datenpunkte verfügbar bleiben. Home Assistant ergänzt die lokale Steuerung um Anzeige und Bedienung.

IOZER basic
IOZER
Innovative Steuerung für vielseitige Anwendungen.
AnmeldenRegistrieren
DE Deutsch EN English
Produkte
Shop
Docs
Connect
Kontakt
Sprache: DE
DE Deutsch EN English
Warenkorb
AnmeldenRegistrieren