GridZeno features: What GridZeno actually does.
Each feature is explained with how it works, what it requires of your system, and a concrete example.
Real-time overview
You see what is happening on your system right now, updated every 15 seconds.
The dongle reads the inverter over Modbus every 5 seconds and passes the measurements on every 15 seconds. GridZeno recalculates each quarter hour from scratch every time new measurements come in. A quarter hour that was disturbed by a brief network dropout is therefore corrected when the missing measurements turn up, instead of staying wrong for ever.
On the dashboard you see solar production, household consumption, the battery's state of charge and the power going out of and into the meter, together with today's electricity prices.
- Updates
- Read every 5 seconds, sent every 15 seconds
- Resolution
- Quarter hour, the same resolution as the Danish electricity market
- History
- Detailed measurements for 6 hours, quarter-hour data for 2 years
- Requires
- Dongle fitted in the inverter's RS485 port
Electricity prices, and what you actually pay
The spot price is rarely the price you pay. GridZeno calculates all the way to the price on your bill.
Spot prices are fetched from Energinet's official dataset in quarter-hour resolution for both DK1 and DK2. On top of the spot price, GridZeno adds the four things that are actually also on your electricity bill:
- Your own grid company's grid tariff. Fetched directly from Energinet's DataHub. It often differs from hour to hour, with a more expensive peak period late in the afternoon. See the rates at each grid company.
- Energinet's system tariff. National, the same for everyone.
- Energinet's transmission grid tariff. Also national.
- Electricity tax. Set by law.
| Spot price | DKK 1.308 |
|---|---|
| Grid tariff at your grid company | + DKK 0.092 |
| System tariff (Energinet) | + DKK 0.072 |
| Transmission grid tariff (Energinet) | + DKK 0.043 |
| Electricity tax | + DKK 0.008 |
| Total excluding VAT | DKK 1.523 |
| VAT, 25% | + DKK 0.381 |
| Your price per kWh | DKK 1.904 |
A worked example from one grid company in DK1. Your own rates depend on your grid company and on current legislation. GridZeno fetches them for you and calculates with yours.
The selling price is calculated the same way, just the other way round: the spot price minus the feed-in tariff, the balance tariff, your grid company's own feed-in tariff and your buyer's trading fee, all including VAT. That's why the price you get for a kWh isn't the same as the price you pay for it. That difference is what the control earns on: a kWh you use yourself saves you the buying price. See what you get for surplus power, and what it's worth with a battery.
Charts and history
Production, consumption, buying, selling and battery, day by day, quarter hour by quarter hour.
The graphs show what actually happened on your system. On top of today's curve, GridZeno draws a dotted line with what the forecast predicted for exactly that day. So you can follow how well it hits as the day goes, not only afterwards.
Quarter-hour data is kept for two years.
The green curve stops at the current time: that's what has actually happened. The dotted one continues to the end of the day: that's the expectation.
If the dotted line is well above the green one in the middle of the day, there are usually two explanations: either the weather was worse than forecast, or the system has cut back because the battery was full and selling was stopped. GridZeno takes the second explanation into account in the forecast, precisely because it would otherwise look like a fault on the system.
Solar and consumption forecast
A plan is only as good as what it expects. That's why GridZeno uses several weather sources and the physics of exactly your roof.
Several weather sources, ranked by how well they actually hit
GridZeno fetches weather forecasts from several independent sources. The system continuously compares what each source has predicted in the past with what the solar panels actually produced, and uses the one that has been most accurate. If a source drops out, the next one is used automatically.
Physics for each solar string on your roof
Production is calculated with a real solar physics model per string. If you have panels facing both east and west, they're calculated separately and added together.
An average of east and west gives an angle in between that none of the panels have. It predicts one sharp midday peak, where a real east/west system gives a broader curve with a morning peak and an afternoon peak.
A system with 5.5 kWp facing east and 4.0 kWp facing west: the same total daily energy, but the peak output drops from 3.38 kW to 2.71 kW, and the curve gets broader.
So the battery control plans for the two peaks the system actually gives.
Calibration against your own system
The physics doesn't know that there's a tree in the way, or that the panels need washing. That's why the forecast is scaled against your system's own production over the last 14 days. If you change the panel setup, the calibration starts over, because the old comparison would no longer be valid.
How often it's updated
- Light
- Three times a day
- Smart
- Every 3 hours
- Pro
- Every hour, plus an immediate recalculation if the forecast differs markedly from the actual production
Today's forecast is recalculated from "now" onwards, starting from the battery's real current state of charge. Quarter hours that have already passed are never overwritten. What has happened stays fixed.
If the day delivers less sun than expected, the plan also corrects the rest of the day based on what the system has actually produced so far. Then it charges from the grid in time, instead of waiting for sun that doesn't come.
Automatic control
GridZeno makes a plan you can read the reasons for, and the dongle carries it out locally at your home.
A plan you can read
The plan is made by a mathematical algorithm in seven steps. For every quarter hour you can see what the system will do, and why. Read how the algorithm decides.
- Prices are ranked across the whole planning horizon, so the other steps know which quarter hours are worth using.
- Your own consumption is covered first. If power is short, the battery is emptied before anything is bought from the grid. Surplus solar power isn't simply charged in the order it comes: GridZeno saves room in the battery for the surplus that's paid worst, and sells what is paid well. That gives the same battery level at the end of the day and more money for the sale.
- Charging by price. At negative prices, the battery always charges. With Pro, power is also bought in cheap quarter hours, but only when it pays off after the loss in the battery, and the battery can be held for a more expensive hour.
- Discharging at high prices. Sell from the battery in the best-paid quarter hours, and only the power the house won't need itself later. Pro only.
- Your strategy makes steps 3 and 4 more or less aggressive.
- Your own rules are applied last as hard limits. A ban always wins over an instruction. See Your own rules.
- Reasons are written, and identical quarter hours in a row are merged into readable lines.
Four strategies
- Balanced
- A sensible balance between self-consumption and price control. The default choice.
- Maximise self-consumption
- Use as much of your own solar power yourself as possible, rather than trading on the price.
- Preserve the battery
- Fewer charge and discharge cycles and a higher reserve, at the cost of some earnings.
- Maximise savings
- Makes the most of price swings, including selling from the battery at high prices. Pro only.
More to adjust with Pro
- Charging time
- Charge at the best time, prioritise charging from the grid first, or prioritise charging from the solar panels first.
- Price forecast
- The plan can look into tomorrow with expected prices, not only the prices that are already known.
- Your own rules
- Hard limits on what the control may do. See below.
The most important switch: Automatic or Manual
At the top of Automatic there's a main switch. When it's set to Manual, the dongle still fetches the plan and shows it, but changes nothing on the inverter. If GridZeno has changed something, the dongle puts the inverter's own settings back, including your own charge limits. It's exactly the same plan you would get in Automatic, so you can watch the system over its shoulder before you let it act.
Your limits are enforced in the inverter itself
GridZeno writes your minimum and maximum state of charge to the inverter's own limit registers. The limit therefore holds, even if the dongle loses power or connection.
Your own rules
Eleven rule types that always win over the automatic control's own choices. Each of them can be controlled by time and by data.
With Pro you can put hard limits on top of the plan. A rule has three parts: what it does, when it applies, and at most one condition. The rules are fixed types, so the system can make sure they're followed.
What the rule does
- Fully charged battery by a set time
- The battery must be full by a certain time, for example before a cold morning.
- At least X% by a set time
- The same mechanism, but you choose the percentage yourself.
- At least X% in a time window
- The battery is kept above your percentage all the way through the time window.
- Charge from the grid
- Charge from the grid in the time window, optionally only up to a state of charge you choose.
- Hold the battery
- The battery is neither charged nor discharged, so the energy is saved for later.
- Sell from the battery
- Sell from the battery in the time window, but always keep at least the percentage you choose.
- No discharging
- Don't touch the battery in the time window.
- Don't sell to the grid
- Don't sell to the grid in the time window.
- Limit selling to the grid
- At most this many kW out onto the grid in the time window.
- Max. charging from the grid
- At most this many kW from the grid into the battery, for example out of consideration for the fuse.
- No charging from the grid
- Don't buy power into the battery in the time window.
When it applies
- Time window
- A daily time window, for example 17:00 to 21:00. Without a time window, the rule applies all day. A time window across midnight belongs to the day it starts.
- Weekdays
- Only the days you choose, for example Monday, Wednesday and Friday.
- Period
- From one date to another, for example while you're on holiday.
Conditions
- When the buying price is below
- A price in DKK per kWh. Known the day before, so the plan can take it into account.
- When the selling price is above
- Your real selling price, not the raw spot price.
- When the selling price is below
- For example, stop selling when the power is worth almost nothing.
- When today's solar forecast is below
- The whole day's expected production in kWh.
- On a severe weather warning
- When a warning has been issued for your area, from the warning level you choose.
- When the house uses more than
- Measured right now, for example when the electric car is charging.
- When the battery drops below
- Measured right now, from the battery's own state of charge.
Prices and forecasts are known in advance, so the plan takes them into account. The two measured conditions can't be planned, because nobody knows in advance when the electric car will be plugged in. The dongle decides those itself from each measurement, locally at your home. It needs two measurements in a row before it reacts, and stays in the new state for at least five minutes, so a single spike doesn't make the system switch back and forth.
Which conditions fit which rules
A rule can have at most one condition. Here are the ones that fit each rule. "Measured" means that the dongle decides it from the measurement right now.
- Fully charged battery by a set time
- Solar forecast below
- At least X% by a set time
- Solar forecast below
- At least X% in a time window
- Solar forecast below
- Severe weather warning
- Charge from the grid
- Buying price below
- Solar forecast below
- State of charge belowmeasured
- Hold the battery
- Selling price below
- Solar forecast below
- Consumption abovemeasured
- State of charge belowmeasured
- Sell from the battery
- Selling price above
- No discharging
- Consumption abovemeasured
- State of charge belowmeasured
- Don't sell to the grid
- Selling price below
- Limit selling to the grid
- Selling price below
- Max. charging from the grid
- No condition. The rule is controlled by time window, weekdays and period.
- No charging from the grid
- No condition. The rule is controlled by time window, weekdays and period.
The combinations that are missing have been left out on purpose. "Sell from the battery when the buying price is low" would contradict itself, so that combination can't be created.
Fully charged battery by 18:00, Monday, Wednesday and Friday, but only when today's solar forecast is below 8 kWh. On the sunny days the sun manages on its own, and on the grey days GridZeno charges from the grid in the cheapest quarter hours before 18:00.
Hold the battery from 17:00 to 21:00 when the house uses more than 7 kW. When the electric car is plugged in, it charges from the grid, and the battery is saved for the rest of the evening.
You have set "charge from the grid 02:00-05:00" and "no charging from the grid 04:00-06:00". In the overlapping time window 04:00-05:00, the ban wins. A ban always wins, and a hold wins over both charging and selling. GridZeno chooses the cautious option and writes it in the plan's reasons.
If a rule is outright impossible to meet, for example "full battery at 06:00" on a day where there aren't enough hours to reach it, GridZeno writes in the plan that it can't be met.
Notifications
Fifteen kinds of message, each with its own switch for e-mail and for push.
You choose what you want to be told about, and on which channel. Push works on both computer and phone, even when the tab is closed.
The dongle isn't reporting in
When the dongle hasn't reported in for 30 minutes, for example because it has lost power or internet, and again when it's back.
The dongle can't read the inverter
Only when the fault has lasted for 30 minutes in a row, not on a single short dropout. The message says what the dongle reports.
The dongle can read the inverter again
Only if you were told about the fault. You don't get an "all is well again" about a problem you never heard about.
Change to the system
When the dongle finds one battery module more or fewer, a new capacity, a different inverter or new firmware in it. The plan is redone straight away.
The battery is almost empty
When the battery reaches the limit you set yourself.
The battery is full, and the solar power isn't sold
When the sun is producing, the battery is full and nothing is sold, so the power the house doesn't use is lost.
Unusually high consumption
Measured against your own consumption in the same time window over the last 14 days, not against a fixed number.
Low selling price tomorrow
When tomorrow's selling price falls below your own limit in at least one quarter hour.
High selling price tomorrow
When tomorrow's selling price rises above your own limit in at least one quarter hour.
The control is set to manual
When GridZeno stops controlling the system.
The control is set to automatic
And when GridZeno follows the plan again.
Report for the system
Monthly, and with Pro also daily or weekly. You choose the time yourself.
Detailed report
With Pro: highest and lowest days, self-sufficiency rate and your own records.
Problems with the payment
When a payment doesn't go through, when the subscription has stopped, and 14 days before a payment if your card expires before then. Always sent by e-mail.
Your free period ends soon
Thirty days before a free period or a campaign code expires.
Seven of them require Smart or Pro, and the detailed report requires Pro. The messages about payment always come by e-mail. The price alerts use your real selling price, not the raw spot price, which would give the wrong answer for anyone who is paid less than the spot price says. Alerts about your subscription aren't sent in the app for Android and iPhone. There you instead get a message that there's a new notice, and you have to log in to GridZeno via the website to read it.
Reports
An e-mail that shows what actually happened, and what it was worth.
The report comes every month, and with Pro also daily or weekly, with graphs and figures for production, consumption, buying, selling and battery. It contains four amounts, and they all describe something that has already happened:
- The value of your solar production
- What it would have cost to buy the same power instead.
- Earnings from export
- Real money you have already received for what you sold.
- The value of imported power
- What you have actually spent on buying power.
- The value of timing
- What it was worth that the power was used and stored at the right times rather than spread evenly over the day.
With Pro you also get a detailed report with the highest and lowest days, self-sufficiency rate, the most expensive and cheapest import times, a comparison with the previous period and your own records.
System data and changes
GridZeno asks your system instead of asking you to type it in.
The dongle reads the inverter's and the battery's details itself: model, serial number, rated power, firmware, number of battery modules and capacity. This happens when it starts, every 6 hours, and when you press Read again under System. The plan uses the capacity that the battery's own management system (BMS) measures, so these aren't numbers you have to look up in a manual, and not numbers we guess either.
Each reading is compared with the previous one. If a battery module is added, the inverter is replaced, or the capacity changes by at least 5%, it shows as a change under System, you're notified, and the plan is redone straight away.
At the top of System is the inverter's state right now: whether the dongle can read it, and whether the inverter itself reports a fault or warning. Below that are the location and the panels, string by string, as the forecast uses them and as you can correct them yourself. The Dongle page shows whether the dongle is running, and what to do if it isn't.
Security and your data
Your password never comes near the dongle, and tampered firmware can't be installed.
Pairing without sharing your password
The dongle creates its own secret the first time it starts, and registers itself. The actual linking to your account happens from your browser, where you're already logged in. Your password therefore never has to go into the hardware, and we never store the secret in plain text, only as a one-way fingerprint.
Signed replies and signed firmware
The replies from GridZeno to the dongle are signed, so a tampered connection can't feed it the wrong setup. Firmware is cryptographically signed on upload, and the dongle checks the signature while it downloads it, and rejects it before anything at all is written. The security lies in the signature, not in keeping the file secret.
Your data
Your system data is used to run your system. If you also want it to help improve the forecast models, that's a separate choice you switch on yourself. If you switch it off again, the data already copied is deleted, not just stopped.
The forecast service is physically separate from the rest and has no way of sending a single command to any inverter. It only makes predictions.
Home Assistant
Your system in Home Assistant, directly from the dongle on your network.
GridZeno's integration for Home Assistant finds the dongle on your network, and you approve it in GridZeno with a 6-digit code. Home Assistant fetches the measurements directly from the dongle every 5 seconds, bypassing our server, and it also works when the internet is down.
- All subscriptions
- Solar, consumption, battery and grid right now, energy meters for Home Assistant's energy dashboard, the plan and who is in control.
- Smart and Pro
- Your buying and selling prices for every quarter hour today and tomorrow, the cheapest and most expensive quarter hours and GridZeno's solar forecast, also in the energy dashboard.
- Manual control
- When you're in control yourself: charge from the grid, hold the battery, sell from the battery or limit export, for a time from 15 minutes to 12 hours and within your own limits. When GridZeno is in control, Home Assistant can only read.
We're still building the feature, and more will come when the firmware in the dongle is updated. That happens automatically. See the guide to Home Assistant
The content was last reviewed on 24 September 2026.
Ready for cheaper
power?
Check whether your inverter fits, and let the plan charge the battery and sell power in the right quarter hours.