Releases: dirkjanfaber/node-red-contrib-eskomsepush
Releases · dirkjanfaber/node-red-contrib-eskomsepush
Release list
v0.1.1 — Documentation fixes
Documentation updates only — no functional changes.
- Update
curlexample to use the v3 API URL - Add note on the short area ID format required by v3 (
eskmo-15, noteskmo-15-ballitokwadukuzakwazulunatal) - Correct fetch interval description (dynamic based on remaining allowance, not fixed hourly)
- Update API docs link to developer.sepush.co.za/business/3.0/
- Fix two malformed HTML
idattributes in the inline Node-RED help
v0.1.0 — API v3 migration + TypeScript rewrite
⚠️ Action required: update your area ID
The EskomSePush API v2 is being retired on 1 September 2026. This release migrates to API v3.
If your area ID looks like eskde-10-fourways, update it to eskde-10 (keep only the first two dash-separated parts). The node will auto-migrate old IDs and keep working, but will log a warning until you update the configuration.
What's new
- API v3: All endpoints now use
https://developer.sepush.co.za/business/3.0/ - Area ID migration: Old v2-style IDs are detected and converted automatically. A
node.warn()message appears in the debug tab to remind you to update the node config.
Bug fixes
- Per-instance state: When multiple EskomSePush nodes existed in the same flow they silently shared data, causing incorrect readings. Each node now maintains its own state.
- Status display: The node status bar incorrectly prepended a weekday name to nearly every time string due to a day-of-week vs. day-of-month comparison bug.
- Event note crash: The node crashed if an event note did not contain a "Stage N" pattern.
Under the hood
- Rewritten in TypeScript
- Jest test suite added (29 tests covering the load shedding calculation and API client)
- Dependencies updated: axios 1.17, TypeScript 6, Node.js ≥ 18 required
v0.0.18
- Fixes a crash of the node when there is no loadshedding going on (issue #12)
Full Changelog: v0.0.17...v0.0.18
v0.0.17
- Fix in brackets (issue #11) Thanks again @nicopret1
- Reduce the sleeptime (minimum 10 minutes, maximum 60 minutes)
v0.0.15
- Fixes issue #10 ("TypeError: dates.stages[(EskomSePushInfo.calc.stage - 1)] is not iterable")
- Adds API allowance limit to keep API calls from being used by the node
Thanks @nicopret1 for the fixes and suggestions.
v0.0.14
- Add
calc.next.isHigherStage(issue #7 )
v0.0.13
Fixing an issue:
- "TypeError: dates.stages[EskomSePushInfo.calc.stage] is not iterable" (issue #5)
v0.0.12
Fixing some issues:
- When a schedule end time is on the next day, it was ignored. That is no longer the case.
- As the API resets at 2AM instead of midnight, the calculation until then is used instead for determining the sleep time between calls. Also added a check that the sleep time cannot be smaller than 10 minutes.
New feature
- Added an input to overrule some of the current behavior. Inserting a timestamp will output the data directly. Inserting of of the strings
allowance,areaorstagewill cause the node to fetch the requested part.
v0.0.11
Quite a big rewrite of a lot of the main functions, allowing for easier debugging of the code.
Also some new functionality added:
- Depending on the amount of API calls left for the day, the sleep time between calls is either increased or decreased.
- There now is a
msg.payload.calcfield, containing extra information like the seconds to the next state change and the start and end time (as javascriptnew Date(), so in milliseconds after the epoch), duration in seconds and more.
v0.0.8
- Fix in checking when events are active or not.
- Moved updating status to own function
- More typError checking
- Improved documentation