{"id":463,"date":"2025-09-17T07:46:13","date_gmt":"2025-09-17T07:46:13","guid":{"rendered":"https:\/\/docs.qilowatt.eu\/docs\/custom-control-logic-adjustable-parameters\/"},"modified":"2025-09-17T08:37:49","modified_gmt":"2025-09-17T08:37:49","password":"","slug":"custom-control-logic-adjustable-parameters","status":"publish","type":"docs","link":"https:\/\/docs.qilowatt.eu\/en\/docs\/custom-control-logic-adjustable-parameters\/","title":{"rendered":"Custom Control Logic Adjustable Parameters"},"content":{"rendered":"\n<h2 id=\"gspb_heading-id-gsbp-2c6bac4\" class=\"gspb_heading gspb_heading-id-gsbp-2c6bac4 \">Introduction<\/h2>\n\n<div id=\"gspb_text-id-gsbp-fd8b757\" class=\"gspb_text gspb_text-id-gsbp-fd8b757 \">The Custom control logic allows users to modify detailed parameters that directly influence how the inverter and battery operate. This provides flexibility but also requires a solid understanding of how the system works. Incorrect configuration may reduce profitability or cause unexpected behavior.  <\/div>\n\n<h2 id=\"gspb_heading-id-gsbp-e4a0d9b\" class=\"gspb_heading gspb_heading-id-gsbp-e4a0d9b \">Prerequisites<\/h2>\n\n<div id=\"gspb_text-id-gsbp-43d266d\" class=\"gspb_text gspb_text-id-gsbp-43d266d \">\u2022 Qilowatt account created \u2192 <a href=\"https:\/\/docs.qilowatt.eu\/en\/docs\/creating-a-user-account\/\" data-type=\"docs\" data-id=\"22\">Creating a User Account<\/a><br\/>\u2022 Device connected to WiFi \u2192 <a href=\"https:\/\/docs.qilowatt.eu\/en\/docs\/connecting-the-device-to-wifi\/\" data-type=\"docs\" data-id=\"23\">Connecting a Device to WiFi<\/a><br\/>\u2022 Inverter added to the Qilowatt app \u2192 <a href=\"https:\/\/docs.qilowatt.eu\/en\/docs\/module-setup\/\" data-type=\"docs\" data-id=\"72\">Module Setup<\/a><br\/>\u2022 Solar inverter configured \u2192 <a href=\"https:\/\/docs.qilowatt.eu\/en\/docs\/solar-inverter-setup\/\" data-type=\"docs\" data-id=\"79\">Solar Inverter Setup<\/a><br\/>\u2022 Control logic set to <em>Custom<\/em> \u2192 <a href=\"https:\/\/docs.qilowatt.eu\/en\/docs\/control-logics\/\" data-type=\"docs\" data-id=\"456\">Control Logics<\/a><\/div>\n\n<h2 id=\"gspb_heading-id-gsbp-692f9ad\" class=\"gspb_heading gspb_heading-id-gsbp-692f9ad \">Step-by-step Guide<\/h2>\n\n<h3 id=\"gspb_heading-id-gsbp-dd16c1a\" class=\"gspb_heading gspb_heading-id-gsbp-dd16c1a \">1. Charging and discharging losses<\/h3>\n\n<div id=\"gspb_text-id-gsbp-3e10ca8\" class=\"gspb_text gspb_text-id-gsbp-3e10ca8 \">\u2022 Low-voltage batteries (&lt;100 V): typically 14\u201320% loss per cycle.<br\/>\u2022 High-voltage batteries: typically 8\u201314% loss per cycle.<br\/>\u2022 Adjust values according to your battery\u2019s voltage. The higher the voltage, the lower the current \u2192 less heat and lower losses. <\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-f134ce3\" class=\"gspb_heading gspb_heading-id-gsbp-f134ce3 \">2. Charging and discharging degradation cost<\/h3>\n\n<div id=\"gspb_text-id-gsbp-91e9054\" class=\"gspb_text gspb_text-id-gsbp-91e9054 \">\u2022 Every kWh charged into or discharged from the battery shortens its lifespan.<br\/>\u2022 Manufacturers usually guarantee a lifetime of ~6000 cycles. Based on battery cost, capacity, and expected cycles, you can calculate LCOS (Levelized Cost of Storage), which shows the cost per kWh of using the battery.  <br\/>\u2022 LCOS should be split equally between charging and discharging degradation costs.<\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-ab9651a\" class=\"gspb_heading gspb_heading-id-gsbp-ab9651a \">3. Minimum state of charge for selling (Sell Min SOC)<\/h3>\n\n<div id=\"gspb_text-id-gsbp-5727d34\" class=\"gspb_text gspb_text-id-gsbp-5727d34 \">\u2022 Defines how much energy must remain in the battery after a sell command finishes.<br\/>\u2022 Example: if Min SOC = 15% and Sell Min SOC = 20%, then 5% remains in the battery after selling.<br\/>\u2022 Each percent left unsold reduces profitability but may be useful in specific cases.<\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-1164f38\" class=\"gspb_heading gspb_heading-id-gsbp-1164f38 \">4. Minimum state of charge for PV Sell (PV Sell Min SOC)<\/h3>\n\n<div id=\"gspb_text-id-gsbp-abfc40a\" class=\"gspb_text gspb_text-id-gsbp-abfc40a \">\u2022 Defines the minimum SOC required before PV Sell mode can activate.<br\/>\u2022 PV Sell starts in the morning when PV forecast \u2265 historical average consumption.<br\/>\u2022 For fluctuating loads, it\u2019s wise to store some energy in the battery before PV Sell to avoid covering consumption from the grid.<\/div>\n\n<div class=\"wp-block-greenshift-blocks-infobox gspb_infoBox gspb_infoBox-id-gsbp-1c0ac94\" id=\"gspb_infoBox-id-gsbp-1c0ac94\"><div class=\"gs-box red_type \"><div class=\"gs-box-icon\"><\/div><div class=\"gs-box-text\">\n<p>\u26a0\ufe0f Recommended: 2\u20135% higher than Min SOC. If set too high, expensive morning energy will be stored in the battery, reducing profitability. <\/p>\n<\/div><\/div><\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-cf9a9f4\" class=\"gspb_heading gspb_heading-id-gsbp-cf9a9f4 \">5. Enable PV Sell<\/h3>\n\n<div id=\"gspb_text-id-gsbp-39ed877\" class=\"gspb_text gspb_text-id-gsbp-39ed877 \">\u2022 Should be disabled if the inverter has no PV input or for specific models (e.g., Deye, Sungrow) where the export limit is more than 2\u00d7 lower than the total PV capacity.<br\/>\u2022 If PV input and export work normally, keep this enabled.<\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-59cddc2\" class=\"gspb_heading gspb_heading-id-gsbp-59cddc2 \">6. Planned battery state of charge (end of period)<\/h3>\n\n<div id=\"gspb_text-id-gsbp-4ac72c7\" class=\"gspb_text gspb_text-id-gsbp-4ac72c7 \">\u2022 The \u201cend of period\u201d = the last hour for which day-ahead market prices are available.<br\/>\u2022 This setting controls the target battery SOC at the end of that period.<br\/>\u2022 Recommendation: set around 60% SOC.<\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-eb3ff81\" class=\"gspb_heading gspb_heading-id-gsbp-eb3ff81 \">7. Buy price<\/h3>\n\n<div id=\"gspb_text-id-gsbp-9986dce\" class=\"gspb_text gspb_text-id-gsbp-9986dce \">\u2022 Minimum extra revenue required for charging the battery.<br\/><strong>\u2022 Not recommended <\/strong>\u2014 no practical use case has been identified.<\/div>\n\n<h3 id=\"gspb_heading-id-gsbp-f12be9d\" class=\"gspb_heading gspb_heading-id-gsbp-f12be9d \">8. Sell price<\/h3>\n\n<div id=\"gspb_text-id-gsbp-92963ff\" class=\"gspb_text gspb_text-id-gsbp-92963ff \">\u2022 Minimum extra revenue required when discharging from the battery.<br\/>\u2022 Example: if set to 0.10 \u20ac, the system will only sell if it earns 10 cents per kWh in addition to covering losses and degradation costs.<\/div>\n\n<h2 id=\"gspb_heading-id-gsbp-0595a44\" class=\"gspb_heading gspb_heading-id-gsbp-0595a44 \">Result<\/h2>\n\n<div id=\"gspb_text-id-gsbp-fb07142\" class=\"gspb_text gspb_text-id-gsbp-fb07142 \">The Custom control logic enables detailed fine-tuning of inverter and battery behavior. With correct settings, the system can be adapted to very specific use cases. However, incorrect values may lead to lower profitability. <\/div>\n\n<h2 id=\"gspb_heading-id-gsbp-d30ecb6\" class=\"gspb_heading gspb_heading-id-gsbp-d30ecb6 \">If it Doesn&#8217;t Work<\/h2>\n\n<div id=\"gspb_text-id-gsbp-e871cb1\" class=\"gspb_text gspb_text-id-gsbp-e871cb1 \">\u2022 If the system does not behave as expected, review all parameters carefully and compare with your battery manufacturer\u2019s specifications.<br\/>\u2022 If the outcome is unsatisfactory, restore default logic \u2192 <em>Maximum Profit<\/em> or <em>Self-consumption<\/em>.<\/div>\n\n<div class=\"wp-block-greenshift-blocks-infobox gspb_infoBox gspb_infoBox-id-gsbp-4b068fa\" id=\"gspb_infoBox-id-gsbp-4b068fa\"><div class=\"gs-box red_type \"><div class=\"gs-box-icon\"><\/div><div class=\"gs-box-text\">\n<p>\u26a0\ufe0f Qilowatt support <strong>does not provide assistance with Custom settings<\/strong> or troubleshooting. Responsibility for Custom configuration lies entirely with the user. <\/p>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_gspb_post_css":"#gspb_heading-id-gsbp-2c6bac4,#gspb_heading-id-gsbp-692f9ad,#gspb_heading-id-gsbp-e4a0d9b{font-size:var(--wp--preset--font-size--medium)!important;margin-top:50px;margin-bottom:10px}#gspb_heading-id-gsbp-1164f38,#gspb_heading-id-gsbp-ab9651a,#gspb_heading-id-gsbp-dd16c1a,#gspb_heading-id-gsbp-f134ce3{font-size:18px;text-decoration:underline;margin-top:30px;margin-bottom:10px}.gspb_text-id-gsbp-91e9054{margin-bottom:0!important}.gs-box-text>p{margin-bottom:20px;margin-top:0}.gs-box-text>p:last-of-type{margin-bottom:0}.gs-box.red_type{color:#a94442;background-color:#f2dede;border-color:#e8c4c4}.gspb_text-id-gsbp-abfc40a{margin-bottom:10px!important}#gspb_heading-id-gsbp-59cddc2,#gspb_heading-id-gsbp-cf9a9f4,#gspb_heading-id-gsbp-eb3ff81,#gspb_heading-id-gsbp-f12be9d{font-size:18px;text-decoration:underline;margin-top:30px;margin-bottom:10px}.gspb_text-id-gsbp-39ed877{margin-top:0!important}#gspb_heading-id-gsbp-0595a44,#gspb_heading-id-gsbp-d30ecb6{font-size:var(--wp--preset--font-size--medium)!important;margin-top:50px;margin-bottom:10px}.gs-box{padding:20px;border-left:5px solid transparent;margin-bottom:25px}.gspb_text-id-gsbp-e871cb1{margin-bottom:10px!important}","footnotes":""},"doc_category":[164],"doc_tag":[],"class_list":["post-463","docs","type-docs","status-publish","hentry","doc_category-optimizer"],"blocksy_meta":[],"year_month":"2026-04","word_count":537,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"Qilowatt Support","author_nicename":"birgit-ertelqilowatt-eu","author_url":"https:\/\/docs.qilowatt.eu\/en\/author\/birgit-ertelqilowatt-eu\/"},"doc_category_info":[{"term_name":"Optimizer","term_url":"https:\/\/docs.qilowatt.eu\/en\/dcategory\/optimizer\/"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/docs\/463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/comments?post=463"}],"version-history":[{"count":5,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/docs\/463\/revisions"}],"predecessor-version":[{"id":468,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/docs\/463\/revisions\/468"}],"wp:attachment":[{"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/media?parent=463"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/doc_category?post=463"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/docs.qilowatt.eu\/en\/wp-json\/wp\/v2\/doc_tag?post=463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}