HowTo : Node Red - Arrêter et redémarrer Raspberry Pi

Une autre chose pratique dans NodeRed est que vous pouvez également déclencher facilement des commandes Linux courantes via le nœud NodeRed.

Ainsi, votre RaspberryPi peut par exemple être facilement éteint ou redémarré. Vous trouverez des exemples et des informations à ce sujet dans l'article suivant.


Conditions préalables

Articles utiles :
Pour que vous puissiez installer de nouveaux nœuds, NodeRed doit bien sûr déjà être installé.
Comment préparer un RaspberryPi puis installer NodeRed dessus est décrit dans les articles suivants.

Les trois articles suivants décrivent ce qu'il faut faire pour préparer le RaspberryPi :
RaspberryPi - configuration pour les nerdiys !
RaspberryPi – La première configuration !
RaspberryPi - Contrôlez le RaspberryPi via SSH

NodeRed – Installer NodeRed sur le RaspberryPi

Outil requis :
-Non-

Matériel requis :

Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.


Connectez-vous à l'interface de configuration de NodeRed

Avant de pouvoir modifier votre configuration NodeRed, vous devez - si activé - vous connecter d'abord à l'interface de configuration NodeRed.

Vue de la boîte de dialogue de connexion. Ici, vous devez entrer les données de connexion que vous avez spécifiées lors de la configuration de la connexion. Vous trouverez des informations à ce sujet dans l'article NodeRed - configurer la connexion de l'utilisateur.

Arrêt simple sur simple pression d'un bouton

Deux nœuds simples suffisent pour éteindre simplement votre RaspberryPi.

Sur la gauche, vous pouvez voir la structure de deux nœuds, qui sont déjà suffisants pour éteindre votre RaspberryPi depuis l'environnement NodeRed.

Vous pouvez trouver le code pour cela ici:

[ { "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": "éteindre Pi", "x": 694, "y": 1759, "wires": [ [], [], [] ] } ]

Arrêt avec question de sécurité dans le tableau de bord

Un lien un peu plus luxueux est contenu dans le code suivant. Il arrive parfois que l'on se trompe. Et bien que l'on n'ait pas encore tout enregistré et que l'on ne veuille pas encore éteindre le RaspberryPi, on clique parfois par mégarde sur le bouton "Shutdown".

Afin d'éviter quelque chose comme ça, une simple question suffit pour savoir si vous êtes vraiment sûr de vouloir éteindre le RaspberryPi.

A gauche, vous voyez le flux décrit. Ce n'est qu'après avoir confirmé la commande d'arrêt que celle-ci sera exécutée.

Vous pouvez trouver le code pour cela ici:

[
    {
        "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"
            ]
        ]
    }
]

Redémarrez Raspberry Pi

Ce qui fonctionne avec l'arrêt, fonctionne bien sûr aussi avec le redémarrage. Voici donc le flux pour pouvoir redémarrer votre RaspberryPi à partir du Dashboard ou de l'interface NodeRed.

Sur la gauche, vous pouvez voir le flux avec lequel votre RaspberryPi peut être redémarré.

Vous pouvez trouver le code pour cela ici:

[
    {
        "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"
            ]
        ]
    }
]

Amusez-vous avec le projet

J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂

PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂

Achetez-moi un café sur ko-fi.com       

4 commentaires

  1. Avez-vous une astuce sur la façon dont j'ai arrêté un Raspi dans mon réseau en utilisant Node-Red. Donc pas celui qui tourne sur Node-Red. Merci! super blog merci

  2. SyntaxError: JSON.parse: expected ‚,‘ or ‚}‘ after property value in object at line 1 column 290 of the JSON data

Kommentar hinterlassen

Votre adresse e-mail ne sera pas publiée. Erforderliche Felder sind mit * markiert

Ce site utilise Akismet pour réduire les spams. Découvrez comment les données de vos commentaires sont traitées.