Naast de spannende gegevens die een SmartHome genereert, moet je ook een beetje aandacht besteden aan de status van het hart van de SmartHome. Als u uw NodeRed-installatie op een Raspberry Pi (of ander Linux-systeem) hebt geïnstalleerd, kunt u het volgende voorbeeld gebruiken om enkele van de belangrijkste informatie over de Raspberry Pi op het dashboard weer te geven.
Wat u moet doen, leest u in het volgende artikel.
Veiligheidsinstructies
Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links / reclame links
De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂
Eisen
Handige artikelen:
Om nieuwe nodes te kunnen installeren, moet NodeRed natuurlijk al geïnstalleerd zijn.
Hoe je een RaspberryPi voorbereidt en vervolgens NodeRed erop installeert, wordt beschreven in de volgende artikelen.
In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH
NodeRed – NodeRed installeren op de RaspberryPi
NodeRed – Installeer nieuwe knooppunten
NodeRed - Maak een gebruikersinterface met dashboardknooppunten
Benodigd materiaal:
-Nee-
Benodigd materiaal:
In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.
Log in op de configuratie-interface van NodeRed
Voordat u uw NodeRed-configuratie kunt bewerken, moet u - indien geactiveerd - eerst inloggen op de NodeRed-configuratie-interface.

knooppunt code
Naast het dashboardknooppunt worden voor deze weergave alleen standaardknooppunten en bijbehorende Linux-opdrachten gebruikt. Voeg eenvoudigweg de volgende knooppuntcode toe en vergeet vervolgens niet de dashboardelementen correct op uw dashboard te plaatsen.
Informatie hierover vind je ook in het artikel NodeRed - Maak een gebruikersinterface met dashboardknooppunten.


Knooppuntcode:
[{ "id": "fbbafb8d.8c3818", "type": "exec", "z": "ae220e4a.3c49d", "command": "vcgencmd Measure_temp", "addpay": false, "append": " ", "useSpawn": "", "timer": "", "oldrc": false, "name": "RPi-temperatuur", "x": 440, "y": 200, "draden": [ [" 17fa85a3.c0a5fa"], [], [] ] }, { "id": "610a759f.da34ec", "type": "injecteren", "z": "ae220e4a.3c49d", "name": "update 10sec ", "topic": "", "payload": "", "payloadType": "date", "repeat": "10", "crontab": "", "once": false, "onceDelay": " ", "x": 200, "y": 200, "draden": [ ["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;", "uitgangen": 1, "noerr": 0, "x": 660, "y": 200, "draden": [ ["e8f154dc.299398", "71f38a1c .ca6f64"] ] }, { "id": "4070b9bd.5796b8", "type": "exec", "z": "ae220e4a.3c49d", "command": "sudo reboot", "addpay": false , "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Herstart", "x": 430, "y": 540, "draden ": [ [], [], [] ] }, { "id": "77a93271.11eabc", "type": "exec", "z": "ae220e4a.3c49d", "command": "sudo shutdown -h nu", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Afsluiten", "x": 440, "y": 620, "draden": [ [], [], [] ] }, { "id": "6b5302eb.fe0fbc", "type": "exec", "z": "ae220e4a. 3c49d", "commando": "top -d 1 -b -n2 | grep ", "s": "|staart -n 1 | awk '{print $2 + $4}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "CPU Laatste", "x": 420, "y": 280, "draden": [ ["97612f41.a7f6e"], [], [] ] }, { "id": "f8494c08.39fe8", "type" : "exec", "z": "ae220e4a.3c49d", "command": "gratis | grep-meme | awk '{print 100*(($3+$5)/$2)}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "RAM", "x": 410, "y": 360, "draden": [ ["6ce43c7.2c89bc4"], [], [] ] }, { "id": "7b744c14 .050354", "type": "exec", "z": "ae220e4a.3c49d", "command": "df -h", "addpay": false, "append": "", "useSpawn": " ", "timer": "", "oldrc": false, "name": "Opslagruimte", "x": 440, "y": 440, "draden": [ ["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, "draden": [ ["f574e160.da0f1"] }, { "id": "da61973.d30f268", "type": "injecteren", " 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, "breedte " : 0, "height": 0, "passthru": false, "label": "Opnieuw opstarten", "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": "Afsluiten", "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": "CPU-temperatuur", "label": "C", "format": "{{value}}", "min": 0, "max": "100", "kleuren": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 910, "y": 180, "wires": [] }, { "id": "638024a7.6ca05c", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "6b432a4a.06ad54", "volgorde": 1, "breedte": 0, "hoogte": 0, "gtype": "maat", "titel": "CPU", "label": "CPU", "format ": "{{value}}%", "min": 0, "max": "100", "kleuren": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y": 300, "draden": [] }, { "id": "d80d6326.88202", "type": "ui_gauge", "z": "ae220e4a.3c49d", "naam": "", "groep": "6b432a4a.06ad54", "volgorde": 1, "breedte": 0, "hoogte": 0, "gtype": "maat", " title": "Geheugen", "label": "RAM", "format": "{{value}}%", "min": 0, "max": "100", "kleuren": ["#00b500" , "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 880, "y": 360, "draden": [] }, { "id": " f574e160.da0f1", "type": "ui_gauge", "z": "ae220e4a.3c49d", "name": "", "group": "6b432a4a.06ad54", "order": 1, "width": 0, "height": 0, "gtype": "gage", "title": "Schijf", "label": "Opslag", "format": "{{value}}%", "min": 0 , "max": "100", "kleuren": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y" : 440, "draden": [] }, { "id": "71f38a1c.ca6f64", "type": "ui_chart", "z": "ae220e4a.3c49d", "name": "", "groep" : "5fe5a9b.a8a6158", "order": 2, "width": 0, "height": 0, "label": "CPU-temperatuurgeschiedenis", "chartType": "line", "legend": "false" , "xformat": "HH:mm:ss", "interpolate": "lineair", "nodata": "", "dot": false, "ymin": "", "ymax": "", "removeOlder ": "24", "removeOlderPoints": "", "removeOlderUnit": "3600", "cutout": 0, "useOneColor": false, "kleuren": ["#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5"], "useOldStyle": true, "x": 930, "y": 240, "draden": [ [] , [] ] }, { "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;", "uitvoer ": 1, "noerr": 0, "x": 690, "y": 360, "draden": [ ["d80d6326.88202"] ] }, { "id": "97612f41.a7f6e", "type ": "function", "z": "ae220e4a.3c49d", "name": "deleteWhitespace", "func": "str = msg.payload\r\nmsg.payload = str.trim();\r\ nreturn msg;", "uitgangen": 1, "noerr": 0, "x": 690, "y": 280, "draden": [ ["638024a7.6ca05c"] ] }, { "id": " 75f679fd.1125a8", "type": "inject", "z": "ae220e4a.3c49d", "name": "Afsluiten", "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": "Raspi-gegevens", "icon": "dashboard", "bestelling": 1 }]
Veel plezier met het project
Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂
PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂
Hoi, heel mooie flow. Ik ben een beginner met node-red en kan er veel mee leren.
CPU-temperatuur en lopende geschiedenis. Voor het knooppunt RAM heb ik "mem" vervangen door "RAM" (Duitse Raspian :-), werkt ook. Maar de commando's voor "geheugenruimte" en "CPU" werken niet en helaas is mijn kennis niet voldoende voor een verandering. Zou je dat kunnen aanpassen voor een Duitse versie?
Bedankt en groet, Hajo.
hallo hajo,
Ik heb het allemaal nog eens getest. "Helaas" werkt alles voor mij. Kun je me wat meer info geven over wat er bij jou niet werkt? 🙂
Hartelijke groeten
Fabian
13-2-2023, 9:04:19 node: wijzigenString
functie : (fout)
"TypeError: msg.payload.search is geen functie"
???
Hallo Nerd,
Ik heb de flow gedownload en geïnstalleerd (ik ben ook een beginner).
Werkte prima...
Nu ik het systeem van de SD-kaart naar een HD heb overgezet, worden er geen waarden meer weergegeven in de CPU, het geheugen en de schijf...
CPU-temperatuur werkt.
Misschien heeft u een tip voor mij?
Hartelijke groeten
Jürgen
Hallo Jürgen,
ja, dat komt waarschijnlijk omdat de harde schijf een ander koppelpunt/pad heeft dan de SD-kaart.
Kannst du mir mal die Ausgabe von „df -h“ (einfach in die Konsole eingeben) schicken? Dann kann ich dir sagen wie der aktuelle Mountpoint lautet und wir können den NodeRed Code entsprechend anpassen. 🙂
Hartelijke groeten
Fabian
Hallo, helaas is er een fout geslopen in het CPU-belastingsknooppunt:
Het juiste commando in het exec knooppunt moet er als volgt uitzien:
top -d 1 -b -n2 | grep „%Cpu“ | tail -n 1 | awk ‚{print $2 + $4}‘
Zo werkte de advertentie