<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>References on GbbOptimizer — Manual</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/</link><description>Recent content in References on GbbOptimizer — Manual</description><generator>Hugo</generator><language>en</language><atom:link href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/index.xml" rel="self" type="application/rss+xml"/><item><title>Glossary</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/</guid><description>&lt;h1 id="glossary"&gt;Glossary&lt;a class="anchor" href="#glossary"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;div class="glossary-list"&gt;&lt;div class="glossary-entry" id="batteryfulldate"&gt;
 &lt;h3&gt;Battery Full Date&lt;/h3&gt;
 &lt;p&gt;Specific days of the month when the optimizer aims to charge the battery to 100% SOC. Provided as comma-separated values (e.g., &amp;#39;1, 15&amp;#39;). Enables periodic full charge cycles for battery health.&lt;/p&gt;
 &lt;/div&gt;&lt;div class="glossary-entry" id="correctionfactor"&gt;
 &lt;h3&gt;Correction Factor&lt;/h3&gt;
 &lt;p&gt;A multiplier calculated over approximately one week of operation that corrects PV forecast values to match actual production, improving prediction accuracy.&lt;/p&gt;
 &lt;/div&gt;&lt;div class="glossary-entry" id="dongledirect"&gt;
 &lt;h3&gt;DongleDirect&lt;/h3&gt;
 &lt;p&gt;A connection method where the inverter&amp;#39;s WiFi dongle is reconfigured to communicate directly with the GbbOptimizer server instead of the manufacturer&amp;#39;s cloud.&lt;/p&gt;</description></item><item><title>Inverter Modes</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/inverter-modes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/inverter-modes/</guid><description>&lt;h1 id="inverter-modes"&gt;Inverter Modes&lt;a class="anchor" href="#inverter-modes"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;GbbOptimizer controls the inverter using four basic modes (protocol operations). Each inverter implements them differently — see the &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mode-mappings/"&gt;Mode Mappings&lt;/a&gt; section for detailed mappings.&lt;/p&gt;
&lt;h2 id="required-data-from-the-inverter"&gt;Required Data from the Inverter&lt;a class="anchor" href="#required-data-from-the-inverter"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The inverter must provide the following data:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;soc_perc&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Battery &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#soc" class="glossary-term" title="State of Charge — battery level as a percentage (0–100%)"&gt;SOC&lt;/a&gt; in percent (or &lt;code&gt;V&lt;/code&gt; if controlling via voltage)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;loads_total_kWh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Consumption counter (kWh, cumulative)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;fromgrid_total_kWh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Grid import energy counter (kWh)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;togrid_total_kWh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Grid export energy counter (kWh)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;pv_total_kWh&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;PV production counter (kWh)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Optionally:&lt;/p&gt;</description></item><item><title>MQTT Servers</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mqtt-servers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/mqtt-servers/</guid><description>&lt;h1 id="mqtt-servers"&gt;MQTT Servers&lt;a class="anchor" href="#mqtt-servers"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;GbbOptimizer uses multiple MQTT servers to communicate with inverters and integrations. The server assigned to your installation depends on the &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; prefix.&lt;/p&gt;
&lt;h2 id="server-table"&gt;Server Table&lt;a class="anchor" href="#server-table"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Application Server&lt;/th&gt;
 &lt;th&gt;MQTT Server&lt;/th&gt;
 &lt;th&gt;PlantId Prefix&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;(none)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer2.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer2-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;B&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer3.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer3-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;C&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer4.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer4-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;D&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer5.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer5-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;E&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer6.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer6-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;F&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer7.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer7-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;G&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer8.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer8-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;H&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer9.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer9-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;I&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer10.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer10-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;J&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer11.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer11-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;K&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer12.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer12-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;L&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer13.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer13-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;M&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer14.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer14-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;N&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer15.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer15-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;O&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer16.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer16-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;P&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer17.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer17-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;Q&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer18.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer18-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;R&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer19.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer19-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;S&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;gbboptimizer20.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;gbboptimizer20-mqtt.gbbsoft.pl&lt;/td&gt;
 &lt;td&gt;T&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="how-to-determine-your-server-from-plantid"&gt;How to Determine Your Server from PlantId&lt;a class="anchor" href="#how-to-determine-your-server-from-plantid"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &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; prefix (first letter) indicates which server your installation uses:&lt;/p&gt;</description></item><item><title>Common Errors</title><link>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/common-errors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/common-errors/</guid><description>&lt;h1 id="common-errors"&gt;Common Errors&lt;a class="anchor" href="#common-errors"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A list of the most frequently encountered error messages in GbbOptimizer, their causes, and possible solutions.&lt;/p&gt;
&lt;h2 id="solarman"&gt;Solarman&lt;a class="anchor" href="#solarman"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;SolarmanError: Solarman timeout!&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Solarman cannot send data to the inverter. Check the local network.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Solarman error: 2101040-device not found&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The inverter is not sending data to Solarman. Check the inverter&amp;rsquo;s network connection.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Response status code: 503 / 500 / 504&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The Solarman API is not working correctly. Problem on Solarman&amp;rsquo;s side — wait and try again.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="deyecloud"&gt;DeyeCloud&lt;a class="anchor" href="#deyecloud"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;DeyeCloud error: timeout&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;DeyeCloud cannot send data to the inverter. Check the local network.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;DeyeCloud error: 2104006-device offline&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The inverter is not sending data to DeyeCloud. Check the inverter&amp;rsquo;s network connection.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;DeyeCloud error: 2101042-auth no operation permission&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Insufficient permissions for the DeyeCloud account (e.g. account granted by an installer). Contact the installer to obtain full permissions.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="gbbconnect2"&gt;GbbConnect2&lt;a class="anchor" href="#gbbconnect2"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Mqtt to GbbConnect2: timeout!&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;GbbOptimizer cannot connect to the local &lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#gbbconnect2" class="glossary-term" title="Local software for direct inverter connection"&gt;GbbConnect2&lt;/a&gt;. Check whether GbbConnect2 is running.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;GbbConnect2Error: Connection timed out 192.168.x.xx:8899&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://krzysztofhajdamowicz.github.io/rewrite-GbbOptimizer-manual/en/references/glossary/#gbbconnect2" class="glossary-term" title="Local software for direct inverter connection"&gt;GbbConnect2&lt;/a&gt; cannot connect to the Deye dongle. Check whether the dongle is on the network.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="victron"&gt;Victron&lt;a class="anchor" href="#victron"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Victron Mqtt: timeout! (15 sec)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;GbbOptimizer cannot connect to Cerbo through Victron&amp;rsquo;s MQTT servers. Check the local network and remote access in &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;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Error during checking whether Schedules reached Cerbo successfully&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ESS schedules did not reach Cerbo. Check Cerbo&amp;rsquo;s internet connection.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="energy-prices"&gt;Energy Prices&lt;a class="anchor" href="#energy-prices"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Source&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Get Prices: The SSL connection could not be established&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ENTSO-E&lt;/td&gt;
 &lt;td&gt;The ENTSO-E price API is not working. Problem on the provider&amp;rsquo;s side.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Get Prices: Proba polaczenia nie powiodla sie&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ENTSO-E&lt;/td&gt;
 &lt;td&gt;ENTSO-E API unavailable.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Get Prices: HTTP POST ... Gateway timeout / 502 Bad Gateway&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Tibber&lt;/td&gt;
 &lt;td&gt;The Tibber price API is not working.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Get Prices: Response status code: 502 (Bad Gateway)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;AU Amber&lt;/td&gt;
 &lt;td&gt;The Amber price API is not working.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="other"&gt;Other&lt;a class="anchor" href="#other"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Message&lt;/th&gt;
 &lt;th&gt;Source&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Solcast.com: Too many requests&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Solcast&lt;/td&gt;
 &lt;td&gt;The 10 daily request limit for Solcast.com has been reached. Wait until midnight.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ERROR from Cache: Response status code: 500&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pstryk&lt;/td&gt;
 &lt;td&gt;Error on the Pstryk API side.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;B0220-System function downgrade&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Hinen&lt;/td&gt;
 &lt;td&gt;The Hinen API is being updated. Wait for the update to finish.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;Error messages are sent by email from the program. Most &amp;ldquo;timeout&amp;rdquo; and &amp;ldquo;device offline&amp;rdquo; errors are related to local network issues — check the inverter and router connection.&lt;/p&gt;</description></item></channel></rss>