Mini-tuto NRX800 : Backup par email des flows Node-red + IP

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 :slight_smile: ), 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 »

3f9a55aae027006ed9d75f42aa94325efe044b9b

Cliquez sur l’onglet latéral « Palette »
Entrez le nom du node « node-red-node-email » et cliquez sur « Installer »

cb3b86d614d1bea532bba691133e9ac17869ae98

Importer le flow ci-dessous dans node-red en cliquant sur « Importer »
23ea5523fff09ce717eb5e824b0e4cb2e77479be

[
    {
        "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
2146c9252b51bb608aa78ec8d0543234a33da3dd

Remplissez les champs et cliquez sur « Terminer »
540b7be2c46ff43c3dcd51be268e24ddd0bf7335

Le node
808904391980c16501b8605593685569324a2acd

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 :wink:

2 « J'aime »