Octopus Agile emoncms app

I’ve made a start on an emoncms app for exploring the cost implications of the Octopus Agile time of use tariff available in the UK.

You may have seen @Zarch’s forum post and website that also allows for exploring historic agile costs as well as the Octopus Go tariff: My Octopus Agile & Go Tariff comparison / analysis website we are also using the agile tariff for the DemandShaper module and DSR development: OpenEnergyMonitor Demand Side Response Development

The emoncms app allows for selection of the relevant tariff region and shows the cost for the selected period at the bottom of the graph window. The app calculates for every half hour in the view the cost based on consumption x unit cost.

The tariff histories are stored on emoncms.org and are publicly accessible e.g: Emoncms - graph 396105 the app pulls these tariff profiles in on the fly.

I’ve pushed the app up to the apps module in both master and stable branches: app/octopus.php at master · emoncms/app · GitHub

To test the app:

  1. Run emonpi/emonbase update to pull in the latest version of the apps module.
  2. Click on Apps > New to bring up the list of available apps.
  3. Click on the Octopus Agile app
  4. In the app config: select your use and cumulative use_kwh feed (same as my electric).
  5. In the app config: select your tariff region
  6. Launch app to view the result

Further development
At present you can only see a maximum of 2 months at one time, this is because of the maximum number of data point limit in the feed/data API. Id like to make it possible to process say a full year of data to see the results over an extended time. Id also like to include the octopus go tariff for comparison.

Personal reflection
Part of the motivation for putting this together was that I wanted to check what kind of cost I’d be looking at before making the switch to the agile tariff and I’m pleasantly surprised how low the average unit cost is for my consumption pattern (including a heat pump an EV). I’ve been conscious of need to shift as much as I can to off-peak times already from a grid perspective, but still I am currently on a flat tariff so the financial incentive is not there - I imagine Id be able to do a bit better with the additional nudge…

Here are a couple of screenshots showing examples of what I see and how the price changes winter through to summer:

Last 24 hours:

Last 7 days:

Last 30 days:

Jan - Feb 2019:


This is awesome @TrystanLea.

Glad my site could be of some inspiration. :blush:

Can’t wait to give this a try and see how it comes out.

1 Like

Thanks @Zarch :slight_smile:

What time do you usually sync in the new tariff data @Zarch? I dont want to make too many api calls to the octopus server…

Their website says the data is available from 4pm each day.

At first I had my cron scheduled for 5pm and there was the odd occasion where the data wasn’t there. So i’ve since moved the cron on to 6pm and i’ve had no problems since.

I’ve not yet found a way of checking if there is any new data with a simple API call… you know, like ‘last updated time’ or something similar. So I just make all my calls at 6pm.

14 x Agile incoming (import)
14 x Agile outgoing (export)
14 x Go

I could really do with some checking around whether there is data there and retry later if not… but its been working ok for the last few months as is… so loathed to change it.

I noted your comment about max API calls, hence only 2 months data… is that on the emoncms side?

If you need all the historic data I could easily send you something over. Be that the script that pulls all the historic data… and maybe even some csv?

I don’t think there are too many limits on the Octopus end for API calls. That initial bulk download script of mine made 14 (one for each DNO) x about 500 days of data. :slight_smile:

Thanks @Zarch, great, is that 6pm UTC? I’ve mine set to that now on a cron.

I’ve downloaded all the historic data using the page parameter, so yes 465 x 14 calls in total :slight_smile:

Yes that’s an emoncms API limitation to only return ~3000 datapoints per feed/data request on the emoncms.org server, its 8928 datapoints for local installs, a year of half hourly values is 17520 datapoints. The requests just gets a bit slow with those numbers as its returning a timestamp in milliseconds for each datapoint… just the way its currently designed.

Thanks again

6pm UK time. :grinning:

Wow, this is fantastic, it works really great

The last month I would have averaged 8.6p/kWh on Octopus Agile

I’m currently on Octpus Go (5p/kwh 0030 - 0430, 14p/kwh all day) which is marginally cheaper for me. I’m able to compare using Emoncms ‘Time of use’ app:

1 Like

I really like this but a couple of thoughts on the UI.

  • It should be clearer that the figures on the bottom are figures for the period in view (well at least I think they are).

  • A legend would be useful, again you can sort of surmise that the black line is the price (plus or Ex VAT) but it is not immediately clear. Same for the scale units.


Sure I had the same thoughts myself :slight_smile:

1 Like

Had some thoughts on the commute this morning @TrystanLea… sad, I know. :rofl:

Have you thought about expanding the functionality to the export side of things? ie for Octopus Outgoing?

The number one dilemma I have right now is whether to move my export payments to Octopus. In essence there are three options available.

  1. Stay with current FIT provider and continue to receive deemed 50% of what I generate at 5.38p per kWh
  2. Move to Octopus Outgoing (fixed) and receive 5.5p per kWh for EVERYTHING I export (so no more deemed 50%)
  3. Move to Octopus Outgoing (Agile) and receive the daily Outgoing Agile rate or EVERYTHING I export (so no more deemed 50%)

Now that is a comparison i’d be thrilled to see based on my historic usage.

Does that make sense?

1 Like

Hi Trystan

This is very interesting and I’ll be keeping an eye on your progress. If your heating controls support IFTTT then you can use the Agile Octopus IFTTT channel to choose the cheapest hour to put your heat pump on for the hot water.

On a personal level I switched to Agile in December and my usage so far suggests that our house will have cost £300 for its electricity in the first year which is pretty awesome.

It’s a one-bedroom house but it is electrically heated (ASHP here too) and we charge our EV at home. We have 6kW of PV and a Powerwall 2 which means we don’t use grid electricity at all during the 4pm-7pm premium period. There’s a blog about it on my website where you can see the bills we’ve had.


Indeed! thumbsup

Wow, this is fantastic, and will help me in deciding whether to move to Octopus Agile. Also interesting to see how low the price dips overnight, or more to the point how it frequently doesn’t drop to the 5p of the Octopus Go tariff, but only gets down to about 7p during many of the nights.

1 Like

Great, I read your blog here: RED Electrical - Our Agile Octopus electricity tariff blog I haven’t done the calculations yet, but what impact would you say the tariff has on payback of a battery system? vs the case for battery storage on a flat tariff with PV?


Great idea :slight_smile: I had not originally, but can see that that would be useful. I will have a think about it, I guess the first step is to download the data for GO and agile export. Il be working on this in stages in amongst other work, so will consider this for the next stage.

1 Like


This looks really interesting - our provider has just been taken over by Octopus. We’re also just going through the design of a new build, so getting ready to work out how we’re going to heat the new house etc. Will almost certainly be GSHP, SolarPV and Battery system.

Anyway, the question is, will this new app work with my old emoncms installation? I’m currently on 9.7.7 - on the basis that if it ain’t broke, don’t fix it! :slight_smile:


1 Like

Thanks @Bramco

I dont think it will work, as the latest version of the app module includes modifications to use the new menu system.

Can you make it available through the emoncms.org server so we don’t have to download it to our local installs?


Good idea, I’ve added it to emoncms.org.