AION EMS Zeus – Energy Management & Intelligence for Home Assistant

Yes you right I just see it.
Thanks

If you want, but you could also simply specify you want [currency]/kWh and that’s it.

Anyway, the external automation would still need to add taxes and VAT, since those integrations often provide bare energy market prices. For example Nordpool doesn’t even give Eur/kWh but Eur/MWh…

Once an automation is needed, all the calculations belong to it.

Now I have one bidirectional entity, and cumulative energy flows only. I couldn’t find out how to restart Zeus, so I restarted HA.
Still …

The solar and grid values are correct, only the middle one is missing.

AION EMS Zeus v14.8.10.16 — Update Available

A new tested release of AION EMS Zeus v14.8.10.16 is now available.

This release contains the latest fixes and improvements, including Energy Sources configuration improvements, Finance updates, Solar Switch Control improvements, Heat Pump and inverter Timeline fixes, improved diagnostics/HA Community Support Report, and Command Center improvements.

Important for existing HACS users

Some users may not receive the normal HACS “Update available” notification automatically, even though v14.8.10.16 is available and visible to HACS.

If HACS does not offer the update automatically:

HACS → AION EMS Zeus → ⋮ → Redownload → Need a different version? → select v14.8.10.16

Then restart Home Assistant.

This appears to be related to HACS update detection for some custom-repository installations. The Zeus v14.8.10.16 release itself is published correctly.

HACS submission

The official HACS inclusion request is still waiting in the HACS review queue.

The original v14.8.10.6 release linked to that submission remains unchanged. Development and new Zeus releases can continue while we wait for the HACS review.

Thanks again to everyone testing Zeus and reporting issues. Your feedback is helping make AION EMS Zeus better.

What’s New in AION EMS Zeus v14.8.10.16 :high_voltage:

This release contains a substantial collection of fixes and improvements made from real-world testing and community feedback.

:high_voltage: Energy Sources

  • Improved automatic detection of Home Assistant Energy configuration.
  • Better recommendations for Solar, Grid and Battery entities.
  • Existing user mappings are preserved.
  • Added multi-edit workflow: make several mapping changes → Validate → Save All.
  • Improved distinction between daily-reset and lifetime total_increasing energy sensors.
  • Daily sensors are no longer incorrectly recommended as lifetime counters.
  • Improved Solar and Battery semantic detection.
  • Better handling of bidirectional and separate import/export power sensors.

:money_bag: Finance

  • Completely redesigned Finance page.
  • New Finance KPI overview.
  • Improved Grid Cost vs Export Income graph.
  • Grid Cost shown in red and Export Income in green.
  • Improved CHF/value readability and graph axes.
  • Added Value Mix and detailed period summaries.
  • Added Energy Value information and Advanced Finance Details.
  • Tariff configuration remains centralized under Configuration.

:sun: Solar Switch Control

Solar-controlled devices now use the configured minimum surplus as a real export reserve.

For example, with a minimum surplus of 600 W, Zeus attempts to keep at least 600 W exporting while controlled devices are operating.

  • Improved staged device activation.
  • New stages only start when sufficient surplus is available.
  • Highest active stage is shed first when export drops below the reserve.
  • Zeus re-evaluates remaining stages after shedding.
  • Improved protection against ON/OFF oscillation.

:hot_springs: Heat Pump

Several Heat Pump issues have been corrected.

  • Improved Heating/DHW accounting.
  • Fixed Device Health compatibility cases showing 0%.
  • Fixed disruptive Statistics/Heat Pump refresh behavior.
  • Improved live Heat Pump status detection.
  • Heat Pump electrical consumption above 25 W now indicates that the unit has started/running.
  • Heating and DHW power remain separately classified and appear as soon as their respective sensors provide data.

:one_o_clock: Home Energy Timeline

The Timeline received significant reliability improvements.

  • Fixed delayed/missing Heat Pump START events.
  • Fixed delayed/missing Heat Pump STOP events.
  • Fixed missed inverter START/STOP transitions.
  • Fixed false inverter STOP events while an inverter was still producing.
  • Zeus now evaluates multiple available inverter power signals instead of trusting a single potentially lagging sensor.
  • Unavailable inverter data is no longer interpreted as genuine 0 W production.

:hammer_and_wrench: HA Community Support Report

Support diagnostics have been significantly expanded.

The report now includes privacy-safe Energy Sources mappings and their live values, including:

  • Home consumption
  • Solar production
  • Grid import/export/bidirectional power
  • Battery SOC
  • Battery charge/discharge/bidirectional power
  • Daily energy mappings
  • Lifetime energy mappings
  • Battery mapping mode

This should make troubleshooting configuration problems on the forum much easier without requiring users to expose private Home Assistant connection information.

:desktop_computer: Command Center

  • Updated futuristic visual treatment.
  • Enhanced central House HUD.
  • Improved energy-flow presentation and visual feedback.
  • Existing energy calculations, devices, Timeline, Switch Hub and controls remain functional.

:electric_plug: Other Improvements

  • Improved DEA/EV charger attribution.
  • Correct Zeus version reporting in Diagnostics and Command Center.
  • Numerous smaller stability, compatibility and diagnostic improvements.

Thanks. Restarting Home Assistant is perfectly fine; that also restarts Zeus.

The Solar and Grid values now look good, but Home = 0 W still needs checking.

Please install the latest version v14.8.10.16 and please generate the new report from:

AION EMS Zeus → Diagnostics → Generate HA Community Support Report

and paste the report here?

It will show me exactly which Home, Solar, Grid and Battery entities are mapped and their current values. Please don’t change any more mappings until I see that report.

I redownloaded the .6 version but the GUI still shows .5. Just to let you know.

The diagnostics don’t refer to “Community support” but only “Privacy safe diagnostic report”.

report
{
  "report_schema": "aion_ems_zeus_diagnostic_report_v1",
  "generated_at": "2026-09-03T09:00:59.997Z",
  "privacy": "No credentials, passwords, access tokens, MQTT credentials, NAS server addresses or secret connection data are included.",
  "system": {
    "zeus_version": "[redacted-address]",
    "frontend_version": "[redacted-address]",
    "registered_devices": 2,
    "performance": "low_cpu_event_driven",
    "recorder_attribute_limit_bytes": 16384,
    "energy_flow_recorder_protected": true
  },
  "energy_flow": {
    "status": "Ready",
    "snapshot_completed": "2026-09-03T09:00:59.801104+00:00",
    "update_latency_ms": 237.4,
    "source_skew_ms": 71313.6,
    "house_power_w": null,
    "solar_power_w": 637,
    "grid_import_power_w": 0,
    "grid_export_power_w": 439.000010490417,
    "battery_charge_power_w": null,
    "battery_discharge_power_w": null,
    "sources": {
      "solar_power": {
        "entity_id": "sensor.ecu_216200047223_current_power",
        "value_w": 637,
        "last_changed": "2026-09-03T08:59:49.543783+00:00",
        "last_updated": "2026-09-03T08:59:49.543783+00:00"
      },
      "battery_charge_power": {
        "entity_id": "sensor.zendure_power_import",
        "value_w": 0,
        "last_changed": "2026-09-03T09:00:00.002446+00:00",
        "last_updated": "2026-09-03T09:00:00.002446+00:00"
      },
      "battery_discharge_power": {
        "entity_id": "sensor.zendure_power_export",
        "value_w": 0,
        "last_changed": "2026-09-03T09:00:00.000779+00:00",
        "last_updated": "2026-09-03T09:00:00.000779+00:00"
      },
      "grid_power": {
        "entity_id": "sensor.power_net_flow",
        "value_w": -439.00001049041697,
        "last_changed": "2026-09-03T09:00:59.566834+00:00",
        "last_updated": "2026-09-03T09:00:59.566834+00:00"
      },
      "battery_power": {
        "entity_id": "sensor.em_mini_gen4_zendure_power",
        "value_w": 0,
        "last_changed": "2026-09-03T08:59:48.253196+00:00",
        "last_updated": "2026-09-03T08:59:48.253196+00:00"
      }
    }
  },
  "registered_devices": [
    {
      "id": "dishwasher_dishwasher",
      "name": "Dishwasher",
      "type": "dishwasher",
      "controllable": false,
      "control_permission": false,
      "mappings": {
        "power": "sensor.gosund_watt",
        "energy": "sensor.gosund_daily_consumption",
        "temperature": null,
        "state": null,
        "availability": null,
        "cop": null,
        "thermal_power": null,
        "thermal_energy": null
      }
    },
    {
      "id": "washing_machine_washing_machine",
      "name": "Washing machine",
      "type": "washing_machine",
      "controllable": false,
      "control_permission": false,
      "mappings": {
        "power": "sensor.sp111_4_watt",
        "energy": "sensor.sp111_4_daily_consumption",
        "temperature": null,
        "state": null,
        "availability": null,
        "cop": null,
        "thermal_power": null,
        "thermal_energy": null
      }
    }
  ],
  "smart_control": {
    "execution_path": "supervised_elwa_modbus+goe_mqtt_ids",
    "registered_devices": 2,
    "controllable_candidates": 0,
    "permissioned_candidates": 0,
    "devices": [],
    "simulations": [],
    "goe_mqtt": []
  },
  "self_test": {
    "status": "Not run",
    "score": 0,
    "grade": "—",
    "passed": null,
    "warnings": null,
    "errors": null,
    "checks": []
  }
}

I see that the grid power (bidirectional, signed value) is somehow misinterpreted:

So (after report and screenshot above) I replaced the single sensor with split import/export but it is not better:

The grid balance (above the sensor values) seems to SUM the import and export.
Maybe it didn’t realise that when separate sensors are used, both are positive, always. Positive export is still export…

And home consumption is still zero. Maybe it expect always a sensor for home consumptions? I don’t have one.

Ok I got the .16 now. HACS doesn’t show it on top of the list, it still proposes .6… to be kept in mind for the future.

Here the report, nothing has changed.

HA report
AION EMS Zeus Support Summary
Generated: 2026-09-03T09:15:23.193Z

Zeus: v14.8.10.16 · Frontend: v14.8.10.12
System health: Not run · Self-test 0% —
Registered devices: 2 (dishwasher: 1, washing machine: 1)

Energy Flow
- Status: Ready
- House: — W · Solar: 1012 W · Grid import: 256.000012159348 W · Grid export: 1894.00005340576 W
- Update latency: 225 ms

Energy Sources
- Home consumption power: Not mapped
- Solar production power: sensor.ecu_216200047223_current_power · 1.012 kW
- Bidirectional grid power: Not mapped
- Grid import power: sensor.universal_p1_port_dongle_relay_power_delivered · 0.238000005483627 kW
- Grid export power: sensor.universal_p1_port_dongle_relay_power_returned · 1.90199995040894 kW
- Battery state of charge: sensor.zendure_battery_1_state_of_charge · 9 %
- Bidirectional battery power: sensor.em_mini_gen4_zendure_power · 0.0 W
- Battery charge power: sensor.zendure_power_import · 0 W
- Battery discharge power: sensor.zendure_power_export · 0 W
- Home consumption today: Not mapped
- Solar production today: sensor.ecu_216200047223_today_energy · 1.51 kWh
- Grid import today: Not mapped
- Grid export today: Not mapped
- Battery charged today: Not mapped
- Battery discharged today: Not mapped
- Home consumption lifetime: Not mapped
- Solar production lifetime: sensor.ecu_216200047223_lifetime_energy · 17412.8 kWh
- Grid import lifetime: sensor.energy_consumption · 9286.651 kWh
- Grid export lifetime: sensor.energy_production · 7145.218 kWh
- Battery charged lifetime: sensor.zendure_energy_import · 118.93 kWh
- Battery discharged lifetime: sensor.zendure_energy_export · 105.41 kWh
- Battery mapping mode: separate

Smart Control
- No supervised controllable devices reported.

Self-Test
- Not run · 0% · — · Passed — · Warnings — · Errors —

Important warnings
- Self-test status: Not run

Privacy: shortened support summary; includes only Energy Sources mappings and live values. No credentials, tokens, server addresses, or secret connection data.

Thanks, the diagnostic report found the issue.

Your Solar, Grid and Battery mappings are being read correctly. However, Zeus currently has no live Home Consumption Power entity mapped — the report shows house_power_w: null.

At the snapshot shown, Solar was 637 W, Grid export was 439 W and the battery was idle, so Home consumption would be roughly 198 W.

Zeus is currently displaying the missing Home value as 0 W instead of deriving it from the available energy flows. So please do not change your Grid mappings again. I can now reproduce/understand the issue and will correct the fallback calculation ( to show “add sensor” and not 0 ).

P.S. About the report…Looks like your browser is not refresh…Refresh it and must show like this…

So back to the issue: The report shows that your Home Consumption Power sensor is not mapped. With the current Zeus version, this live power input is required for the Home value.

Please map your live total house/consumption power sensor under Energy Sources → Home / Consumption. You do not need to change the Grid configuration again.

Yes I had .6, now with .16 I get the buttons as you showed.

I’m not sure I understand which sensor I should put there: I never saw such a sensor in smart meters so I would need to add a helper using the definition of home consumption, which is (assuming all positive values):

home = grid input - grid output + battery output - battery input + solar output.

Or, when bidirectional (signed) sensors are used,

home = grid - battery + solar

If all of them are filled in (and I have them all), the integration already knows the home consumption.

That’s why I’m puzzled, but I might have misunderstood what you meant.

For example, in the past I had this card for other purposes:

and it does what I mentioned: after filling in grid, battery and solar, it calculates home consumption

You are correct. If Solar, Grid and Battery live power are mapped, Zeus already has enough information to derive Home consumption. A separate Home Consumption sensor should not be mandatory.

In your example, with 637 W solar, 439 W export and no battery flow, Home consumption should be roughly 198 W.

Zeus is currently not applying that fallback calculation when the direct Home sensor is missing, so it shows 0 W instead.

I’ll correct that behavior so Zeus can derive Home consumption automatically from the available live energy flows.

I will release a new version ASAP with this fix ( as I say before Zeus was started for my own needs and system…Now I must change some parts :slight_smile:

Thank you for the very prompt support!

And in fact you wrote in the configuration that such a sensor is optional, that’s why I was puzzled!

:slight_smile:

I’ll wait, I’m in no hurry.

AION EMS Zeus v15.0.0

What’s New

:house: Automatic Home Consumption

Home / Consumption Power mapping is now optional when Zeus has enough live energy data to calculate it.

If no direct Home power sensor is mapped, Zeus can automatically derive Home consumption from:

  • Solar production
  • Grid import / export
  • Battery charge / discharge

This is useful for installations where the smart meter does not provide a dedicated whole-home consumption sensor.

:battery: Improved Battery Fallback Handling

  • Improved handling of bidirectional battery power sensors.
  • An idle bidirectional battery reporting 0 W is now correctly treated as idle.
  • Zeus no longer blocks the Home consumption calculation simply because battery direction cannot be determined at 0 W.

:high_voltage: Energy Flow

When a direct Home Consumption sensor is unavailable, Zeus now uses the available live energy flows instead of incorrectly displaying 0 W when the Home value can be calculated.

If there is not enough reliable information to calculate Home consumption, Zeus will avoid inventing a value.


Thanks to the Home Assistant Community for the real-world reports that helped identify this case. :high_voltage:

Install the 15… Enjoy

P.S. Refresh your browser after restart.

Mostly! Just a sign is wrong somewhere.

It has grid 794 W which is “import + export”, but it should be “import - export” because separate import and export entities don’t provide negative values for export, it appears as positive all the time, therefore it should show 219 - 575 = -356 (value verified with the smart meter).

I haven’t tested the battery yet, but even there the discharge (when provided as separate entity) is always positive so it should get subtracted, not summed.

I see/found the bug… I fixed and I add also Dynamic Tariffs.

I’m gonna released ASAP.

AION EMS Zeus v15.0.3

What’s New

:high_voltage: Dynamic Tariffs

Added a new Dynamic Tariffs page.

Zeus can now receive dynamic electricity prices from Home Assistant automations using the new:

aion_ems_zeus.set_energy_prices

action.

The price feed is provider-neutral and accepts timestamped:

  • start
  • end
  • price

entries.

This makes it possible to use sources such as Nord Pool, ENTSO-E and other electricity-price providers without requiring provider-specific code inside Zeus.

:money_bag: Dynamic Price Schedule

  • Current and next electricity price.
  • Imported price schedule.
  • Price source and last update.
  • Schedule coverage monitoring.
  • Automatic price-unit normalization.
  • Support for 15, 30 and 60-minute price intervals.
  • Manual JSON importer for testing.
  • Nord Pool automation example included directly in Zeus.
  • Dynamic import prices are available to the Finance engine.

:house: Automatic Home Consumption

A dedicated Home Consumption Power sensor is now optional when Zeus has enough live information to calculate consumption.

Zeus can derive Home consumption from:

Solar + Grid Import − Grid Export + Battery Discharge − Battery Charge

This avoids requiring users to create an additional Home Assistant helper when their energy system already provides all necessary live flows.

:electric_plug: Signed Grid & Battery Diagnostics

Corrected Atomic Live Snapshot calculations for separate sensors:

Grid net = Import − Export

Battery net = Charge − Discharge

This correctly represents exporting Grid power and discharging Battery power as negative net flow.


Thanks to the Home Assistant Community for the reports and real-world testing that helped identify these cases. :high_voltage:

AION EMS Zeus v15.0.5

This release focuses on bug fixes, energy-flow accuracy, performance, diagnostics and tariff management.

Bugs Fixed

  • Fixed Home consumption showing 0 W when no dedicated Home Consumption Power sensor was mapped.
  • Home consumption can now be calculated automatically from available Solar, Grid and Battery live flows.
  • Fixed Grid net calculation when separate Import and Export power sensors are used.
    • Grid net = Import − Export
  • Fixed Battery net calculation when separate Charge and Discharge sensors are used.
    • Battery net = Charge − Discharge
  • Fixed false or missing inverter START / STOP Timeline events.
  • Fixed delayed or missing Heat Pump START / STOP Timeline events.
  • Improved handling of unavailable or temporarily lagging power sensors.
  • Fixed Dynamic Tariffs frontend registration that could cause a black screen after restart.
  • Restored the standard tariff editor that was unintentionally removed from Configuration.
  • Fixed version reporting and support-report version redaction.

Performance & Reliability

  • Improved event-driven Timeline updates.
  • Improved live inverter power evidence evaluation.
  • Reduced dependency on delayed secondary power sensors.
  • Improved handling of asynchronous Energy Source updates.
  • Better fallback behavior when optional sensors are unavailable.
  • Improved energy-flow calculation consistency.
  • Improved diagnostics for identifying incorrect or missing Energy Source mappings.

Tariffs

Standard electricity tariffs are available under:

Configuration → Energy Prices

Dynamic market prices are available separately under:

Finance → Dynamic Tariffs

Dynamic Tariffs support provider-neutral timestamped price feeds through Home Assistant, including sources such as Nord Pool and other market-price integrations.

Diagnostics

The HA Community Support Report now provides privacy-safe Energy Source mappings and live values to make troubleshooting easier.

Find it under:

Diagnostics → Forum Support → Generate HA Community Support Report


Thank you to everyone testing AION EMS Zeus and reporting real-world issues through the Home Assistant Community.

If you publish the source I can also give it a look and help more, so that I can do tests on my own and provide you with the working code.

For example, the latest version corrected grid import, but the battery combined flow is still wrong, and home consumption also is 0.

As a very minor remark, I just noticed it: grid export should have the arrow TOWARDS the power pylon. The icons for import and export (only the grid ones!) should be reversed. The arrows for the battery flows are correct.

Other issue: the diagnostics page show the correct grid balance, but the overview and Welcome pages don’t.