Nodered et la persistance des variables

Nodered et le stockage des variables

Pour le stockage des variables de flow ou globales nodered par défaut utilise le stockage « in memory », du coup vous voyez ce que ça va donner au restart de nodered :boom: vos variables disparaissent ! Pas cool.
Il existe donc une seconde méthode de stockage des variable qui se sert du filesystem, du coup vos variables sont stockées dans un fichier json, et en cas de restart de nodered on ne perds rien :slight_smile:
Pour l’activer vous devez ajouter ceci à la fin du settings.js de nodered :

    contextStorage: {
        default: {
            module: "localfilesystem"
        },
        memoryOnly: {
            module: "memory"
        }
    }

2 cas de figure :

  • Vous utilisez l’addon nodered : Le fichier de config settings.js se trouve dans le dossier config de votre HA => /config/node-red/settings.js
    Vous pouvez le modifier à l’aide de l’addon file editor par exemple, ou bien via samba avec votre éditeur préféré (coucou VSCode !). Enregistrez, et relancez l’addon nodered.
    image
    Pensez bien à ajouter la virgule juste à la ligne 200 dans mon screenshot !
    Pour être certain de votre modification vous pouvez passer votre fichier de config à jslint

  • Vous faites tourner votre propre nodered : Vous devez bien savoir ou se trouve votre fichier de configuration et comment l’éditer :slight_smile:

Une fois la config modifiée et nodered redémarré (je dis bien redémarré ! Pas un deploy hein !)
Vous pouvez pour vérifier ajouter un noeud « change » et vérifier et mettant une règle « set » to « flow » et sur la droite vous aurez un choix « default » => stockage fichier json qui conserve les données même avec un restart et « memoryOnly » l’option qui perds la mémoire au restart :slight_smile:
image

Evidemment, si l’option « memoryOnly » ne vous intéresse pas, vous pouvez la supprimer de la config et ne garder que le stockage persistant (perso, c’est ce que je fais…) :

    contextStorage: {
        default: {
            module: "localfilesystem"
        }
    }

Petit tip au passage, si vous utilisez l’addon nodered, le fichier json ou sont stockées les variables de nodered est inclus dans les snapshots complets de HA :slight_smile:

6 « J'aime »

Bonjour, je viens de suivre votre Tuto et ma fois , rien de nouveau!
je vous envoie une image; je n’ai pas mis la virgule en question…
merci

J’ai l’impression que tu mets de la config nodered dans un fichier de HA… Ca va pas le faire!
Il faut éditer settings.js comme indiqué dans le tuto.

Il faut mettre cette configuration dans le settings.js de nodered, pas dans le configuration.yaml de home assistant.

Là, dans le configuration.yaml ça risque de faire crier HA :wink:

1 « J'aime »

Oui, j’ai remarqué…mais je n’arrive pas a l 'afficher se setting.js…grrrr
du coup j’ai bidouillé et je n’ai plus node red sous HA
Moi je me sers pas de HA, j’ai ré-installé node sur mon Rasp…mais probleme de dashboad

Finalement, suis revenu avec Node red sous HA; désinstaller et réinstaller de nouveau et tout marche.

MI