A live network map and telemetry manager for balancing local renewable energy across regional electricity grids (DNOs).
OpenGridNode is a decentralised mesh network for monitoring and aggregating domestic battery storage and solar export data across local DNO regions.
The architecture is fully flexible: a client node can connect directly to an existing regional hub, or you can host your own hub to manage local clients and peer with other hubs across the network.
- Install Dependencies: Run
npm installin the root,gridnode-hub,gridnode-client, andgridnode-crypto. - Configure Hub: Set up
gridnode-hub/.envwith your desired ports and keys. - Start Hub:
cd gridnode-hub && npm start. - Start Client:
cd gridnode-client && npm start.
To participate in the VPP and appear correctly on the cluster map, every node must be linked to a physical grid asset:
- Open your browser to
http://localhost:5101/config(or your configuredNODE_PORT). - Enter your Latitude and Longitude.
- Click Find & Link Substation.
- Final Step: Restart your client node process.
Your nodeId is a cryptographic fingerprint generated from your location metadata. Finalising the configuration and restarting ensures your node identifies itself correctly to the Hub, allowing for accurate regional aggregation and real-time export tracking at the substation level.
OpenGridNode uses an adapter pattern to support different hardware types. Set the ADAPTER_TYPE in your .env to one of the following:
givenergy-mqtt: Native support for GivEnergy systems via MQTT.generic: Connect any system using custom local MQTT topics or Modbus TCP registers.tesla: (In Development - Untested) Support for Tesla Powerwall.victron: (In Development - Untested) Support for Victron GX devices.
Note: Only the GivEnergy and Generic adapters are currently tested and verified. If you have access to Tesla or Victron hardware and want to help test, please see ADAPTERS.md for details on creating and testing new adapters.