HowTo: Node Red – Raspberry Pi herunterfahren und neu starten

Eine weitere praktische Sache in NodeRed ist, dass man auch übliche Linux Befehle bequem per NodeRed-Node auslösen kann.

So lässt sich Euer RaspberryPi zum Beispiel auch ganz leicht herunterfahren oder neu starten. Beispiele und Infos dazu findet Ihr im folgenden Artikel.


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.

Die folgenden drei 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

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.

Simples herunterfahren auf Knopfdruck

Um Euren RaspberryPi einfach nur herunter zu fahren reichen schon zwei einfache Nodes.

Links seht Ihr den Aufbau von zwei Nodes die bereits ausreichen um Euren RaspberryPi aus der NodeRed Umgebung herunter zu fahren.

Den Code dazu findet Ihr hier:

[
    {
        "id": "7c9a271.bf32bd8",
        "type": "inject",
        "z": "9ccc4e725c3673aa",
        "name": "shutdown!",
        "repeat": "",
        "crontab": "",
        "once": false,
        "topic": "",
        "payload": "",
        "x": 520,
        "y": 1760,
        "wires": [
            [
                "e58b5ea3.57e91"
            ]
        ]
    },
    {
        "id": "e58b5ea3.57e91",
        "type": "exec",
        "z": "9ccc4e725c3673aa",
        "command": "sudo poweroff #",
        "append": "",
        "useSpawn": "",
        "name": "turn off Pi",
        "x": 694,
        "y": 1759,
        "wires": [
            [],
            [],
            []
        ]
    }
]

Herunterfahren mit Sicherheitsfrage im Dashboard

Eine etwas luxuriösere Verknüpfung ist im folgenden Code enthalten. Manchmal verklickt man sich ja. Und obwohl man noch nicht alles gespeichert hat und den RaspberryPi noch gar nicht herunterfahren wollte, klikct man dann manchmal doch aus versehen auf den “Shutdown”-Button.

Um so etwas zu verhindern reicht eine simple Nachfrage ob Ihr Euch auch wirklich sicher seid, dass Ihr den RaspberryPi herunterfahren wollt.

Links seht Ihr den beschriebenen Flow. Erst nachdem Ihr den Befehl zum herunterfahren bestätigt habt wird dieser auch ausgeführt.

Den Code dazu findet Ihr hier:

[
    {
        "id": "1702b798.ee9108",
        "type": "exec",
        "z": "9ccc4e725c3673aa",
        "command": "sudo shutdown -h now",
        "addpay": false,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Shutdown",
        "x": 1020,
        "y": 2020,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "7fcdbec0.5807",
        "type": "function",
        "z": "9ccc4e725c3673aa",
        "name": "",
        "func": "if (msg.payload=='Abbrechen'){msg.payload=false;} else if (msg.payload=='OK'){ msg.payload=true;return msg;}",
        "outputs": 1,
        "noerr": 0,
        "x": 890,
        "y": 2020,
        "wires": [
            [
                "1702b798.ee9108"
            ]
        ]
    },
    {
        "id": "25c2c1c0.47385e",
        "type": "ui_toast",
        "z": "9ccc4e725c3673aa",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": false,
        "topic": "Really?",
        "name": "Really?",
        "x": 760,
        "y": 2020,
        "wires": [
            [
                "7fcdbec0.5807"
            ]
        ]
    },
    {
        "id": "3ff7e395.fd757c",
        "type": "ui_button",
        "z": "9ccc4e725c3673aa",
        "name": "",
        "group": "c50fec45.1c008",
        "order": 4,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "Server Powerdown",
        "tooltip": "",
        "color": "",
        "bgcolor": "red",
        "icon": "",
        "payload": "Sicher?",
        "payloadType": "str",
        "topic": "",
        "x": 590,
        "y": 2020,
        "wires": [
            [
                "25c2c1c0.47385e"
            ]
        ]
    }
]

RaspberryPi Neu starten

Was mit dem herunterfahren klappt, klappt natürlich auch mit dem neu starten. Hier also der Flow um Euren RaspberryPi aus dem Dashboard oder der NodeRed Oberfläche neu starten zu können.

Links seht Ihr den Flow mit dem Euer RaspberryPi neu gestartet werden kann.

Den Code dazu findet Ihr hier:

[
    {
        "id": "df20eac13fdcba2e",
        "type": "exec",
        "z": "9ccc4e725c3673aa",
        "command": "sudo reboot",
        "addpay": false,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Reboot",
        "x": 1140,
        "y": 2300,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "02e02a3df0b16d3d",
        "type": "function",
        "z": "9ccc4e725c3673aa",
        "name": "",
        "func": "if (msg.payload=='Abbrechen'){ msg.payload=false;} else if (msg.payload=='OK'){msg.payload=true; return msg;}",
        "outputs": 1,
        "noerr": 0,
        "x": 990,
        "y": 2280,
        "wires": [
            [
                "df20eac13fdcba2e"
            ]
        ]
    },
    {
        "id": "55940c40590b5819",
        "type": "inject",
        "z": "9ccc4e725c3673aa",
        "name": "",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 720,
        "y": 2320,
        "wires": [
            [
                "df20eac13fdcba2e"
            ]
        ]
    },
    {
        "id": "cd3f522e2a28e48a",
        "type": "ui_toast",
        "z": "9ccc4e725c3673aa",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": false,
        "topic": "Really?",
        "name": "Really",
        "x": 870,
        "y": 2280,
        "wires": [
            [
                "02e02a3df0b16d3d"
            ]
        ]
    },
    {
        "id": "38d0494f17305068",
        "type": "ui_button",
        "z": "9ccc4e725c3673aa",
        "name": "",
        "group": "c50fec45.1c008",
        "order": 3,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "Server Reboot",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "Sicher?",
        "payloadType": "str",
        "topic": "",
        "x": 720,
        "y": 2280,
        "wires": [
            [
                "cd3f522e2a28e48a"
            ]
        ]
    }
]

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       

4 Kommentare

  1. Hast du einen TIpp wie ich einen Raspi im meinem Netzwerk runterfahre per Node-Red. also nicht den auf dem Node-Red läuft. Danke! Super Blog danke.

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.