Cannot edit schedule #1184
Replies: 1 comment 1 reply
-
|
Thanks for reporting this. The bug is in how njsPC handles the sunrise/sunset (heliotrope) calculation on a fresh install before your controller has sent its latitude/longitude coordinates. What's happening: On startup, njsPC tries to calculate sunrise/sunset times but doesn't have coordinates yet. There was a bug where it marked the calculation as "done" even though it failed — so when you try to edit a schedule, the code thinks sunrise/sunset values exist and crashes trying to read them. The fix has been pushed — it corrects the internal flag so isCalculated only reports true when valid sunrise/sunset data actually exists, and adds null guards at the schedule edit call sites as a safety net. If you're still seeing issues after updating, your EasyTouch may not be sending coordinates, or they haven't arrived yet at the time you edit a schedule. You can set them manually via either: Option 1 — Environment variables (set before launching njsPC):Option 2 — From the dashPanel UI:Navigate to the gear icon (System Configuration) → General → and set your Latitude/Longitude there. This writes the values to poolConfig.json and takes effect immediately. (Replace the example values with your actual coordinates.) Once your EasyTouch sends its general config with lat/lon, or you set them manually, heliotrope will calculate sunrise/sunset and schedule editing will work normally. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
My raspberry pi 3B died on me, and micro Center has some decent prices on raspberry pi-5.
With NVME SSD, this thing is smoking fast. And install all the software in seconds.
Besides the fact that GPIO doesn't work anymore, I am unable to edit any of the schedules on my EZ touch.
When I try to change the time, this is the error I get.
Error: General Error
MessageCannot read properties of undefined (reading 'getHours')
TypeError: Cannot read properties of undefined (reading 'getHours')
at TouchScheduleCommands.setScheduleAsync (/home/pi/nodejs-poolController/controller/boards/EasyTouchBoard.ts:768:58)
at /home/pi/nodejs-poolController/web/services/config/Config.ts:974:55
at Layer.handle [as handle_request] (/home/pi/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at next (/home/pi/nodejs-poolController/node_modules/express/lib/router/route.js:149:13)
at Route.dispatch (/home/pi/nodejs-poolController/node_modules/express/lib/router/route.js:119:3)
at Layer.handle [as handle_request] (/home/pi/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at /home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:284:15
at Function.process_params (/home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:346:12)
at next (/home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:280:10)
at /home/pi/nodejs-poolController/web/services/config/Config.ts:136:40
at Layer.handle [as handle_request] (/home/pi/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:328:13)
at /home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:286:9
at Function.process_params (/home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:346:12)
at next (/home/pi/nodejs-poolController/node_modules/express/lib/router/index.js:280:10)
at /home/pi/nodejs-poolController/web/Server.ts:758:25
Beta Was this translation helpful? Give feedback.
All reactions