====== Dynamic ESS - manual ====== ===== Smarter energy, bigger savings with Dynamic ESS ===== With Dynamic ESS, your Victron system becomes even smarter. It optimizes your battery's charge and discharge cycles by leveraging electricity prices, solar production forecasts, and your unique consumption patterns. Dynamic ESS will help you save money on your energy bill. Whether you're managing a home or a larger installation, Dynamic ESS helps you optimize your solar and battery system for maximum efficiency, while actively contributing to a more sustainable future. If you have dynamic energy rates or off-peak energy prices, start configuring now to take full advantage of your setup! {{:drafts:phone_mocks.png?600|}} ==== Two modes: green or trade ==== We offer two operating modes to cater to different preferences for managing energy. Not everyone is comfortable with the risks of the energy market, so we have created modes to fit various needs: === Green Mode === Sell surplus solar power back to the grid after covering your consumption and charging the battery. Reserve battery energy for your own use. Charge your battery when prices are low to save more. === Trade Mode === Always sell surplus solar power back to the grid. Use the battery energy to take advantage of trading opportunities. Charge your battery when it’s most beneficial for trading. Green Mode is ideal for those who prefer a safer, more predictable approach, while Trade Mode is perfect for those looking to maximize their gains through trading. You can always switch between modes to find what works best for you. ====== Let’s get started ====== Setting up Dynamic ESS happens in 5 steps. All of these settings can be adjusted later, so no worries if you make a mistake. Head over to settings → Dynamic ESS in VRM to get started! ==== Step 1: System ==== First, confirm whether you can sell excess electricity back to the grid. If so, you'll be asked to provide details on the power limits for selling. The limit will be the lower value between your grid connection capacity and what your system can handle. For example, if your grid connection supports 17 kWh but your system can only handle 10 kWh, enter 10 kWh. Note: This step defines the system’s potential capabilities, not the actual operational limits you'll set later. {{:drafts:step_1_config.png?400|}} ==== Step 2: Battery information ==== Next, provide key details about your battery: * Battery Capacity – To calculate what 1% of the battery's State of Charge (SOC) represents, we need to know the battery’s total capacity. * Maximum Charge and Discharge Power – This determines how much energy the battery can handle for charging or discharging in an hour. * Battery Costs – These reflect the cost of charging and discharging the battery, usually expressed in €/kWh. To calculate battery costs, you can input the purchase cost of the battery, the estimated number of charge cycles, and the battery’s capacity. Use the formula: Battery cost (€) / (Number of charge cycles * Battery capacity in kWh) For example, if your battery cost €2,000, has a capacity of 10 kWh, and supports 6,000 charge cycles, the calculation is: 2000 / (6000 * 10) = € 0.03/kWh * Charge/Discharge Restrictions – You can also configure settings to control when your battery can charge or discharge to the grid. For instance, you may want to restrict discharging to the grid during specific times or days due to national laws. {{:drafts:step_2_battery.png?400|}} ==== Steps 3 & 4: Buying and Selling Prices ==== For energy transactions, you can use either **dynamic** (day-ahead) prices or **fixed** prices that may vary by time of day or between weekdays and weekends. Indicate whether you're using fixed or dynamic pricing. You can find these rates in your energy contract. For the UK, Spain and France, Dynamic ESS provides an out of the box connection with your energy provider. Refer to the list below to see if that applies to you. === Your Dynamic Price Formula Made Easy === Getting your dynamic pricing formula is important, but it might not be easy to find in your energy contract. Let’s break it down with an example: When you sell energy back to the grid, you get the base rate from your energy provider. But when you buy energy, you also pay VAT and an extra charge of 11 cents per kWh. **Selling Energy**: Your selling formula is just: P **Buying Energy**: Your buying formula is: P * 1.21 + 0.11 If you’re not sure about your rates, start with a simple P for the price. You can compare the numbers in VRM with those in your energy provider's app to check if they match. {{:drafts:step_3_buy_prices.png?400|}} ==== Step 5: Confirmation ==== In the final step, review a summary of all the settings you’ve entered. Make any necessary adjustments, then submit the form to activate Dynamic ESS. ===== Tracking your daily energy schedule ===== Once you've configured Dynamic ESS, a new section will appear at the bottom of your VRM dashboard. This section displays a graph showing today's energy prices alongside the Dynamic ESS plan. Starting from around 3 PM each day, you'll also be able to view the prices and the plan for the following day. Dynamic ESS will be on by default. In the controls panel, you’ll be able to enable and disable Dynamic ESS. Note that Dynamic ESS saves most money when left on for extended periods of time. ===== Want to know more? ===== For more information on Dynamic ESS, check out our frequently asked questions. For some countries, Dynamic ESS provides an out of the box connection with your energy provider. Refer to the list below to see if that applies to you. ===== For Victron installers ===== As a Victron device installer, Dynamic ESS allows you to offer enhanced value to your clients while unlocking new sales opportunities. By intelligently optimizing battery charging and discharging based on dynamic electricity prices, Dynamic ESS helps users achieve significant cost savings. These savings can be further amplified with larger battery capacities. As customers see the financial benefits of increased battery storage, they are more likely to invest in expanding their energy systems. For you, this presents a straightforward path to upgrading your service with advanced, seamlessly integrated features, positioning you as a provider of efficient, cost-effective solutions that can drive additional device sales and strengthen customer satisfaction. ====== FAQ ====== Missing a question? Please ask them in [[https://victron.discourse.group/c/products/dess/21|the community forum]] with a remark that it should be added to the documentation and/or FAQ. ==== Q: Why can't I find dynamic ESS on VRM? ==== There are some pre-conditions a site must fulfill in order to get the “Dynamic ESS” menu option. Make sure that the site's system type is set to ESS or Hub-4. If it is not set to this, you need a different ESS assistant, which can be configured through VE.Configure. When in doubt on how to do that, please ask your installer for help. ==== Q: Which energy meters are supported? ==== In order to function properly and knowing how much energy is flowing a supported energy meter is needed. Basically any energy meter that is supported on the GX device will suffice. See the [[https://www.victronenergy.com/upload/documents/Datasheet-Energy-Meters-Selection-Guide-EN.pdf|energy selection guide]] for supported meters. ==== Q: What is the default behaviour if the VRM connection is lost longer than 12 hours? ==== The system will run out of its schedule after 12 hours and revert to standard ESS operation. Once the connection is reestablished, new schedules will get added again and the Dynamic ESS will commence its operation. As the system is partly depending on third-party services (e.g. for retrieving the day ahead price information). If we are somehow unable to fetch new pricing information, the calculations can no longer be done and the system will run out of schedule too. We have monitoring in place to check for this. ==== Q: Can the system handle charging my EV or other heavy loads? ==== It will be able to in the future. See [[drafts:dynamic_ess#qwhy_does_the_system_exceed_the_configured_power|here]] for information on the options of limiting power. ==== Q: Is there an API available? ==== Yes, there is. The Node-RED implementation uses that as well. See [[https://vrm-dynamic-ess-api.victronenergy.com/docs#/default/schedule__get|here]] for more information. Do note that you will need to use an access token for that. Instructions on how to generate one can be found [[https://github.com/victronenergy/dynamic-ess#create-an-access-token|here]]. Also the [[https://flows.nodered.org/node/victron-vrm-api|VRM-API]] node supports the Dynamic ESS API. ==== Q: Why does the system exceed the configured power? ==== During the configuration of the system, you are setting the capacity of the system, not the actual limits of the system. These capacities are used by the system to make its calculations, so it used as an average power the system can do in an hour. If you need to limit the import configured power, you can configure import and export AC current limits via the //Settings -> ESS// menu in the GX. This is possible since the v3.30~10 release. {{:ess:system-ac-limits.png?400|}} How does it work? As you’d expect, it monitors the current and when needed engages to keep that within the configured limits: * to prevent overcurrent during export, system limits solar production and battery discharge. * to prevent overcurrent during import, system limits battery charging. * to prevent overcurrent during import because of loads, system will assist using battery power. (As long as battery permits of course). * In case SOC is dropped more than 5% below configured ESS minimum SOC, the battery will be recharged from the grid as soon as loads drop. Requirements and other details: - The feature is part of ESS; and applies to MultiPlus, Quattro, MultiPlus-II and so forth. The Multi RS will come with the same feature when we release Energy Meter and ESS support for that, but thats a different project and implementation. - NOTE: The function properly, the inverter/charges require an updated ESS Assistant, which you need VEConfigure for. The required version of the ESS Assistant is 018C. - About the existing "Limit system feed-in" option in the ESS menu, in watts: if you have both set, the lower of the two is followed for feeding in DC-coupled PV. - The GX does not limit PV-inverters in relation to the new export current limit. To illustrate: in case of major solar production, plus high tariff on selling energy to the utility, the new mechanism will limit feed in of power from the battery to 0. So, as long as the installed PV Inverter system is done such that it can’t by itself blow the fuse then its fine. - Works with all ESS supported energy meters. ==== Q: Does it also take into account changing provider fees during the day? ==== Not right now, at the moment only the `p` is the variable piece of data of the formula. But as the system grows, new features will be added. It helps us a lot if we get more feedback on how your local provider makes his calculation. Please add to [[https://github.com/victronenergy/dynamic-ess/issues/72|this]] GitHub issue on where we ask you for your providers formulas. ==== Q: Does the system work in the UK (or any other non-EU country)? ==== If your provider has "fixed" tariffs which are steady, but differ on hourly intervals, then yes. You can set the system to use a fixed contract. If your provider has hourly changing tariffs that are not covered by the ENTSO-E API, then you are out of luck for now. But if there is a public API and you let us know where we can fetch the information, we will gladly add it. ==== Q: My contract does not allow discharging the battery into the grid ==== In Germany it is forbidden to import electricity into a battery and then later export it out of the battery again, as the feed-in tariff is fixed, this would allow greenwashing. In order to comply to this rule, the dynamic ESS system has a configurable option to prevent exporting from the battery at all. This can be set under the //Settings -> Dynamic ESS -> Battery// menu. ==== Q: My country is not using the Euro, how do I switch currency? ==== Under the //Settings -> General// part of your site, you can set your currency. ==== Q: Why does (dis)charging slow down or speed up towards the end of the hour? ==== The system calculates every few minutes how quickly it should (dis)charge to reach the target SOC at the end of the hour. If it falls behind (because your load is higher), it will speed up a bit, if it gets there too fast, it will slow down. If the battery capacity is overestimated, it will typically slow down towards the end. If the battery capacity is underestimated, it will typically speed up towards the end. In addition, battery manufacturers are not always exact in the advertised battery capacity. You may have to tweak it a bit. ==== Q: Can I use scheduled charging in combination with Dynamic ESS? ==== The short answer is no, as this will interfere with the calculations of the system. If you want to use scheduled charging, then either switch to normal ESS or get creative in Node-RED. ==== Q: Can I upload the custom prices for my site myself? ===== 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: 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. 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. ==== 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 can be done on different ways, most easily using Node-RED and the output-control node. ==== Q: Why does Dynamic ESS's plan seem to change after the first few minutes of the hour? ==== Due to the fact that the scheduling starts running when the new hour starts, the new plan for the current hour can be delayed by a few minutes. This slight delay imposes only a negligible difference in the performance of Dynamic ESS. ==== Q: What about the efficiency losses of the battery? ==== Dynamic ESS on VRM takes battery losses into account. The system looks at the dbus service ''com.victronenergy.settings'', path ''Settings/DynamicEss/SystemEfficiency''. ==== Q: What happens if I modify the minimum SOC (State-Of-Charge) of the battery? ==== Decreasing the minimum SOC does not affect the performance of DESS negatively. However, when the minimum SOC is increased (above the current SOC), it might require the battery to be charged manually since Dynamic ESS is not designed to operate when current SOC is below the minimum. ==== Q: The energy graph is showing incorrect data ==== Sometimes the graph shows that energy was taken from the grid. When looking at the installation data graphs, it shows that the energy actually came from PV yield. This is caused by a known misleading assumption with the Energy graph: It assumes if there is more production than consumption, all consumption is met by production and the other way around: if there is more consumption than production, then all the production goes to consumption. This is quite an assumption but this is how DESS considers it internally, so that’s why the visuals reflect it that way. If we do not have that assumption, the energy graph would be even more complicated. If you want to know the exact source of the energy, you should look at the installation data graphs (grid, solar and consumption). ==== Q: I can't find the controls button on the dashboard ==== You probably have //Realtime updates// switched off. You can switch it on via //Settings -> General -> Realtime updates//. 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.