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.

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é. 🙂
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
Salut Johnny,
Donc, vous voulez arrêter un autre RaspberryPi à partir d'un RaspberryPi exécutant NodeRed ?
Si oui, c'est exactement ce que j'ai décrit ici. 😀
https://nerdiy.de/nodered-remote-raspberrypi-neustarten-herunterfahren-und-starten/
J'espère que cela pourra aider.
Cordialement
Fabien
SyntaxError: JSON.parse: expected ‚,‘ or ‚}‘ after property value in object at line 1 column 290 of the JSON data
Merci pour l'indice. Je pense avoir résolu le problème. Veuillez réessayer. 🙂