<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mode Mappings on GbbOptimizer — Manual</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/</link><description>Recent content in Mode Mappings on GbbOptimizer — Manual</description><generator>Hugo</generator><language>en</language><atom:link href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/index.xml" rel="self" type="application/rss+xml"/><item><title>Deye</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/deye/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/deye/</guid><description>&lt;h1 id="mode-mapping--deye"&gt;Mode Mapping — Deye&lt;a class="anchor" href="#mode-mapping--deye"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;span class="badge" style="background-color: #9b59b6; color: white; padding: 2px 8px; border-radius: 4px; font-size: 0.75em; font-weight: 600; text-transform: uppercase; vertical-align: middle;"&gt;deye-only&lt;/span&gt;

&lt;p&gt;How GbbOptimizer modes translate to Deye inverter settings depending on the connection method.&lt;/p&gt;
&lt;h2 id="solarman--deyecloud-new-connection-method"&gt;Solarman / DeyeCloud (new connection method)&lt;a class="anchor" href="#solarman--deyecloud-new-connection-method"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;span class="badge" style="background-color: #27ae60; color: white; padding: 2px 8px; border-radius: 4px; font-size: 0.75em; font-weight: 600; text-transform: uppercase; vertical-align: middle;"&gt;recommended&lt;/span&gt;

&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Operation&lt;/th&gt;
 &lt;th&gt;Work Mode&lt;/th&gt;
 &lt;th&gt;GridCharge (TimeOfUse)&lt;/th&gt;
 &lt;th&gt;Time (TimeOfUse)&lt;/th&gt;
 &lt;th&gt;SOC (TimeOfUse)&lt;/th&gt;
 &lt;th&gt;Power (TimeOfUse)&lt;/th&gt;
 &lt;th&gt;Charge A&lt;/th&gt;
 &lt;th&gt;MaxSellPower&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Normal&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;5%*&lt;/td&gt;
 &lt;td&gt;Max Battery Discharge, if absent: Max Inverter Discharge&lt;/td&gt;
 &lt;td&gt;no change&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Charge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;SOC%&lt;/td&gt;
 &lt;td&gt;ChargeLimitW, if absent: Max Battery Charge, if absent: Max Inverter Charge&lt;/td&gt;
 &lt;td&gt;ChargeLimitW, if absent: Max Battery Charge, if absent: Max Inverter Charge&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Discharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;SellingFirst (on completion: restore previous value)&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;SOC%&lt;/td&gt;
 &lt;td&gt;Max Battery Discharge, if absent: Max Inverter Discharge&lt;/td&gt;
 &lt;td&gt;no change; KeepSOC: 0W&lt;/td&gt;
 &lt;td&gt;Max GridSetpoint / Discharge (W); if discharge must be slower the program calculates a value; on completion: restore previous value&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DisableCharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;5%*&lt;/td&gt;
 &lt;td&gt;Max GridSetpoint / Discharge (W)&lt;/td&gt;
 &lt;td&gt;changed to 0 (on completion: restore previous value)&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* 5% can be changed with the &lt;strong&gt;&amp;ldquo;Default MinSOC after discharge&amp;rdquo;&lt;/strong&gt; parameter in discharge plan settings.&lt;/p&gt;</description></item><item><title>GoodWe</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/goodwe/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/goodwe/</guid><description>&lt;h1 id="mode-mapping--goodwe"&gt;Mode Mapping — GoodWe&lt;a class="anchor" href="#mode-mapping--goodwe"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;How GbbOptimizer modes translate to GoodWe protocol settings.&lt;/p&gt;
&lt;h2 id="battery-charge-discharge"&gt;Battery Charge-Discharge&lt;a class="anchor" href="#battery-charge-discharge"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Operation&lt;/th&gt;
 &lt;th&gt;BatteryCDEnable&lt;/th&gt;
 &lt;th&gt;BatteryCDMode&lt;/th&gt;
 &lt;th&gt;BatteryCDPW&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Normal&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Charge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;ChargeLimitW&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Discharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;DischargeLimitW: Max GridSetpoint / Discharge (W). If discharge must be slower to last the full hour — the program calculates the appropriate value. On completion: restore previous value.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DisableCharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="missing-options"&gt;Missing Options&lt;a class="anchor" href="#missing-options"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class='book-hint warning'&gt;
&lt;p&gt;The GoodWe protocol does not support:&lt;/p&gt;</description></item><item><title>Hinen</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/hinen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/hinen/</guid><description>&lt;h1 id="mode-mapping--hinen"&gt;Mode Mapping — Hinen&lt;a class="anchor" href="#mode-mapping--hinen"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;How GbbOptimizer modes translate to Hinen protocol settings.&lt;/p&gt;
&lt;h2 id="mapping-table"&gt;Mapping Table&lt;a class="anchor" href="#mapping-table"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Operation&lt;/th&gt;
 &lt;th&gt;Work Mode&lt;/th&gt;
 &lt;th&gt;Charge/Discharge Enable&lt;/th&gt;
 &lt;th&gt;Charge/Discharge Start/End&lt;/th&gt;
 &lt;th&gt;Charge/Discharge SOC&lt;/th&gt;
 &lt;th&gt;Charge/Discharge Rate&lt;/th&gt;
 &lt;th&gt;AntiBackflow Enable&lt;/th&gt;
 &lt;th&gt;AntiBackflow Limit Rate&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Normal&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Self-consumption&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;100%&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Charge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Time period control&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;SOC%&lt;/td&gt;
 &lt;td&gt;= ChargeLimit / (MaxInverterChargeDC_kW or MaxBatteryChargeDC_kW) * 100%&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Discharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Time period control&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;SOC%&lt;/td&gt;
 &lt;td&gt;= -abs(DischargeLimit) / (MaxInverterChargeDC_kW or MaxBatteryChargeDC_kW) * 100%. DischargeLimit = Max GridSetpoint / Discharge (W). If discharge must be slower — the program calculates the value.&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;same as Charge/Discharge Rate but &amp;gt; 0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DisableCharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Time period control&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;yes&lt;/td&gt;
 &lt;td&gt;current SOC&lt;/td&gt;
 &lt;td&gt;1%&lt;/td&gt;
 &lt;td&gt;no&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="notes"&gt;Notes&lt;a class="anchor" href="#notes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rate&lt;/strong&gt; is expressed as a percentage of the maximum inverter (or battery) power, not in watts&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Normal&lt;/strong&gt; mode the system returns to Self-consumption mode with SOC = 100% and Charge/Discharge disabled&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;DisableCharge&lt;/strong&gt; mode SOC is set to the current level and Rate to a minimum of 1%&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Sofar</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/sofar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/sofar/</guid><description>&lt;h1 id="mode-mapping--sofar"&gt;Mode Mapping — Sofar&lt;a class="anchor" href="#mode-mapping--sofar"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;How GbbOptimizer modes translate to Sofar inverter settings in Passive Mode.&lt;/p&gt;
&lt;h2 id="passive-mode"&gt;Passive Mode&lt;a class="anchor" href="#passive-mode"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Operation&lt;/th&gt;
 &lt;th&gt;Gdes (Grid setpoint)&lt;/th&gt;
 &lt;th&gt;Blo (Battery high)&lt;/th&gt;
 &lt;th&gt;Bup (Battery low)&lt;/th&gt;
 &lt;th&gt;Gdzup (Grid high)&lt;/th&gt;
 &lt;th&gt;Gdzlo (Grid low)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Normal&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Default &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#gridsetpoint" class="glossary-term" title="Target grid power exchange value in watts"&gt;GridSetpoint&lt;/a&gt; (Discharge menu)&lt;/td&gt;
 &lt;td&gt;ChargeLimit or MaxBatteryChargePower or MaxInverterChargePower&lt;/td&gt;
 &lt;td&gt;-(DischargeLimit or MaxBatteryDischargePower or MaxInverterDischargeLimit)&lt;/td&gt;
 &lt;td&gt;MaxBuyPower or MaxInverterChargePower&lt;/td&gt;
 &lt;td&gt;-(MaxSellPower or MaxInverterDischargePower)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Charge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;= Gdzup&lt;/td&gt;
 &lt;td&gt;ChargeLimit or MaxBatteryChargePower or MaxInverterChargePower (adjusted to reach target SOC in the full hour)&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;InputLimit or MaxBuyPower or MaxInverterChargePower&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Discharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;= Gdzlo&lt;/td&gt;
 &lt;td&gt;= Bup&lt;/td&gt;
 &lt;td&gt;-(DischargeLimit or MaxBatteryDischargePower or MaxInverterDischargeLimit) (adjusted to reach target SOC in the full hour)&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;-(MaxSellPower or MaxInverterDischargePower)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DisableCharge&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;MaxBuyPower or MaxInverterChargePower&lt;/td&gt;
 &lt;td&gt;-(MaxSellPower or MaxInverterDischargePower)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="parameters"&gt;Parameters&lt;a class="anchor" href="#parameters"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gdes&lt;/strong&gt; — Grid setpoint: target grid energy exchange value&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blo&lt;/strong&gt; — Battery high: maximum battery charging power&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bup&lt;/strong&gt; — Battery low: maximum battery discharge power (negative value)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gdzup&lt;/strong&gt; — Grid high: maximum grid import power&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gdzlo&lt;/strong&gt; — Grid low: maximum grid export power (negative value)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="notes"&gt;Notes&lt;a class="anchor" href="#notes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;If the option &lt;strong&gt;&amp;ldquo;SofarSolar: Support for 5 parameters (not 3) in PassiveMode&amp;rdquo;&lt;/strong&gt; is unchecked, the Gdzup and Gdzlo parameters are not changed (because they are not available in 3-parameter mode).&lt;/p&gt;</description></item><item><title>Victron</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/victron-passive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/victron-passive/</guid><description>&lt;h1 id="mode-mapping--victron"&gt;Mode Mapping — Victron&lt;a class="anchor" href="#mode-mapping--victron"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;span class="badge" style="background-color: #3498db; color: white; padding: 2px 8px; border-radius: 4px; font-size: 0.75em; font-weight: 600; text-transform: uppercase; vertical-align: middle;"&gt;victron-only&lt;/span&gt;

&lt;p&gt;Victron inverters are controlled through &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#ess" class="glossary-term" title="Energy Storage System"&gt;ESS&lt;/a&gt; (Energy Storage System) via &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#vrm" class="glossary-term" title="Victron Remote Management portal"&gt;VRM&lt;/a&gt; and MQTT.&lt;/p&gt;
&lt;h2 id="ess-mode"&gt;ESS Mode&lt;a class="anchor" href="#ess-mode"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GbbOptimizer controls the Victron system through ESS Schedules on the Cerbo GX. Schedules define:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Operating mode&lt;/strong&gt; — charging, discharging, normal operation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Target SOC&lt;/strong&gt; — the level to charge/discharge to&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power limit&lt;/strong&gt; — maximum charging/discharging power&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time window&lt;/strong&gt; — hours during which the schedule is active&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="anchor" href="#prerequisites"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In the &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#vrm" class="glossary-term" title="Victron Remote Management portal"&gt;VRM&lt;/a&gt; portal, enable remote access to Cerbo&lt;/li&gt;
&lt;li&gt;In &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#ess" class="glossary-term" title="Energy Storage System"&gt;ESS&lt;/a&gt;, set the mode to &lt;strong&gt;&amp;ldquo;Optimized (without BatteryLife)&amp;rdquo;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Ensure GbbOptimizer has correct VRM data (&lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#plantid" class="glossary-term" title="Unique identifier for a PV installation"&gt;PlantId&lt;/a&gt;, &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#planttoken" class="glossary-term" title="Authentication token for MQTT and API"&gt;PlantToken&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;If &lt;strong&gt;Battery Life&lt;/strong&gt; is enabled in ESS, GbbOptimizer will not be able to fully control the battery. Disable it and set to &lt;strong&gt;&amp;ldquo;Optimized (without BatteryLife)&amp;rdquo;&lt;/strong&gt;.&lt;/p&gt;</description></item></channel></rss>