Skip to content
EN | DE

Highlights: Smart Mode, Battery Page, Solar Share

Highlights Banner

Since the last highlights post two feature releases have gone out: 0.315 and 0.316. This post covers both. The big topics: the charging modes got a new structure with Smart and Always charge, the home battery page has been reworked, the new Solar share slider replaces the confusing watt thresholds, and the optimizer keeps getting closer to taking over control.

The modes Solar and Min+Solar date back to when evcc was purely about solar surplus charging. Over time we added features that have little to do with solar: dynamic tariffs, charging plans, heat pumps and switchable devices. Many people now run evcc without a solar system at all, and the names created confusion among new users.

With 0.316 the modes are named after what they do, not how the power is produced. Solar becomes Smart.

Off and Fast are simple switches: the device stays off, or it runs at full power like a charger without evcc. Everything evcc decides on its own happens in Smart mode:

Smart is also the mode the upcoming optimizer will work in.

The Min+Solar mode is removed. Its purpose, behaving like Solar mode but always providing at least minimum power, is an important feature for vehicles that do not like being started and stopped, or for installations with little solar surplus. But this concept only makes sense for vehicle charging, not for switches, heaters or heat pumps. That is why it is now the Always charge option in the dropdown of the Smart button for vehicle charging points instead of a mode of its own. It can be switched on permanently or, with the 1x button, for the current charging session only. In the vehicle settings you can set a default per vehicle.

Always charge option in the dropdown of the Smart mode button

The mode labels adapt to the device: a charger shows Off / Smart / Fast, a switchable device Off / Smart / On, a heat pump Normal / Smart / Boost. The new modes page explains all modes and Always charge in detail.

This is a breaking change for integrations. The API, MQTT and websocket now report smart instead of pv, and minpv no longer appears on the read side. Writing the old values still works: setting pv switches to Smart, setting minpv switches to Smart with Always charge on, so existing automations keep their behaviour. If your integration compares against pv or minpv, it is time to update. The major integrations were updated ahead of the release. Thank you to all the maintainers who updated their projects 🙌

The Battery page used to be a pure settings page. Now it gives you an overview first: a status card with charge level, stored energy and current power. With several batteries you get a breakdown: one card per battery plus a combined one, and the chart below shows the charge level of each battery over the past days. When the optimizer is enabled, the page also shows its suggestions: what it would do with the battery right now, e.g. hold or charge from grid, and how the charge level would continue. More on that further down. The usage settings, priority, charging buffer and automatic start, are still there, now as easier to understand sentences instead of a form.

Battery page with status cards, charge level history and usage settings

If you had experimental features enabled, you already know this page. With 0.316 it is the default for everyone.

Battery control modes: Battery control is now more fine-grained. Each battery reports which of the modes it supports: normal operation, prevent discharging, charge from grid, prevent charging and discharge to grid. evcc only offers what a device can actually do. What each mode does is explained in the mode table in the docs, and external systems can set a mode via the REST API. Support for active battery control has grown in this cycle: Huawei SUN2000, Kostal Plenticore, Sungrow, Zendure Solarflow, Anker Solarbank, Atmoce, EcoFlow Stream, Marstek and Home Assistant batteries gained additional modes. The device list shows which battery systems support active control, and the home battery page explains what you can do with it.

This one is a very old feature request. By default, charging in Smart mode only starts once the surplus covers the full minimum charging power of the vehicle. If your solar system is small or the sun is low in winter, that moment might never come. So far you could lower the bar with watt thresholds in the charging point configuration (restart required). Those thresholds have confused new users for years, and, honestly, quite a few long-time users too 😅.

The new Solar share slider in the charging point settings is simpler: you set how much of the minimum charging power has to be solar. 100% means charging waits for full surplus. 50% means half of it may come from the grid. 0% means charging starts as soon as there is any surplus at all. No restart, no watts, just a slider. The old thresholds still work for advanced setups. While they are set, the slider is disabled and tells you why.

Solar share slider in the charging point settings, set to 50%

The solar charging page has the details.

The optimizer calculates a plan for your whole home over the next days: battery, charging points and heating, based on forecasts and prices. It is still experimental and still advisory, i.e. it shows what it would do, but does not act yet. A lot has happened in the last two releases:

If you have not tried it yet: enable experimental features under Configuration → Experimental, switch on the optimizer and check whether the plan looks plausible for your home. The optimizer requires a sponsor token. The calculation runs on a stateless cloud service hosted by us that doesn’t store any data. You can also run the service yourself, see technical background. We are grateful for every piece of feedback.

The next big step is automatic mode: the optimizer no longer just suggests, it decides when the battery charges or holds and when charging points in Smart mode start and stop. The pull request is in preparation, and we have already received lots of feedback. If you are adventurous, grab one of the test builds from the pull request comments, try it and tell us how it goes. There is still work to do, but we are looking forward to getting it into the nightly.

  • Remote access: No longer experimental. The card is visible under Configuration without the flag, and a reset option removes the configuration and credentials. We introduced remote access in the July highlights.
  • Curtailment devices: When the grid operator asks for less feed-in (§ 9 EEG), evcc normally tells each solar inverter directly to reduce its power. In some setups that command has to go to a central unit instead, e.g. the SMA Sunny Home Manager 2.0 or SolarEdge export control. These now have their own device class, configured next to the grid meter, instead of posing as a meter. See the external limit page.
  • Date format: The date format used to follow the selected language, which does not cover regional differences, e.g. English in Europe. You can now pick day-first, month-first or ISO ordering in the user interface settings. Thanks to webalexeu.
  • Phase indicator: The phase visualisation on the charging point has changed. Before, there was one bar per active phase and inactive phases were simply hidden. Now a three-phase charger always shows three segments, with the active ones highlighted, so you can see at a glance whether it is charging on one or three phases.
  • Polestar: The reverse-engineered integration is replaced by the official Polestar Data Portal API. Thanks to loebse.
  • Nissan: The login now uses MyNISSAN OneID, after Nissan retired the old NissanConnect credentials. Thanks to alex-irrgang.
  • Škoda: The new official MyŠkoda API is supported, see the separate blog post.
  • Home Assistant: The evcc app auto-detects the Home Assistant instance and token, so Home Assistant devices appear as discovered devices without any manual setup, thanks to wlcrs. Home Assistant batteries gained holdcharge and discharge modes, thanks to igotsoul. Two breaking changes: milliamp current control on the Home Assistant charger is optional now, and the battery minsoc/maxsoc preset is gone.

Wallboxes: Steca, Sonoff switch sockets, plus meter capability for Spelsberg and improvements for go-e, OpenEVSE, NRGkick, Keba, Voltie and Zaptec

Meters, Solar & Battery Systems: CHINT ECH10K, Solplanet hybrid, SENEC.Connect cloud API, Afore hybrid via RS485, Deye micro inverters via Solarman and HTTP logger, Zendure SolarFlow 800 Pro, my-PV HEA THOR 3.5 and 9.0, Solax X1/X3-HAC current limiter, return energy for Youless, openWB Pro and Sungrow

Vehicles: Polestar via the official Data Portal API, new official MyŠkoda API, Nissan OneID login, LiveWire S2 motorcycles, charged energy for Tesla BLE

Heat Pumps & Heating: Weishaupt (Modbus TCP), 1SINQ OneKey (SG Ready via MQTT), power and temperature for Viessmann thanks to ickeundso

Tariffs: EPEX spot prices for Belgium, spotovaelektrina.cz for Czechia, additional regions, currencies and API key for Energy Price Forecast

Curtailment (§ 9 EEG): SMA Sunny Home Manager 2.0, SolarEdge, Sungrow

Of course, there have also been many bugfixes and improvements to existing integrations. Details can be found in the release notes for 0.315 and 0.316.


💚 Big thank you to everyone who moves the project forward: through code, ideas, testing, discussions and financial support, without which the project would not be possible in this form.

The days are getting shorter. Use the sun wisely. 😉 Happy charging!

Best regards
The evcc Team
Michael, Andi & Uli