SergiuToporjinschi / node-red-contrib-heater-controller

Heater controller for node-red dashboard
GNU General Public License v3.0
18 stars 17 forks source link

accessing UI blocks nodered since udate few days ago #39

Closed ouinouin closed 2 years ago

ouinouin commented 4 years ago

hi, i updated few days ago the heater controller, since this update nodered is very slow and also the context files get bigger and bigger . i dont have any starting point of what to do to troubleshoot this, nodered doesnt give me any error, just while accessing the UI, it nearly blocks all the other flows, making them very slow or unusable.

SergiuToporjinschi commented 4 years ago

Hi, are you sure that is caused by this node? what do you mean by "context files"?

ouinouin commented 4 years ago

Hi, in nodered, the context of the flows can be stored either in memory or to disk : https://nodered.org/docs/user-guide/context I choose to have the context stored to disk for some flows to be stateful upon reboots.

the issue triggered once more yesterday, the normal context file for your node is as follows: root@blacknuc:/var/lib/docker/volumes/node_red_user_data/_data# cat context/6aa448d.ec428b8/9740f50f.8c3f2.json { "values": { "currentTemp": 18.055555555555557, "targetValue": 18, "isUserCustom": false, "currentSchedule": { "temp": 18, "day": "Wednesday", "time": "11:00" }, "nextSchedule": { "temp": 19, "day": "Wednesday", "time": "12:00" }, "currentHeaterStatus": "on", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } } } but for some reason, each time nodered crashed, i found this file being around 300MB size, and containing an repetition of the json presented above. I dont know what triggers this file increase , i just moniroterd it for one hour and the content is refreshed (meaning nodered is writing it every 30 seconds) but not increasing (content remains the same).

then nodered gives up reaching more than 1GB memory trying to load this file while restarting. (the reason why it restarts is not clear to me and doesn t appears in the logs.

in my flow the node 9740f50f.8c3f2 is the heater controller. if i clear the context file and restart, everything goes great... until the next time where this file will be filled.

SergiuToporjinschi commented 4 years ago

Hi, mhm, I understand, I have it also to save in file. But to be honest... I did not verified that file. so why 30 sec ? you are sending messages once at 30sec? so is outputting this in the file when it gets a message? I do not do anything to save in the file I'm just calling the node.context.set function which ... is normal...

ouinouin commented 4 years ago

hi, while you re using the context to disk in nodered, it flushed the context to disk every 30 seconds, thats why I mention the 30 seconds : https://nodered.org/docs/user-guide/context#context-stores

since the restart of today, i see the context size increasing a little bit. the size on disk was 5.5kB at startup, now it is 33kB { "values": { "currentTemp": 20.33333333333333, "targetValue": 20, "isUserCustom": false, "currentSchedule": { "temp": 20, "day": "Wednesday", "time": "14:00" }, "nextSchedule": { "temp": 20, "day": "Wednesday", "time": "15:00" }, "currentHeaterStatus": "off", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 20, "14:00": 20, "15:00": 20, "16:00": 20, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } }, "userTargetValue": 20.8, "logs": [ { "currentTemp": 18.833333333333336, "targetValue": 19.8, "isUserCustom": true, "currentSchedule": { "temp": 19, "day": "Wednesday", "time": "12:00" }, "nextSchedule": { "temp": 20, "day": "Wednesday", "time": "13:00" }, "currentHeaterStatus": "on", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 20, "14:00": 20, "15:00": 20, "16:00": 20, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } }, "userTargetValue": 19.8, "time": "2/26/2020, 12:28:21 PM" }, { "currentTemp": 18.833333333333336, "targetValue": 20.8, "isUserCustom": true, "currentSchedule": { "temp": 19, "day": "Wednesday", "time": "12:00" }, "nextSchedule": { "temp": 20, "day": "Wednesday", "time": "13:00" }, "currentHeaterStatus": "on", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 20, "14:00": 20, "15:00": 20, "16:00": 20, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } }, "userTargetValue": 20.8, "time": "2/26/2020, 12:28:22 PM" } ], "time": "2/26/2020, 12:28:22 PM" }, "logs": [ { "currentTemp": 18.833333333333336, "targetValue": 19.8, "isUserCustom": true, "currentSchedule": { "temp": 19, "day": "Wednesday", "time": "12:00" }, "nextSchedule": { "temp": 20, "day": "Wednesday", "time": "13:00" }, "currentHeaterStatus": "on", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 20, "14:00": 20, "15:00": 20, "16:00": 20, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } }, "userTargetValue": 19.8, "time": "2/26/2020, 12:28:21 PM" }, { "currentTemp": 18.833333333333336, "targetValue": 20.8, "isUserCustom": true, "currentSchedule": { "temp": 19, "day": "Wednesday", "time": "12:00" }, "nextSchedule": { "temp": 20, "day": "Wednesday", "time": "13:00" }, "currentHeaterStatus": "on", "calendar": { "Monday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Tuesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Wednesday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 20, "14:00": 20, "15:00": 20, "16:00": 20, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Thursday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Friday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Saturday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 }, "Sunday": { "00:00": 18, "01:00": 18, "02:00": 18, "03:00": 18, "04:00": 19, "05:00": 20, "06:00": 18, "07:00": 18, "08:00": 19, "09:00": 19, "10:00": 18, "11:00": 18, "12:00": 19, "13:00": 18, "14:00": 18, "15:00": 18, "16:00": 18, "17:00": 20, "18:00": 20, "19:00": 20, "20:00": 20, "21:00": 20, "22:00": 18, "23:00": 18 } }, "userTargetValue": 20.8, "time": "2/26/2020, 12:28:22 PM" } ] I can see a log object in the JSON , that was not present at startup, maybe this log is what makes the file getting bigger and bigger ?

SergiuToporjinschi commented 4 years ago

Hi, again: did you looked here? https://nodered.org/docs/api/context/store/localfilesystem#options there i found:

flushInterval | If caching is enabled, the minimum interval between writes to storage, in seconds. Default: 30

can you send me here the contextStorage setting that you have in settings.js? !!!Remove or mask the path for security reasons; :)

currently I've activate it like this

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

and creates a file but has only

{
    "infoNode": {
        "currentTemp": 25,
        "targetValue": 26.5,
        "isUserCustom": true,
        "isUserCustomLocked": false,
        "userTargetValue": 26.5,
        "currentSchedule": {
            "temp": 22,
            "day": "Thursday",
            "time": "16:40"
        },
        "nextSchedule": {
            "temp": 19,
            "day": "Thursday",
            "time": "23:59"
        },
        "currentHeaterStatus": "on",
        "time": "2/27/2020, 7:32:08 PM"
    }
}

and i cannot identify when is changin this file, the content is my output. about the logs, I don't know which version you are using but there is a logging option which keeps some information about when the status has changed; something like this image

SergiuToporjinschi commented 4 years ago

@ouinouin is still happening ?

ouinouin commented 4 years ago

Hi, @SergiuToporjinschi sorry for late reply the issue still happens to me, i just came back home after one week away, system is nearly inoperant, the file has grown to 383mB. as soon as i rm the file and restart nodered i gain control. my contextstorage is same as yours :

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

i dont seem to have the log lenght in my ui version I use the version found in the palette of nodered (and i basically miss skills on npm stuff to do otherwise.) any hints to get the latest version installed easily ? (my version is 2.0.1).

Capture d’écran de 2020-03-05 07-16-32

edit : finally managed to get the latest version by placing myself in the /data folder in the nodered docker container and issued a : npm install https://github.com/SergiuToporjinschi/node-red-contrib-heater-controller.git#b82c5c2789f8394ff19314cbf7ced5894e80cb55 to get to your latest commit, i can now see the log section, i ll try to disable the logs or at least limit them and i ll keep you informed. Edit2 : with the latest commit, the heater ui is no more displaying (localhost:1880/ui) and the block got now two outputs, but its outputs nothing, whatever the input. I dont know if its because of some dependency that is missed by npm or something like that...

SergiuToporjinschi commented 4 years ago

I do not advice you to install an unreleased version, because currently I'm doing a major refactoring on it and most probably you will end up with a lot of bugs.

If you have the latest node-red then you can go in to upper right corner burger menu choose manage palette, search for node-red-contrib-heater-controller, and you should have an update button.

image image

SergiuToporjinschi commented 4 years ago

today I will set my local system with

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

and test it. But I think you have found a node-red issue because I think I tested with this setting and it was just replacing the content. And want node-red-contrib-heater-controller version are you using ? because I cannot test all version against all settings... maybe I've done something wrong in a specific version

ouinouin commented 4 years ago

Hi, up to this morning i was using the version found in the palette : 2.0.1, basically if everything work i use only palette manager to make updates. I think this has to do about the logging since the growing context file was full of "log" json entries. I ll revert to 2.0.1 (but in 2.0.1 the log option is not available in the menus) , i ll also try to setup something to log the file growth. rememeber to try to find the issue that i used to drive may thermostat since many month with that and this error has triggered after my latest update from the version earlier to 2.0.1 to 2.0.1. (the update was done through the palette manager. but is might also be a bug in the filestorage of nodered context. i m not good at coding, but have enough skills to monitor my system, tell me if you want me to put something under surveillance. additional information, i trigger this block by a temperature coming every 30 seconds. regards.

SergiuToporjinschi commented 4 years ago

@ouinouin I think your problem is similar with this one #46 I will have a look this weekend and find a way to fix this.

SergiuToporjinschi commented 4 years ago

@ouinouin please see this https://github.com/SergiuToporjinschi/node-red-contrib-heater-controller/issues/46#issuecomment-595927340 I think is also solving your problem. Let me know if it fixes this issue. Thank you!

maggiagg commented 4 years ago

Hi I can verify that the heater node is doing something very strange with memory and cpu.

Some background

What I do:

image

SergiuToporjinschi commented 2 years ago

The new version has been released, please check on latest version and reopen if is the case