UPDATE (9/14/23): For the sake of your own sanity, roll back to the previous version of NodeRED temporarily. That got me back up and running sufficiently.
When I restarted NodeRED after updating the add-on a few minutes ago, I was met with a repeating error in the Add-On startup log and every one or two seconds, the entire error whips through the debug sidebar log, rendering that feature useless. I don’t know how to fix this, nor what is causing it, but here’s the error:
13 Sep 19:18:03 - [warn] Deprecated API warning: Calls to RED.util.evaluateJSONataExpression must include a callback. This will not be optional in Node-RED 4.0. Please identify the node from the following stack and check for an update on npm. If none is available, please notify the node author.
13 Sep 19:18:03 - [warn] Error:
at Object.evaluateJSONataExpression (/opt/node_modules/@node-red/util/lib/util.js:775:18)
at JSONataService.evaluate (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/common/services/JSONataService.js:58:39)
at TypedInputService.getValue (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/common/services/TypedInputService.js:58:85)
at EventsAll.getTypedInputValue (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:134:39)
at /config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:138:32
at Array.forEach (<anonymous>)
at EventsAll.setCustomOutputs (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:137:20)
at EventsAll.onHaEventsAll (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/events-all/controller.js:57:18)
at EventEmitter.<anonymous> (/config/node-red/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/EventsNode.js:39:17)
at EventEmitter.emit (node:events:526:35)
What changed and how in the world do I address it. This is a bit of spaghetti talk for my brain.
hey im trying to get the workaround going but im missing something obvious maybe
ran docker ps --format '{{.Names}}' | grep nodered
to get the name, since docker exec -it nodered bash
gave me an error. Am in the container now, but dont see /usr/src/node-red/node_modules/@node-red/util/lib/util.js in there?
Thank you for that @Kermit ! Very helpful. Although, the work-around that I found in that thread doesn’t match my setup. It suggests editing a file beneath a sub-folder called @node-red which my system doesn’t have.
I simply opted to restore the previous version for the time-being. In my case, I had used the Palette Manager in NodeRED to update the latest websocket for HA, not knowing that there was a NodeRED update which would do it, so my restored NodeRED has the upgraded nodes. I don’t know if that will be problematic, but at the very least, I can once again debug while building flows.
Since latest update my logs are also being flooded with these errors.
Error:
at Object.evaluateJSONataExpression (/opt/node_modules/@node-red/util/lib/util.js:775:18)
at JSONataService.evaluate (/opt/node_modules/node-red-contrib-home-assistant-websocket/dist/common/services/JSONataService.js:58:39)
at TypedInputService.getValue (/opt/node_modules/node-red-contrib-home-assistant-websocket/dist/common/services/TypedInputService.js:58:85)
at EventsAll.getTypedInputValue (/opt/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:134:39)
at /opt/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:138:32
at Array.forEach (<anonymous>)
at EventsAll.setCustomOutputs (/opt/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/BaseNode.js:137:20)
at EventsAll.onHaEventsAll (/opt/node_modules/node-red-contrib-home-assistant-websocket/dist/nodes/events-all/controller.js:57:18)
at EventEmitter.<anonymous> (/opt/node_modules/node-red-contrib-home-assistant-websocket/di...
figured this out, but i guess im only editing the file in memory here /opt/node_modules/\@node-red/util/lib/util.js since a restart wipes out the changes, just going to let the logging errors be for now since its not breaking anything per se
oh my goodness, why wasnt this picked up in beta testing!?
another breaking change.¨
people runs their homes on this and its breaking change after breaking change.
For future reference, a ‘breaking change’ is a planned deviation from a past practice. In other words, the developer intentionally makes a feature work in a new way that requires the user to make adaptations.
Based on the responses posted here, by the developer of the Home Assistant WebSocket node, it’s clear this issue was unintentional; it’s a bug, not a breaking change.
Breaking changes have been part of Home Assistant’s evolution throughout its ten years of existence. So have bugs; it’s the reality of this open-source software project.
Refer to the linked post for ways to mitigate the bug.