User Tools

Site Tools


drafts:dynamic_ess

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
drafts:dynamic_ess [2024-03-13 14:40] – [Q: I can't find the controls button on the dashboard] dfaberdrafts:dynamic_ess [2024-05-15 08:38] (current) – [Step 1: System] dfaber
Line 7: Line 7:
   * While taking grid limitations, battery specifications and day ahead energy prices into account,   * While taking grid limitations, battery specifications and day ahead energy prices into account,
   * When it can, it also considers the consumption and solar yield forecasts when scheduling.   * When it can, it also considers the consumption and solar yield forecasts when scheduling.
- 
-__NOTE: **Right now Dynamic ESS is still in beta and only available via the beta VRM.**__ 
  
 Also check these community posts for remarks and further troubleshooting: Also check these community posts for remarks and further troubleshooting:
Line 22: Line 20:
   * Be an ESS;   * Be an ESS;
   * Not use Generator connection outside of power outages;   * Not use Generator connection outside of power outages;
 +  * Run Venus OS v3.30 (or newer)
  
 For best results: For best results:
Line 46: Line 45:
  
 Note that this is part is setting the capabilities, not actually setting limits for the system to use. See [[#qwhy_does_the_system_exceed_the_configured_power|here]] for info on setting limits for the system. Note that this is part is setting the capabilities, not actually setting limits for the system to use. See [[#qwhy_does_the_system_exceed_the_configured_power|here]] for info on setting limits for the system.
 +
 +Then you need to set the operating mode:
 +
 +  * Green mode: 
 +    * Only sell surplus solar back to the grid after consumption and battery charging
 +    * Energy in battery is reserved for consumption
 +    * Charge battery when prices are low
 +  * Trade mode:
 +    * Always sells surplus solar back to the grid
 +    * Energy in battery is used to trade
 +    * Charge battery when it is beneficial for trading
 +
 +You can always adjust this mode at a later stage, so pick the one that best suits your needs.
 ==== Step 2: Battery ==== ==== Step 2: Battery ====
  
Line 68: Line 80:
 === Dynamic prices === === Dynamic prices ===
  
-Each country and provider uses their own formula for pricing. As the system grows, we will have more and more pre-filled out formula's to select from, but you may need to fill out your own formula.+Each country and provider uses their own formula for pricing. As the system grows, we will have more and more pre-filled out formula's to select from, but you may need to adjust or fill out your own formula.
  
-The buy price formula and sell price formula (if you are allowed to sell back to the grid) looks typically something like: //(p+0.02+0.13)*1.21//. It this example it breaks down to:+Unfortunately getting the buy and sell formulas right isn't always straightforward. As all calculations, on when to buy and sell from the grid, are based on the formulas, getting it right is important. Most of the details of your formulas are located somewhere in the contract you signed with your provider. Quite often these contracts are not the most clear documents to read and dissect. 
 +We can give you some general rules and show you what other users have filled out as their formula. With these instructions, you should be able to approximate the actual price you are paying and receiving for your energy. 
 + 
 +Generalised over countries and providers a formula typically something like: //(p+0.02+0.13)*1.21//. It this example it breaks down to:
  
   * p - the dynamic price / kWh   * p - the dynamic price / kWh
   * € 0.02 - energy provider profit share   * € 0.02 - energy provider profit share
-  * € 0.13 - DSO working price + contributions/levy/taxes+  * € 0.13 - DSO working price + contributions/levy/transportation fees
   * 21% - tax   * 21% - tax
  
 The sell price formula looks often identical and in common cases looks something like (//p-0.02+0.13)*1.21//. So the energy provider profit share works the other way around. The sell price formula looks often identical and in common cases looks something like (//p-0.02+0.13)*1.21//. So the energy provider profit share works the other way around.
  
-With different providers, the formula will likely be differentSo this does require some research on how your pricing is build up. You can also get some ideas from [[https://github.com/victronenergy/dynamic-ess/issues/72|this issue]].+If the provider takes a 15 % percentage of the day ahead buy price and the taxes are 6%, the formula becomes: //( p * 1.15 ) * 1.06//. 
 +This is a bit weird, because in case of negative buy prices, the provider is going to pay you extra for all of the energy. Knowing providers, this is quite unlikely. So the more plausible formula becomes: 
 +//(p + abs(p * 0.15)) * 1.06//, which makes sure that the provider takes its share, even when the prices are negative. 
 +Also note that, if you don't use euro's, you can set the sites currency in the general settings for your site. 
 + 
 +You can also get some ideas from [[https://github.com/victronenergy/dynamic-ess/issues/72|this issue]].
  
 === Fixed prices === === Fixed prices ===
Line 95: Line 115:
  
 ==== What's next? | After configuration ==== ==== What's next? | After configuration ====
-As the configuration flow points out, you need to go to the //Installation Controls// -> //ESS settings// to turn Dynamic ESS on (Auto)After turning it on, you can set the Dynamic ESS SOC which determines the minimum SOC Dynamic ESS is allowed to each when it is operational.+As the configuration flow points out, you can navigate to the //Installation Controls// -> //ESS settings// to see the running state of Dynamic ESS. The switch is green when Dynamic ESS is on and red when it is switched off.
  
-{{ :drafts:dynamic-ess-controls.png?nolink&200 |}}+{{ :drafts:dess-control.png?direct&200 |}}
  
-The //Auto// mode is the usual mode in which Dynamic ESS should operate. The //Buy// and //Sell// modes are there you want to overrule the decision of the algorithm and fully charge or discharge the battery. +The //Auto// (green) mode is the usual mode in which Dynamic ESS should operate. If you want to disable Dynamic ESS, toggle the switch to //Off// (red).
-If you want to disable Dynamic ESS, set the mode to //Off//.+
  
-Note that there will be shown an extra mode called //Node-RED// if you run the Node-RED implementation of Dynamic ESS instead.+The state of Dynamic ESS will also show on the dashboard, just after the title. As a side note: If you run [[https://github.com/victronenergy/dynamic-ess|the Node-RED implementation of Dynamic ESS]], here it will show "Node-RED".
 ====== Operational ====== ====== Operational ======
 ==== Data Visualisations ==== ==== Data Visualisations ====
- 
-Note that there are still some issues with having the graphs show the data correctly.  
  
 Once operational, you can find Dynamic ESS visualisations that appear below the installation data charts on the //Dashboard// page. There you can find a graph showing the current forecast: Once operational, you can find Dynamic ESS visualisations that appear below the installation data charts on the //Dashboard// page. There you can find a graph showing the current forecast:
Line 124: Line 141:
  
 This tab begins with a summary that compares the system using Dynamic ESS with the system using regular ESS. This tab begins with a summary that compares the system using Dynamic ESS with the system using regular ESS.
- 
  
 === Schedule === === Schedule ===
-{{ :drafts:energy-prices.png?nolink&800 |}}+ 
 +{{ :drafts:dess-buy-sell-prices.png?nolink&800 |}}
  
 The prices graph is available on both this tab and the //Energy// tab. It shows the buy and sell prices per hour. The prices graph is available on both this tab and the //Energy// tab. It shows the buy and sell prices per hour.
Line 139: Line 156:
 The prices and graph is the same one as on the //Schedule// tab. It shows the buy and sell prices per hour. The prices and graph is the same one as on the //Schedule// tab. It shows the buy and sell prices per hour.
  
-{{ :drafts:dess-energy.png?nolink&800 |}}+{{ :drafts:dess-energy-graph.png?nolink&800 |}}
  
 Then there is the energy graph, which summaries everything the system has done and is planning for. Then there is the energy graph, which summaries everything the system has done and is planning for.
Line 150: Line 167:
   * If the suboptimal scheduling is in the future plan, it is probably due to the configurations set by the user. For instance, battery costs being high leads to limited usage of the battery.   * If the suboptimal scheduling is in the future plan, it is probably due to the configurations set by the user. For instance, battery costs being high leads to limited usage of the battery.
   * If the suboptimal scheduling is in the past, then it is mostly due to the inaccuracies that come from consumption or solar yield forecasts. It is important to note forecasting will always come with its inaccuracies and even with these inaccuracies at distinct hours, Dynamic ESS minimizes costs compared to Default ESS mode in the longer run.   * If the suboptimal scheduling is in the past, then it is mostly due to the inaccuracies that come from consumption or solar yield forecasts. It is important to note forecasting will always come with its inaccuracies and even with these inaccuracies at distinct hours, Dynamic ESS minimizes costs compared to Default ESS mode in the longer run.
 +  * Make sure you have the formula's right. The system uses these to determine the price per hour and, if they are not correct, the system will make the wrong decisions.
  
 You might also want to read the chapter on [[#determining_the_target_soc|determining the target SOC]], to get some more idea on how the algorithm determines the optimal (dis)charging path.  You might also want to read the chapter on [[#determining_the_target_soc|determining the target SOC]], to get some more idea on how the algorithm determines the optimal (dis)charging path. 
Line 210: Line 228:
 We are aware that the provider Octopus offers day ahead pricing, but as these are not offered via the ENTSO-E API, we are unable to process those. Eventually we will probably support these prices, but will take some time. We are aware that the provider Octopus offers day ahead pricing, but as these are not offered via the ENTSO-E API, we are unable to process those. Eventually we will probably support these prices, but will take some time.
  
-Also in the UK, (fixed) prices are known to change at the half hour instead of the whole hour (where our system works with). The work-a-round is to add the average price of in the overlapping hour. So if the price changes from 40 cents to 20 cents at 16.30, fill out a price of 30 cents from 16.00 - 17.00.+Also in the UK, (fixed) prices are known to change at the half hour instead of the whole hour (where our system works with). The work-a-round is to add the average price of in the overlapping hour. So if the price changes from 40 cents to 20 pence at 16.30, fill out a price of 30 pence from 16.00 - 17.00.
  
 Adding better support for this will eventually be done, but as this also affects graphs and the scheduling, it might take a while. Adding better support for this will eventually be done, but as this also affects graphs and the scheduling, it might take a while.
Line 290: Line 308:
 ==== Q: My country is not using the Euro, how do I switch currency? ==== ==== Q: My country is not using the Euro, how do I switch currency? ====
  
-At the moment that is not possible yetbut we are working on adding it to the general settings per site. +Under the //Settings -> General// part of your siteyou can set your currency.
 ==== Q: My providers changes price at the half hour instead of the full hour ==== ==== Q: My providers changes price at the half hour instead of the full hour ====
  
Line 315: Line 332:
 At the moment this is not possible. If we decide to add it, it will first be added to the [[https://flows.nodered.org/node/victron-dynamic-ess|Node-RED implementation]] first. At the moment this is not possible. If we decide to add it, it will first be added to the [[https://flows.nodered.org/node/victron-dynamic-ess|Node-RED implementation]] first.
  
-==== Q: Can you give an example with calculations? ==== 
-{{:drafts:dess-example-energy-prices.png?nolink&800|}} 
  
-Given a system at 15% SOC that has set the battery costs to 0.06 €/kWh, energy prices right now (11.00) set at € 0.29 and becoming € 0.40 this evening. Why would it feed into the grid already and not wait until the prices are higher? 
- 
-The battery cost is € 0.06 per kWh. This means that for a cycle of battery usage to be useful (financially beneficial) the price difference should be at least € 0.12 cents per kWh (€ 0.06 for charging, and € 0.06 for discharging). € 0.40 - € 0.29 is € 0.11 which is below that, hence Dynamic ESS does not want to use the battery for this task, instead it is offloading the excess to the grid. 
  
 ==== Q: I am getting the alarm "Dynamic ESS error code: No matching schedule available" ==== ==== Q: I am getting the alarm "Dynamic ESS error code: No matching schedule available" ====
 +The cases this alarm can be triggered are:
 +  * the system does not have a valid schedule for the current time frame
 +  * the system clock is off
 +
 In most cases your systems clock has drifted such that it cannot find a matching schedule. Usually the GX device will synchronize the time with a NTP server, but your network setup might refrain the GX device from reaching a time server. Please check your time setting / manually set it to the correct time. In most cases your systems clock has drifted such that it cannot find a matching schedule. Usually the GX device will synchronize the time with a NTP server, but your network setup might refrain the GX device from reaching a time server. Please check your time setting / manually set it to the correct time.
 +Users running Dynamic ESS on a Raspberry Pi will see this error more frequently because the Raspberry Pi does not have a realtime clock. Which means that it usually takes a while for these to get back on track with the correct time after a boot. The alarm should disappear once the time is correct again.
  
 This alarm can also occur when DESS automatically switches to ESS because the SOC is below the min SOC level. This alarm can also occur when DESS automatically switches to ESS because the SOC is below the min SOC level.
- 
 ==== Q: I am getting the alarm "Dynamic ESS error code: ESS functionality not available" ==== ==== Q: I am getting the alarm "Dynamic ESS error code: ESS functionality not available" ====
 This probably means that you once activated Dynamic ESS and are no longer using it. In order to fully disable it, you need to set the `com.victronenergy.settings`, path `/Settings/DynamicEss/Mode` to `0`. This probably means that you once activated Dynamic ESS and are no longer using it. In order to fully disable it, you need to set the `com.victronenergy.settings`, path `/Settings/DynamicEss/Mode` to `0`.
Line 356: Line 372:
 Note that the dashboard should show: //Last updated:// **Realtime** Note that the dashboard should show: //Last updated:// **Realtime**
  
 +==== Q: I get the error message "Dynamic ESS error code: Battery capacity unset" ====
 +
 +This error can happen when the Dynamic ESS system starts before we were able to communicate the battery capacity from VRM to the GX device. It will go away as soon as you restart Dynamic ESS or the GX device.
drafts/dynamic_ess.1710337216.txt.gz · Last modified: 2024-03-13 14:40 by dfaber

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki