AION EMS Zeus – Energy Management & Intelligence for Home Assistant

Hi Martin. Thank you for your feedback.

Have a nice day.

V.T.

AION EMS Zeus v16.0.205 — Battery Intelligence

A new version of AION EMS Zeus is available.

This release adds a dedicated Battery page to Day Status and improves the consistency between Battery Planning settings and the Zeus Forecast engine.

:battery: New: Day Status → Battery

Battery now has its own daily analysis view.

The new page includes:

  • Live Battery SOC and operating state
  • Current charging and discharging power
  • Energy charged today
  • Energy discharged today
  • Recorder-backed charge/discharge power history
  • Independent 0–100% SOC meter
  • Start-of-day → current SOC journey
  • Expected end-of-day SOC from Zeus Forecast

The new Battery graph also introduces a cleaner visualization style where charging and discharging are displayed around a clear 0 W reference, while SOC remains visually independent from the power scale.

As always, historical information comes from Home Assistant Recorder evidence. Zeus does not manufacture missing history.

:crystal_ball: Battery Planning Profile improvements

A special thanks to Colm, who tested the new Forecast sensors and tracked down an inconsistency in the Battery Planning Profile.

Colm found that when no Planning Profile had ever been saved, the UI could show a 20–95% planning range while the Forecast backend was actually using its internal 15% minimum SOC fallback.

His testing also confirmed that once a proper Planning Profile was saved, the Forecast end-of-day Battery SOC sensors immediately followed the configured minimum SOC correctly.

This has now been cleaned up in v16.0.205.

Zeus now clearly distinguishes between:

  • No Planning Profile saved
  • Default planning values
  • A user-saved Planning Profile

The frontend and Forecast backend now use the same default 20–95% planning range until a profile is saved.

Once a Planning Profile is saved, those configured values become the authoritative limits used by Forecast.

Zeus does not guess an inverter minimum-SOC entity.

Thanks again to Colm for identifying the issue, investigating the cause and providing detailed feedback.

:hammer_and_wrench: Recent stability improvements retained

v16.0.205 also includes all recent fixes and improvements, including:

  • Frontend flicker/refresh fixes
  • Recorder graph compatibility improvements
  • Home Assistant callback/thread-safety correction
  • Calendar-day Forecast sensors with long-term statistics
  • Heat Pump Recorder improvements
  • Mobile Diagnostics layout fix
  • Correct go-e MQTT solar-export/surplus handling

Thanks also to Martin for the extensive testing that helped identify and verify the recent frontend flicker and Recorder graph compatibility fixes.

Community testing on real Home Assistant installations continues to be extremely valuable for Zeus.

AION EMS Zeus v16.0.205 is available now through GitHub/HACS.

AION EMS Zeus v16.0.210 - EV Charging & Heat Pump Intelligence

This release expands Zeus EV charging visibility and improves Heat Pump live thermal evidence handling.
EV Chargers
New dedicated EV CHARGERS page under Statistics.
Individual registered charger monitoring.
Today / Week / Month / Year / Total measured energy.
Charger finance with evidence-aware grid-equivalent value.
Live signed go-e pGrid visibility.
Confirmed go-e MQTT convention: grid import positive, grid export negative.

Heat Pump
Improved Day Status live Thermal Output authority.
Uses the mapped whole-unit thermal authority when available.
Can use mapped Heating, DHW and Cooling thermal evidence when a combined authority is unavailable.
No guessed entity mappings.

Additional improvements
Mobile Diagnostics responsive-layout improvements.
Recorder graph compatibility improvements.
Existing frontend flicker fixes preserved.
Forecast and accounting functionality preserved.

So what is AION EMS Zeus?

AION EMS Zeus is an open-source Energy Management System for Home Assistant, created to turn the many individual devices in a modern energy system into one connected, understandable picture.

Solar, Grid, Battery, Heat Pump, DHW, EV chargers and flexible household loads usually arrive in Home Assistant as separate devices with separate sensors and histories. Zeus brings those pieces together and gives them context.

Instead of simply displaying numbers, Zeus asks the more useful questions:

Where did the energy come from? Where did it go? What did it cost? How efficiently was it used? What is likely to happen next? And where can the system be improved?

Built around real evidence

Zeus works with your existing Home Assistant entities and Recorder history. It does not require a specific brand of inverter, battery, heat pump or charger simply to understand an energy system.

A fundamental rule behind the project is:

If Zeus doesn’t know it, Zeus shouldn’t invent it.

Measured and correctly mapped data is preferred. Historical analysis uses Recorder evidence. If the required evidence does not exist, Zeus should report Unavailable rather than turn an assumption into an apparent fact.

From live energy flow to long-term understanding

Zeus combines several layers of energy management in one system.

It provides live whole-home energy flow, showing the relationship between Solar, Grid, House, Battery and registered loads.

It adds Day Status views for understanding what is happening today: solar production, battery behaviour, Heat Pump performance, grid interaction, consumption and financial value.

Recorder-backed Statistics and Device Energy Attribution provide longer-term evidence for Today, Week, Month, Year and Total periods.

The Forecast engine uses historical behaviour, weather context and available system evidence to provide calendar-day forecasts for solar production, consumption, grid import/export, surplus or deficit, expected Battery SOC and useful surplus windows. Forecast information is also exposed as native Home Assistant sensors so it can be used in dashboards, history and automations.

Heat Pumps are part of the energy system

Zeus doesn’t treat the Heat Pump as an isolated appliance.

Where the required measurements exist, Zeus can examine electrical input, thermal output, DHW, operating behaviour, runtime and COP using actual Home Assistant and Recorder evidence.

This allows Heat Pump behaviour to be considered alongside Solar, Battery and Grid conditions rather than viewed on a completely separate dashboard.

EV charging and flexible energy

Registered EV chargers are incorporated into the same energy picture.

Zeus can show charger power, measured charging energy, historical periods and financial context. With supported go-e configurations, Zeus can also provide the charger with the live signed grid balance through MQTT so the charger’s own Eco/PV logic can react to real export and import conditions.

The charger remains the charger. Zeus provides the energy context.

Energy also has financial value

A kilowatt-hour does not have the same meaning in every situation.

Importing energy has a cost. Export can generate revenue. Solar consumed directly at home can avoid an import. Battery energy supporting the house can have measurable value.

Zeus therefore combines physical energy measurements with configured tariffs to provide evidence-based financial context, while keeping measured values and assumptions clearly separated.

Intelligence without pretending to know everything

The long-term direction of AION EMS Zeus is expressed by:

Observe → Learn → Predict → Recommend → Verify → Improve

The objective is not to create another collection of pretty energy cards.

The objective is to build an energy-management layer for Home Assistant that can understand the relationships between the different parts of the system, learn from measured history, provide useful forecasts and recommendations, and eventually help optimize energy use while remaining transparent about the evidence behind every decision.

Developed on real systems

Zeus is developed and tested against real Home Assistant installations, not only simulated datasets.

Different inverters, batteries, Heat Pumps, chargers, entity structures and Recorder histories expose edge cases that are difficult to anticipate in a laboratory. Community testing and reproducible reports therefore play an important role in development.

AION stands for Adaptive Intelligence & Optimization Network.

AION EMS Zeus is an independent community project, released as open source under the MIT License. It is not an official Home Assistant or Nabu Casa product.

One home. Many energy devices. One connected energy system.

Thanks for your feedback.
V.T.

I’ve been comparing the Zeus solar forecast with Solcast and Helios for the last couple of weeks. Here are my first numbers.

My setup is 8.1 kWp split east (3.6 kWp) and west (4.5 kWp), 35° tilt, behind a 5 kW inverter, in the west of Ireland.

For each day I took the forecast for tomorrow as it stood at 11pm and compared it with what the panels actually made the next day. That gives 15 days, 18 Sept to 2 Oct.

Solcast Helios Zeus
Average error 41% 100% 57%
Typical day (median) 20% 44% 53%
Days within 20% 8 of 15 3 of 15 0 of 15
Direction too high 12 of 15 high 8, low 7 too low 15 of 15
15 day total 18% too high 3% too high 60% too low

Where Zeus is falling short

  • It forecast too low on every one of the 15 days. Over the whole period it predicted about 40% of what I actually generated.
  • On my 4 days over 20 kWh, Zeus forecast between 3.4 and 10.7 kWh.
  • Since 16.0.200 it has improved a bit. The average error dropped from 62% to 50% over 6 days, but it was still low every day, usually about half the real figure.
  • It only looked good on my two dull days, 4.7 kWh on 24 Sept and 3.4 kWh on 29 Sept. That’s because it’s always low, not because it saw them coming.
  • I updated to 16.0.210 this morning, so I’ll score that next.

Where all three fail: the weather here

The west of Ireland gets whatever the Atlantic sends us, and it changes fast. In these 15 days I went from 20.4 kWh one day to 3.4 kWh the next and back to 16.8 kWh the day after. Solcast and Helios both missed those dull days badly. For 29 Sept, Solcast said 10.8 kWh and Helios said 20.0 kWh, and I got 3.4 kWh. Solcast is the best of the three here, and it still only lands within 20% about half the time.

So I don’t expect any forecast to be spot on here. The Zeus problem is different, though. Its misses aren’t random, it’s low every single day, so it looks like something that could be corrected.

Hopefully these numbers help with getting the forecasting better. I’m happy to keep scoring each new version and post the results.

Hi Colm.
We are working hard on this part of Zeus.
I collect data from some installations of friends and we add yours also.

I believe on next release we gonna make one big step forward on forecast.

Thank you for the info and if you see/notice anything after the update please let me know.

Thanks again.
V.T.

I couldnt really test it (too much unavailable times of my ble device), but as far as i read, it has a special trained local AI for weather forecasts considering a lot of historical data.

Thanks for sharing this. I had a look at Solar Forecast ML and there are definitely some interesting ideas there, especially in relation to Colm’s results.
One thing I like is the focus on learning the characteristics of the actual PV installation rather than treating every system as a generic solar array. Panel groups with different orientation/tilt, inverter clipping and learning from measured production are all relevant to the problem Colm has exposed.
Colm’s 15-day test is particularly useful because Zeus wasn’t simply inaccurate because of difficult weather — it was low on all 15 days. That kind of consistent directional error suggests there is a site-model/calibration issue that we should be able to improve.
Zeus already has its own Forecast engine and now also stores genuine pre-target forecasts so they can later be compared with Recorder-backed actual production in Forecast versus reality. That gives us the foundation for Zeus to learn from its own forecast errors.
I don’t intend to replace the Zeus Forecast engine with Solar Forecast ML or make Zeus dependent on another forecasting integration. SFML also has different measurement requirements and a different architecture. But it is useful to see how another project approaches some of the same problems.
For Zeus, I want to keep the existing principle:
If Zeus doesn’t know it, Zeus shouldn’t invent it.
The direction I’m interested in is therefore an evidence-based, site-specific solar model: understand the configured PV installation, compare forecasts with measured Recorder results, detect persistent bias, and gradually correct the forecast using the user’s own real production history.
I also don’t want to “fix” Colm’s results by simply adding 50 or 60% to every Zeus forecast. Any correction needs to be learned independently for each installation and backed by enough measured evidence.
Thanks for the link — it’s useful input while we work on improving the next stage of Zeus forecasting.

@colfin22

Thanks again, Colm, for putting together the 15-day comparison.

The most useful finding is that Zeus wasn’t simply inaccurate because of difficult weather — it was too low on all 15 days. That gives us something concrete to investigate.

I don’t want to “fix” this by simply increasing every Zeus solar forecast by 50–60%. That might improve your system while making another installation worse.

Instead, the next step will be to make the Zeus Solar Forecast pipeline more transparent.

I’m planning to add Solar Forecast Diagnostics that expose the important inputs and intermediate stages behind the final forecast, including:

  • PV capacity
  • Inverter limit
  • Available PV geometry
  • Weather authority
  • Local weather / irradiance availability
  • Raw solar potential
  • Weather adjustment
  • Historical / site correction
  • Final forecast
  • Forecast confidence

This should let us determine exactly where your forecast is being reduced too much.

Your installation is particularly useful for this because you have 8.1 kWp split East/West behind a 5 kW inverter, while another Zeus installation I’m testing does not show the same consistent underforecast and also has local weather / irradiance evidence available.

I specifically want to check:

  • Whether Zeus is handling PV array capacity and inverter limits correctly.
  • Whether the East/West installation characteristics are represented correctly.
  • Whether the forecast path behaves differently when no local weather / irradiance station is available.
  • Where the large downward correction is entering the forecast.
  • Whether the remaining error is genuinely site-specific calibration.

Zeus now also preserves forecasts made before the target day and can later compare them with the completed Recorder result in Forecast versus reality.

Once we know the underlying model is correct, that evidence can eventually be used for controlled site-specific learning.

The longer-term goal is for Zeus to be able to recognise something like:

“Over enough valid completed days, my forecast for this installation is consistently 20% low.”

and gradually correct that bias using measured evidence — rather than applying a universal multiplier to everybody.

So the development order will be:

Diagnose → Find the cause → Correct the model → Verify against reality → Learn

If you’re happy to continue testing, your setup is a very useful real-world case for this work.

The next diagnostic build should give us much better evidence about why Zeus is consistently low on your system.

Perfect mate, happy to keep testing. No need to rush it out. I’m away this week, so it will be Saturday before I can install it.
I had my own weather station a few years ago, but it lasted less than 2 years and I didn’t replace it. So there’s no local weather or irradiance data here. I have Met.no and Met Éireann installed for forecasts, and Met Éireann gives a higher resolution for this area. Could you add an option to add/use a second weather source?

Hi Colm. Sure…second weather station is on the way :slight_smile:

Hi Colm. A small update…

I don’t want Zeus simply averaging two weather providers, though. If Met.no predicts one thing and Met Éireann predicts something quite different, averaging them could actually hide useful information.

The direction I would prefer is:

Primary weather source → normal forecast authority

Secondary weather source → independent comparison/evidence

Zeus could then compare important solar-related forecast conditions from both sources.

If they agree, that gives us stronger forecast confidence.

If they disagree significantly, Zeus can show that disagreement and reduce confidence rather than pretending the weather forecast is certain.

Longer term, once enough Forecast versus reality evidence exists, Zeus could potentially learn which weather source performs better for a particular installation and under which conditions.

That could be especially interesting in your case because Met Éireann may provide better local resolution for western Ireland than the broader Met.no forecast — but I’d rather let the measured results prove that than hard-code an assumption.

For the first diagnostic build, though, I want to keep the priority on understanding the current systematic underforecast:

  • PV capacity and inverter handling
  • East/West array characteristics
  • Current weather authority and its inputs
  • Behaviour when no local irradiance evidence exists
  • Raw solar potential
  • Weather adjustment
  • Historical/site correction
  • Final forecast

Once we can see where the 15/15 low bias is entering the pipeline, we’ll know whether the weather-source layer is part of the problem.

Then adding a secondary weather authority can be done properly rather than using it to mask an underlying forecasting issue.

Thanks again for continuing to test — your setup is giving us some very useful evidence.

AION EMS Zeus v16.0.218 — Solar Forecast Diagnostics

This release introduces Solar Forecast Diagnostics, a new read-only diagnostic view designed to help investigate differences in solar forecasting accuracy across Home Assistant installations.

Following valuable testing by Colm, we identified a consistent solar underforecast on his installation. Rather than applying an arbitrary correction that could affect other users, we are taking an evidence-based approach to identifying where the difference originates.

What’s new

Under Energy → Forecast → Advanced forecast evidence and learning, the new Solar Forecast Diagnostics · Tomorrow section displays:

  • Historical hourly solar baseline

  • Weather-adjusted raw forecast

  • Calibrated hourly forecast

  • Final calendar-day forecast

  • Weather-matched forecast hours

  • Average weather adjustment factor

  • Learned calibration correction

  • Historical sample coverage

  • Forecast calculation method

The diagnostics also identify whether PV array capacity, inverter limits and panel geometry are explicitly represented by the current historical-profile model.

Important

This release does not change the solar forecast algorithm.

The purpose is to expose the existing calculation stages so we can compare installations, identify systematic underforecasting and make future improvements based on actual evidence.

All existing energy management, MQTT, EV charging, Heat Pump, Recorder, Finance and frontend refresh functionality remains unchanged.

Community testing

A special thanks to Colm for his detailed 15-day comparison against Solcast and Helios, and to Kaspar and everyone helping test Zeus on different energy systems.

For testing, please share the Solar Forecast Diagnostics values, ideally together with the next day’s measured solar production.

Observe → Learn → Predict → Recommend → Verify → Improve

If Zeus doesn’t know it, Zeus shouldn’t invent it.

@colfin22

Hi Colm,

Zeus v16.0.218 — Solar Forecast Diagnostics is now available.

As promised, I’ve added a new section under Energy → Forecast → Advanced forecast evidence and learning.

It shows the historical solar baseline, weather adjustment, learned correction and final forecast for tomorrow.

Your previous comparison showed Zeus forecasting too low on all 15 days, with an average error of 57%, compared with 41% for Solcast and 100% for Helios.

On my own installation, Zeus forecasts both too high and too low, so I want to compare our calculation evidence and find out where the difference originates.

The main things I want to compare are:

  • Historical solar baseline

  • Weather adjustment factor

  • Learned calibration correction

  • Final forecast

  • Weather-matched hours and historical sample coverage

No forecast calculations have been changed yet. This release is purely diagnostic.

When you have time, please install v16.0.218 and send me a screenshot of Solar Forecast Diagnostics · Tomorrow, ideally alongside your next-day forecast and subsequent actual production.

Thanks again for your continued testing!

v16.0.218 release has no aion_ems_zeus.zip asset attached, HACS 404s on download.

oooops… Try again please…I was too fast this time :slight_smile:

That is the part I need :wink: