Un mini-tuto pour envoyer par mail les flows et package (palette) de node-red chaque jour à 00h00 avec l’adresse ip du NRX800 (au cas ou il y en a plusieurs ), les node-modules ne sont pas backupés mais le json package contient la liste des nodes et facilite la recharge
Importer le node « node-red-node-email » en cliquant sur « Gérer la palette »
Cliquez sur l’onglet latéral « Palette »
Entrez le nom du node « node-red-node-email » et cliquez sur « Installer »
Importer le flow ci-dessous dans node-red en cliquant sur « Importer »
[
{
"id": "b75448df237642bb",
"type": "tab",
"label": "Backup Node-red",
"disabled": false,
"info": "",
"env": []
},
{
"id": "e6ebc27eef329379",
"type": "group",
"z": "b75448df237642bb",
"name": "Backup flows Node-red + IP du NRX800",
"style": {
"fill": "#e3f3d3",
"label": true,
"label-position": "n",
"color": "#000000"
},
"nodes": [
"244b96f9.09b36a",
"146501e3625d4627",
"928f5066b9e6a559",
"82cc86b55bc49509",
"fdafa8fa076a2b37"
],
"x": 54,
"y": 51.5,
"w": 1032,
"h": 97,
"info": "## "
},
{
"id": "244b96f9.09b36a",
"type": "inject",
"z": "b75448df237642bb",
"g": "e6ebc27eef329379",
"name": "Backup Node-red",
"props": [],
"repeat": "",
"crontab": "00 00 * * *",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 190,
"y": 100,
"wires": [
[
"82cc86b55bc49509"
]
]
},
{
"id": "146501e3625d4627",
"type": "function",
"z": "b75448df237642bb",
"g": "e6ebc27eef329379",
"name": "Construction de l'email",
"func": "const date = new Date()\nconst ip = msg.payload\n\nmsg.topic = `Backup-Node-red - ${date} - ${ip}`\n\nmsg.payload = `<h1>Backup des flows Node-red NRX800</h1>`\nmsg.attachments = [\n { \n filename: `flows.json`,\n path: \"/home/nrx800/.node-red/flows.json\"\n },\n { \n filename: `flows_cred.json`,\n path: \"/home/nrx800/.node-red/flows_cred.json\"\n },\n { \n filename: `package.json`,\n path: \"/home/nrx800/.node-red/package.json\"\n },\n { \n filename: `package-lock.json`,\n path: \"/home/nrx800/.node-red/package-lock.json\"\n }\n ]\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 820,
"y": 100,
"wires": [
[
"928f5066b9e6a559"
]
]
},
{
"id": "928f5066b9e6a559",
"type": "e-mail",
"z": "b75448df237642bb",
"g": "e6ebc27eef329379",
"server": "smtp.orange.fr",
"port": "465",
"authtype": "BASIC",
"saslformat": false,
"token": "oauth2Response.access_token",
"secure": true,
"tls": true,
"name": "xxxxxxx@orange.fr",
"dname": "email",
"x": 1010,
"y": 100,
"wires": []
},
{
"id": "82cc86b55bc49509",
"type": "exec",
"z": "b75448df237642bb",
"g": "e6ebc27eef329379",
"command": "hostname",
"addpay": false,
"append": "-I",
"useSpawn": "",
"timer": "",
"name": "Get Local IP",
"x": 390,
"y": 100,
"wires": [
[
"fdafa8fa076a2b37"
],
[],
[]
]
},
{
"id": "fdafa8fa076a2b37",
"type": "function",
"z": "b75448df237642bb",
"g": "e6ebc27eef329379",
"name": "Extrait adresse ipv4",
"func": "// Regular expression to match an IPv4 address\nvar ipv4Regex = /\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b/;\n\n// Extract the IPv4 address using the regex\nvar ipv4Match = msg.payload.match(ipv4Regex);\n\n// If an IPv4 address is found, set it as the new payload\nif (ipv4Match) {\n msg.payload = ipv4Match[0];\n} else {\n msg.payload = \"No IPv4 address found\";\n}\n\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 590,
"y": 100,
"wires": [
[
"146501e3625d4627"
]
]
}
]
Collez le flux et cliquez sur "Importer
Vous avez maintenant
Double-cliquez sur le node
Remplissez les champs et cliquez sur « Terminer »
Le node
est paramétré pour faire un envoi toutes les 24h, il est modifiable.
Il est possible de choisir les fichiers à envoyer dans le node « Construction de l’email »
@GCE pas de souci pour mettre le flow en natif dans l’image du NRX800