HowTo: Node Red / Tasmota – Ein “Tot-Mann-Schalter” oder wie man das ausbleiben von Status-Nachrichten als Ereignis nutzen

Ich muss zugeben ich hab sie noch nie gesehen, aber es soll in Zügen so genannte Tot-Mann-Schalter geben.

Diese Schalter mit dem etwas makaberen Namen sind eine ganze sinnige Erfindung. Diese Schalter müssen vom Zugführer innerhalb einer gewissen Zeit immer wieder gedrückt werden. Vergisst der Zugführer dies, zum Beispiel weil er körperlich dazu nicht in der Lage ist, ertönt erst ein Warnsignal und falls der Zugführer dann immer noch nicht die entsprechende Taste drückt, bremst der Zug automatisch ab.

Durch dieses System stellt man sicher, dass ein Zug niemals Führerlos unterwegs und der Steuerstand immer besetzt ist.

Was im Zugverkehr sinnvoll ist, kann in einem SmartHome-System ja auch nur hilfreich sein.
Dort könnt Ihr dieses Verfahren – in einer etwas abgewandelten Form –  auch ausnutzen.
Zum Beispiel ließe sich durch dieses Verfahren der Heizkörper immer dann einschalten, wenn ein bestimmtes Gerät in einem festen Intervall Nachrichten sendet. Sobald diese Nachrichten ausbleiben wird der Heizkörper wieder ausgeschaltet.

So nutze ich es zum Beispiel an meinem Schreibtisch: Ist die Steckdose für den Schreibtisch eingeschaltet reagiert das SmartHome auf die regelmäßig ausgesendeten Info-Nachrichten eines (an der Steckdose) angeschlossenen Tasmota-Geräts und schaltet automatisch die Heizung im Arbeitszimmer ein. Sobald der Schreibtisch wieder abgeschaltet wird bleiben auch die regelmäßigen Info-Nachrichten aus und das SmartHome schaltet die

In diesem Beispiel wird also erklärt, wie man dazu die Status-Nachrichten eines Tasmota-Geräts ausnutzt. Denn diese senden in einem einstellbaren Intervall – standardmäßig fünf Minuten – eine Statusmeldung an das Standardtopic “tele/NAME/STATE”. Dadurch wird dann eine andere Tasmota-Lampe eingeschaltet. Sendet das ursprüngliche-Tasmota-Gerät länger als fünf Minuten – um genau zu sein fünf Minuten und Zehn Sekunden – kein Signal, wird die Tasmota-Lampe wieder abgeschaltet.

Wie Ihr dies umsetzt 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:
Damit Ihr diese Konfiguration übernehmen  könnt sollte NodeRed natürlich schon installiert sein.
Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.

Die folgenden Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten:
RaspberryPi – Einrichten für Nerdiys!
RaspberryPi – Die Erste Konfiguration!
RaspberryPi – Den RaspberryPi über SSH steuern

NodeRed – Installation von NodeRed auf dem RaspberryPi
NodeRed – Neue Nodes installieren

Benötigtes Werkzeug:
-keins-

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.


In die NodeRed Konfigurationsoberfläche einloggen

Bevor Ihr eure NodeRed Konfiguration bearbeiten könnt müsst Ihr Euch - falls aktiviert - zunächst in die NodeRed Konfigurationsoberfläche einloggen.

Ansicht des Login Dialogs. Hier müsst Ihr die Login Daten eingeben die Ihr während der Konfiguration des Logins angegeben habt. Infos dazu findet Ihr im Artikel NodeRed - Benutzerlogin einrichten.

Node-Code importieren

Damit Ihr dieses Beispiel ausprobieren könnt müsst ihr folgenden Node-Code in Eure NodeRed – Installation importieren.

Ansicht der Node-Konfiguration im NodeRed-Editor.
Falls Ihr die zeitliche Frist einstellen wollt, nachdem spätestens ein erneutes Signal eingegangen sein muss, so könnt Ihr dies in der Function-Node tun. Ändert dazu den im Bild markierten Wert . Dieser steht für die maximale Zeit zwischen zwei Signalen in Millisekunden. Fünf Minuten und sehn Sekunden entsprechen also ((5*60Sekunden)+10Sekunden)*1000=310000 Millisekunden.

Node-Code:

[{"id":"e2fc26ae.3ff008","type":"mqtt in","z":"4131a41e.b9233c","name":"","topic":"tele/MiniLichterkette/STATE","qos":"2","broker":"3c2a29eb.148006","x":380,"y":1380,"wires":[["a5563ed4.23a7e"]]},{"id":"60f3b2d3.5c1c5c","type":"inject","z":"4131a41e.b9233c","name":"check time","topic":"","payload":"check","payloadType":"str","repeat":"1","crontab":"","once":true,"onceDelay":0.1,"x":430,"y":1420,"wires":[["a5563ed4.23a7e"]]},{"id":"a5563ed4.23a7e","type":"function","z":"4131a41e.b9233c","name":"check","func":"if (msg.payload=="check")
{
    if ((Date.now()-context.flow.signalTimestamp)>310000)
    {
        context.flow.signalTimestamp=0;
        msg.payload=false;
    } else
    {
        msg.payload=true;
    }
} else
{
    context.flow.signalTimestamp=Date.now();
    msg.payload=true;
}
return msg;","outputs":1,"noerr":0,"x":600,"y":1400,"wires":[["3ab4ab0f.883254","d2419bcd.1368d8"]]},{"id":"3ab4ab0f.883254","type":"trigger","z":"4131a41e.b9233c","op1":"ON","op2":"0","op1type":"str","op2type":"str","duration":"0","extend":false,"units":"ms","reset":"false","bytopic":"all","name":"","x":800,"y":1380,"wires":[["4d720e6.97ee2f","b05ef19f.d9d03"]]},{"id":"d2419bcd.1368d8","type":"trigger","z":"4131a41e.b9233c","op1":"OFF","op2":"0","op1type":"str","op2type":"str","duration":"0","extend":false,"units":"ms","reset":"true","bytopic":"all","name":"","x":800,"y":1420,"wires":[["4d720e6.97ee2f","b05ef19f.d9d03"]]},{"id":"4d720e6.97ee2f","type":"debug","z":"4131a41e.b9233c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1010,"y":1460,"wires":[]},{"id":"b05ef19f.d9d03","type":"mqtt out","z":"4131a41e.b9233c","name":"","topic":"cmnd/GluehbirnenLampe40W/POWER","qos":"","retain":"","broker":"3c2a29eb.148006","x":1120,"y":1420,"wires":[]},{"id":"3c2a29eb.148006","type":"mqtt-broker","z":"","name":"Server-Mqtt","broker":"server.fritz.box","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

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       

2 Kommentare

    1. Hi,
      so kann ich dir leider nicht helfen. Bei mir funktioniert der Code. Wenn du mir sagst was bei dir nicht funktioniert kann ich dir versuchen zu helfen.
      Beste Grüße
      Fabian

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.