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