@runnane/node-red-contrib-easee

0.6.2 • Public • Published

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

npm downloads

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: {},
  }
});

Example

See example flows image

Credits and references

Package Sidebar

Install

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

Weekly Downloads

9

Version

0.6.2

License

Apache-2.0

Unpacked Size

95.2 kB

Total Files

12

Last publish

Collaborators

  • runnane