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-20 15:11] – [Data Visualisations] dfaberdrafts:dynamic_ess [2024-05-15 08:38] (current) – [Step 1: System] dfaber
Line 20: 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 44: 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 66: 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 145: 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 205: 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 285: 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 310: 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" ====
Line 355: 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.1710943908.txt.gz · Last modified: 2024-03-20 15:11 by dfaber

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki