Welcome to Svitgrid
Your complete guide to monitoring solar energy with Svitgrid.
Svitgrid is a free solar energy monitoring app that connects to your home inverter and shows real-time data about your solar production, battery storage, grid usage, and home consumption — plus historical reports, day-ahead forecasts, and a planner that runs schedules on your inverter automatically.
Welcome screen — add your first household to get started
What can Svitgrid do?
- Live dashboard — PV strings, battery SOC/voltage/temperature, grid import/export, home load, and outages — all on one screen
- Energy charts — Day, month, year, and all-time totals, with battery cycles and per-phase voltage
- Reports — Green-tariff revenue, CO₂ saved, daily production history, and weekly energy totals
- Calendar & Planner — Hour-by-hour view of forecast vs. actual, with a planner that runs charge / sell-to-grid / lower-consumption schedules on your inverter
- Solar forecast — Day-ahead production prediction based on panel orientation and weather
- Outage schedule — Planned blackout schedule for your Ukrainian region and group
- Multi-property — Manage several households from one account, invite family members
- 24/7 collection — A small Svitgrid Edge device collects data from your inverter around the clock
How it works
Svitgrid reads register values from your inverter's data logger (Wi-Fi stick) using the Solarman V5 protocol, or — for Victron — raw Modbus TCP. There are two collection modes:
- Phone mode — Your phone (or a spare phone left at home) reads the inverter directly over your local network.
- Edge mode — A small Svitgrid Edge device sits on your network, reads the inverter every few seconds, and uploads to the cloud. Works around the clock without a phone at home.
Release Notes
What's new in the Svitgrid app, by version.
Version 1.0.224
Available on: iOS 1.0.224 (224) · Android 1.0.224 (224) — August 2026
If you have more than one inverter
- You can now tell your inverters apart. The energy flow chart's swipable pages were separated by plain dots, and the whole-home view showed each inverter as an icon and a power figure — nothing named the inverter. The dots are now labelled tabs («Home», «Inv 1», «Inv 2»…), tapping a tab jumps straight to that inverter, each tile in the whole-home view carries the same number, and tapping a tile opens its page. Rename your inverters in their settings and the names appear next to the numbers. One number belongs to one inverter everywhere in the app, not to a position on screen.
- Fixed: a household with exactly two inverters saw «Master» written under both of them. The role words are now used only when your inverters really are configured as a master/slave pair; otherwise they are numbered like everyone else's.
- You can now add a grid-tie inverter that feeds the generator port of your hybrid — a second inverter with its own panels, wired into the hybrid's gen port. Adding one asks a single question: whether it is connected that way. Until now such an inverter could not be described at all, so its production was missing from the generation forecast — for one household that meant a forecast of 123 kWh on a day that produced about 225.
- Fixed: an inverter with no battery — a grid-tie or a microinverter — could be shown as though it had one, with a battery card and a charge percentage sitting at zero. Whether a model has a battery is now taken from the model itself, so these inverters are drawn as what they are.
Notifications that explain themselves
- Notifications that need a decision from you now open onto a screen that shows the reasoning instead of dropping you somewhere generic. It leads with what happened and the numbers behind it — what you configured, what your equipment actually reports, when it started — and only then offers what we suggest doing about it. Every one of these carries a «stop showing this» control that works from the notification itself.
- If your battery stops charging above the reserve you set, and the reason turns out to be a time-of-use schedule slot capped lower than your reserve, the alert screen can now fix that for you directly — it raises just that slot's target and waits for your inverter to confirm before telling you it's done. Where the cap comes from the inverter's own shutdown setting instead, no app can change that, so the alert offers to bring the app's setting in line with your equipment and says where the real setting lives. The direct fix currently works for households with an edge connector; via the phone connection or Home Assistant, the app tells you it cannot make the change from here.
- Turning an alert off in notification settings and silencing one from a notification now mean the same thing to the server. The two controls could disagree, with the losing one still animating and saving while changing nothing. Both now write both places. Nothing you had already switched off has changed.
- Fixed on the server: five alert types added after the notification settings screen was built — your inverter or its WiFi logger going unreachable, a configuration problem on the inverter, and a solar string producing almost nothing while the others are fine — were silently withheld from anyone who had ever opened that screen. Preferences are now stored as the list of alerts you have muted, so a new alert type is on for everyone by default and everything you actually switched off stays off. If you've opened notification settings before, you will start receiving these five.
- Fixed, on iPhones running iOS 27: clearing the unread count on the app icon was refused by the system on every attempt, producing a storm of background errors. The refusal is now handled. Be aware the number on the icon may still linger on iOS 27 — Apple has closed the only route apps had to reset it; opening a notification still clears it as it always did. iOS 26 and earlier, and all Android phones, were never affected.
Home Assistant households
- Fixed: in local mode, the app showed errors instead of your data whenever you were away from home — even though the same readings were sitting in the cloud, seconds old. The dashboard, charts, daily statistics and energy summary now fall back to the cloud when your Home Assistant is out of reach and your household is uploading. If you chose local mode without uploading, nothing changes: there is no second copy of your data, and the app still says so honestly.
- Fixed: the «Send data to Svitgrid cloud» switch could fail every single time with «could not change cloud sync — try again». The app tried your Home Assistant directly and stopped if the box refused; it now falls back to the cloud, which is authorised by your account sign-in rather than by the home-network key.
- Fixed: switching to local mode also switched off uploading to the cloud, without saying so — so your data stayed visible at home and disappeared for anyone away from the house. Going local now leaves uploading as you had it.
- Your choice about sending data to the Svitgrid cloud now survives reinstalling the app or moving to a new phone. It used to live only on the phone that made it; it is now also recorded against the household itself. A phone that has its own setting still wins.
- Fixed: after pairing a Home Assistant integration, the app could keep reopening on «Add inverter» on every fresh start, as though the inverter had never been added — asking for a logger serial number a Home Assistant household does not even need. The inverter was never lost; what was left behind was the half-finished setup wizard, which pairing never cleared. It does now, and any household that already has an inverter drops a leftover first-time-setup memory the moment its dashboard loads. If you are stuck in this loop right now, close the wizard with the ✕ and confirm discarding it, rather than deleting the household — deleting cannot fix it.
Tariffs and settings
- Fixed: on the «Для підприємців (фікс. ціна)» tariff there was no way to save the import price you typed — the field saved only from the keyboard's confirm key, which the iPhone numeric pad does not have. It is now a row that opens a dialog with a Save button. One thing to check if you hit this: choosing that tariff saves an import price of 0 straight away, so your price may be sitting at 0 — open the row and set it. The sell-price cap on the «Активний споживач» tariff had the identical problem and is fixed alongside it.
- Fixed: on the «Активний споживач (РДН)» tariff, the РДН price-range condition disappeared from the sell-to-grid event editor — visible on an event created earlier, and still working there, but impossible to add or change. Events already set up kept running exactly as configured; only the control was hidden, by a rule meant for fixed-rate customers that also caught active consumers — who are paid the day-ahead price and for whom the condition is precisely as meaningful. The drain-to-grid option in battery maintenance was hidden by the same rule and is also back.
- The grid limit setting now explains itself: it caps the total power your home draws from the grid — household use and battery charging together — which is not the same as the grid charging current limit, that one applies to battery charging alone.
- The battery pack line now shows the total capacity of a multi-pack bank, and is translated.
Inverter control
- Fixed: changing a charge time slot left «Applying…» spinning, and after about fifteen minutes turned into «Change didn't reach the inverter» with a Retry button — on a change the inverter had already made, usually within ten seconds. The app simply stopped listening one step too early: a command passes through two stages — your connector picks it up, then the inverter confirms it — and the app treated the first as the end of the story. If you re-sent a change because of this, that second send was harmless. The same silence affected the work mode, sell-to-grid and generator controls, which kept showing their previous values after a successful change.
- Fixed: during a maintenance battery charge, your connector could play its confirmation tune every minute or two for hours on end. The charge settings were being re-sent to the inverter on every reading rather than only when something changed — in one 7.5-hour charge, 301 commands carrying just two distinct settings. Nothing about what reaches your inverter changes.
- Fixed: a connector firmware update could fail with «retries exhausted» without ever downloading anything. The download link handed to the device expired after 15 minutes while the update command stays valid for 24 hours, so a connector slow to come back online spent all its attempts on a dead link. The link now outlives the command. If your connector is showing this error, press update again once — it will use a fresh link.
- The edge connector no longer risks going completely dark for hours after a restart. On startup it waits for WiFi before doing anything else, and if that association failed it waited indefinitely — the watchdog meant to catch exactly this was started after the wait. It now starts before it, so a connector that cannot get back onto WiFi recovers itself in about ten minutes instead of waiting for someone to unplug it. Firmware 2.118.0.
Smaller fixes
- Fixed: your charts marked the last few minutes as a break in data collection while data was arriving normally. Chart points are five-minute averages, so the newest stretch of every chart is always empty by design; that emptiness was being read as «the station stopped reporting». It is now recognised for what it is — but only while your station is demonstrably still sending, so a genuine outage still shows, at most five minutes later than before.
- Fixed: tapping the pencil on an existing calendar event opened what looked like creating a new one — the full list of modes with nothing showing which one your event uses. Editing now opens with your event's mode first, ticked and in its own colour, and the other modes sit below under «Change mode», because changing an event's mode replaces its settings and should be a deliberate choice.
- Fixed: on an iPad held sideways, pulling down to refresh only worked over the right-hand half of the home screen. Both halves now respond.
- Fixed: deleting a household could answer «Only owner can delete household» — about a household you had, in fact, just deleted successfully a second earlier. Repeating a delete you already made now simply confirms it. If you were caught by this, the deletion had already gone through every time you saw that message.
- Fixed: when a calendar event failed to switch a smart socket off, nothing ever tried again — a twelve-second Zigbee glitch became a socket left energised all night, drawing from the battery. A failed switch-off is now retried the same way a failed switch-on always was: up to three times, and only within half an hour of the original, so a socket can never surprise you by turning itself off long afterwards.
- Every household now has a short support code — «SG-» followed by six characters — which will appear in household settings once the app screen showing it ships. Sending it when you report a problem tells us which station you mean in one line. It is deliberately not your household's internal identifier: nothing in Svitgrid accepts it as input, so it grants nobody anything.
- The live map at svitgrid.app/map no longer erases a region whose stations are reporting but momentarily producing nothing — abroad, where a country is represented by a single station, one quiet hour used to erase the entire country. A region that has reported within the last day now stays as a small dim dot and brightens when it generates again.
- Added support for the Solis (Ginlong) 5G three-phase string inverter, reached through a Solarman logging stick like a Deye. Its readings are not yet verified against real hardware, so the first unit that reports should sanity-check its numbers.
Version 1.0.222
Available on: iOS 1.0.222 (222) · Android 1.0.222 (222) — August 2026
Fixes the 1.0.221 sign-in problem
- If updating to 1.0.221 logged you out and your system was then missing, this build fixes it — and nothing of yours was lost. That build was sent to the stores carrying the settings for our internal test environment instead of the live one. The app therefore looked you up in the wrong place: your existing login was no longer recognised (hence the logout), and signing in again created an empty new account rather than finding your own. Your household, inverters, edge connector and full reading history were never touched and were never at risk — they were simply not where that build was looking.
- What to do: update to 1.0.222 and sign in the same way you originally signed up. If you created your account with an email and password, use that — signing in with Google or Apple instead creates a separate account even on a correct build. Everything reappears as it was.
- To make sure this cannot recur, the live configuration is now what the app builds with by default; the internal test environment has to be switched on deliberately. A release build also now refuses to complete unless it has verified it is pointing at the live environment. The earlier arrangement was the other way round — the live settings had to be remembered — and forgetting left no visible trace, which is how it also reached iOS builds 204 and 206.
Version 1.0.221
Available on: iOS 1.0.221 (221) · Android 1.0.221 (221) — August 2026
Notifications you can trust again
- Fixed: a false "Power outage" followed seconds later by "Grid power restored", several times a day, on a grid that never went out. When the edge connector's request for the grid registers went unanswered, the unanswered values stayed at zero and the device read that as a textbook outage — nought volts, nought watts. It now tells "the inverter didn't answer" apart from "the inverter answered zero", and waits 90 seconds rather than 10 before confirming. The server refuses an outage report carrying the same signature, so the fix protects you even before your connector updates itself.
- The same false pair could come from a data logger that intermittently returns the whole register block ~20% low. The server now cross-checks battery voltage against the reported charge level and discards those corrupt frames instead of announcing an outage.
- Fixed: some phones received every push notification twice — most obviously the paired outage/restored alerts. A phone set up before the move to the production backend stayed registered twice; the stale registration is now removed. No app update was needed for this one.
- The "Inverter fault" alert has been removed entirely — the red banner, the fault history screen and the notification. It decoded fault codes against a catalog that didn't match real Deye hardware, so it regularly raised alarming faults like "F58" on inverters that were working perfectly. The alerts that are reliable — inverter offline, low and critical battery, power outage and grid restored — are untouched.
- The red "Emergency outages in your region" alarm no longer stays up for days for people who still have power: when your own inverter reports the grid is present, it becomes a calm one-line note you can tap or swipe away. If your grid actually goes out during a regional emergency, the full alarm returns.
- Fixed: whole days were marked "Emergency" for regions whose own operator reported no outages at all — 13 of 23 regions were flagged this way, because any mention of an oblast near words like "damage" in Ukrenergo's daily post counted. Only a genuine declaration counts now, and only from a post published in the last 24 hours. Your operator's own hourly schedule also wins over the regional flag.
- Fixed: on a day marked as an emergency, tapping any hour on the calendar did nothing but reopen the outage description, so event settings were unreachable for the whole day.
- The weekly energy digest now actually arrives. The job walked all 2,658 homes on the platform inside a 60-second budget and timed out every Monday at the same point — 30 of the 38 people who had it switched on had never once received one. It now starts from the people who asked for it.
- The daily digest now reports consumption as well as generation, as the settings screen always promised it would.
- Your notification history is now shown in your own language — immediately, without an app update. Two members of the same household each read the same alert in their own language.
- A new flood guard caps identical notifications at 3 per 5 minutes per person, whatever goes wrong upstream. Genuinely different alerts are unaffected.
Live data
- Fixed: your dashboard could sit several minutes behind reality no matter how often you pulled to refresh, even with the inverter reporting every few seconds. The service that receives realtime readings renewed its broker credential only when its connection dropped — so a connection that never dropped never renewed, and homes fell off the fast channel one at a time over several days. Credentials now renew on a schedule. No readings were lost; the slower backup path had been recording them all along.
- Fixed: battery charge could freeze at a stale percentage for hours — 29% shown while the inverter said 75% — until the device was rebooted. The filter that rejects physically-impossible jumps was also rejecting a legitimate BMS recalibration, and once it had rejected one it could never accept the new reality. It now adopts a correction that keeps telling it the same story for two minutes, while still catching brief erratic spikes.
- Fixed: the dashboard could show "Installing update — device will restart" indefinitely on a device that had long since finished. Sixteen devices across the fleet were showing a phantom update and have been cleared; the banner also gives up on its own after ten minutes of no progress.
- Fixed: a firmware-update error stayed on a device forever, even after the next attempt succeeded. It is now cleared as soon as the device reports it is no longer failing.
- The dashboard refreshes on a steady 5-minute rhythm and no longer wakes your device on nearly every open. Your device keeps reporting at its configured cadence, so charts and history lose nothing.
Your inverter's controls, in the app
- Your inverter's Time-of-Use schedule is now visible where you actually look: tap the inverter on the dashboard and the six charge slots appear as a table, in the same shape as the inverter's own display, with the slot running right now highlighted. Tap any row to edit it, or open the new "All controls" screen for work mode, generator force, grid charge current and battery settings in one place.
- The schedule now says "Confirmed N minutes ago", so you can tell "this is what your inverter holds" from "we haven't heard from it in days".
- Changing a slot no longer fails in silence. It stays marked pending until the inverter confirms, and an undeliverable change gets an explicit message with a Retry button instead of quietly reverting after fifteen seconds.
- New Energy priority setting — choose whether solar covers the house first (Load first) or charges the battery first (Battery first). Available as a one-off control and as a schedulable calendar action that restores the previous setting when the window ends.
- New Grid peak shaving control — set a ceiling on how much power the inverter may draw from the grid, so a heavy load plus battery charging can't trip a limited connection's breaker. Also available as a calendar action, e.g. to cap the draw through the evening peak. Available on three-phase Deye/Sunsynk hybrids where the registers were confirmed on real hardware.
- "Grid charge current" now shows the value currently set on the inverter instead of a blank write-only box, and has moved into the Inverter Control card.
- The inverter settings screen has been cut down — the long explanatory paragraphs now live behind an ⓘ, and each setting opens a focused editor instead of taking four screens to scroll past.
- Fixed: switching a slot's grid charging on or off silently switched that slot's generator charging off as well. Only the flag you change is written now.
- Fixed: the inverter controls screen could crash on open for batteries configured by voltage rather than percentage.
- Fixed (Ukrainian): the work-mode selector showed two identical truncated options — "Нульовий екс…" twice — with no way to tell them apart.
- Fixed: with a "Charge now" or "Use battery now" override already running, the app still offered both buttons and the tap did nothing. The running one now reads "Active until 15:30" and both are held until it finishes or you cancel.
- Fixed: a "Use battery now" override never ended by itself — it left the inverter in self-consumption with grid charging off indefinitely, until you pressed Cancel. It now ends at its scheduled time and restores what it found. ("Charge now" was never affected.)
- Fixed: after a "Charge now" window ended, some of your Time-of-Use "Grid charge" checkboxes could be left unticked even though the app reported success — so the battery quietly skipped its normal scheduled charging. The restore now re-reads every register it wrote and repairs any that didn't stick, and reports honest failure if it can't.
Calendar
- The calendar scrolls smoothly straight through midnight instead of stopping you at each day boundary, with a small resistance and a haptic tap where one day ends. A single long-press selection can now be dragged across midnight, so an overnight event (23:00 → 04:00) is one event rather than two.
- Fixed: an event covering the last hour of the day showed "Start 23:00 → End 23:00", and simply opening the End picker and pressing Done silently cut the last quarter-hour off it. The End field now shows and offers 24:00. If you created an evening event this way and then edited it, check it still ends where you meant.
- Tapping a calendar-event notification now opens that specific event, and its run history shows what the automation actually did — "Sold 4.2 kWh — earned ₴38", "Covered 3.1 kWh from solar — saved ~₴28", "Battery 40% → 95% (+8.5 kWh)". Fixed-tariff households see kWh and money saved rather than a misleading "earned".
- Fixed: the automatic battery-maintenance charge appeared as an all-day block on every day, making it look like the battery was being grid-charged 24/7. It now shows only on the days it actually runs.
- New "Battery Hold" event type, inserted by the planner into gaps between scheduled events to stop the battery draining to the grid before the next window.
- Fixed: planner-created events offered an Edit form whose Save failed with a raw error. They are read-only and now say so.
- Fixed: on calendar screens the phone's status bar — clock, battery, signal — could turn invisible and stay that way.
- The "Sustain for" control in the Professional event editor is a usable −/+ stepper covering 1 to 20 minutes, instead of a slider squeezed into 30 points of width that looked like a broken switch.
Reports, and what Svitgrid earned you
- Reports now opens with a Svitgrid value card showing what the automations actually did for you in the selected period — money saved and money earned, always labelled separately, with a per-mode breakdown and an all-time total. A new monthly summary notification (on by default, switchable off) links straight into it.
- Fixed: that card could freeze at a figure that never moved while automations kept selling to the grid every day — one customer sat at ₴70 for days while genuinely exporting 20–30 kWh daily. The morning sell window starts before the sun has produced anything, and a true zero couldn't be told apart from missing data. Past events have been re-scored, so existing cards correct themselves.
- Fixed: between midnight and roughly 3 AM the daily statistics showed the new day's small overnight totals labelled as yesterday's entire day, while yesterday itself was missing from the list. Hourly data was being filed under UTC dates; today is now stamped with your household's own local day.
- Reports refresh noticeably faster, worst-case late in the month and on households with several inverters — the monthly tariff reports no longer re-scan the whole month on every refresh. The numbers are identical.
- The "Total Production" chart is hidden for systems with no solar panels, where it was always an empty grid.
Day-ahead market (РДН)
- Electricity tariff settings now ask whether you have a registered energy-storage unit (УЗЕ). Without one you buy at your ordinary supply tariff, not the РДН spot price — the planner used to believe a 0.90 ₴/kWh night trough was available to you when you were actually paying 2.16 ₴, and scheduled overnight charging that could never pay for itself. Expect affected plans to charge less at night than they used to.
- Sell windows are now chosen by the price you are actually paid, not the headline market price. With УЗЕ your export is capped at the supply price you'd otherwise pay, so an hour trading at 12.37 ₴/kWh may only pay you 4.32 — and the price shown is the one the money is calculated from.
- If your minimum sell price sits above that cap, the planner now explains it and names the highest price actually achievable for the day, instead of leaving the day blank with no explanation. Your setting is never changed for you.
- Grid charging is now solar-first: the planner subtracts the solar it is confident about and never schedules a grid charge during those hours. One household was force-importing about 12 kW at midday while its own panels were producing.
- The planner now holds the battery during unscheduled gaps between events, instead of letting the inverter revert to "Selling First" and drain the just-charged pack. On one household that dumped the battery from 56% to 14% at low prices, leaving nothing for the intended sell window. Daytime solar surplus is never curtailed.
- The sell revenue estimate now counts energy sold from the battery — not only surplus solar — respects the reserve floor you set, and schedules a solar-only sell instead of a battery drain when refilling would cost more than the sell earns.
- The battery graph now shows the pack actually emptying during a "sell first" window, rather than drawing it flat while the earnings figure counted energy sold out of it.
- Fixed: the planner authorization screen overstated the daily grid-charge limit on parallel inverters sharing one battery bank — it counted the shared bank once per inverter.
Home Assistant
- Send data to Svitgrid cloud is now its own switch, separate from keeping your data in Home Assistant. Choosing local storage used to switch cloud sync off permanently — your data at home and nothing at all when away — with no way back short of re-pairing; one household re-installed the integration about twenty times trying to fix it. Nothing was lost: switching cloud sync back on uploads the stored backlog. Needs add-on 0.20.0 for the local route, 0.19.0 for the cloud route.
- The add-on now reads your inverter's Time-of-Use schedule and work mode, so Home Assistant users no longer see six empty slots that could never be filled in. Add-on 0.18.0.
- Local (island) mode now supports more than one device. Setting it up on a second phone used to sign the first one out permanently; each device now keeps its own key. You can also see every paired local-mode device and remove any of them — handled entirely on your local network, so it works with the cloud unreachable. Add-on 0.16.0 / 0.17.0.
- A rejected local key now says the connection was reset by another device and offers a one-tap "Set up again", instead of sending you to troubleshoot your network over a 401.
- Island mode fixes: the per-phase L1/L2/L3 breakdown is back on the Load and Grid cards, inverters show their real names and master/slave roles instead of raw device ids, and the grid-voltage, past-day and hour drill-down charts read from Home Assistant instead of coming up blank.
- Fixed: switching back to Cloud while away from home could leave the dashboard loading forever, and a failed switch to island mode could leave you with no live data on either path.
- Setup now suggests
homeassistant.local:8123rather than a fixed IP address that a router restart can silently invalidate. - Complimentary accounts now see the paid Home Assistant options, and a banner warns when your add-on is below the minimum supported version.
Setup, inverters and devices
- Huawei: an edge connector can now harvest SUN2000 inverters behind a SmartLogger3000 around the clock, with no phone involved. Setup sweeps Modbus addresses 1–32 rather than 1–10 (on the first real site three inverters sat at 1, 2 and 12, so the third never appeared), with an "Inverter missing?" field for higher addresses. A SUN2000 that isn't one of the three models Svitgrid knows by name is now added as a generic read-only unit instead of being refused.
- Fixed: a Huawei string inverter's own production was being reported as grid import, so the app showed "Importing 35 kW" per unit and summed it into a fictional household import figure.
- Fixed: on an inverter that reports a true total but per-string detail for only some strings — every SUN2000 does — the server "corrected" the correct total down to the partial string sum, showing a 150 kW unit producing 84 kW as making 8.7 kW.
- When an inverter finishes connecting, the app now asks whether you have another one in this household and walks straight into adding it, including whether it runs independently or in parallel with a shared battery.
- Onboarding updates a brand-new edge connector to the latest firmware automatically, with a banner on the dashboard while it runs.
- Fixed: a Deye/Sunsynk/Sol-Ark inverter could be onboarded with a blank data-logger serial, which was silently saved as "0" — producing a device that could never read the inverter. The field is now required and digits-only.
- Setup now works on a WiFi network with no password: the app accepted only 8+ characters, and the edge connector separately refused to associate with an open network even after reporting it in the scan.
- Fixed: the app could open straight into the "Add inverter" wizard on every launch for a household that no longer exists, leaving you unable to reach your dashboard. One user deleted their real household twice trying to escape it; if you are stuck there now, this build releases you.
- Battery configuration now supports a bank of multiple parallel packs — the series cells of one pack plus each pack's capacity in Ah — instead of forcing a single total cell count that threw off the app's voltage checks.
- Removing a device now really wipes it: a signed factory reset that still reaches a connector that was offline at the time, and only then removes it from your account. Deleting a household resets its own connectors too.
- The Mesh network screen no longer labels a device connected through a repeater as "not on the network" — devices are grouped as directly connected, extended through a repeater, or genuinely unreachable, and unreachable ones get a "Test connection" button that reports a real result.
- Fixed: new Zigbee devices could never pair with a factory-fresh edge connector, because the coordinator formed its network on a channel most consumer devices never scan. Smart-plug on/off now waits for the radio's delivery confirmation and retries, instead of reporting success while nothing physically switched.
- Replacing an edge connector now re-parents its Zigbee plugs and restores the Zigbee network backup, so they don't end up orphaned.
- "Scan for logger" keeps running when you leave the screen — the ~90-second sweep used to be thrown away — and the dashboard banner says a scan is in progress instead of "you are offline".
- Fixed: an edge connector could go dark after a router power-cycle or grid outage and stay offline until physically power-cycled. Its self-restart watchdog deliberately did nothing while WiFi was down, which was also the one case where a reboot is the fix.
- A firmware update that hits a transient failure now retries up to 3 times instead of being silently abandoned, and the board's status LED shows at a glance whether your readings are reaching the cloud.
Battery maintenance
- Fixed: a maintenance charge took over your inverter's whole Time-of-Use schedule for the day, borrowing the first slot and setting it midnight-to-midnight — which on these inverters also moves the neighbouring slot's boundary, so your schedule was gone until you restored it by hand.
- Fixed: a maintenance charge could reach 100% and then never finish. Completion was judged against a specification voltage a BMS is free to never reach; one 14S pack sits at 57.61 V against a calculated 58.10 V, so the charge slot stayed on, export stayed paused, and the discharge that follows never began. It now judges charge level plus collapsed charging current, held steadily for twenty minutes.
- Fixed: a fill scheduled for the middle of the day bought grid energy under full sun — on one green-tariff site set to 14:00 that meant importing 10.3 kWh and losing roughly 14 kWh of production, because export is paused while a fill runs. The fill now uses solar surplus first and only calls on the grid when the sun genuinely cannot finish the job. Night fill windows behave exactly as before.
- Choosing a fill time between 08:00 and 18:00 now warns you first (you can still use it anyway), and the "Run now" dialog describes what your inverter will actually do rather than the wrong routine.
Account, sign-in and subscription
- Correction: this release was meant to fix "Sign in with Google" failing on iOS by pointing the sign-in and the login backend at the same project. The build that reached the stores pointed both at the wrong project, which is why updating logged you out and your system then appeared to be missing. Nothing was lost — see Version 1.0.222 above, and please update.
- The login screen now names the actual problem instead of one catch-all "An error occurred", and nudges Google/Apple-registered users toward the right button. It also no longer opens with the keyboard already up, hiding the Google/Apple buttons below the fold.
- Fixed: signing up could deliver the same verification email two or three times. A live code is now reused for the rest of its 15 minutes rather than reissued; tapping "Resend" yourself still always sends a new one.
- Fixed: "Resend code" on the password-reset screen sent the email in English even for Ukrainian users.
- Verification and reset emails got a proper Svitgrid look, the code copies cleanly in one tap (it used to copy with spaces the field then rejected), and Ukrainian emails are Ukrainian end to end.
- If Svitgrid is free for you — a gift of a few months, or permanently — you can now choose to subscribe anyway to support the project. It is only ever an offer, and the app states plainly what it costs you before anything is bought.
- Fixed: tapping "Restore purchases" could silently end a gift of free months early, with no way to give them back.
- The "redeem code" entry has been removed from the app, as App Store rules require. Complimentary access is still granted from our side; device-ownership transfer is unaffected.
- On the Base tier, the 30-second reporting option is now a tappable upgrade prompt rather than a greyed-out chip that looked broken.
Display and polish
- Fixed: on a home with two inverters in parallel, the dashboard drew wildly different house loads for the two of them — 471 W and 1.6 kW — on a system where both were carrying an identical share. Each line now shows that inverter's real share of household load, and the two add up exactly to the figure at the house.
- Fixed: on parallel inverters with a micro-inverter or generator on the gen port, output showed at about half its real value (~7 kW of 14 kW). A smart load on that port could likewise be reported at a fraction of the truth, with the missing power silently added to household consumption. Both now sum correctly across the group.
- The battery card's current now agrees with its power — it came from a register that reads about half the truth on real Deye hardware, so −639 W at 53.1 V showed as −5.5 A instead of −12 A. The micro-inverter card gained a current reading the same way.
- Fixed: on three-phase homes the grid reading could sit above the grid icon and run up into the outage strip, hiding whether you were importing or exporting.
- Homes with three or more inverters: pages are ordered master → slave → grid-tie with M/S/bolt badges, solar can be double-tapped to break out per string, a grid-tie's page no longer shows a "0 W consuming" house it cannot measure, and a minimized outage banner can be restored from any view.
- The fullscreen dashboard no longer breaks at large system font sizes, and keeps the screen awake — for a tablet mounted on the wall as a permanent display.
- The solar forecast for today is no longer thrown far off by the first hour or two after sunrise; one system had its day inflated by about half from two hours of dawn readings. Measured across 1546 days of history from 38 sites.
- The inverter picker now finds Deye HV models by the code on the nameplate — "SUN-50K-SG01HP3", "sun 50k" and "sun50k" all match.
- Fixed: in the smart-plug pairing dialog, device names wrapped letter-by-letter into an unreadable narrow column.
- Spanish, Portuguese, German, Turkish, Dutch, Polish, French, Italian and Arabic are now fully translated — each was missing the same 127 strings that fell back to English mid-screen. Ukrainian gaps on the Home Assistant and device screens are closed, and the trial banner now says how much of your trial is left rather than how long the trial is.
Version 1.0.13
Available on: iOS 1.0.13 · Android 1.0.13 — July 2026
Home Assistant, reimagined
- A new dedicated Home Assistant settings screen brings your connection status, island-mode switch and refresh interval together in one place.
- Choose how Svitgrid reads your inverter: Relay (through your existing Home Assistant sensors) or Native (Svitgrid reads Modbus directly).
A faster, live dashboard
- New "Cloud reporting" control lets you pick how often your system reports — from 30 seconds to 5 minutes — and the dashboard now refreshes live at that rate.
Smarter battery maintenance
- Charge and discharge are now fully independent: set an explicit drain-window start and end time — any hours you like, including overnight.
- High-voltage packs that report 0% (their BMS doesn't share state-of-charge) now show a "~N%" estimate from battery voltage, with an explainer card, instead of a misleading 0%.
Professional calendar automations
- Control a ZigBee smart plug as a custom event action, with a single directional on/off that reverts automatically.
- A plain-language preview now summarises each rule — e.g. "Self-consumption + charge window · when battery ≤ 30% and grid is down" — on both the builder and the event detail.
Reports & tariffs
- Sell-to-Grid is now available on the "Активний споживач (РДН)" tariff.
- The Reports period picker defaults to "Today", and the export row is now labelled "Exported to grid" ("Віддано в мережу").
Devices & monitoring
- A new pause / resume toggle on the device screen lets you stop and restart a device's monitoring.
- Household load is now split into backup vs grid-side load.
- The Zigbee "Mesh network" screen is now readable for non-engineers — device names, plain-language signal quality, and off-mesh devices clearly listed.
Onboarding
- A short one-time welcome message greets you after sign-up.
- Setup now survives switching apps or the phone closing the app in the background (common on MIUI / Redmi) — you return exactly where you left off instead of starting over.
Fixes & polish
- Removed a phantom "EV Charger" badge that appeared for some users with no EV charger connected.
- The iOS home-screen widget now reliably opens the app from a fully-closed state, with no more "page not found".
- The keyboard now closes when you tap a sign-in button.
Version 1.0.12
Available on: iOS 1.0.201 (201) · Android 1.0.12 (201) — July 2026
Inverter troubleshooting
- When your inverter stops reporting while your gateway is still online — usually because the data logger's IP address changed — the "data may be outdated" banner is now tappable and opens a guided troubleshooting screen.
- A new "Scan for logger" action re-discovers a logger whose IP has moved and re-points your device to it automatically, with no manual setup.
- Retry a reading on demand, or edit the inverter's IP address by hand if you prefer.
Battery
- Schedule automatic battery maintenance windows (fill / drain) to keep your pack healthy.
- A quick one-time control to set the grid charge current for your inverter.
- The battery card now shows charging / discharging current in amps, alongside power, voltage and temperature.
Home screen
- Tapping the home-screen widget now always opens the app on your dashboard, instead of an occasional "page not found".
- The widget refreshes more reliably in the background.
Fleet view (for operators)
- Tap a status card (Online / Offline / In alarm) to jump straight to the stations list with that filter already applied.
Home Assistant (Island mode)
- Dashboard charts read from your Home Assistant are now fine-grained (5-minute), roll over correctly at midnight, and show per-phase grid voltage.
Fixes & polish
- The cooperative settlement card shows a balance you owe as a positive amount, with the direction in the heading — no more confusing double negative.
- Turning off the "Power Outage" alert now also silences the app's own on-screen outage notification.
- Signing up no longer sends several "verify your email" messages in a row.
- Fixed a stray back arrow in the dashboard header after visiting settings, overlapping chart labels, and double-counted generator power in multi-inverter homes.
Version 1.0.11
Available on: iOS 1.0.11 (160) · Android 1.0.11 (161, 162) — June 2026
Fleet view for operators
- Manage many sites at once from a new fleet dashboard — overview KPIs, a live station list, and a fleet-wide alarm feed.
- A day-ahead market (РДН) battery-arbitrage projection and a fleet analytics tab (energy, station ranking, estimated revenue).
- Invite households into your organisation and manage operators and their roles.
New "Active consumer (РДН)" tariff
- Settle at the day-ahead market price: a monthly settlement card shows what you sold, the average price, revenue, and your net balance.
- The calendar now overlays day-ahead (РДН) hourly prices for this tariff.
Calendar & Planner
- New "Professional" event mode — build a custom event from inverter settings plus trigger conditions (battery level, solar, load, grid up/down, scheduled outage, forecast, market price).
- Pause any event for the rest of the day with one tap; it resumes automatically tomorrow.
- "Consume from sun" now tells you why it's waiting and lets you set the turn-off power level.
Dashboard
- See up to 6 solar strings on the energy-flow diagram (6-MPPT inverters).
- The EV charger now shows as an animated charging node while it draws power.
- Each inverter shows an "offline" badge if it stops reporting, so one dead unit in a multi-inverter home is no longer hidden.
- Swipe the outage banner away to dismiss it, with a new toggle to hide it for good.
Forecast
- New "Solar utilisation" card — an hour-by-hour view of how much available sunlight you actually captured.
Reports
- The electricity-cost card now breaks costs down by day / night / peak zones, so the cheaper night rate is visible.
Notifications
- Opt out of product-update and promotional notifications, separately from safety alerts.
Outage schedules
- 12 more regions now show live blackout schedules.
Fixes & polish
- Removed phantom solar, PV-string, and generator readings that could appear when nothing was connected.
- Clearer micro-inverter details, readable chart value tooltips, and the calendar week strip now follows the day you swipe to.
Download & Install
Get Svitgrid on your device.
iOS (iPhone / iPad)
- Open the App Store on your device
- Search for "Svitgrid"
- Tap Get to download (free)
- Open the app once installed
Requires iOS 15.0 or later.
Android
- Open Google Play Store
- Search for "Svitgrid"
- Tap Install (free)
- Open the app once installed
Requires Android 8.0 (API 26) or later.
Permissions
Svitgrid may request the following permissions:
| Permission | Why |
|---|---|
| Local Network | To communicate with your inverter on your Wi-Fi network |
| Bluetooth | To configure the Svitgrid Edge device via BLE during onboarding |
| Location | For solar-forecast accuracy (panel location) and BLE scanning (Android requirement) |
| Notifications | For energy alerts, planner runs, and system status updates |
Create Your Account
Sign up in seconds.
Registration
- Open Svitgrid and tap "Create Account"
- Enter your name, email, and password
- Tap "Sign Up"
- Check your email for a verification link and tap it to verify your account
- You're in!
Sign in with Google / Apple
The login screen also offers single-sign-on with Google and Apple. The first sign-in creates the account; later ones just log you in.
Forgot Password
On the login screen, tap "Forgot Password?" to receive a password-reset link via email. Tap the link to set a new password.
Two-Factor Authentication
Once signed in, you can turn on app-based two-factor (TOTP) under Settings → Security. After enabling, you'll be asked for a 6-digit code on each new login.
Onboarding Wizard
Set up your first household step by step.
After creating your account, the onboarding wizard guides you through setting up your solar system. The flow takes about 3–5 minutes.
The whole wizard in one take — serial number and Wi-Fi password are blurred for privacy.
Step 1 — Household Name
Give your property a name (e.g., "Home", "Country House", "Office"). This helps you identify it if you have multiple properties.
Step 2 — Location
Set your property's location on the map. This is used for:
- Solar-forecast calculations (sun position depends on latitude/longitude)
- Weather data for forecast accuracy
- Outage schedule (Ukrainian regions)
- Timezone detection for daily totals
Step 3 — Connection Mode
Choose between Phone mode and Edge mode (24/7 monitoring)
| Mode | How it works | Best for |
|---|---|---|
| Phone | Phone reads the inverter over your local Wi-Fi | Trying it out, or pairing with a spare phone left at home |
| Edge Device | Dedicated Svitgrid Edge collects data 24/7 | Continuous monitoring, planner schedules, multiple users, remote access |
Step 4 — Inverter Brand & Model
Pick your inverter brand (Deye, Sunsynk, Sol-Ark, Victron) and the specific model. This tells Svitgrid which register map to use. See Supported Inverters for the full list.
Step 5 — Inverter Connection
Enter your inverter's connection details:
- IP Address — local IP of the data logger (e.g., 192.168.1.100)
- Port — usually 8899 for Solarman, 502 for Victron Modbus TCP
- Logger Serial — 10-digit serial of the Wi-Fi stick (printed on the stick or shown in SolarmanSmart)
Scan your network automatically, or enter inverter details manually
Battery & Solar Configuration
Configure battery capacity and the solar-string layout (kWp, tilt, azimuth per string)
Step 6 — Pair the Edge Device (if Edge mode)
If you chose Edge mode, this step finds your Svitgrid Edge over Bluetooth and configures its Wi-Fi.
Scan, connect over BLE, send Wi-Fi credentials
Step 7 — Review & Finish
Review your settings and tap Create Inverter. The app validates the configuration, registers the device in the cloud, sends Wi-Fi credentials (Edge mode), and waits for the device to come online.
Review, then watch the automated setup process complete
Dashboard (Home)
The first tab of the app — a live, single-screen view of your solar system.
Live energy flow with solar strings, battery, grid, home load, and outage strip
Bottom navigation
Svitgrid has four tabs at the bottom of the screen:
| Tab | What it shows |
|---|---|
| Home | Live dashboard (this screen) |
| Reports | Green-tariff revenue, CO₂ savings, daily/weekly totals — see Reports |
| Calendar | Hour-by-hour day view, planner, and command history — see Calendar & Planner |
| Settings | Household, inverter, edge device, members, your devices, tariff |
Live energy flow
The flow diagram shows where energy is coming from and going to right now. Animated dots flow between five nodes:
- Solar (top) — current PV power, broken down per string (PV1, PV2, …)
- Battery (left) — state of charge, voltage, temperature; arrow direction shows charging or discharging
- Grid (right) — import (in) or export (out)
- Home (bottom) — total household load
- Gen Port (optional) — generator, smart load, or micro-inverter — see Smart Load / Gen Port
Battery card
Tap the battery to see SOC (%), voltage (V), temperature (°C), and instantaneous power (kW). Color reflects SOC range — green ≥80%, yellow 40–79%, orange 20–39%, red <20%.
Outage strip
If your household has an outage region/group configured, a strip below the energy flow shows the next planned blackouts. Tap to open the full schedule.
Solar forecast strip
Below the outage strip, the forecast strip shows expected production for today and tomorrow. Tap to open the forecast detail view.
Auto-refresh
In Edge mode, readings arrive every few seconds and the dashboard updates automatically. In Phone mode, the app polls the inverter every 5–10 seconds while open.
Multiple inverters / households
If you have several inverters under one household, Svitgrid sums them on the dashboard. Use the household switcher at the top to jump between properties.
Energy Charts
Day, month, year, and all-time views — with battery cycles and per-phase voltage.
Below the live energy flow, the dashboard has a tabbed chart area: Day, Month, Year, All-time. Swipe between tabs or tap to switch.
Day view
Stacked energy sources with battery SOC overlay (left); voltage chart, source/usage donuts, phase balance (right)
The day view shows a stream graph from 00:00 to now with energy sources stacked: solar (yellow), battery (green), grid import (blue). The battery state-of-charge overlay (line) shows charge/discharge timing.
Below the stream graph:
- Voltage chart — grid voltage per phase over the day. Spikes can indicate grid instability.
- Load Sources donut — how today's consumption was covered (solar / battery / grid).
- Solar Usage donut — where today's solar went (home / battery / export).
- Phase Balance — relative load on L1 / L2 / L3 (3-phase systems only).
Month view
Daily bars for the current month with battery cycle overlay
Each bar represents one day of the current month, broken down into solar / battery / grid. The battery cycle line shows how many full charge cycles your battery did per day — useful for tracking long-term battery health.
Year view
Monthly totals for the current year
Twelve bars, one per month, with the same source breakdown. Easy to see seasonal patterns at a glance.
All-time view
Lifetime totals since the inverter was added
One big aggregate showing how many kWh your system has produced since you started monitoring it.
Battery cycles & voltage detail
Battery cycles per day and average grid voltage per phase
Reports
The Reports tab — green-tariff revenue, CO₂ savings, daily history, and weekly totals.
Open the Reports tab (second from the left in the bottom nav) to see a longer-horizon summary of your system. The view has four cards stacked vertically.
Green Tariff revenue
Revenue from grid export at the green tariff rate
If your country has a feed-in tariff (in Ukraine, the "зелений тариф"), the revenue card multiplies your daily grid export by the configured per-kWh rate. Set your tariff in Settings → Electricity Tariff.
Eco impact
Below the revenue card, the eco card shows estimated CO₂ savings (kilograms) and the equivalent number of trees, based on your total solar production.
Production history (last 14 days)
Daily list with self-sufficiency percentage
A scrollable list of the last two weeks. Each row shows the date, total kWh produced that day, and your self-sufficiency % — how much of your home's load came from your own panels and battery.
Weekly energy totals
Generation, consumption, import, export, charge, and discharge for the week
The bottom card aggregates the last seven days into six totals: generation, consumption, grid import, grid export, battery charge, and battery discharge.
Exporting data
Tap the share / export icon at the top right of the Reports screen to export the displayed range as CSV. The CSV includes timestamp, PV power, battery SOC, battery power, grid power, load power, and the daily kWh accumulators.
Calendar & Planner
Hour-by-hour day view of forecast vs. actual — and a planner that runs schedules on your inverter automatically.
The Calendar tab (third in the bottom nav) is two things in one: a high-resolution view of any day's energy flow, and a planner that lets Svitgrid run schedules on your inverter on your behalf.
Day view
Hourly cards from 00:00 onwards, with a Forecast / Day-ahead toggle and a + Planner button
Each row in the day view is one hour. The card shows:
- Hour label (e.g., 11:00) and the day-ahead market price (in regions where it's published)
- A miniature stacked bar of the hour's energy mix (solar / battery / grid)
- Forecast solar production for the hour
The toolbar at the top has:
- Forecast / Day-Ahead toggle — switch the price-strip data source
- + Planner button — opens the planner setup for the selected day
- Day stats — produced kWh / consumed kWh / accuracy % at the bottom
Hour detail
Side-by-side actual vs. forecast for one hour
Tap any hour card to see the full energy summary for that hour: actual generation, actual consumption, grid import / export, battery charge / discharge — alongside the forecast value, with an accuracy percentage.
How scheduling works (TOU)
Anything Svitgrid runs on your inverter — single calendar events, the planner's daily schedule, the grid-charge windows in Inverter Settings — works through the inverter's Time-of-Use (TOU) schedule. TOU is a small set of registers on the inverter that say "in this time window, behave like this". Most Deye, Sunsynk, and Sol-Ark inverters expose six TOU slots; Victron uses an equivalent ESS schedule.
Svitgrid uses TOU in two different ways depending on the source:
| Source | What writes to TOU | Auto-restored? |
|---|---|---|
| Calendar event | Svitgrid snapshots the current TOU before the event starts, applies the event's settings during the window, then restores the snapshot at the end | Yes — automatic |
| Planner (daily) | The planner recomputes a fresh TOU each day and writes it at the recompute time. The next day's recompute overwrites it | Replaced daily, not restored |
| Grid-charge windows (Inverter Settings) | Direct, permanent write to the inverter's TOU slots | No — stays until you change it |
Each command Svitgrid sends to the inverter is logged in the per-day command history (see Event details & command history below) — both the set_* command at the start of a window and the matching restore_* command at the end. If a restore fails, you'll see it there.
Planner
The planner lets Svitgrid run inverter schedules for you. You pick a planning style and a daily window; Svitgrid figures out the schedule each day based on the day's forecast and outage schedule, then sends the commands.
Configuring the planner
Pick a daily window and a planning style
Open the planner with + Planner on the day view. Steps:
- Toggle Day Planning on.
- Pick a recompute time (e.g., 22:00) — Svitgrid recalculates the next day's plan at this time, after the day-ahead prices and weather are public.
- Pick a planning style (see below).
- (Optional) Adjust style-specific parameters — battery floor, target SOC, daily kWh limits.
- Save.
Planning styles
| Style | What it does |
|---|---|
| Smart | Lets Svitgrid pick the best mix of charge / sell / consume based on forecast, prices, and outages |
| Survive outages | Pre-charges the battery before scheduled blackouts so the home stays powered through them |
| Lower bill | Imports cheap, exports expensive — based on day-ahead prices |
| Maximize sell | Pushes as much solar as possible to the grid during the most-profitable hours |
| Sun for home | Prioritizes self-consumption — solar covers the home first, then charges the battery, only then exports |
| Custom | Build the schedule yourself by hand — pick the mode and window for each block |
Authorize Svitgrid to run schedules
Daily limits and battery protections before delegation goes live
The first time you turn on the planner, Svitgrid asks for explicit authorization. The consent screen lets you set:
- Battery floor — never discharge below this SOC (e.g., 20%)
- Reserve time — keep at least N hours of backup at all times (e.g., 1 hour)
- Daily kWh limits — caps on grid import, grid export, and battery throughput per day
- Authorization expiry — the consent has a 30-day duration; you'll be asked to renew it before it lapses
You can revoke the authorization at any time from the planner screen.
Event details & command history
Per-day event view with the recompute schedule and command history
Tap a planned day in the calendar to see:
- The schedule that will run that day (or did run)
- Daily limits in effect
- Command history — every command sent to the inverter, with timestamp and result (success / failed / pending)
Creating a Calendar Event
Schedule a one-off or recurring override on your inverter — charge the battery before a cheap-rate window, push extra solar to the grid, lower consumption when smart plugs are available.
Calendar events let you tell Svitgrid "during this time window, do this" without committing to a full planner style. Events temporarily change the inverter's TOU settings during the window and restore them at the end — see How scheduling works (TOU).
Starting an event
- Open the Calendar tab (third in the bottom nav).
- Tap the hour where you want the event to start.
- Tap + Add event on the hour-detail screen.
- Pick a mode (see Override modes below).
- Adjust the time window and (optionally) recurrence.
- Tap Save.
Override modes
The mode picker shows only the modes available for your inverter / household configuration. Some are gated:
| Mode | What it does | Available when |
|---|---|---|
| Battery Charge | Forces the inverter to charge the battery from the grid during the window (typically to bank cheap-rate or off-peak electricity). | Household has a battery. |
| Sell to Grid | Pushes solar production to the grid during the window, prioritizing revenue over self-consumption. | Non-Victron inverter, Ukrainian household, pricing model set to Green tariff or DAM (see Household Settings). |
| Lower Consumption | Turns off non-essential loads via paired Zigbee smart plugs during the window. | Edge device present + household has a battery. |
| Consume from Sun | Routes excess solar to loads (via smart plugs) instead of exporting — useful when you have free-running loads like water heaters. | Edge device present. |
Time window
Pick a start hour and end hour for the override. The hour picker snaps to whole hours; for finer granularity, edit the event after creation. The window can span midnight — Svitgrid splits the commands at 00:00 automatically.
Recurrence
By default the event runs once. Tap the recurrence chip to repeat it:
| Option | Behaviour |
|---|---|
| None | Single run on the selected day. Default. |
| Daily | Runs every day at the same time, until you delete the event. |
| Weekly | Runs every week on the selected weekday. |
| Custom | Pick specific weekdays (e.g., Mon/Wed/Fri). |
What happens at run time
At the start of the window, Svitgrid sends a set_* command to the inverter (e.g., set_battery_charge). At the end, it sends a matching restore_* command that puts the inverter back into the pre-event state. Both commands are visible in the per-day command history — see Event details & command history.
Notifications
Push alerts about outages, battery state, calendar events, and system health.
Open Settings → Notifications. The screen has a master toggle at the top, eight per-category toggles, and a global quiet-hours window.
Master toggle
The top switch enables push notifications for the household. Turning it off silences every category — quicker than disabling each one individually. It also pauses the quiet-hours logic since there's nothing to silence.
Alert categories
Each category can be turned on or off independently. The eight categories are:
| Category | Fires when |
|---|---|
| Offline | The Edge device or phone harvester stops reporting data for longer than the offline threshold. |
| Low battery | Battery SOC falls below the configured low-battery threshold. |
| Battery full | Battery reaches its full-charge SOC (usually ~95–100%). |
| Error | The inverter reports a fault or error code. |
| Outage | Grid power drops (detected via the inverter's contactor / relay state, not voltage). |
| Grid restored | Grid power returns after an outage. |
| Calendar event started | A planned calendar event begins — Svitgrid has sent the set_* command. |
| Calendar event ended | A calendar event finishes — Svitgrid has sent the restore_* command. |
Quiet hours
Quiet hours are global — one Start / End window applies to every category. Anything that fires inside the window is suppressed (not queued and delivered later — actually silenced). Turn quiet hours on, then pick a start and end time. Setting both times to the same value disables the window; the screen warns you about that.
Solar Forecast
Day-ahead production prediction.
How it works
Svitgrid calculates expected solar production based on:
- Panel location (latitude, longitude, altitude)
- Per-string capacity (kWp)
- Per-string tilt and azimuth
- Weather forecast (cloud cover, temperature)
- Sun position (sunrise, solar noon, sunset)
Configuring solar strings
For accurate forecasts, configure each string in Settings → Inverter Settings. For each string:
- Capacity (kWp) — total rated power of panels on this string
- Tilt — angle from horizontal (0 = flat, 90 = vertical wall mount)
- Azimuth — compass direction (180 = due south in the northern hemisphere)
Forecast vs. actual
The forecast view overlays predicted production (shaded area) with the actual production line. Persistent under-performance suggests shading, dirt, or a hardware issue.
Calibration
Svitgrid quietly learns from your inverter — after about a week of data, the forecast is recalibrated against your actual production. You don't need to do anything; it just gets more accurate over time.
Outage Schedule
View planned power outages (Ukraine).
Overview
In Ukraine, planned outages follow a rotating schedule by region (oblast) and group. Svitgrid scrapes regional distribution-company schedules and shows the upcoming blocks for your area on the dashboard and on every planner day.
Setup
- Open Settings → Household Settings
- Pick your region (oblast)
- Pick your group number (printed on your electricity bill or shown on your local distribution company's website)
Reading the schedule
- Green — power expected to be on
- Red — planned outage
- Yellow — possible outage (utility may cut power if needed)
Inverter Connection
Connect Svitgrid to your solar inverter.
What you need
- A supported inverter (see Supported Inverters)
- The inverter's data logger (Wi-Fi stick) connected to your home Wi-Fi
- A phone or Edge device on the same Wi-Fi as the data logger
Finding the inverter's IP address
- Open your router admin page (often at 192.168.1.1 or 192.168.0.1)
- Look at the connected-devices list for the data-logger model name
- Note the IP (e.g., 192.168.1.100)
Finding the logger serial number
The serial is printed on the data-logger stick. You can also find it in:
- SolarmanSmart app (Device Info)
- Manufacturer's app (Sunsynk Connect, Sol-Ark cloud, etc.)
Connection settings by brand
| Setting | Solarman (Deye / Sunsynk / Sol-Ark) | Victron Modbus TCP |
|---|---|---|
| IP Address | Data-logger IP | GX-device IP (Cerbo / Venus) |
| Port | 8899 | 502 |
| Logger Serial | 10-digit number | Not required (enter 0) |
Testing the connection
After entering the details, tap Test Connection. Svitgrid reads a register from the inverter — on success it shows your current PV power. If it fails:
- Confirm the IP is correct and the data logger is online
- Confirm the phone / Edge is on the same Wi-Fi as the data logger
- Confirm the port (8899 for Solarman, 502 for Victron)
- Confirm the logger serial matches the physical sticker
- Check whether your router has AP isolation / client isolation enabled — it blocks device-to-device traffic
Inverter Settings
Tune the inverter behaviour, work modes, and string configuration.
Open Settings → Inverter Settings to see the inverter cluster (master + any slaves), work-mode controls, grid-charging windows, and per-string configuration. Most controls write directly to the inverter; in multi-inverter setups, only the master accepts writes.
Work modes
Sell to Grid / Zero Export to Load / Zero Export to CT, plus grid-charging windows
| Mode | What it does |
|---|---|
| Sell to Grid | Excess solar is exported. Required to earn green-tariff revenue. |
| Zero Export to Load | Inverter sizes solar to your home load only — never feeds the grid. |
| Zero Export to CT | Same idea but uses an external CT clamp to measure load — used when the inverter isn't between the meter and the home. |
Grid charging windows
Configure up to six time slots where the inverter is allowed to charge the battery from the grid (typically used to import cheap night-rate electricity). For each slot, set the start time, end time, target SOC, and amperage.
These slots are written directly and permanently to the inverter's TOU registers — they stay until you change them. They are not auto-restored, unlike calendar events. See How scheduling works (TOU) for the distinction.
String configuration
Per-string capacity, tilt, azimuth — plus model, phases, logger, IP, and the Generator-port toggle
Per-string fields:
- Capacity (kWp) — rated DC power on this string
- Azimuth — compass direction (0–360°)
- Tilt — angle from horizontal (0–90°)
Identification fields below the strings:
- Model — Svitgrid uses this to pick the register map
- Phases — 1 or 3
- Logger serial and IP
- Show Generator / Smart-Load Port toggle — see Smart Load / Gen Port
Add Another Inverter (Parallel)
Add a second (or third) inverter to an existing household — typically a master + slave setup wired in parallel.
Use this when you have more than one inverter physically wired together at the same property, sharing a battery and grid feed. Each inverter still has its own data logger (or Modbus connection) and is polled separately, but commands go to the master only — the slaves follow over the inter-inverter link.
Starting the flow
- Open the Dashboard.
- Tap the household tile at the top, then choose Add inverter. (Also reachable from Settings → Inverter Settings when at least one inverter already exists.)
- Pick the topology — Parallel (Master / Slave) is the only option available today. Independent and AC-coupled topologies are on the roadmap.
- The standard onboarding wizard launches in add-to-household mode and walks you through the inverter brand/model and connection details (the same steps as the initial inverter — see Onboarding Wizard).
Parallel configuration step
Partway through the wizard you'll see a Parallel configuration step with three controls:
- Is this inverter part of a parallel setup? — toggle on.
- Master inverter — dropdown listing the existing inverters in this household. Pick the one wired as master.
- Shares battery with master? — toggle on if the new inverter pulls from the same battery bank (typical). Leave off only if it has an independent battery.
After adding
Both inverters show up in Settings → Inverter Settings with a coloured pill on each tile — Master (blue) and Slave (orange). Tap a tile to see that inverter's strings, modes, and IP. The dashboard merges production and consumption across the cluster; per-inverter detail is available from the Energy Charts screen.
- Same brand and protocol on master and slave is strongly recommended — the planner and TOU writes assume the master can speak to the slaves.
- You can add more than one slave; there's no hard cap in the app.
- The first inverter you onboarded is the default master, but you can pick any existing inverter from the dropdown.
Smart Load / Gen Port
Show your inverter's Generator / Smart-Load / Micro-Inverter port on the dashboard.
What is the Gen Port?
Many Deye, Sunsynk, and Sol-Ark inverters have a multi-purpose port labelled Generator. Despite the name, it can operate in three different modes:
| Mode | What it does | Power direction |
|---|---|---|
| Generator | A backup generator feeds the inverter | Into the inverter |
| Smart Load | An extra load output controlled by the inverter (water heater, pool pump) | Out of the inverter |
| Micro Inverter | An additional solar micro-inverter feeds the inverter | Into the inverter |
The mode is configured on the inverter itself (via its LCD or manufacturer app), not in Svitgrid. Svitgrid reads the mode and adjusts the icon and label automatically.
How to enable on the dashboard
By default the gen-port icon is hidden:
- Open Settings → Inverter Settings
- Find Show Generator / Smart-Load Port and turn it on
- Return to the dashboard — the gen-port node now appears in the energy flow
What you'll see
- Smart Load mode — purple icon with current power; dots flow inverter → smart load
- Generator mode — orange icon; dots flow generator → inverter
- Micro Inverter mode — amber solar icon; dots flow into the inverter
Tap the icon to see voltage, frequency, generator status (running / stopped), daily energy, and (generator only) daily runtime hours.
Smart-load accounting
When the gen port is in Smart-Load mode, the inverter's loadPower register includes the smart-load consumption. Svitgrid subtracts the smart-load power from home load to avoid double-counting:
- Home load — your house consumption only
- Smart load — gen-port consumption only
- Total consumption = Home load + Smart load
Edge Device
A small, always-on device that collects data from your inverter and runs planner commands.
What is the Svitgrid Edge?
The Svitgrid Edge is a tiny ESP32-S3 device that sits on your home Wi-Fi, polls your inverter every few seconds, and uploads readings to the cloud. It also receives commands from the cloud (planner runs, battery overrides) and forwards them to the inverter. The device is fanless, draws under 1 W, and runs on USB-C.
- 24/7 data — no gaps, even when nobody's home
- Remote monitoring — view from anywhere
- Runs the planner — sends scheduled commands to your inverter
- Multi-user — every member of the household sees the same data
Edge Devices screen
List of paired Edge devices with status and inverter count
Open Settings → Edge Device to see all paired devices. Each card shows the device name (e.g., Svitgrid-eac888), online state, firmware version, and how many inverters are attached.
Below the list, Svitgrid keeps scanning over Bluetooth so a new Edge device appears automatically when powered on within range.
Edge device detail
Status card, attached inverters, and actions
Tap a device to open its detail view:
- Status — firmware version, uptime, attached-inverter count
- Inverters — list with their model and IP
- Replace this device — start replacement flow if you bought a new Edge device
- Firmware update — install or roll back firmware
- Reboot — soft restart
- Factory reset — wipe the device's stored Wi-Fi and re-pair from scratch
Firmware updates (OTA)
Current and previous firmware partitions, plus available versions
Edge firmware is updated over-the-air. The OTA screen shows:
- Current — version running now and which partition (ota_0 or ota_1)
- Previous — version on the inactive partition; tap to roll back
- Available versions — releases on the stable and beta channels with release notes
Updates use A/B partitions: the new version is written to the inactive partition, then the device boots into it. If the new firmware can't connect, it auto-rolls-back to the previous version.
LED status
| LED pattern | Meaning |
|---|---|
| Slow blink | Waiting for Wi-Fi configuration (BLE pairing mode) |
| Fast blink | Connecting to Wi-Fi |
| Solid on | Online and uploading readings |
| Double blink | Error — open the app for details |
If you build your own ESP32-S3 board or want to flash a new device, see Flash Edge Firmware.
Home Assistant Add-on
Already running Home Assistant? Pair Svitgrid with your existing HA install in under a minute.
If you already have a Home Assistant instance with your inverter set up (via the Solarman, Modbus, or any other integration that exposes battery / PV / grid / load sensors), you don't need a Svitgrid Edge device. Install our HA add-on and pair it with the app — Svitgrid will start receiving readings from the entities Home Assistant already collects.
From "Add Integration" in HA to "Paired" in the mobile app — the full handshake.
Before you start
- Home Assistant 2026.3 or newer (older versions don't support the modern config-flow API)
- An integration in HA that exposes your inverter as sensor entities (Solarman, Deye, Sunsynk, Modbus, MQTT — anything that produces
sensor.inverter_battery-style entities) - Svitgrid mobile app build 144 or newer, signed in
Step 1 — Install the add-on in HA
Copy the custom_components/svitgrid folder from github.com/svitgrid/home-assistant-svitgrid into your HA config/custom_components/ directory, then restart Home Assistant. You can also install it via HACS as a custom repository — same end state.
Step 2 — Start pairing on HA
In Home Assistant: Settings → Devices & Services → Add Integration → Svitgrid → Pair. HA will display a 6-character code and a spinner. Leave that screen open.
Step 3 — Create a household in the mobile app
Tap Add Household. Give it a name (e.g., "Home"), pick a location, and on the connection-mode step tap the new Home Assistant add-on card. You'll land on a screen with a code input + a brand picker.
Step 4 — Pick your inverter brand & type the code
Pick your inverter brand from the dropdown (e.g., Deye SG04LP3) — this tells Svitgrid which HA entities to read for which payload field. Type the 6-character code shown by HA. Tap Pair.
Step 5 — That's it
Within ~30 seconds the dashboard will start showing live data from your inverter via the HA add-on. The add-on publishes one reading every 60 seconds while the app is in active use, and every 5 minutes when idle — matching the cadence of our edge devices and mobile harvester.
What gets created
- An edge device in your household (named e.g. "HA: Deye SG04LP3") — represents the HA install
- An inverter tied to that edge device, with brand/model metadata from the preset you picked
- A trusted signing key the add-on uses to authenticate every reading
Brand presets & entity mapping
The preset you pick during pairing tells the add-on which HA entity to read for each Svitgrid field (PV power, battery SOC, grid power, etc.). The Deye SG04LP3 preset, for example, maps:
batterySoc → sensor.inverter_battery
batteryPower → sensor.inverter_battery_power
batteryVoltage → sensor.inverter_battery_voltage
pv1Power → sensor.inverter_pv1_power
pv2Power → sensor.inverter_pv2_power
gridPower → sensor.inverter_grid_power
loadPower → sensor.inverter_load_power
The entity names in your HA install must match the preset — these are the defaults the Solarman integration creates for a Deye hybrid inverter. If your entity names differ, edit them in HA before pairing (or wait for the manual-mapping flow in a later release).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "Svitgrid" doesn't appear in Add Integration | HA frontend has the integration list cached | Hard-refresh the browser (Cmd+Shift+R / Ctrl+F5) or open HA in a private window |
| Pair screen shows a spinner with no code | Translation files missing from the add-on folder | Make sure custom_components/svitgrid/translations/en.json exists; restart HA |
| Code expired | You waited more than 5 minutes between HA showing the code and tapping Pair in the app | In HA, cancel and start the pairing flow again to get a fresh code |
| Paired but readings stuck at 0 | Your HA inverter entities are unavailable or report 0 (upstream integration broken) | Open HA → Developer Tools → States. Confirm the entity in the preset's entityMap shows real values. If not, fix the upstream integration (e.g., Solarman dongle config) before re-pairing |
| Multiple households see the same inverter | You paired the same HA install to two households | Each HA pairing creates a new edge device; remove the unwanted one from Settings → Devices & Services |
Differences from the Svitgrid Edge device
| HA Add-on | Svitgrid Edge | |
|---|---|---|
| Hardware | Reuses your existing HA host | Dedicated ESP32-S3 board |
| Data source | Reads HA entities you already have | Polls the inverter directly over Solarman V5 / Modbus |
| Inverter control | Read-only in v1 (write commands ship later) | Full control — schedules, force-charge, sell-to-grid, generator port |
| Setup time | ~1 minute (if HA is already running) | ~5 minutes (flash + BLE pairing + Wi-Fi setup) |
| Best for | Existing HA users who just want app dashboards / forecasts / reports | Anyone who wants Svitgrid to actively run their inverter schedules |
Smart Devices (Zigbee)
Pair Zigbee smart sockets to your Svitgrid Edge and control them from the app.
Open Home → Smart Devices. The screen lists every Zigbee device that's been paired to your Edge, with its current on/off state and live power draw (when on).
What you need
- A Svitgrid Edge device with the ESP32-H2 Zigbee coordinator (Gateway 0.1 has this built-in).
- A Zigbee-3.0 socket that can be put into pairing mode (usually a long press of its on/off button).
Pairing a new socket
- Open Smart Devices.
- Tap the + Add Device floating button — a dialog opens with a 120-second countdown.
- Within those 120 seconds, put the socket into pairing mode (usually long-press its button until it flashes).
- The dialog scans every 5 seconds and lists devices it discovers.
- Tap a discovered device to register it with your household. It moves to the main list.
- The dialog auto-closes once every discovered device is registered.
If a device doesn't show up in the dialog, the most common causes are: socket not actually in pairing mode, socket out of range of the Edge, or another network is competing for it (factory-reset the socket and try again).
Per-device actions
| Action | How |
|---|---|
| Toggle on / off | Tap the switch on the device card, or tap the card to open detail. |
| See live power | The card and the detail screen show the current draw in watts (only while the socket is on and reporting). |
| Rename | Open the device → menu → Rename. The new name is shown everywhere (including in calendar events that use the device). |
| Remove | Open the device → menu → Remove. Unpairs the device from the Edge and deletes its history. |
| Activity history | The device-detail screen lists every command_sent / command_executed / state_change / paired event with a timestamp. |
Use with calendar events
Two event types use Smart Devices: Lower Consumption turns sockets off during the window (e.g., before a planned blackout) and Consume from Sun turns them on when there's excess solar (e.g., to run a water heater on free energy). See Creating a Calendar Event.
Flash your Svitgrid Edge
Install fresh firmware on your Svitgrid Edge from your browser — no terminal, no script downloads.
Open svitgrid.app/flash in Chrome, Edge, Opera, Brave, or Arc on a desktop computer.
What you'll need
- A Svitgrid Edge device
- A USB-C cable that carries data (not just power)
- A Chromium-based browser (Safari and Firefox do not support in-browser flashing — see /flash for the warning banner if you opened the page in the wrong browser)
Steps
- Plug the Edge into your computer via USB-C.
- Hold BOOT, tap RESET, release BOOT.
- Open /flash and click Flash now.
- Pick your Edge from the device picker that appears.
- Choose Erase device for a fresh device, or Upgrade to preserve existing Wi-Fi credentials.
- Wait ~30 seconds — your Edge will reboot into the new firmware.
After flashing, the Edge needs Wi-Fi credentials. Pair it through the Svitgrid mobile app — see Onboarding.
Firmware Update (OTA)
Update or roll back the Svitgrid Edge over-the-air from the app — no USB cable, no desktop flasher required.
Once your Edge is online and reporting heartbeats, you can ship a new firmware version to it from inside the app. The device downloads the binary directly from Svitgrid's CDN, verifies the SHA256, writes it to the inactive A/B partition, and reboots. If the new firmware fails to boot or stops heartbeating, the device automatically rolls back to the previous partition.
Opening the firmware screen
- Open Home → tap your edge device tile (under the inverter card).
- On the Edge Device detail screen, tap the Update or Rollback card.
What you see
The screen has up to three blocks:
- Running Firmware — the version currently active (e.g.,
v2.61.0) plus the partition it's running from. A green checkmark marks the same version in the list below. - Previous Firmware (only shown if the other A/B slot is populated) — the version sitting in the inactive partition, with a Switch to v… button to roll back to it.
- Available versions — every published firmware version from
GET /firmware-versions. Each tile shows the version number, a channel badge (beta / stable), release notes, build date, and binary size in MB.
Updating
- Tap a version tile that's not your current one.
- Confirm in the dialog. The app sends
POST /edge-devices/:id/firmware-updatewith that version. - The screen shows a progress bar and stage label that tracks the device's actual state via heartbeats:
- Sending command — the API has queued the OTA command.
- Device preparing — the device picked up the command and is about to start.
- Downloading — live 0–100% from the device.
- Verifying — SHA256 check against the manifest.
- Reconnecting — device rebooted into the new partition; waiting for the first heartbeat to confirm boot.
- Finalizing — boot confirmed, OTA committed. The screen refreshes to show the new running version.
The whole flow typically takes 60–120 seconds on a decent WiFi connection. The home dashboard also shows a Firmware Update banner during the update so you don't have to keep this screen open.
Rolling back
If a new version misbehaves, tap Switch to v… on the Previous Firmware card. The app calls POST /edge-devices/:id/firmware-rollback, which tells the device to boot from the inactive partition. The previous binary is still in flash from the last update — no download is needed, so rollback is quick.
Move Harvester to Another Phone
Transfer the always-on phone harvester from one phone to another — replacing the device that stays at home reading your inverter.
If you use a phone harvester (a phone left at home polling the inverter over local WiFi, instead of an Edge device), you'll eventually want to move that role to a new phone — upgrading hardware, an old phone breaking, switching to a tablet, etc. The harvester transfer flow does this in a single scan, without re-onboarding the inverter.
The flow at a glance
- On the old phone open Settings → Inverter Settings → Transfer Harvester. A QR code dialog appears with a 5-minute countdown.
- On the new phone, sign in to the same Svitgrid account and open the in-app QR scanner (from the same Inverter Settings screen, or via the deep-link in the share sheet).
- Point the new phone at the QR code on the old phone. The transfer happens in a couple of seconds.
- The new phone takes over harvesting. The old phone stops polling automatically.
The transfer code
- The QR encodes a deep-link:
svitgrid://transfer-harvester?inverterId=…&token=… - The token is valid for 5 minutes. The countdown turns orange in the last 60 seconds. After it expires the QR stops working and you'll need to regenerate.
- The token is one-shot — once redeemed, it can't be reused. Cancelling the dialog also invalidates it.
What changes after a successful transfer
- The server sets the inverter's active harvester to the new phone.
- The old phone stops polling on its next heartbeat — no manual step needed.
- The old phone stays signed in to your account. You can keep using it for dashboard / app features; it just won't run the harvester anymore.
- All historical readings stay on the inverter — they're tied to the inverter, not to the harvesting device.
Your Devices
Approve which phones can sign commands for your household.
The planner and any manual control (battery override, gen-port toggle) requires a signed command. Each phone you sign in to Svitgrid registers a per-device key; the household owner approves which phones are allowed to sign.
Approving a new phone
A new sign-in shows up as a pending request — Approve or Reject
When you sign in on a new phone, the device shows up under Settings → Your Devices with status "Access requested". The owner taps:
- Approve — the phone can now sign commands
- Reject — the phone is blocked
Device detail
Status, registration date, key ID, and the Edge device this phone signs against
Tap any device for the full record:
- Status — Approved, Pending, or Rejected
- Registered — date the phone first asked for access
- Approved — date the owner approved it
- Key ID — last digits of this phone's signing key
- Signed against — which Edge device the phone signs commands for
Revoking a device
Open the device detail and tap Revoke. The phone immediately stops being able to sign commands; you'd need to re-approve it to use it again. Useful if a phone is lost or sold.
Reset all signing
The list also has a Reset signing action that clears every approved device. Use it if you suspect any phone is compromised — every member needs to re-approve from scratch afterwards.
Inverter Write History
Every command Svitgrid sent to your inverter, grouped by scenario, with old and new register values.
Open Settings → Inverter Settings → Write History. The screen lists every write Svitgrid has made to the inverter — planner schedules, calendar events, your manual changes to grid-charge slots or work mode, anything else that touches a register.
What you see
- Daily quota chip at the top — how many writes have happened today against the daily soft cap. Useful when you suspect the planner is misbehaving and burning through writes.
- Entries grouped by scenario — each calendar event, planner run, or manual change collapses into a single block. Expand to see every
set_*/restore_*command inside. - Per command: register name, old value, new value, status (success / failed / pending), and timestamp.
When this is useful
- Confirming the planner actually ran today (count > 0 + a recent scenario block).
- Diagnosing a misconfigured event: the
set_*shows up but therestore_*failed, leaving the inverter in an unexpected mode. - Showing your installer / inverter dealer exactly what the app changed and when, in writing.
Register Dump (Diagnostics)
Read every Modbus register from the inverter at once — for support, debugging, or reverse-engineering register maps.
Open Settings → Inverter Settings → Run Diagnostics. Svitgrid reads every register defined in the model's register map and shows them in a single table.
Two flavours
| Mode | How | When to use |
|---|---|---|
| Harvester-side | The app reads registers directly from the inverter over your local WiFi. | You're on the same network as the inverter. Faster, no round-trip through the cloud. |
| Edge-side | Svitgrid sends a cloud command to your Edge device; the Edge reads registers and reports them back. | You're away from the inverter network and want to capture a snapshot remotely. |
Svitgrid picks the flavour automatically based on your harvester configuration — the dump tile is only shown if you have at least one harvester (mobile or edge).
What you see
- Every register from the model's map: address, name, raw value (decimal + hex), and scaled value if a scale factor applies.
- A Copy to clipboard button — paste into a Sentry comment, GitHub issue, or email to support.
Battery Advisor
During an outage, see how long your battery will last under different load assumptions.
When the grid drops and the battery is supplying the home, the dashboard shows an outage banner at the top. Tap the banner to open the Battery Advisor.
What you see
- SOC projection chart — current SOC and a projected curve down to your low-battery threshold under the chosen load.
- Load presets — pick from a list of appliances (fridge, router, lights, kettle, …) and the projection updates. Or switch to Custom watts and type a number.
- Estimated time-to-depletion — clear text "Battery will reach X% in HH:MM" with a warning band when the time is short.
When the banner appears
The advisor entry point is conditional. It shows up only when all three are true:
- Grid is detected as off (via the inverter's relay/contactor state — see Dashboard's outage strip).
- The battery is discharging into the home.
- The household has a battery configured.
If any of those is false (no battery, grid is up, or battery is charging from solar), the banner is hidden and the advisor isn't reachable.
Single-Phone Health
A heads-up when your data collection is at risk because everything depends on one phone.
If your household has no Edge device and is being harvested by a single phone, every gap in collection — phone asleep, phone off your home WiFi, phone restarted — leaves a hole in your readings. Svitgrid watches for these gaps and surfaces a Single Phone Status strip on the dashboard when the risk crosses a threshold.
What you see
Tap the strip to open the full screen. It lays out:
- Risk summary — soft or hard alert, depending on how much data has been missing in the last week.
- Affected inverters / harvesters — which ones the gaps are hitting, with a short gap summary per harvester.
- Remediation buttons — Transfer to Edge if you already have one, or Add edge device to start the buying flow / onboarding.
- Dismiss / accept — Owners / Admins can dismiss the alert or accept the risk. Regular Users see read-only.
When the strip appears
Only when the gap-detection logic flags the household as at-risk based on recent collection history. If you have an Edge device or your phone harvester is doing a good job, the strip stays hidden.
PV History
Per-string solar production over time — useful for spotting shading, dirt, or a panel that's behaving differently from its siblings.
On the dashboard, tap one of the PV strings on the energy-flow diagram, then tap Show History.
What you see
- Per-string power curves — PV1 and PV2 (or more, on multi-string inverters) plotted side-by-side for the selected day.
- Granularity toggle — switch between hourly and 15-minute resolution.
- Date picker — scroll backward and forward day by day.
- Advanced panel (optional) — raw register values per string for the chosen sample, for debugging.
When to look
- A roof has shading at certain hours and you want to see which string takes the hit and for how long.
- Comparing two strings that should produce the same — different orientation, dirt on one, or a bad panel will show up here.
- Spotting clipping when one string consistently caps at a value below the others on the brightest hours.
The dashboard's main hourly chart aggregates production across all strings; the PV history view is the only place you see per-string breakdown over time.
Supported Inverters
Full list of compatible inverter models.
Deye
| Model | Type | Phases |
|---|---|---|
| SUN-8K/10K/12K-SG04LP3 | 3-Phase Hybrid | 3 |
| SUN-3K~20K-SG05LP3 | 3-Phase Hybrid | 3 |
| SUN-5K~25K-SG01HP3 (HV) | 3-Phase HV Commercial | 3 |
| SUN-50K-SG01HP3-EU-BM4 | 3-Phase HV Commercial | 3 |
| SUN-5K/6K/8K-SG03LP1 | 1-Phase Hybrid | 1 |
| SUN-3K~8K-SG01LP1 | 1-Phase Hybrid | 1 |
| SUN-10K/12K-SG02LP1 | 1-Phase Hybrid (3 PV strings) | 1 |
| SUN-3K~8K-SG04LP1 | 1-Phase Hybrid | 1 |
| SUN-3.6K~8K-SG05LP1-EU | 1-Phase Hybrid | 1 |
| SUN-12K~16K-SG01LP1 | 1-Phase Hybrid (16K) | 1 |
| SUN-3K/5K/6K-G3 | 1-Phase Hybrid | 1 |
| SUN-5K~8K-SG01LP1-US | US Split-Phase | 2 |
| SUN-G05-P (Grid-Tie String) | Grid-Tie (no battery) | 3 |
| Deye Microinverter (300W–2000W) | Microinverter | 1 |
Sunsynk
| Model | Type | Phases |
|---|---|---|
| Sunsynk 1-Phase (3.6K / 5K / 8K) | 1-Phase Hybrid | 1 |
| Sunsynk 1-Phase 12K | 1-Phase Hybrid | 1 |
| Sunsynk MAX 16K | 1-Phase Hybrid | 1 |
| Sunsynk 3-Phase (8K / 10K / 12K) | 3-Phase Hybrid | 3 |
| Sunsynk 3-Phase 15K | 3-Phase Hybrid | 3 |
Sol-Ark
| Model | Type | Phases |
|---|---|---|
| Sol-Ark 5K (120/240V Split) | US Split-Phase | 2 |
| Sol-Ark 12K (120/240V Split) | US Split-Phase | 2 |
| Sol-Ark 15K Limitless | US Split-Phase | 2 |
| Sol-Ark 18K | US Split-Phase | 2 |
Victron
| Model | Type | Protocol |
|---|---|---|
| MultiPlus-II 48/3000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/4000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/5000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/6500 GX | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/8000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/10000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| MultiPlus-II 48/15000 | 1-Phase Hybrid | Modbus TCP (port 502) |
| Quattro-II 48/5000 | 1-Phase Hybrid | Modbus TCP (port 502) |
Profile & Security
Manage your account.
Edit profile
Open Settings → Edit profile to change your display name or email. Email changes require re-verification.
Change password
Settings → Security → Change password. You'll need your current password.
Two-factor authentication
Open Settings → Security → Two-factor authentication. Scan the QR code with an authenticator app (Google Authenticator, 1Password, Authy). After enabling, you'll be asked for a 6-digit code on each new login.
Delete account
Settings → Delete account permanently removes your account and all associated data. This action cannot be undone.
Household Settings
Configure your property — name, country, region, outage group.
All settings live behind the four-tab Settings screen
Household configuration
Name, country, region, outage group, low-battery threshold
- Name — display name (e.g., "Home", "Country house")
- Country — selects regional defaults
- Region — your oblast (Ukraine) or state — used by the outage scraper
- Group — your blackout group number from your electricity bill
- Low-battery warning — battery threshold (in hours of remaining backup) that triggers the warning notification
Adding another household
Open Settings → + New household and run the onboarding wizard for the new property. Switch between households using the dropdown at the top of the dashboard.
Renaming a household
Tap the household name at the top of Settings → Household Settings and edit it.
Removing a household
Only the owner can remove a household. Settings → Household Settings → Danger zone → Delete household permanently deletes it and all its energy data.
Electricity Tariff
Tell Svitgrid how you're billed so revenue, savings, and the planner's decisions match reality.
Open Settings → Electricity Tariff. The screen has one pricing-model picker and a different set of fields depending on the model. Pricing model also gates which planning styles and event types are available — for example, Sell to Grid events only appear when the model is Green tariff or DAM (see Creating a Calendar Event).
Pricing model
| Model | When to pick it | What Svitgrid uses it for |
|---|---|---|
| Fixed | You pay a flat rate, a two-zone (day/night), or a three-zone schedule. | Daily-cost calculations. Sell-to-grid revenue is not modelled — the model assumes you don't export. |
| Green tariff | Your meter sells excess solar back at the Ukrainian "Зелений тариф" rate. | Revenue tracking against the year-specific feed-in rate set by NERC (Resolution 2263). Unlocks Sell to Grid events and the "Maximize sell" planner style. |
| Day-Ahead Market (DAM) | You're on a wholesale-market contract — sell price varies hour by hour. | Hourly revenue, planner decisions, and the DAM-prices overlay on the calendar. |
Fixed model fields
- Meter type — Flat, Two-zone, or Three-zone. Picks which rate schedule Svitgrid uses for daily cost.
Green tariff fields
- Commissioning year (2013–2029) — when your installation was commissioned. Determines which year's feed-in rate applies.
- Installed kW (generation) (0–1000 kW, decimal) — your registered installed-generation power. Affects rate tier in some years.
- Supply type — Universal (the household pays the universal-service supplier) or Market (electricity market contract). Drives import-price assumptions.
- Tax status — Individual, Sole Entrepreneur (ФОП), or Legal entity. Determines whether revenue is shown gross or net of tax.
DAM fields
- Sell threshold (default 5.00 UAH/kWh) — the minimum DAM price at which Svitgrid considers it worth selling. Used by event/planner decisions and the DAM-overlay colour.
- Charge threshold (default 3.00 UAH/kWh) — the maximum DAM price at which Svitgrid considers it worth importing to charge the battery.
Seeing DAM prices in the app
With the pricing model set to DAM, the Calendar day view shows a DAM Prices toggle in the collapsible header. Turn it on to colour each hour bar by its DAM price — darker shades = higher price. The toggle is hidden for the other two pricing models.
Members
Share access to a household with family or colleagues, and manage who can change settings or send commands.
Members list with roles and pending invitations
Inviting a member
- Open Settings → Members.
- Tap Invite member.
- Enter their email address.
- They receive an invitation link by email.
- Once they accept, they appear in the members list with their chosen role.
Roles
| Role | Can do |
|---|---|
| Owner | Everything — view, change settings, invite/remove members, send commands without approval, delete household. Cannot be demoted; each household has exactly one Owner. |
| Admin | Same as Owner except cannot delete the household or change the Owner. Useful for a trusted family member who manages day-to-day settings. |
| User | View-only: dashboard, reports, calendar. Cannot change inverter or household settings. Their phone needs Your-Devices approval before it can sign commands. |
Changing a member's role
Tap the three-dot menu next to a member's name and choose Change role. Owners can promote a User to Admin or demote an Admin back to User. The Owner row has no role-change option — to transfer ownership, you currently have to remove and re-invite (a proper transfer flow is on the roadmap).
Removing a member
Three-dot menu → Remove from household. The member loses access immediately; their personal account and any other households they belong to are unaffected.
Pending invitations
Invitees who haven't accepted yet show up in a separate Pending invitations section below the members list. Each row has an × button on the right — tap it to cancel the invite. There's no resend action today; cancel the old one and send a fresh invite.
Your Devices — command-signing approval
Sending a command to your inverter (planner runs, calendar events, manual writes) requires a signed command. Each phone signs with its own per-device key, so adding a new phone — yours or another member's — needs explicit approval from a phone that's already trusted.
The Owner sees pending devices on the Your Devices screen (Dashboard → tap the household tile → Your Devices, or open it from the Calendar). Pending phones appear as orange cards labelled "Requesting Access" with a device name and a request timestamp.
Per device, the Owner has two buttons:
- Approve (green) — one tap, no biometric prompt. The phone immediately joins the trusted set and can sign commands.
- Deny (red) — the phone's request is rejected; it can re-request later.
Appearance & Language
Customize how the app looks.
Theme
- Light — white background, dark text
- Dark — dark background, light text (easier at night)
- System — follows the phone's system theme
Language
Svitgrid is available in:
- English (EN)
- Ukrainian (UK)
The app defaults to your phone's language. Override it in Settings → Appearance → Language.
Data Quality
Why a dedicated data source matters for accurate solar monitoring.
The problem with phone-only monitoring
If you only use your personal phone to read the inverter, Svitgrid can only collect data while the app is open and your phone is on the same Wi-Fi as the inverter. That creates real gaps:
- You leave home — collection stops the moment you walk out the door
- You close the app — iOS / Android battery rules limit background work
- Your phone sleeps — overnight and idle periods produce zero data
- You switch Wi-Fi — the phone can no longer reach the inverter
How gaps affect you
| What you lose | Why it matters |
|---|---|
| Accurate daily totals | You can't track how much your panels actually generated |
| Peak production windows | You miss when your system performs best (often midday, when you're away) |
| Battery cycle patterns | You can't see overnight discharge or early-morning charge behaviour |
| Grid totals | No way to verify your bill or feed-in tariff revenue |
| Anomaly detection | A problem at 2 am or during work hours goes unnoticed |
| Planner | Without a 24/7 data source, the planner can't run schedules |
The two good options
Option 1 — Svitgrid Edge (recommended)
The Svitgrid Edge is a tiny ESP32-S3 device that plugs into USB-C and runs continuously. It uploads readings every few seconds and runs planner commands. Setup is 5 minutes.
Option 2 — Dedicated phone left at home
An old phone, plugged in, on Wi-Fi, with Svitgrid open works almost as well. Cost: zero. Steps:
- Sign in to Svitgrid on the spare phone with your account
- Approve it under Settings → Your Devices on your main phone
- Disable battery optimization for Svitgrid in the phone's settings
- Leave the app open and the phone plugged into a charger at home
Comparison
| Personal phone | Spare phone left at home | Edge device | |
|---|---|---|---|
| Data coverage | 2–4 h/day | 20–23 h/day | 24/7 |
| Gaps when away | Always | Rare | None |
| Accurate totals | No | Mostly | Yes |
| Overnight data | No | Yes | Yes |
| Planner can run | No | Yes (best-effort) | Yes (recommended) |
| Setup effort | None | Low | Low |
| Cost | Free | Free (reuse old device) | Edge hardware |
How to check your data quality
- Open Energy Charts and look at yesterday's day view
- A complete day shows a smooth solar curve from sunrise to sunset
- Flat lines or missing hours during daylight = data gaps
- The dashboard's data-source indicator shows whether readings come from your phone or the Edge
Terminology & Glossary
Solar-energy and Svitgrid terms explained.
| Term | Definition |
|---|---|
| PV (Photovoltaic) | Solar panels that convert sunlight into electricity. |
| Inverter | Device that converts DC from panels into AC for your home, manages the battery, and connects to the grid. |
| Hybrid Inverter | An inverter that works with both panels and a battery, and can switch between grid-tied and off-grid operation. |
| String | A group of solar panels wired in series. Most homes have 1–3 strings. |
| Data Logger | Wi-Fi module attached to the inverter — also called the "Wi-Fi stick" or "logger stick". |
| SOC | State of Charge — battery level as a percentage (0–100%). |
| kW | Kilowatt — a rate of power right now. Like the speed of a car. |
| kWh | Kilowatt-hour — energy over time. Like the distance the car has driven. |
| Grid Import | Power you bought from the grid. |
| Grid Export | Power you sold back to the grid. |
| Load | Your home's electricity consumption. |
| Self-sufficiency | The percentage of your home's load that came from your own solar/battery. |
| Self-consumption | The percentage of your solar production that you used directly (rather than exported). |
| Solarman V5 | Communication protocol used by Deye / Sunsynk / Sol-Ark data loggers over TCP. |
| Modbus TCP | Communication protocol used by Victron GX devices on TCP port 502. |
| Register | Memory address inside the inverter that holds a value (PV power, SOC, …). Svitgrid reads these. |
| Edge Device | Small dedicated device on your network that polls the inverter 24/7 and uploads to the cloud. |
| Household | A property in Svitgrid with its own inverter, data, and members. |
| Master / Slave | In multi-inverter homes, one is master (accepts commands) and the others are slaves (controlled via the inter-inverter link). |
| Azimuth | Compass direction panels face: 0/360 = North, 90 = East, 180 = South, 270 = West. |
| Tilt | Angle of panels from horizontal. 0 = flat, 90 = vertical wall mount. |
| kWp | Kilowatt-peak — rated panel output under ideal conditions. Used in the forecast. |
| Green Tariff | (Ukraine) Feed-in tariff — homeowners sell excess solar to the grid at a fixed premium rate. |
| Day-Ahead Market | Hourly electricity prices published the day before — used by the planner's "Lower bill" style. |
| BLE | Bluetooth Low Energy — used to pair the Edge during onboarding. |
| GX Device | (Victron) Cerbo GX, Venus GX — controllers that aggregate data from Victron components and expose Modbus TCP. |
Troubleshooting
Common issues and how to fix them.
Can't connect to inverter
Network
- Phone / Edge must be on the same Wi-Fi as the data logger
- Try pinging the inverter IP from another device
- Restart the data logger (unplug the Wi-Fi stick, plug it back in)
- Check whether the router has AP-isolation / client-isolation enabled — it blocks device-to-device traffic
Settings
- Confirm the IP hasn't changed (reserve a DHCP lease in the router)
- Confirm the port (8899 Solarman, 502 Victron)
- Confirm the logger serial
Data shows 0 or no values
- PV power 0 — normal at night or full shade
- All values 0 — connection issue or wrong inverter model selected
- Some values show 65535 — register doesn't exist for this model. Email support.
Edge device not found during scan
- Bluetooth on?
- Location permission granted (required for BLE on Android)?
- Edge in pairing mode (slow blinking LED)?
- Stay within 5 m of the device while scanning
Edge device offline
- LED on?
- Wi-Fi working?
- Did you change your Wi-Fi password? Re-pair the device.
- Try unplugging and reconnecting power
Forecast inaccurate
- Confirm tilt and azimuth per string
- Confirm location pin is in the right place on the map
- Confirm capacity (kWp) matches your actual panels
- Partial shading (trees, buildings) reduces actual production below forecast
- Calibration takes ~7 days of data
Planner didn't run
- Authorization expired? Renew it in Calendar → Planner
- Edge offline? See "Edge device offline" above
- Multi-inverter household? Commands go to master only — confirm it's online
- Daily limit hit? Check command history on the planner event detail screen
App is slow or crashes
- Update from the App Store / Google Play
- Restart the app
- If it persists, email hello@svitgrid.app with device, OS version, and a description
Frequently Asked Questions
Quick answers to common questions.
Is Svitgrid free?
Yes. Svitgrid is free to download and use. No subscriptions, no premium tiers.
Does Svitgrid work without internet?
Phone mode reads the inverter over your local Wi-Fi, so live monitoring works without internet. Historical reports, the planner, the forecast, and remote access need internet.
Does Svitgrid store my data?
If you use the Edge or a dedicated phone, readings go to Google Cloud / Firebase. You can export or delete them at any time.
Can I use Svitgrid with multiple inverters?
Yes. A household supports multiple inverters; one is master and the others are slaves. Svitgrid handles this automatically — you just see one combined dashboard.
Why do I need a data-logger serial number?
The Solarman V5 protocol requires the logger serial to authenticate. Without it the data logger ignores requests. Victron systems don't need a serial.
Can family members see my data?
Only if you invite them via Settings → Members. Each member has their own Svitgrid account.
What's the difference between kW and kWh?
kW is a rate (how fast power is flowing right now — like a car's speed). kWh is a total over time (like distance travelled). Panels producing 4 kW for 2 hours generate 8 kWh.
Why is grid power negative when I export?
Svitgrid follows the inverter's convention: positive grid power = import (buying), negative = export (selling). Reports / charts label them clearly so you don't have to remember the sign.
What does the planner actually do?
Based on your chosen style, the planner builds a daily schedule of inverter modes (charge from grid, sell to grid, lower consumption, …) and sends the corresponding commands to your inverter at the right times. See Calendar & Planner.
Will Svitgrid support Growatt / SMA / Fronius?
We're actively adding more brands. Join the Telegram group (@svitgrid) for updates.
How do I report a bug?
Email hello@svitgrid.app with a description, device model, OS version, and screenshots if possible. You can also report issues in the Telegram group.