Skip to content

The Home of Icarus

V999TEC edited this page Nov 18, 2023 · 21 revisions

See also https://github.com/V999TEC/GivEnergyPlugs/wiki/The-Home-of-Icarus for background details to GivEnergyPlugs

The Octopussy project started as a way of exploring the Octopus Smart Energy API with a particular focus on half-hour Agile pricing for grid import and export

While there are several graphical views available for the current unit pricing (such as https://agile.octopushome.net/dashboard ) what was required for my own use was to know the optimum time to start a task of a known duration (to achieve the lowest price). It was also desireable to check how much I would be saving compared to the standard fixed rate tariff, currently around 27p.

The basic functionality quickly evolved to capture historical pricing and consumption data and to provide summaries of usage over past days/weeks/months/years all of which is configurable via a properties file.

The project is pure java and the executable is a jar which runs unchanged on Windows or Linux providing a JRE is installed on those operating systems.

The view is rendered on the command line, so no fancy graphics are involved. On Windows the cmd shell should have ANSI graphics enabled (just so that a few colours can be shown to highlight good times for import/export) and codepage 65001 set for UTF-8 compatibility (rather than default chcp 850). The code is just as happy on a Raspberry Pi as it is a on a simple NUC running Windows 10. There is no reason why it wouldn't run anywhere there is a JRE installed.

Have fun and take a look at the README at https://github.com/V999TEC/Octopussy

Saturday 14 October 2023:

Upcoming best import price periods:
      30 min period from Sat Oct 14  3:00 pm to 15:29  has average price: -1.34p
 1 hr        period from Sat Oct 14  2:30 pm to 15:29  has average price: -0.99p
 1 hr 30 min period from Sat Oct 14  2:00 pm to 15:29  has average price: -0.53p
 2 hr        period from Sat Oct 14  1:30 pm to 15:29  has average price: -0.50p
 2 hr 30 min period from Sat Oct 14  1:00 pm to 15:29  has average price: -0.10p
 3 hr        period from Sat Oct 14 12:30 pm to 15:29  has average price:  0.09p
 3 hr 30 min period from Sat Oct 14 12:00 pm to 15:29  has average price:  0.24p
 4 hr        period from Sat Oct 14 11:30 am to 15:29  has average price:  0.34p
 4 hr 30 min period from Sat Oct 14 11:00 am to 15:29  has average price:  0.52p
 5 hr        period from Sat Oct 14 10:30 am to 15:29  has average price:  0.56p
Upcoming best export price periods:
      30 min period from Sat Oct 14  6:30 pm to 18:59  has average price: 22.27p
 1 hr        period from Sat Oct 14  6:00 pm to 18:59  has average price: 21.48p
 1 hr 30 min period from Sat Oct 14  5:30 pm to 18:59  has average price: 21.02p
 2 hr        period from Sat Oct 14  5:00 pm to 18:59  has average price: 19.78p
 2 hr 30 min period from Sat Oct 14  4:30 pm to 18:59  has average price: 19.19p
 3 hr        period from Sat Oct 14  4:30 pm to 19:29  has average price: 18.56p
 3 hr 30 min period from Sat Oct 14  4:30 pm to 19:59  has average price: 17.73p
 4 hr        period from Sat Oct 14  4:30 pm to 20:29  has average price: 17.04p
 4 hr 30 min period from Sat Oct 14  4:00 pm to 20:29  has average price: 16.35p
 5 hr        period from Sat Oct 14  4:30 pm to 21:29  has average price: 15.85p
Export & Import prices current & future:                                              | 1hr | 1.5 | 2hr | 2.5 | 3hr | 3.5 | 4hr | 4.5 | 5hr |HH:MM
  1.31p  Sat Oct 14 10:30 am   !   0.84p   <--- PLUNGE BELOW 3p !!!                   | 1.42| 1.28| 1.26| 1.21| 1.26| 1.02| 0.94| 0.77| 0.56|10:30
  1.82p  Sat Oct 14 11:00 am   !   2.00p   <--- PLUNGE BELOW 3p !!!                   | 1.50| 1.40| 1.31| 1.34| 1.05| 0.96| 0.76| 0.52| 0.74|11:00
  1.38p  Sat Oct 14 11:30 am   !   1.01p   <--- PLUNGE BELOW 3p !!!                   | 1.11| 1.07| 1.18| 0.86| 0.78| 0.58| 0.34| 0.60| 2.38|11:30
  1.47p  Sat Oct 14 12:00 pm   !   1.20p   <--- PLUNGE BELOW 3p !!!                   | 1.11| 1.23| 0.82| 0.74| 0.51| 0.24| 0.55| 2.54| 5.46|12:00
  1.38p  Sat Oct 14 12:30 pm   !   1.01p   <--- PLUNGE BELOW 3p !!!                   | 1.25| 0.70| 0.62| 0.37| 0.09| 0.46| 2.70| 5.93| 8.35|12:30
  1.60p  Sat Oct 14  1:00 pm   !   1.49p   <--- PLUNGE BELOW 3p !!!                   | 0.55| 0.49| 0.21|-0.10| 0.37| 2.95| 6.55| 9.16|12.15|13:00
  0.75p  Sat Oct 14  1:30 pm   !  -0.40p   <--- PLUNGE BELOW 3p !!!                   |-0.01|-0.22|-0.50| 0.14| 3.19| 7.27|10.12|13.34|16.04|13:30
  1.10p  Sat Oct 14  2:00 pm   !   0.38p   <--- PLUNGE BELOW 3p !!!                   |-0.13|-0.53| 0.28| 3.91| 8.55|11.62|15.06|17.87|20.48|14:00
  0.65p  Sat Oct 14  2:30 pm   !  -0.63p   <--- PLUNGE BELOW 3p !!!                   |-0.99| 0.24| 4.79|10.18|13.49|17.15|20.06|22.71|23.66|14:30
  0.33p  Sat Oct 14  3:00 pm  !!  -1.34p   <--- PLUNGE BELOW 3p !!!                   | 0.68| 6.59|12.88|16.32|20.11|23.01|25.63|26.36|26.37|15:00
  2.13p  Sat Oct 14  3:30 pm   !   2.69p   <--- PLUNGE BELOW 3p !!!                   |10.56|17.62|20.74|24.41|27.07|29.48|29.82|29.45|29.03|15:30
 10.86p  Sat Oct 14  4:00 pm      18.43p  ******************A                         |25.08|26.75|29.83|31.95|33.94|33.70|32.80|16.35|30.95|16:00
 16.82p  Sat Oct 14  4:30 pm      31.74p  ******************A********X****            |30.91|33.64|35.33|19.19|18.56|17.73|17.04|16.34|15.85|16:30
 16.07p  Sat Oct 14  5:00 pm      30.08p  ******************A********X***             |34.58|36.52|19.78|18.90|17.88|17.07|16.28|15.75|15.11|17:00
 20.11p  Sat Oct 14  5:30 pm      39.09p  ******************A********X************    |39.74|21.02|19.61|18.24|17.24|16.31|15.71|15.00|14.56|17:30
 20.69p  Sat Oct 14  6:00 pm      40.39p  ******************A********X*************   |21.48|19.44|17.77|16.66|15.68|15.08|14.37|13.94|13.36|18:00
 22.27p  Sat Oct 14  6:30 pm      43.92p  ******************A********X***************>|18.82|16.80|15.65|14.68|14.14|13.46|13.09|12.55|     |18:30
 15.37p  Sat Oct 14  7:00 pm      32.26p  ******************A********X*****           |29.36|27.97|26.47|25.88|11.99|11.78|11.33|     |     |19:00
 12.77p  Sat Oct 14  7:30 pm      26.46p  ******************A********                 |25.83|24.54|24.29|23.21|22.91|10.76|     |     |     |19:30
 12.21p  Sat Oct 14  8:00 pm      25.20p  ******************A*******                  |23.58|23.56|22.40|22.21|21.20|     |     |     |     |20:00
 10.76p  Sat Oct 14  8:30 pm      21.97p  ******************A***                      |22.74|21.47|21.46|20.40|     |     |     |     |     |20:30
 11.46p  Sat Oct 14  9:00 pm      23.52p  ******************A*****                    |21.22|21.29|20.01|     |     |     |     |     |     |21:00
  9.40p  Sat Oct 14  9:30 pm      18.92p  ******************A                         |20.17|18.84|     |     |     |     |     |     |     |21:30
 10.52p  Sat Oct 14 10:00 pm      21.42p  ******************A***                      |18.80|     |     |     |     |     |     |     |     |22:00
  8.17p  Sat Oct 14 10:30 pm   !  16.17p  *****************                           |     |     |     |     |     |     |     |     |     |22:30

Or with ANSI colour:

Advanced

Modify the my.properties file used with Octopussy to add something like this:

# Advanced: individual logs created by https://github.com/V999TEC/GivEnergyPlugs
sample0=WashingMachine30C-1.log

The log file has been created previously by project GivEnergyPlugs

Example of output from the Octopussy analysis indicates the cost of running (in this case) a Washing Machine at some time in the future:

       WashingMachine30C-1.log : 1 hours 12 mins 39 secs &  0.453 kWhr consumed equivalent to 373.8 watts averaged over 4359 secs
	Tue 16:30	18.22 p
	Tue 10:29	 7.10 p   --> 	16.72p / 15.46p / 16.36p / 16.32p 
					   60s /  1800s /  1800s /   699s
					 50.4w / 681.8w / 130.5w / 234.8w

Here we see the worst time to start the Washing Machine using the same menu options as before would cost over 18p

In fact starting at 10:29 am is the cheapest at 7.1p.

The samples obtained from GivEnergyPlugs must be numbered incrementally from zero eg:

sample0=WashingMachine30C-1.log
sample1=WashingMachine60C-1.log
sample2=DishWasherAuto-1.log
sample3=DishWasherAuto-2.log

Creating a composite from a series of samples from the same device being measured

It is also possible to average out multiple samples and do the cost assessment based on a group of samples.
Once again a zero index is used

group0=2,3

The above example causes DishWasherAuto-1.log and DishWasherAuto-2.log to be combined and averaged before the costs are assessed
The numbers following group0= are the sampleN index numbers, in this case sample2 & sample3

Whenever the group0=2,3 property key/value is used, a fresh log file will be created or replaced in the form Samples-2,3.log
The log file generated will represent a composite average of the supplied samples.

Once a composite log file has been created, there is no point in regenerating each time from the individual sample files
The recommendation is to rename the Samples-2,3.log to something more meaningful, such as DishWasher-2,3.log
Then modify the properties file to comment out the group0 key and the sampleN keys that made up the group
Finally add the composite log file as a new sample (in this case sample2=DishWasher-2,3.log )

#group0=2,3
sample0=WashingMachine30C-1.log
sample1=WashingMachine60C-1.log
#sample2=DishWasherAuto-1.log
#sample3=DishWasherAuto-2.log
sample2=DishWasher-2,3.log

By using the group mechanism to form a composite from many log files, a better estimate will be created to represent the energy usage of a device
This will permit a better prediction of the best time / lowest cost when scheduling the device to run again.

Anecdotal Observations - Bosch Dish Washer

The Dish Washer used in testing was a "Bosch Serie | 6" (which is WiFi connected) but was configured for hot fill rather than cold.
The reason was that was due to the home having a solar thermal system, hot water was often available cheaply and very cold water did not to be heated each time by electricity to reach the necessary temperature specified by the selected programme cycle.
The variation in the input water temeperature (maximum 60C) accounted for different energy usage measured by the SmartPlug for the same programme selection. The cycle time also varied, but not be much.

Since the Dish Washer was WiFi connected the machine was never really "off" and was generally in a standby state, consuming a small amount of power intermitently.
A further observation was that when the timer was set to delay the start of the wash cycle (such as running in the middle of the night) more energy than the default "standby" usage was consumed while the Dish Washer was waiting to start.