1.0.5 • Published 6 months ago

@tvanlaerhoven/epex-client v1.0.5

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
6 months ago

Epex Client

The Epex Client package provides access to the latest European Power Exchange (EPEX) market data across all areas. It is intended primarily for hobbyist solutions.

License: GPL v3 npm version CI

Overview

The European Power Exchange (EPEX SPOT) is a market platform for the trading of electricity in Europe. It provides a marketplace for electricity producers, consumers, and traders to buy and sell electricity, aiming to create a transparent and efficient market for power trading.

The Epex Client package gives you access to the EPEX Spot Day-Ahead Market, where the electricity price and volume for each hour of the next day is established. You can work with these Day-Ahead prices by adjusting your electricity consumption patterns based on the price fluctuations. Here's how:

  • Shift High Consumption Activities: reduce energy costs by scheduling energy-intensive activities (like running washing machines, dishwashers, or electric heating) during hours when electricity prices are lower.
  • Use Home Automation: home automation systems or smart appliances can automatically adjust the timing of electricity usage based on the predicted lower-cost periods provided by the Epex-client.
  • Energy Storage: energy storage systems (like batteries) can store electricity during low-price hours and use it during peak-price hours.

Installation

npm i @tvanlaerhoven/epex-client

or

yarn add @tvanlaerhoven/epex-client

Usage

First create an Epex client, with optional configuration. The debug property allows for extra logging during usage of the client.

import * as Epex from '@tvanlaerhoven/epex-client';

const client = new Epex.Client({ debug: true });

Accessing day-ahead market data

The day-ahead market data contains the established electricity prices and quantities for a selected region, based on supply and demand. As an example. the data for MarketArea.Belgium can be requested as follows:

try {
    // Get today's hourly market data
    const data = await client.getDayAheadMarketData(Epex.MarketArea.Belgium, Epex.today());
    console.log(`Today's electricity price from 9h-10h is €${data.entries[9].price}`);
} catch(error) {
    console.error(error.message);
}

The requested delivery date is passed as a string "YYY-MM-DD", or using the convenient methods Epex.today() and Epex.tomorrow(). Note that prices for the next day are typically available in the early afternoon on the day before delivery.

SDAC (Single Day-Ahead Coupling), Great Britain and Switzerland

Most European countries are part of the SDAC (Single Day-Ahead Coupling) pan-European market coupling initiative, which allows cross-border electricity trading and price convergence. Since Brexit, Great Britain has its own market, and also Switzerland as a non-EU country is not part of the SDAC initiative. For both regions it is necessary to pass the auction name when requesting Day-Ahead prices:

const gbData = await client.getDayAheadMarketData(
    Epex.MarketArea.GreatBritain, 
    Epex.tomorrow(), 
    Epex.today(), 
    DayAheadAuction.GB_DAA1
);

const chData = await client.getDayAheadMarketData(
    Epex.MarketArea.Switzerland, 
    Epex.tomorrow(), 
    Epex.today(), 
    DayAheadAuction.CH
);

Displaying market data in a browser

The Epex website does not allow browser requests from any other location than its own host (CORS). To solve this, run a local proxy server that drops any CORS headers from the http request.

import * as Epex from '@tvanlaerhoven/epex-client';

const client = new Epex.Client({ proxyServer: 'http://localhost:8088', debug: true });

The example demonstrates this. Try it by running:

npm run example

The output is a page where you can choose to either visualize today's market prices in table or as a bar graph.

1.0.5

6 months ago

1.0.4

6 months ago

1.0.3

6 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago