HowTo: Node Red – Aktionen per Windows Verknüpfung / Mausklick auslösen

Damit ich meinen 3D Drucker nach dem Druckvorgang automatisch ausschalten kann, habe ich ein Sonoff Relais so verbaut, dass es die Stromversorgung zum kompletten 3D Drucker unterbrechen kann. Das Relais wird dann über MQTT angesteuert und schaltet den Drucker nach Abschluss des 3D Drucks automatisch ab.

Auf dem gleichen Weg lässt sich der Drucker auch wieder einschalten. Anfangs habe ich dazu einen entsprechend konfigurierten Taster genutzt. Irgendwann kam ich aber auf die Idee, dass dieser Einschaltbefehl doch auch per Mausklick machbar sein sollte.

Daraus entstand mit der Zeit der unten stehende Flow welcher sich auch für andere Aktionen nutzen lassen sollte. Dazu reicht es die gezeigte batch-Datei auszuführen und schon wird das konfigurierte Signal an Eure NodeRed-Instanz gesendet, wo dann darauf reagiert werden kann.

Weiter Infos erfahrt Ihr im folgenden Artikel.


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 neue Nodes installieren 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.

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.

Aktion über Batch-Datei auslösen

Diese Umsetzung besteht aus mehreren Komponenten. Damit Ihr per Mausklick eine Aktion auslösen könnt müsst Ihr zunächst eine Batch-Datei erstellen. Dies ist ein Skript mit dem sich Kommandozeilenbefehle unter Windows zusammenfassen und auslösen lassen.

Zum Ein- und Ausschalten meines 3D Druckers habe ich dazu zwei Batch-Dateien erstellt. Die Datei zum Einschalten des 3D Druckers schaltet den 3D Drucker direkt nach dem Ausführen ohne weitere Nachfrage ein.

Die Datei zum Ausschalten wartet nach dem Ausführen zunächst auf eine weitere Bestätigung. Erst wenn diese mit einem „Y“ bestätigt wurde, wird der Befehl zum Ausschalten des 3D Druckers auch abgesendet. So kann man den 3D Drucker nicht aus Versehen unabsichtlich (zum Beispiel während eines laufenden Druckvorgangs) abschalten.

Links seht Ihr den Inhalt der Batch Datei zum Absenden eines Befehls ohne weitere Nachfrage.

Dazu wird beim Ausführen der Batch-Datei der Link

https://server.fritz.box:1880/http2mqttBridge.json?action=3dPrinterOn

aufgerufen. Dabei wird der Wert „3dPrinterOn“ für den Parameter „action“ übergeben. Dieser Wert wird in NodeRed ausglesen und abhängig davon darauf reagiert.

So wird beim Aufruf des Links und dem Wert „3dPrinterOn“ der 3D Drucker eingeschaltet.

Den Inhalt der Batch-Datei findet Ihr nachfolgend auch als Text.

curl --insecure https://server.fritz.box:1880/http2mqttBridge.json?action=3dPrinterOn

In diesem Beispiel seht Ihr den Inhalt einer Batch-Datei zum Absenden eines Befehls inkl. Nachfrage. Das heißt bevor der Link

https://server.fritz.box:1880/http2mqttBridge.json?action=3dPrinterOff

aufgerufen wird, wird zunächst nachgefragt ob man dies wirklich tun möchte. Erst danach wird der Link aufgerufen.

Dabei wird für den Parameter „action“ der Wert „3dPrinterOff“ übergeben. Eure NodeRed Instanz kann diesen Wert wieder auslesen und entsprechend handeln. In diesem Fall wird der 3D Drucker ausgeschaltet.

Den Inhalt der Batch-Datei findet Ihr nachfolgend auch als Text.

@echo off
:repeat
   set /p answer=3D Pinter poweroff: Proceed (Y/N)?
   if /i "%answer:~,1%" EQU "Y" curl --insecure https://server.fritz.box:1880/http2mqttBridge.json?action=3dPrinterOff && exit /b
   if /i "%answer:~,1%" EQU "N" exit /b
   echo Please type Y for Yes or N for No
   goto repeat

Batch-Dateien könnt Ihr ganz leicht selber erstellen. Erstellt dazu einfach eine simple Textdatei, speichert den oben gezeigten Inhalt darin ab und ändert dann die Dateiendung der Textdatei von „.txt“ in „.bat“. Danach könnt Ihr die Batch-Datei durch einen Doppelklick darauf ausführen. 🙂


Der NodeRed-Code zur Weiterverarbeitung

Damit Eure NodeRed Instanz die entgegen genommenen Aufrufe entsprechen ausführt, müsst Ihr natürlich noch etwas NodeRed Code in Eure NodeRed Instanz einfügen. Informationen dazu findet Ihr im folgenden Artikel.

Ansicht des benötigten NodeRed-Flows.

Der NodeRed implementiert einen Link der aufgerufen werden kann. In diesem Fall setzt sich dieser aus der Adresse zu Euer NodeRed Instanz und dem im NodeRed Code konfigurierten Zusatz zusammen. So kann der beim aufrufen des Links

https://server.fritz.box:1880/http2mqttBridge.json?action=3dPrinterOff

der mitgelieferte Parameter „action“ ausgelesen werden.

In der Links dargestellten switch-node kann dann für die verschiedenen Werte eine Separate Handlung hinterlegt werden.

Der Wert des Parameters „action“ wird über die Zeichenfolge nach dem „…action=“-Teil festeglegt.

Den NodeCode findet Ihr im Nerdiy-Git-Repository unter:


Weitere Artikel zum Thema NodeRed

Weitere Artikel zum Thema NodeRed inkl. Beispiele findet Ihr unter folgendem Link.


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. 🙂

Fab

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

Kommentar hinterlassen

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