En plus des données passionnantes générées par un SmartHome, vous devez également prendre soin de l'état du cœur du SmartHome. Si vous avez installé votre installation NodeRed sur un Raspberry Pi (ou un autre système Linux), vous pouvez utiliser l'exemple suivant pour afficher certaines des informations les plus importantes sur le Raspberry Pi sur le tableau de bord.
Ce que vous devez faire est expliqué dans l'article suivant.
Contenu
Consignes de sécurité
Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/
Liens d'affiliation/publicitaires
Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂
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
NodeRed – Installer de nouveaux nœuds
NodeRed - Créer une interface utilisateur avec des nœuds de tableau de bord
Matériel 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.
code nœud
Outre le nœud du tableau de bord, seuls les nœuds standard et les commandes Linux correspondantes sont utilisés pour cet affichage. Ajoutez simplement le code de nœud suivant et n'oubliez pas de positionner correctement les éléments du tableau de bord sur votre tableau de bord.
Vous pouvez également trouver des informations à ce sujet dans l'article NodeRed - Créer une interface utilisateur avec des nœuds de tableau de bord.
Code nœud :
[{ "id": "fbbafb8d.8c3818", "type": "exec", "z": "ae220e4a.3c49d", "command": "vcgencmd Measure_temp", "addpay": false, "append": " ", "useSpawn": "", "timer": "", "oldrc": false, "name": "Température RPi", "x": 440, "y": 200, "wires": [ [" 17fa85a3.c0a5fa"], [], [] ] }, { "id": "610a759f.da34ec", "type": "inject", "z": "ae220e4a.3c49d", "name": "update 10sec ", "topic": "", "payload": "", "payloadType": "date", "repeat": "10", "crontab": "", "once": false, "onceDelay": " ", "x": 200, "y": 200, "wires": [ ["fbbafb8d.8c3818", "6b5302eb.fe0fbc", "f8494c08.39fe8"] ] }, { "id": "17fa85a3.c0a5fa ", "type": "function", "z": "ae220e4a.3c49d", "name": "cutString", "func": "str = msg.payload\r\nmsg.payload = str.substring(5 ,9);\r\nreturn msg;", "outputs": 1, "noerr": 0, "x": 660, "y": 200, "wires": [ ["e8f154dc.299398", "71f38a1c .ca6f64"] ] }, { "id": "4070b9bd.5796b8", "type": "exec", "z": "ae220e4a.3c49d", "command": "sudo reboot", "addpay": false , "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Redémarrer", "x": 430, "y": 540, "wires ": [ [], [], [] ] }, { "id": "77a93271.11eabc", "type": "exec", "z": "ae220e4a.3c49d", "command": "arrêt sudo -h maintenant", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Shutdown", "x": 440, "y": 620, "wires": [ [], [], [] ] }, { "id": "6b5302eb.fe0fbc", "type": "exec", "z": "ae220e4a. 3c49d", "commande": "top -d 1 -b -n2 | grep ", "s": "|tail -n 1 | awk '{print $2 + $4}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "CPU Dernier", "x": 420, "y": 280, "wires": [ ["97612f41.a7f6e"], [], [] ] }, { "id": "f8494c08.39fe8", "type" : "exec", "z": "ae220e4a.3c49d", "command": "gratuit | grep meme | awk '{print 100*(($3+$5)/$2)}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "RAM", "x": 410, "y": 360, "wires": [ ["6ce43c7.2c89bc4"], [], [] ] }, { "id": "7b744c14 .050354", "type": "exec", "z": "ae220e4a.3c49d", "command": "df -h", "addpay": false, "append": "", "useSpawn": " ", "timer": "", "oldrc": false, "name": "Espace de stockage", "x": 440, "y": 440, "wires": [ ["403e1890.2fbab8"], [ ] , [] ] }, { "id": "403e1890.2fbab8", "type": "function", "z": "ae220e4a.3c49d", "name": "modifyString", "func": "var re = /([0-9]{2})%/\r\nvar idx = msg.payload.search(re);\r\nvar str = msg.payload;\r\nif (idx >=0) { \r\n str = msg.payload.substring(idx, idx + 2);\r\n}\r\nmsg.payload = str;\r\nreturn msg;", "outputs": 1, "noerr " : 0, "x": 670, "y": 440, "wires": [ ["f574e160.da0f1"] ] }, { "id": "da61973.d30f268", "type": "injecter", " z": "ae220e4a.3c49d", "name": "update 1min", "topic": "", "payload": "", "payloadType": "date", "repeat": "60", " crontab ": "", "once": false, "onceDelay": "", "x": 200, "y": 440, "wires": [ ["7b744c14.050354"] ] }, { "id" : "37bde909.05a676", "type": "ui_button", "z": "ae220e4a.3c49d", "name": "", "group": "5fe5a9b.a8a6158", "order": 3, "width " : 0, "height": 0, "passthru": false, "label": "Restart", "color": "", "bgcolor": "", "icon": "", "payload": " ", "payloadType": "str", "topic": "", "x": 230, "y": 540, "wires": [ ["4070b9bd.5796b8"] ] }, { "id": " 12fa2be3.80e824", "type": "ui_button", "z": "ae220e4a.3c49d", "name": "", "group": "5fe5a9b.a8a6158", "order": 4, "width": 0, "height": 0, "passthru": false, "label": "Shutdown", "color": "", "bgcolor": "red", "icon": "", "payload": "" , "payloadType": "str", "topic": "", "x": 240, "y": 620, "wires": [ ["77a93271.11eabc"] ] }, { "id": "e8f154dc .299398", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "5fe5a9b.a8a6158", "order": 1, "width": 0 , "height": 0, "gtype": "gage", "title": "Température du processeur", "label": "C", "format": "{{value}}", "min": 0, "max": "100", "colors": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 910, "y": 180, "wires": [] }, { "id": "638024a7.6ca05c", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "6b432a4a.06ad54", "order": 1, "width": 0, "height": 0, "gtype": "gage", "title": "CPU", "label": "CPU", "format ": "{{value}}%", "min": 0, "max": "100", "colors": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y": 300, "wires": [] }, { "id": "d80d6326.88202", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "6b432a4a.06ad54", "order": 1, "width": 0, "height": 0, "gtype": "gage", " title": "Mémoire", "label": "RAM", "format": "{{value}}%", "min": 0, "max": "100", "colors": ["#00b500" , "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 880, "y": 360, "wires": [] }, { "id": " f574e160.da0f1", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "6b432a4a.06ad54", "order": 1, "width": 0, "height": 0, "gtype": "gage", "title": "Disque", "label": "Stockage", "format": "{{value}}%", "min": 0 , "max": "100", "colors": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y" : 440, "wires": [] }, { "id": "71f38a1c.ca6f64", "type": "ui_chart", "z": "ae220e4a.3c49d", "name": "", "group" : "5fe5a9b.a8a6158", "order": 2, "width": 0, "height": 0, "label": "Historique de la température du CPU", "chartType": "line", "legend": "false" , "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "", "dot": false, "ymin": "", "ymax": "", "removeOlder " : "24", "removeOlderPoints": "", "removeOlderUnit": "3600", "cutout": 0, "useOneColor": false, "colors": ["#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5"], "useOldStyle": vrai, "x": 930, "y": 240, "wires": [ [] , [] ] }, { "id": "6ce43c7.2c89bc4", "type": "function", "z": "ae220e4a.3c49d", "name": "deleteWhitespace", "func": "var str = msg.payload\r\nstr = str.trim();\r\nvar nr=parseInt(str);\r\nmsg.payload = nr.toFixed(1);\r\nreturn msg;", "sorties ": 1, "noerr": 0, "x": 690, "y": 360, "wires": [ ["d80d6326.88202"] ] }, { "id": "97612f41.a7f6e", "type ": "function", "z": "ae220e4a.3c49d", "name": "deleteWhitespace", "func": "str = msg.payload\r\nmsg.payload = str.trim();\r\ nreturn msg;", "outputs": 1, "noerr": 0, "x": 690, "y": 280, "wires": [ ["638024a7.6ca05c"] ] }, { "id": " 75f679fd.1125a8", "type": "inject", "z": "ae220e4a.3c49d", "name": "Shutdown", "topic": "", "payload": "", "payloadType": " date", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 260, "y": 680, "wires": [ ["77a93271. 11eabc"] ] }, { "id": "5fe5a9b.a8a6158", "type": "ui_group", "z": "ae220e4a.3c49d", "name": "2", "tab": "7e8708a2. 0fc408", "order": 2, "disp": false, "width": "6", "collapse": false }, { "id": "6b432a4a.06ad54", "type": "ui_group", " z": "ae220e4a.3c49d", "name": "1", "tab": "7e8708a2.0fc408", "order": 1, "disp": false, "width": "6", "collapse" : false }, { "id": "7e8708a2.0fc408", "type": "ui_tab", "z": "ae220e4a.3c49d", "name": "Données Raspi", "icon": "tableau de bord", "commande": 1 }]
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é. 🙂
Bonjour, très beau flow. Je suis un débutant avec node-red et je peux apprendre beaucoup avec.
Exécution de la température et de l'historique du processeur. Pour le nœud RAM j'ai remplacé "mem" par "memory" (allemand Raspian :-), ça marche aussi. Mais les commandes « espace de stockage » et « CPU » ne fonctionnent pas et malheureusement mes connaissances ne suffisent pas pour apporter un changement. Pourriez-vous adapter cela pour une version allemande ?
Merci et salutations, Hajo.
Salut Hajo,
Je viens de tester à nouveau le tout. «Malheureusement», tout fonctionne pour moi. Pouvez-vous me donner plus d'informations sur ce qui ne fonctionne pas pour vous ? 🙂
Cordialement
Fabien
13/02/2023, 09:04:19 nœud : modifyString
fonction : (erreur)
"TypeError : msg.payload.search n'est pas une fonction"
???
Bonjour Nerdy,
J'ai téléchargé et installé le flow (je suis aussi débutant).
A très bien fonctionné...
Maintenant que j'ai transféré le système de la carte SD vers un disque dur, plus aucune valeur n'est affichée dans le CPU, la mémoire et le disque...
La température du processeur fonctionne.
Peut-être que tu as un conseil pour moi ?
Cordialement
Jürgen
Bonjour Jürgen,
oui, c'est probablement parce que le disque dur a un point de montage/chemin d'accès différent de celui de la carte SD.
Pouvez-vous m'envoyer le résultat de « df -h » (tapez-le simplement dans la console) ? Ensuite, je peux vous dire quel est le point de montage actuel et nous pouvons adapter le code NodeRed en conséquence. 🙂
Cordialement
Fabien
Bonjour, une erreur s'est malheureusement glissée dans le nœud Charge CPU :
La commande correcte dans le nœud exec doit se présenter comme suit :
top -d 1 -b -n2 | grep "%Cpu" | tail -n 1 | awk '{imprimer $2 + $4}'.
Voici comment l'annonce a fonctionné