Storage optimizer block This control element belongs to the function block Storage optimizer block. It shows the energy flow in the house, the computed schedule for the next up to 48 hours and contains all settings of the block. Only the grid connection limit remains on the block itself.
The element is linked to the function block with the right mouse button. Without a link it stays empty.
Display |
|
| Four tiles | The grid at the
top, the generation on the
left, the consumption on the
right and the battery at the
bottom. The battery tile also shows the state of charge in percent.
The centre stays empty — this is where the flow lines cross. Grid and battery additionally show their setpoint in brackets directly below the measured value — for the grid the target at the connection point, for the battery the charging and discharging power. It is shown in the colour of the corresponding energy flow. Where no value is available, -.-- appears instead of a number: for the measured values when the input has no address assigned, and for the setpoints additionally when there is no schedule and the block does not specify anything either. If it runs own consumption in emergency operation without a schedule, that is a real setpoint and is shown. |
| Two price circles | To the left and right of the grid tile, in the same size: Import is the current consumption price, Export the current feed-in price, both in cents per kilowatt hour. They show the current billing interval of the price source. Both circles are always black and do not follow the text colour of the style. |
| Energy flows | Up to seven connections are drawn between the tiles: from the generation to consumption, battery and grid, from the grid to consumption and battery, and from the battery to consumption and grid. A line appears from about 50 W upwards. The colour shows where the energy comes from. If source and target are opposite each other, the line runs straight through the centre, otherwise around a rounded corner. |
| Click on the element | Every tile opens its chart — see below. A click on the gear at the bottom right or on any free area opens the schedule; from there the settings and the computed data are reached through the icons in the title bar. |
Charts |
|
| Generation tile | Generation per hour. Summary: total and the most productive hour of the period. |
| Grid tile | Consumption from and feed-in to the grid as two curves in one chart, plus the state of charge on the right axis — this shows whether grid consumption met an empty battery. Summary: consumption, feed-in and the resulting balance on one line, below it the minimum and maximum state of charge. The individual amounts in euros are shown in the charts of the two price circles. |
| Consumption tile | Consumption per hour. Summary: total and the part taken from the grid on one line, below it the degree of self-sufficiency derived from them. |
| Battery tile | The tile has two
click areas: above the symbol
discharging, below it
charging. In both charts the state of charge is drawn as a second
curve in the background. The state of charge has its own axis on the right with a fixed scale from 0 to 100 %; the energy stays on the left in kilowatt hours as usual. Both values can therefore be read directly. Minimum and maximum of the state of charge are also given in the summary. |
| Import circle | The cost of the grid consumption per hour in euros. Summary: cost and quantity on one line, below it the average price actually achieved over the period. |
| Export circle | The revenue from feeding in per hour in euros, otherwise as above. |
| Time range | The button at the bottom opens the selection: 6, 12 and
24 hours, day, 2, 7, 30 and 90 days, year or a freely chosen from-to
date. The arrows to the left and right page through the data, the
magnifier stretches the time axis. Paging into the future is not
possible. The waste bin in the selection deletes the entire recording of this block. |
About the recording. The function block stores one value per hour, kept for two years. The data lives in the controller, in a separate file per block — without a connection to the controller the charts stay empty.
The amounts in euros are not computed from kilowatt hours times a price at display time, but continuously with the price valid at that moment. They are therefore correct even with a tariff whose price changes every hour. Only this makes the average price in the summary meaningful.
Only what is measured gets recorded. If an input is not connected at all — neither to an address nor to a neighbouring block — the corresponding channel is not created and the chart reports "No data available"; a zero line would look like a measurement. An internal wire is enough for the recording; the tiles, by contrast, need an address (see below). For cost and revenue the grid power input is enough; the block knows the prices itself.
Important: the measurement inputs of the block need addresses. The four tiles read their values from the inputs grid power, PV power, consumption, battery power and state of charge. If these inputs are only wired internally to a neighbouring block, there is no address for them and the tile shows "-.--". Assign addresses to these inputs. The block itself keeps computing correctly without those addresses — the requirement only concerns the display.
If the input "Consumption" has no address assigned, the consumption tile falls back to the output "Consumption measured". The block computes that value itself anyway.
Schedule dialog |
|
| Bars | One column per hour, in three bands from top to
bottom: the planned power setpoint,
below it the planned state of charge
and at the bottom the feed-in price
of that hour. All three bands are the same height and separated by a
gap. What is shown is the feed-in price and not the consumption price: it is the revenue a discharge into the grid earns in that hour, and therefore the value against which the planned setpoint above it can be read. The consumption price of the current interval is shown in the "Computed data" dialog. Each band has a frame per column spanning its full height. That gives the reference: for the state of charge the bottom edge is 0 % and the top edge 100 %, for the price the top edge is the highest price of the whole schedule. The gap between the fill and the top edge therefore shows directly how far an hour is from the maximum. All bars start at the bottom edge of their frame. For the setpoint the magnitude is shown; whether the battery charges or discharges is given by the bar colour and the sign of the label. Every bar carries its value in the centre of its band: power in kW, state of charge in percent, price in cents. A feed-in price of 0 gets no bar, but the label still appears. |
| Time axis | The display always starts
at the current hour and runs from there to the right until the end
of the schedule. Past hours are not shown. Each column is labelled with its clock time. The first column is the current hour and is marked at its label. Hours that already belong to the following day carry a dimmed label; they only appear once the prices of the following day are known. Until then the schedule ends at midnight and correspondingly fewer columns are shown. The schedule reaches as far as the planning horizon under "Forecast and recording" is set — at most 48 hours, and only as far as prices are available. Where a new day begins, a vertical line is drawn. |
| Paging | Side by side there are 24 hours in landscape and 12 in
portrait; in landscape the dialog uses the full width of the page. If the
schedule is longer, it is paged — by dragging, with the mouse wheel or via
the arrow buttons at the bottom. The arrow buttons only appear then; if the
schedule fits on one page they are absent. The Settings and Computed data dialogs stay square in every orientation. |
| Update | The schedule is updated on every recomputation and on every change of hour. An open dialog takes that over immediately, it does not have to be closed. |
The schedule lives in the controller. Without a connection to the controller the dialog shows "No schedule available".
Icons in the title bar |
|
| Gear | Settings. |
| List | Computed data. |
Computed data dialog |
|
| Schedule | Group |
| Schedule valid | Yes as long as a computed schedule is available. If this shows No, the block runs in emergency operation. |
| Schedule computed | Minutes since the last recalculation. The value must not stay permanently above the configured interval between two recalculations. |
| Target state of charge | Planned state of charge at the end of the current hour in percent. |
| Planned charging | Sum of the planned charging energy over the next 24 hours in kWh. |
| Planned discharging | Sum of the planned discharging energy over the next 24 hours in kWh. |
| Expected yield | Expected profit of the schedule over the next 24 hours in euros, after deducting all losses. With a flat price this shows 0, because shifting energy does not pay off. |
| Next charging in | Minutes until the next planned charging window. The value
counts down with every control cycle. If the window is already running it
reads active — in self-consumption
mode that is the normal case, because charging or discharging then runs
almost continuously. If the schedule holds no further window, it reads
"none". On an address the output delivers the minutes as a number: 0 for a running window, -1 when none is planned. |
| Next discharging in | Minutes until the next planned discharging window, otherwise as above. |
| Prices | Group |
| Current consumption price | Consumption price of the current interval in cents per kilowatt hour. |
| Current feed-in price | Feed-in price of the current interval. If the price source does not know a feed-in price, the configured fixed feed-in tariff is shown here. |
| State | Group |
| Operation | The operating state in plain text: standby, charging from PV, charging from grid, discharging for self-consumption, discharging to grid, manual, emergency operation, off or charging at the feed-in limit. |
| Charging active | Yes as long as the storage is being charged. |
| Discharging active | Yes as long as the storage is being discharged. |
| Grid charging active | Yes if the charging energy comes from the grid. |
| Feed-in active | Yes if the storage is delivering to the grid. |
| Grid charging locked | Yes if grid charging would be profitable but is
prevented by the lock or by the minimum profit. This tells apart a
setting that is holding things back from there simply being nothing
to earn. In the manual and off modes this always reads "no" — the storage does not follow the schedule there, so a statement about a prevented grid charge would be meaningless. |
| Error | Yes if there is no valid price series or the battery capacity is 0. Missing or outdated measured values do not set this output; the configured behaviour on data loss applies there. |
| Recording | Group |
| Measured consumption | The consumption currently in use — either from the "Consumption" input or computed from grid, generation and battery. |
| Learned consumption | The learned value applied for the current hour. If the cell of this weekday is still empty, the average of the same hour across the weekdays already learned is shown. 0 means nothing has been learned for this hour yet and the base load applies. |
| Coverage | Share of the already filled cells of the consumption profile in percent. The profile has one cell for every hour of every weekday; after a full week of operation this shows 100 %. Until then the block uses the base load for the hours still empty. |
This dialog is display only. It reads the outputs of the block and is therefore complete even when the measurement inputs have no addresses assigned. Only "Schedule computed" does not come from an output but from the schedule itself.
Settings dialog |
|
| Operation | Operating mode (automatic, manual, off, own consumption), manual setpoint for the manual mode and the two locks for grid charging and feed-in. A lock only affects the execution — the schedule is computed regardless. |
| Battery | Battery capacity, highest charging and discharging
power, efficiencies, minimum
and maximum state of charge,
emergency reserve, reserve
at the end of the horizon and feed
in only above. The state of charge therefore has four lower limits side by side — the highest one wins: Minimum state of charge always applies, to everything. Emergency reserve raises that limit over the whole planning period. Reserve at the end of the horizon only takes effect during the last hours of the horizon, and only while the prices of the following day are still missing. Feed in only above applies to delivery into the grid alone. Below it the stored energy stays reserved for self-consumption — energy sold would otherwise have to be bought back later at the higher consumption price. In the schedule this shows as the feed-in hours stopping while self-consumption continues. |
| Economics | Price source, highest grid charging power, minimum profit for the PV shift and for grid charging as well as the fixed consumption price and feed-in tariff. |
| Forecast and recording | Base load, the two recording switches, the learning rate, the planning horizon, the highest permissible age of the prices and the interval between two recomputations. |
| Control | Control cycle, dead band, control gain, ramp and the behaviour on data loss. |
| Diagnostics | Switches on the diagnostic messages of the block. |
Changes are made on a working copy: only Save transfers the values to the controller. If the dialog is closed without saving, everything stays as it was.
The settings live in the controller, not in the project. They survive the transfer of a project, but they can only be read and written while a connection exists. If several control elements or development environments are open at the same time, a change appears there immediately.