question

daza avatar image
daza asked

Force discharge and charge during Octopus Power Up Session

Hi guys does anyone know how to make the free power up session work automagically when octopus do it so we can get an automatic sign up and maybe an hours battery dump just before and then an hours charge? @Craig Chamberlain normally clued up about NodeRed and octopus this is the first one down here so wanted node red to force discharge the batteries for an hour and then charge them up in the free Power session have they got something similar to the saver session?

Node-RED
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

10 Answers
Craig Chamberlain avatar image
Craig Chamberlain answered ·

Hi Daza, yeah I got the email today from Octopus about this event between 1pm and 2pm (for us at least) but haven’t had any time to look into it properly.

I’m not quite sure what we’re planning to do to take advantage of it because normally by 1pm our batteries are already full although tomorrow is forecast for rain so we might get some power into the batteries during the event.

Yes we could force discharge in advance but normally we’re pulling in more power than we can export at that time anyway so no scope for additional export. I would have to plan further ahead and export during the night or in the early hours of the morning which then requires an accurate solar forecast.

Our EV is already fully charged so we can’t even charge it up! One thing we could do is make our heat pump do a forced water tank heat cycle.

I’ll try to monitor the Octopus API during the scheduled hour to see if there are any indicators which could potentially be used to set up a NodeRED flow. Will let you know if I see anything of interest.

Cheers.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

daza avatar image
daza answered ·

Nice one mate I’m not at home so can’t force discharge so it’s a pain as I could have made something on that as solar is down at the mo, yeah wish I was home as the car would have been a winner lol so just dehumidifiers washing and what the missis is going to cook oh and the dishwasher has been saved for tonight for tomorrow lol takes 2 hours may as well get an hour free and then let the batteries take the last hour ;) Very interested in this but may have to do a state of charge with this one just so not left short if they do it later in the day

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

daza avatar image
daza answered ·

@Craig Chamberlain did you see any activity that would be able to be used for a signup and an hour battery dump if the battery is 80% or more as it looks like it’s going to happen around this time and thinking if it goes into winter offering this 1 hour window there would be no solar to compensate.

Man it was a sunny day tried everything to use more my battery charged up in 30mins lol.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·
Hi, unfortunately I was in the middle of a software release at work so didn't have any time to analyse the Octopus API.


However, I was able to set a new record for consumption on my grid meter of 15kW by charging my batteries at 70A DC max, charging the EV at 32A AC and using the heat pump to heat the water cylinder. I also did a force discharge of the batteries before the free hour and then charged them back up via a combination of the 70A from the Multiplus plus another 40A+ from the MPPTs. It was a dull rainy day otherwise I might have set a new battery charge record too!

Will see how it works out once Octopus do their sums but I have my doubts that the gains will be worth spending a whole lot of time trying to automate things. It's just not quite the same win-win situation that you get with Saving Sessions. It might be different in the winter when solar fades away and any grid energy I can get for free might save me from peak rate consumption, but right now it's very rare indeed for me to pay any more than 7p/kWh for electricity.

Hopefully I'll be able to pay more attention to things next time this happens.

:)

1 Like 1 ·
daza avatar image
daza answered ·

@Craig Chamberlain yes I’m the same now I’ve got the other batteries im using all off peak to run the house, yeah the saver sessions where straight forward I had a lot of sun managing 4812kW out of a 4500kW on paper system, I’ll be interested to see how this thing shakes out also if you get nothing much then no point. As I only managed 2.89kW i was fighting solar all day.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·
Yeah, I had the advantage ( in this case ) of having DC coupled solar so I could capture PV energy unimpeded at the same time as importing from the grid at max power.

More often I find I can't export power fast enough to match the DC import from the panels.

First world problems I guess....

Seriously though, we should always prioritise capturing as much solar from our own roofs before we accept "free" electricity from the grid. If we can do both then great but don't feel bad because you had too much solar to make use of free grid energy. In this case you are part of the "solution" not part of the problem.

1 Like 1 ·
daza avatar image
daza answered ·

@Craig Chamberlain lol true, but they didn’t waste anytime now one on Sunday

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

daza avatar image
daza answered ·

@Craig Chamberlain this seems to be a regular thing one just in today for tomorrow, I was lucky to be at home Sunday so done a forced discharge and then charge during the period but would love to automate this so I’m not waiting by the phone for the time to change to start discharge or charge. Didn't want to but just done a crude NodeRed time based solution, so have to make sure i disable it after the session or the next day other wise it just continues. But at least its a one button solution for now

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·
Yeah, on Sunday I was outside working on laying a patio so wasn't really able to take advantage of it fully. Hopefully tomorrow I might be in a better position to interrogate the Octopus API to see if they have added any features specific to these free electricity sessions. I just find these sessions to be way less compelling than the Saving Sessions where, over the course of 1.5 hours I was able to earn up to £24.


With the free sessions, over the hour, if I do forced export then I can make £0.15 / kWh which for me equates to £0.60 at 4kW export. But then you lose a chunk of that in discharge/charge efficiency. So I'm not convinced that forced export only to reimport makes sense in general.

What does make obvious sense is to use the free electricity to charge up the batteries (ESS & EV) and any hot water storage (heat pumps or immersion heaters), and use any high load appliances like washing machines etc. But automating across those things is less than straightforward and obviously putting a load of washing on requires a bit more than automation.

So I'd say, make the most of the free electricity when you can but don't worry if you can't capture every single penny.

0 Likes 0 ·
daza avatar image
daza answered ·

@Craig Chamberlain yeah true the saver sessions are the best, but if this continues into winter with the saver sessions then that would be great. But I’m about 80 odd percent at 12 o‘clock so I’m charged in less than the hour. Yeah dishwasher is loaded car is waiting till tomorrow for charge washing machine and fresh bread tomorrow ;) takes four hours but at least one hour is free lol

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·

From what they say on the Octopus site, these sessions don't look like they will continue into winter. I think we're more likely to go back to Saving Sessions in winter as before. But I think it's all part of an experiment so it's conceivable that on particularly windy and sunny days in winter we might see excess renewable energy.

I found this issue on Github for the Home Assistant project where some folks are discussing whether these new sessions can be detected via the Octopus API and it looks like the answer is no for the time being. I think I'll just monitor this discussion rather than embarking on any research of my own as these guys know what they are looking for.

https://github.com/BottlecapDave/HomeAssistant-OctopusEnergy/issues/973

In the meantime, they suggest it is possible to manually create a calendar event with associated automation to kick in at the appropriate time and start ESS and EV batteries charging etc. You could even have devices plugged into 13A sockets to control things like dehumidifiers. It all depends how much effort you want to put into it.

I think I'll maybe look into doing something like this to at least automate charging my ESS batteries because the last thing I want to do is consume battery power during a free electricity session. If I can also somehow instruct my heat pump to heat the hot water and the EV to charge then even better but these are less important. I don't think I'll bother pursuing automated force discharge in advance of a free session as I think that would require a good solar & consumption forecast plus current SoC in order to decide if a forced discharge might result in insufficient battery charge to last the rest of the day.

1 Like 1 ·
daza avatar image
daza answered ·

Will have to look at this thread too, my dehumidifiers are on smart plugs already I just find HA harder to get automations running, but may have to look harder as I try to shift a lot of control from my over lord ^pple, HA can see everything apart from my EV charger because Indra seem very lax in there API approach.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

daza avatar image
daza answered ·

@Craig Chamberlain guess who forgot there node red lucky I put the notifications, I’m surprised it worked as it didn’t yesterday which annoyed me, then seeing the message it’s discharge which it does flawlessly but then again it would as I’m at work luckily I was able to get into nodered to stop it

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

daza avatar image
daza answered ·

@Craig Chamberlain managed to make 3.12 for the hour excluding export of which i do twice, ie before the session and one later in the day as part of my battery maintenance. Thanks to @nickdb who basically wrote the battery maintenance code for me that i put into a code for the Power Up Session it has to be enabled manually but should be able to be done on the day or the day before just make sure you don't start it before 12:00 as the system is set to discharge and make sure its after 14:00 as its set to charge in the hour window of 13:00 to 14:00. I'll post the code it may help someone out. PS you need to manually disable after the power up as it will run the next day too and you still need to sign up to the session with octopus first this doesn't do that if someone gets round to that Please post the code>


[

{

"id": "7d89bad95a1fa8e7",

"type": "tab",

"label": "Octopus Power Up",

"disabled": true,

"info": "",

"env": []

},

{

"id": "d902b02f123defde",

"type": "function",

"z": "7d89bad95a1fa8e7",

"name": "SOC",

"func": "// Initialize soc and gridsetpoint with system values\nvar soc = flow.get(\"soc\");\nvar gridsetpoint = -flow.get(\"setpoint\");\nvar ccl = 0;\n\n// Set variables: soc, gridsetpoint\nif (soc > 68) {\n gridsetpoint = { payload: -6700 };\n ccl = { payload: -1 };\n return [ gridsetpoint, ccl ];\n}\nif (soc < 65) {\n gridsetpoint = { payload: -50 };\n ccl = { payload: -1 };\n return [ gridsetpoint, ccl ];\n}",

"outputs": 2,

"timeout": "0",

"noerr": 0,

"initialize": "",

"finalize": "",

"libs": [],

"x": 250,

"y": 120,

"wires": [

[

"108bc6911f90c7de"

],

[

"c86b3901801191fd",

"0d77220316e83d29"

]

]

},

{

"id": "f3138f5cedf0fa0c",

"type": "change",

"z": "7d89bad95a1fa8e7",

"name": "",

"rules": [

{

"t": "set",

"p": "soc",

"pt": "flow",

"to": "payload",

"tot": "msg"

}

],

"action": "",

"property": "",

"from": "",

"to": "",

"reg": false,

"x": 510,

"y": 20,

"wires": [

[]

]

},

{

"id": "f46f99aca1b86e24",

"type": "change",

"z": "7d89bad95a1fa8e7",

"name": "",

"rules": [

{

"t": "set",

"p": "setpoint",

"pt": "flow",

"to": "payload",

"tot": "msg"

}

],

"action": "",

"property": "",

"from": "",

"to": "",

"reg": false,

"x": 480,

"y": 60,

"wires": [

[]

]

},

{

"id": "262ffe5aa0658a29",

"type": "inject",

"z": "7d89bad95a1fa8e7",

"name": "Max Discharge",

"props": [

{

"p": "payload"

}

],

"repeat": "",

"crontab": "*/1 12 * * *",

"once": false,

"onceDelay": "",

"topic": "",

"payload": "-50",

"payloadType": "num",

"x": 100,

"y": 140,

"wires": [

[

"d902b02f123defde"

]

]

},

{

"id": "4272d24f98b8c64d",

"type": "debug",

"z": "7d89bad95a1fa8e7",

"name": "setpoint output",

"active": true,

"tosidebar": true,

"console": false,

"tostatus": false,

"complete": "payload",

"targetType": "msg",

"statusVal": "",

"statusType": "auto",

"x": 500,

"y": 180,

"wires": []

},

{

"id": "de62b5ddac970823",

"type": "victron-output-ess",

"z": "7d89bad95a1fa8e7",

"service": "com.victronenergy.settings",

"path": "/Settings/CGwacs/AcPowerSetPoint",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/CGwacs/AcPowerSetPoint",

"type": "integer",

"name": "Grid set-point (W)",

"writable": true

},

"initial": "",

"name": "",

"onlyChanges": false,

"x": 600,

"y": 100,

"wires": []

},

{

"id": "0d77220316e83d29",

"type": "debug",

"z": "7d89bad95a1fa8e7",

"name": "CCL output",

"active": true,

"tosidebar": true,

"console": false,

"tostatus": false,

"complete": "payload",

"targetType": "msg",

"statusVal": "",

"statusType": "auto",

"x": 650,

"y": 140,

"wires": []

},

{

"id": "c86b3901801191fd",

"type": "victron-output-settings",

"z": "7d89bad95a1fa8e7",

"service": "com.victronenergy.settings",

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/SystemSetup/MaxChargeCurrent",

"type": "float",

"name": "DVCC system max charge current (A DC)",

"writable": true

},

"name": "",

"onlyChanges": false,

"x": 550,

"y": 340,

"wires": []

},

{

"id": "71d4c039a860d2b5",

"type": "victron-input-battery",

"z": "7d89bad95a1fa8e7",

"service": "com.victronenergy.battery/512",

"path": "/Soc",

"serviceObj": {

"service": "com.victronenergy.battery/512",

"name": "Pylontech battery"

},

"pathObj": {

"path": "/Soc",

"type": "float",

"name": "State of charge (%)"

},

"name": "",

"onlyChanges": true,

"x": 190,

"y": 20,

"wires": [

[

"f3138f5cedf0fa0c"

]

]

},

{

"id": "529e83b06202ce38",

"type": "victron-input-ess",

"z": "7d89bad95a1fa8e7",

"service": "com.victronenergy.settings",

"path": "/Settings/CGwacs/AcPowerSetPoint",

"serviceObj": {

"service": "com.victronenergy.settings",

"name": "Venus settings"

},

"pathObj": {

"path": "/Settings/CGwacs/AcPowerSetPoint",

"type": "integer",

"name": "Grid set-point (W)"

},

"name": "",

"onlyChanges": true,

"x": 180,

"y": 80,

"wires": [

[

"f46f99aca1b86e24"

]

]

},

{

"id": "a8fd41c539789168",

"type": "pushover",

"z": "7d89bad95a1fa8e7",

"name": "",

"device": "",

"title": "Stop Power Up Due to %",

"priority": "0",

"sound": "falling",

"url": "",

"url_title": "",

"html": false,

"x": 670,

"y": 300,

"wires": []

},

{

"id": "85b42f2b0208e43d",

"type": "switch",

"z": "7d89bad95a1fa8e7",

"name": "",

"property": "payload",

"propertyType": "msg",

"rules": [

{

"t": "eq",

"v": "-6700",

"vt": "num"

}

],

"checkall": "false",

"repair": false,

"outputs": 1,

"x": 450,

"y": 220,

"wires": [

[

"3c0281b16473e1b8"

]

]

},

{

"id": "f7a08832633fd813",

"type": "switch",

"z": "7d89bad95a1fa8e7",

"name": "",

"property": "payload",

"propertyType": "msg",

"rules": [

{

"t": "eq",

"v": "-50",

"vt": "num"

}

],

"checkall": "false",

"repair": false,

"outputs": 1,

"x": 410,

"y": 260,

"wires": [

[

"036357a00387e7db"

]

]

},

{

"id": "036357a00387e7db",

"type": "delay",

"z": "7d89bad95a1fa8e7",

"name": "Delay Message",

"pauseType": "rate",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "day",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": true,

"allowrate": false,

"outputs": 1,

"x": 460,

"y": 300,

"wires": [

[

"a8fd41c539789168"

]

]

},

{

"id": "3c0281b16473e1b8",

"type": "delay",

"z": "7d89bad95a1fa8e7",

"name": "Delay Message",

"pauseType": "rate",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "day",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": true,

"allowrate": false,

"outputs": 1,

"x": 600,

"y": 220,

"wires": [

[

"9740b46416b42515"

]

]

},

{

"id": "82420a06d69fbbd4",

"type": "pushover",

"z": "7d89bad95a1fa8e7",

"name": "",

"device": "",

"title": "Power Up Max Charge",

"priority": "0",

"sound": "climb",

"url": "",

"url_title": "",

"html": false,

"x": 500,

"y": 460,

"wires": []

},

{

"id": "e4b1139a4eb30ed8",

"type": "pushover",

"z": "7d89bad95a1fa8e7",

"name": "",

"device": "",

"title": "Power Up Complete",

"priority": "0",

"sound": "climb",

"url": "",

"url_title": "",

"html": false,

"x": 660,

"y": 420,

"wires": []

},

{

"id": "9740b46416b42515",

"type": "pushover",

"z": "7d89bad95a1fa8e7",

"name": "",

"device": "",

"title": "Power Up Max Discharge",

"priority": "0",

"sound": "climb",

"url": "",

"url_title": "",

"html": false,

"x": 770,

"y": 180,

"wires": []

},

{

"id": "3b6b868385e08eef",

"type": "function",

"z": "7d89bad95a1fa8e7",

"name": "SOC",

"func": "// Initialize soc and gridsetpoint with system values\nvar soc = flow.get(\"soc\");\nvar gridsetpoint = -flow.get(\"setpoint\");\nvar ccl = 0;\n\n// Set variables: soc, gridsetpoint\nif (soc > 30) {\n gridsetpoint = { payload: 8000 };\n ccl = { payload: -1 };\n return [ gridsetpoint, ccl ];\n}\nif (soc < 25) {\n gridsetpoint = { payload: -50 };\n ccl = { payload: -1 };\n return [ gridsetpoint, ccl ];\n}",

"outputs": 2,

"timeout": "0",

"noerr": 0,

"initialize": "",

"finalize": "",

"libs": [],

"x": 130,

"y": 240,

"wires": [

[

"52860341be62367a"

],

[

"c86b3901801191fd"

]

]

},

{

"id": "2fe97f482f74831c",

"type": "inject",

"z": "7d89bad95a1fa8e7",

"name": "Max Charge",

"props": [

{

"p": "payload"

}

],

"repeat": "",

"crontab": "*/1 13 * * *",

"once": false,

"onceDelay": "",

"topic": "",

"payload": "-50",

"payloadType": "num",

"x": 90,

"y": 180,

"wires": [

[

"3b6b868385e08eef"

]

]

},

{

"id": "aed538293f88184d",

"type": "switch",

"z": "7d89bad95a1fa8e7",

"name": "",

"property": "payload",

"propertyType": "msg",

"rules": [

{

"t": "eq",

"v": "8000",

"vt": "num"

}

],

"checkall": "false",

"repair": false,

"outputs": 1,

"x": 150,

"y": 420,

"wires": [

[

"95947d247daa638c"

]

]

},

{

"id": "95947d247daa638c",

"type": "delay",

"z": "7d89bad95a1fa8e7",

"name": "Delay Message",

"pauseType": "rate",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "day",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": true,

"allowrate": false,

"outputs": 1,

"x": 300,

"y": 440,

"wires": [

[

"82420a06d69fbbd4"

]

]

},

{

"id": "d43b96f015144150",

"type": "inject",

"z": "7d89bad95a1fa8e7",

"name": "Power Up Complete",

"props": [

{

"p": "payload"

}

],

"repeat": "",

"crontab": "*/1 14 * * *",

"once": false,

"onceDelay": "",

"topic": "",

"payload": "-50",

"payloadType": "num",

"x": 120,

"y": 280,

"wires": [

[

"b675fdcdfdc9adc7"

]

]

},

{

"id": "b675fdcdfdc9adc7",

"type": "function",

"z": "7d89bad95a1fa8e7",

"name": "SOC",

"func": "// Initialize soc and gridsetpoint with system values\nvar soc = flow.get(\"soc\");\nvar gridsetpoint = -flow.get(\"setpoint\");\nvar ccl = 0;\n\n// Set variables: soc, gridsetpoint\nif (soc > 30) {\n gridsetpoint = { payload: -50 };\n ccl = { payload: 3 };\n return [ gridsetpoint, ccl ];\n}\nif (soc < 25) {\n gridsetpoint = { payload: -50 };\n ccl = { payload: 3 };\n return [ gridsetpoint, ccl ];\n}",

"outputs": 2,

"timeout": "0",

"noerr": 0,

"initialize": "",

"finalize": "",

"libs": [],

"x": 130,

"y": 360,

"wires": [

[

"110d373de6480175",

"4cf75c20e586926c"

],

[

"c86b3901801191fd"

]

]

},

{

"id": "4b859ce2fb5a1be5",

"type": "delay",

"z": "7d89bad95a1fa8e7",

"name": "Delay Message",

"pauseType": "rate",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "day",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": true,

"allowrate": false,

"outputs": 1,

"x": 460,

"y": 400,

"wires": [

[

"e4b1139a4eb30ed8"

]

]

},

{

"id": "110d373de6480175",

"type": "switch",

"z": "7d89bad95a1fa8e7",

"name": "",

"property": "payload",

"propertyType": "msg",

"rules": [

{

"t": "eq",

"v": "-50",

"vt": "num"

}

],

"checkall": "false",

"repair": false,

"outputs": 1,

"x": 290,

"y": 380,

"wires": [

[

"4b859ce2fb5a1be5"

]

]

},

{

"id": "b74e606d39398ccc",

"type": "link in",

"z": "7d89bad95a1fa8e7",

"name": "link in 2",

"links": [

"52860341be62367a"

],

"x": 65,

"y": 420,

"wires": [

[

"aed538293f88184d"

]

]

},

{

"id": "52860341be62367a",

"type": "link out",

"z": "7d89bad95a1fa8e7",

"name": "link out 2",

"mode": "link",

"links": [

"b74e606d39398ccc",

"99f921c22718d7b0"

],

"x": 215,

"y": 220,

"wires": []

},

{

"id": "99f921c22718d7b0",

"type": "link in",

"z": "7d89bad95a1fa8e7",

"name": "link in 3",

"links": [

"52860341be62367a",

"4cf75c20e586926c"

],

"x": 405,

"y": 100,

"wires": [

[

"de62b5ddac970823"

]

]

},

{

"id": "4cf75c20e586926c",

"type": "link out",

"z": "7d89bad95a1fa8e7",

"name": "link out 3",

"mode": "link",

"links": [

"99f921c22718d7b0"

],

"x": 235,

"y": 340,

"wires": []

},

{

"id": "108bc6911f90c7de",

"type": "link out",

"z": "7d89bad95a1fa8e7",

"name": "link out 4",

"mode": "link",

"links": [

"ba1074e58d39e7f0"

],

"x": 345,

"y": 100,

"wires": []

},

{

"id": "ba1074e58d39e7f0",

"type": "link in",

"z": "7d89bad95a1fa8e7",

"name": "link in 4",

"links": [

"108bc6911f90c7de"

],

"x": 365,

"y": 160,

"wires": [

[

"f7a08832633fd813",

"85b42f2b0208e43d",

"4272d24f98b8c64d",

"de62b5ddac970823"

]

]

}

]


1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Craig Chamberlain avatar image Craig Chamberlain commented ·
Glad to see you’re having fun! :)

I’m a bit too busy with other projects at present to really spend any time on these free electricity sessions but we do try to make the most of them as much as we can.

One helpful thing I have noticed is that Octopus have started treating the free electricity sessions as automatic EV charging slots for those on Intelligent Octopus Go like me. This means the EV will automatically start charging during that one hour period and will automatically stop at the end of the session. This is really handy for me because I already have a Node RED flow which detects those EV charging slots and I can make my ESS batteries charge at the same time.

In general I really need to do some analysis on my setup and energy consumption because since we installed our heat pump, our consumption is obviously quite a bit higher than before. This changes the calculus and makes it more beneficial to always charge the batteries during off-peak electricity periods rather than just charge up to a certain SoC and let solar charging do the rest.

All first world problems of course. :)

0 Likes 0 ·