HowTo: Tasmota – Abfallverzögertes Nachlaufen eines Relais einstellen

Das Nachlaufen lassen eines Relais ist eigentlich eine recht oft genutzte Funktion. Leider ist diese (zumindest bis heute) nicht so einfach mit den Tasmota Relais zu realisieren.

Ein praktischer Anwendungsfall für ein Nachlauf-Relais ist zum Beispiel ein Badezimmerlüfter.
Ein Badezimmerlüfter wird oft mit dem Lichtschalter des Badezimmers gekoppelt. Ist das Badezimmerlicht eingeschaltet läuft also auch der Badezimmerlüfter.
Dies ist praktisch hat aber den Nachteil, dass zum Beispiel nach dem Duschen die feuchte Luft nur dann abgesaugt wird wenn das Licht eingeschaltet ist.

Hier ist ein Nachlauf-Relais hilfreich. Dieses wartet nach dem Abschalten (des Lichtes und somit auch des Lüfter-Relais) noch eine gewisse Zeit bevor das Relais dann auch den angeschlossenen Aktor (hier den Lüfter) ausschaltet.

Wie Ihr diese Funktion bei einem Tasmota-Gerät mit einem trick aktivieren könnt ist im folgenden Artikel erklärt.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Bevor Ihr diese Funktion nutzen könnt Solltet Ihr Euer Tasmota-Gerät installiert und so konfiguriert haben, dass Ihr über Euer W-Lan zugriff darauf habt. Wie dies geht ist in den folgenden Artikeln beschrieben.

Tasmota – Firmware flashen

Benötigtes Werkzeug:
– keins

Benötigtes Material:


Die Funktionsweise

Leider gibt es nicht “den einen” Befehl in Tasmota mit der Ihr eine Nachlaufzeit realisieren könnt.

Allerdings gibt es in der Tasmota-Firmware die Möglichkeit eigene Regeln zu definieren. Mit dessen Hilfe lassen sich verschiedene Verhalten und auch eine Nachlaufzeit definieren. Im folgenden eine Erklärung einer möglichen Lösung.

Als erstes definieren wir mithilfe der Rules, dass das Tasmota-Relais auf ein bestimmtes MQTT-Topic auf Nachrichten horcht. Sobald darüber ein Befehl zum abschalten des relais empfangen wird, wird das Relais nicht direkt ausgeschaltet. Stattdessen, wird ein Timer gestartet. Erst nachdem dieser Timer abgelaufen ist, wird das Relais ausgeschaltet.

Sollte während der Timer läuft ein Befehl zum einschalten des Relais empfangen werden, wird der Ablauf des Timers deaktiviert und das Relais bleibt weiterhin eingeschaltet.

Im folgenden Abschnitt ist das Verhalten als Regel beschrieben.


Die benötigte Regel

Im folgenden seht Ihr die Regeln die benötigt werden.

Regel 1: Aboniert das MQTT-Topic “cmnd/3dswitch” sobald das Relais mit Eurem MQTT-Server verbunden ist. Hier könnt Ihr natürlich auch ein anderes Topic wählen.

Regel 2: Aktiviert das Relais und setzt den Timer zurück sobald es auf dem abonnierten Topic eine “1” empfängt.

Regel 3: Startet den Timer zum Abschalten des Relais sobald auf dem abonnierten Topic eine “0” empfangen wird.

Regel 4: Deaktiviert das Relais sobald der zuvor eingestellte Timer abgelaufen ist. Der eingestellte Wert “120” entspricht einer Nachlaufzeit von 120 Sekunden. Wenn Ihr eine andere Nachlaufzeit wünscht, könnt Ihr diesen Wert entsprechend anpassen.

on Mqtt#Connected do 
	Subscribe 3dswitch, cmnd/3dswitch 
endon 

on Event#3dswitch=1 do 
	backlog power1 on; ruletimer1 0 
endon 

on Event#3dswitch=0 do 
	ruletimer1 120 
endon 

on rules#timer=1 do 
	power1 0 
endon

Um diese Tasmota Konfiguration in Euer Tasmota-Relais zu übernehmen, müsst Ihr nun die folgenden Befehle in der Console Eures Tasmota-Relais ausführen.

backlog switchmode1 1; rule1 1

und

rule1 
on Mqtt#Connected do 
	Subscribe 3dswitch, cmnd/3dswitch 
endon 
on Event#3dswitch=1 do 
	backlog power1 on; ruletimer1 0 
endon 
on Event#3dswitch=0 do 
	ruletimer1 120 
endon 
on rules#timer=1 do 
	power1 0 
endon

Funktion zum abonnieren von MQTT-Topics aktivieren

Ein kleines Problem ist leider, dass das Abonnieren von MQTT-Topics nicht von den vor kompilierten binaries der Tasmota Firmware unterstützt wird. Dies muss separat aktiviert und dann auf Euer Tasmota Relais programmiert werden.

Dazu müsst Ihr Euch die Firmware aus dem Tasmota-GIT-Repository herunterladen.

Das Repository findet Ihr hier: https://github.com/arendst/Tasmota

Wie Ihr Dateien aus einem Git-Repository herunterladen könnt ist im Artikel GitHub – Wie kopiere ich Dateien aus einem Git-Repository auf meinen Computer 

Sobald Ihr die Dateien heruntergeladen habt solltet Ihr den Quellcode in der Arduino IDE öffnen. Wechsel dann in die Datei “my_user_config.h und/oder sucht direkt nach dem Wert “SUPPORT_MQTT_EVENT”.

Hier seht Ihr die betreffende Stelle. Um das Abonnieren von MQTT-Topics zu aktivieren, müsst Ihr…
…diesen Teil (wie auf dem Bild zu sehen aktivieren, indem Ihr die auskommentierung durch die zwei “//” entfernt.

Danach müsst Ihr die Firmware auf Euer Tasmota-Relais programmieren.

Infos dazu findet Ihr auch hier: https://tasmota.github.io/docs/Subscribe-%26-Unsubscribe/


Ein und ausschalten des Relais

Viel ändert sich eigentlich nicht, um das nun vorbereitete Relais ein- und auszuschalten.

Zum einschalten müsst Ihr lediglich eine “1” an das Topic “cmnd/3dswitch” (oder das von Euch konfigurierte) senden.

Zum ausschalten müsst Ihr eine “0” an das konfigurierte Topic senden. Nach der eingestellten Nachlaufzeit sollte das Relais dann ausschalten.


Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

3 Kommentare

  1. I am trying to create an switch using the MQTT platform. Either I get two lightning bolt symbols (one on/one off) or the toggle style switch, but it won’t stay on.

    The switch itself is called ‘tasmota21’ and the mqtt topic that controls the timer function is ‘3dswitch’.

    From my switches.yaml file
    – platform: mqtt
    name: “3dSwitch”
    unique_id: “delay_switch”
    #state_topic: “stat/3dswitch/RESULT”
    value_template: ‘{{ value_json[“POWER”] }}’
    command_topic: “cmnd/3dswitch”
    #availability_topic: “tele/tasmota21/LWT”
    qos: 1
    payload_on: “1”
    payload_off: “0”
    state_on: “ON”
    state_off: “OFF”
    payload_available: “Online”
    payload_not_available: “Offline”
    retain: true

    1. Hey ac3.14lot,
      actually I’m a bit confused. What system are you using? Is it possible that you are implementing this in Homeassistant or IObroker? 🙂
      Best regards
      Fab

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.