Questions about how AgileOctopus App works

Tags: #<Tag:0x00007f6e0f9a4fa0> #<Tag:0x00007f6e0f9a4eb0>


I’ve spotted the agile octopus app, and would like to create a modified version for my energy supplier - it works a similar way, though we only have whole hour prices rather than half hour.

I’ve looked in the code and it seems that you have the data in the public version of emoncms which self hosted versions pull the prices from - i that just a standard feed you have added the data to?

Ideally i’d like to replicate it locally and then if you think its useful could look at including it in emoncms - I am not sure how much interest would exist - the company is Tibber which is a Norwegian company that previously was available in Sweden and Norway, though they have just launched in Germany too - so potentially might be more interest as their potential market increases.

Incase there’s anyone in those areas interested in tibber - here’s a link to get 500Kr / 50 Euros to spend in their store:


One for @TrystanLea.

Still interested in the proper answer, but after writing my question i decided it probably was how it worked so set about getting the data into emoncms.

I post using: input/post?node=price&time=${timestamp}&json={“tibber”:$price} for each price, with the timestamp being the start time. I then take it from that input and use the log to feed to get it into its own feed.

I am going to also try and create a feed which multiplies the usage by the cost, so I can get my current price too.

I’ll try and get that working in a modified version of octopus app while i wait.



Feel free to open a PR on GitHub.

Best route is to fork the repo, create your own branch, make/commit the changes to your fork/branch then create the PR to push to the master.

Hello Gareth

Great to hear that you’r interested in adapting the app

Yes that’s correct, these feeds are pulled in here: they need to be PHPFina and with a feed interval of half an hour. You can change that line to load the feed locally with feed.getdata( rather than feed.getdataremote…