@runnane/node-red-contrib-easee 0.7.5

Module for streaming Easee data. Based on node-red-contrib-signalrcore

npm install @runnane/node-red-contrib-easee

@runnane/node-red-contrib-easee npm module

npm downloads license

Node-Red module for streaming Easee charger data.

Features

  • SignalR streaming client
  • Pre-defined list of REST API GET/POST commands
  • Custom commands through REST API

Howto

npm i @runnane/node-red-contrib-easee

Add the easee Charger Streaming Client node Configure the node with username/password and the Charger ID.

Streaming node

Configure the node with username/password and a Charger ID ("EH000000"). Streaming telemetry from the signalR enpoint will be available in the fourth output, the ProductUpdate one.

REST node

Use the easee REST Client node Configure the node with an account username/password. The REST node will not authenticate on its own, so you will need to authenticate/renew tokens. However, if you use the easee Charger Streaming Client node, you do not need to authenticate additionally with the REST node, as the signalR socket will authenticate and renew automatically.

There are two ways of sending commands:

Sending predefined commands by topic

Send the your selected command as the topic into the node. You can set the charger, site and/or circuit variables directly in the node, or send them as msg.charger, msg.site and msg.circuit to override. Implemented commands that may be sent as topic, are:

  • login
  • refresh_token
  • charger
  • charger_details
  • charger_state
  • charger_site
  • charger_config
  • charger_session_latest
  • charger_session_ongoing
  • stop_charging
  • start_charging
  • pause_charging
  • resume_charging
  • toggle_charging
  • dynamic_current (Without msg.payload.body for reading (GET), and with msg.payload.body for setting (POST).)
  • reboot

Example, get charger details:

node.send({
  topic: "charger_details",
  charger: "EH000000",
});

Sending custom commands

Send the full path as msg.command, and optionally the POST body as msg.payload. See get_api-chargers for full list of commands. When adding a body, the request will be sent as a POST, else as a GET. If you wish to send a POST without body, add an empty object as POST argument.

Example to set dynamic current to 3x25A by doing a custom command with POST body:

Set dynamic current:

node.send({ 
  payload: {
    path: "/sites/1234/circuits/1345/dynamic_current",
    body: { phase1: 25, phase2: 25, phase3: 25 },
  }
});

Pause charging:

node.send({ 
  payload: {
    path: "/chargers/EH000000/commands/pause_charging",
    body: {},
  }
});

Development

Code Quality

This project uses ESLint for comprehensive code quality and formatting:

# Check for linting issues
npm run lint

# Auto-fix formatting issues  
npm run lint:fix

CI Integration: ESLint runs automatically on all pull requests and blocks merging if issues are found.

See ESLINT.md for detailed ESLint configuration and MIGRATION.md for completed JSHint migration details.

Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run with coverage
npm run test:coverage

# Run specific test types
npm run test:unit
npm run test:integration

Continuous Integration

The project uses GitHub Actions for CI/CD:

  • Code Quality: ESLint checks (blocking)
  • Testing: Jest test suite across Node.js 18, 20, 22, 24
  • Compatibility: Node-RED compatibility verification
  • Security: npm audit for vulnerabilities

All checks must pass before code can be merged to main branch.

Example

See example flows image

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits and Attribution

License Migration Notice

This project was migrated from Apache License 2.0 to MIT License in 2025. The original Apache License 2.0 code from the forked project node-red-contrib-signalrcore has been preserved in the LICENSE file for attribution purposes. All subsequent modifications and additions by Jon Tungland are licensed under the MIT License.

Dependencies

All dependencies are compatible with the MIT License:

  • @microsoft/signalr: MIT License

Node Info

Version: 0.7.5
Updated 5 days ago
License: MIT
Rating: 4.5 2

Categories

Actions

Rate:

Downloads

469 in the last week

Nodes

  • easee-configuration
  • easee-rest-client
  • charger-streaming-client

Keywords

  • easee
  • charger
  • ev
  • signalr
  • node-red

Maintainers