-
Notifications
You must be signed in to change notification settings - Fork 0
The Home of Icarus
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:
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
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.
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.