HowTo: Node Red – Toon de systeemgegevens van de Raspberry Pi op het dashboard

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.

Weergave van het aanmeldingsvenster. Hier moet u de inloggegevens invoeren die u tijdens de configuratie van de login hebt opgegeven. Informatie hierover vind je in het artikel NodeRed - gebruikersaanmelding instellen.

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.

Je dashboard met de RaspberryPi-informatie kan er zo uitzien.
Weergave van de gekoppelde knooppunten.

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. 🙂

Koop Me a Coffee op ko-fi.com       

6 comments

  1. Hoi, heel mooie flow. Ik ben een beginner met node-red en kan er veel mee leren.
    CPU-temperatuur en geschiedenis uitvoeren. Voor node RAM heb ik “mem” vervangen door “memory” (Duits Raspian :-), het werkt ook. Maar de commando's voor "opslagruimte" en "CPU" werken niet en helaas is mijn kennis niet voldoende om een verandering aan te brengen. Kunt u dit aanpassen voor een Duitse versie?
    Bedankt en groet, Hajo.

    1. hallo hajo,
      Ik heb zojuist het geheel nog eens getest. “Helaas” werkt bij mij alles. Kunt u mij wat meer informatie geven over wat bij u niet werkt? 🙂
      Hartelijke groeten
      Fabian

  2. 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

    1. Hallo Jürgen,
      ja, dat komt waarschijnlijk omdat de harde schijf een ander koppelpunt/pad heeft dan de SD-kaart.
      Kun je mij de uitvoer van “df -h” sturen (typ het gewoon in de console)? Dan kan ik je vertellen wat het huidige mountpunt is en kunnen we de NodeRed-code dienovereenkomstig aanpassen. 🙂
      Hartelijke groeten
      Fabian

  3. Hallo, leider hat sich im Node CPU-Last ein Fehler eingeschlichen:
    Der korrekte Befehl im exec Node muss wie folgt aussehen:
    top -d 1 -b -n2 | grep “%Cpu” | tail -n 1 | awk ‘{print $2 + $4}’
    So hat die Anzeige funktioniert

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.