Node Red - Modification du fichier settings.js

Bonjour,

J’ai localisé dans le Terminal HA le fichier settings.js de Node Red qui permet de garder les flow et global en mémoire.
Normalement, la modif consiste à supprimer du mode commentaires (//) les lignes de code suivantes (ou de les rajouter éventuellement) :

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

Je suis dans le répertoire dans lequel se trouve le fichier
Je voudrais maintenant être bien sûr de la commande pour ouvrir le fichier, l’éditer* et l’enregistrer.
Si quelqu’un peut m’aider…
Merci d’avance,
patrickp78

Hello,

Tu peux aussi passer par File Editor dans HA :wink: ou VsCode ^^


Ce sera plus simple, non ?

OC

D’accord avec toi… à condition que je voie le dossier dans File Editor !!!

Si tu as Samba c’est simple depuis ton PC:

Sinon depuis file editor il y a cette option à décocher :
image

Bob

1 « J'aime »

J’ai fait le test ce matin et ça fonctionne mais comme tu partais sur des helpers sans global je n’ai pas partagé.
ça doit aussi fonctionner pour flow.set().

[{"id":"dbea5f3f3f2d4190","type":"tab","label":"Différence date ","disabled":false,"info":"","env":[]},{"id":"7756affa704fb4b8","type":"debug","z":"dbea5f3f3f2d4190","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":830,"y":200,"wires":[]},{"id":"0adec348a1076f06","type":"function","z":"dbea5f3f3f2d4190","name":"Jour","func":"msg.payload = msg.payload /1000 ;\nmsg.payload = parseFloat(msg.payload).toFixed(0);\nmsg.payload = Number(msg.payload);\nglobal.set('datejour1', msg.payload, \"default\");\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":630,"y":200,"wires":[["7756affa704fb4b8"]]},{"id":"81196c7c033e4f1f","type":"function","z":"dbea5f3f3f2d4190","name":"DiffDate","func":"var datejour1 = global.get('datejour1', \"default\");\nvar lastOnDate = global.get('lastOnDate', \"default\");\nvar tempsval =  datejour1 - lastOnDate;\ntempsval = ((tempsval /3600) );\ntempsval = parseFloat(tempsval).toFixed(0);\nmsg.payload = Number(tempsval -2);\nglobal.set('datenewexpir1', msg.payload, \"default\");\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":640,"y":140,"wires":[["8ee0a403f6df497a"]]},{"id":"7fd42899a359e63d","type":"inject","z":"dbea5f3f3f2d4190","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":210,"y":140,"wires":[["b131be350e4664d9","973ff7b22f5f6244"]]},{"id":"b131be350e4664d9","type":"ui_date_picker","z":"dbea5f3f3f2d4190","name":"","label":"date","group":"3c1c6a94b059fb77","order":2,"width":0,"height":0,"passthru":true,"topic":"topic","topicType":"msg","className":"","x":430,"y":200,"wires":[["0adec348a1076f06"]]},{"id":"8ee0a403f6df497a","type":"debug","z":"dbea5f3f3f2d4190","name":"debug 23","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":820,"y":140,"wires":[]},{"id":"56c1cf9535553e2e","type":"server-state-changed","z":"dbea5f3f3f2d4190","name":"Lampe Marine","server":"443ff1c5.63d78","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["light.lampe_marine"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":190,"y":60,"wires":[["852b3c2602b2e612","973ff7b22f5f6244"]]},{"id":"6c05704a4fe2ab65","type":"debug","z":"dbea5f3f3f2d4190","name":"debug 26","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":820,"y":60,"wires":[]},{"id":"852b3c2602b2e612","type":"function","z":"dbea5f3f3f2d4190","name":"function 3","func":"let dateOn = new Date().toISOString();\nmsg.payload = dateOn.substring(0,dateOn.length -5);\n\nmsg.payload = Date.parse(msg.payload) /1000;\nglobal.set('lastOnDate', msg.payload, \"default\");\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":60,"wires":[["6c05704a4fe2ab65","973ff7b22f5f6244"]]},{"id":"973ff7b22f5f6244","type":"delay","z":"dbea5f3f3f2d4190","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":440,"y":140,"wires":[["81196c7c033e4f1f"]]},{"id":"3c1c6a94b059fb77","type":"ui_group","name":"Utilities","tab":"7a0a419fb6a93b55","order":3,"disp":true,"width":"6","collapse":false},{"id":"443ff1c5.63d78","type":"server","name":"Home Assistant Bruno","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"7a0a419fb6a93b55","type":"ui_tab","name":"Arbeitszimmer","icon":"dashboard","order":3}]

Le résultat de ce flow est en heures.
N’oublie pas d’arroser en attendant :joy:

Bob

C’est effectivement beaucoup plus facile !!!
Merci

Pour autant, je comprend mal pourquoi ce contextStorage n’est pas activé par défaut…
Je vois que par rapport à mon code, tu as une virgule après la parenthèse (ligne 156). J’imagine qu’il faut la mettre ?

Sécurité je pense.
Il faut respecter la structure du fichier donc oui.

Bob

1 « J'aime »

Je vais me faire incendier mais Vi, Nano ou autre c’était bien en 1970, ou encore sur des serveurs sans interface graphique mais sur HA oublie :rofl:

Bob

T’inquiète ! Déjà je ne suis pas sur PC mais sur Mac.
Et depuis que tu m’as ouvert la porte des fichiers secrets de File Editor, c’est un plaisir !

Mon flux fonctionne bien ! Je remplace le test éclairage par les arroseurs, je vérifie et je le partage au cas où ça intéresse quelqu’un qui n’a pas le temps de galérer sur Nodered… :joy: :joy: :joy:

Et merci encore pour ton coup de main !

Et comme je l’ai dit dans l’autre question, à chaque (re)installation de l’addon, il faudra recommencer la manip.

1 « J'aime »

Salut

Si les fichiers sont cachés par défaut, il y a sûrement une bonne raison, voire plusieurs…
Entre autres et sans être complet j’ai bien en tête que dans 99% des cas ça ne sert à rien. Que dans les 1% restants ça reste une accès réservé à des choses dont on connaît parfaitement les risques et les conséquences. Et dans 100% des cas, une fausse manipulation risque d’être bien plus fatale !

2 « J'aime »

Ce sujet a été automatiquement fermé après 60 jours. Aucune réponse n’est permise dorénavant.