Repository navigation
Releases: Aresitoo/chromaflow
Release list
v2.4.3 - Retired Tesla Line Keys
The last of the duplicated line settings
v2.4.2 removed the two duplicate flow paths. This removes the config keys that existed only to drive them, so a saved config stops carrying settings that do nothing.
Gone:
line_speeds.solar_teslaandline_speeds.grid_teslaare no longer written when you save from the editor. They were always copies ofsolar_evandgrid_ev, because the editor wrote the same value to both.colors.flow_solar_tesla_start/_endandcolors.flow_grid_tesla_start/_endare no longer read as fallbacks, and the matching palette defaults are gone.
Unchanged: every line is still fully adjustable. The lines to the EV/Tesla are governed by:
| Setting | YAML | Editor |
|---|---|---|
| Speed, solar to EV | line_speeds.solar_ev |
Speed: Solar ➔ EV |
| Speed, grid to EV | line_speeds.grid_ev |
Speed: Grid ➔ EV |
| Colours, solar to EV | colors.flow_solar_ev_start / _end |
Color Studio, Solar ➔ EV |
| Colours, grid to EV | colors.flow_grid_ev_start / _end |
Color Studio, Grid In ➔ EV |
Plus the global speed_multiplier for everything.
If you hand-edited YAML
Rename those keys to the _ev equivalents: flow_solar_tesla_* becomes flow_solar_ev_*, flow_grid_tesla_* becomes flow_grid_ev_*, line_speeds.solar_tesla becomes line_speeds.solar_ev, line_speeds.grid_tesla becomes line_speeds.grid_ev. The values carry over as they are.
If you only ever used the visual editor, there is nothing to do: it always wrote the same value to both keys, so the surviving _ev key already holds your setting. The one case that changes behaviour is a config where the two were deliberately given different values, since only the _ev value counts now.
Verified
flow_solar_ev_* and flow_grid_ev_* still drive their gradients, both retired key sets are ignored and fall back to the palette colours, the SVG still holds 10 flow paths, and the battery row still renders.
v2.4.2 - Flow Line and Asset Cleanup
A cleanup release, nothing changes on screen
No behaviour changes in this one. It removes leftovers that were doing nothing except adding weight.
The card carried 12 flow paths for 10 connections
flow-solar-tesla and flow-grid-tesla were named from the v1 layout, given the same geometry as the EV lines, and animated from the same numbers, so they drew exactly on top of flow-solar-ev and flow-grid-ev. Removed: the two paths, their gradients, the element references, the geometry writes, the gradient refresh and the two animation calls. The SVG now holds exactly the 10 lines the card actually has.
Existing configs keep working. colors.flow_solar_tesla_* and colors.flow_grid_tesla_* still act as fallbacks for the EV lines, and line_speeds.solar_tesla / grid_tesla are still written. They are simply inert now.
Two unused screenshots
achromaflow_card_dual_gradient.png and solar_export_view.png were referenced by nothing in the repository, about 580 KB of dead weight in every clone and release archive. Gone.
Documentation corrections that landed since v2.4.1
The README, example config and issue templates were audited against the actual code:
solar_prioritywas documented as'home'or'middle'. The card acceptshome,batteryandev.- The palette line claimed two presets; there are ten.
- The editor panel table listed emoji panel names that the de-emojification replaced with icons.
- Manual install pinned an old tag; the version badge is now Shields' latest-release badge and cannot drift again.
- The issue template contact link pointed at the old repository name, working only through GitHub's rename redirect.
- Every snippet now uses
custom:ares-energy-flow-card, the type HACS installs and the card picker lists.ha-energy-flow-cardstays registered as an alias. - Added the features and optional keys that had never been documented: the Discharged Today row, the idle-rails toggle, the ten presets, the emoji toggle,
battery_tapped_view,solar_daily_peak, the EV view keys and the tariff set.
Verified
Ten flow paths, ten rails, every flow gradient resolves, the solar-to-EV line still animates under EV load, the battery row still renders, and the regression suite plus the tag registration check pass.
v2.4.1 - Theme Preset Emojis Restored
Theme emojis are back in the preset dropdown
The de-emojification pass in v2.3.6 stripped the emojis out of the Color Theme Preset select as well as the rest of the editor. That one was never the point: the glyphs work as a quick visual index when you are picking a palette. They are restored, and nothing else in the editor regains an emoji.
☀️ Solar Harmonized (Default)
🌅 Synthwave Sunset (Sunset Amber, Magenta & Miami Aqua)
🌆 Cyberpunk Neon (Cyan, Hot Pink & Toxic Lime)
❄️ Nord Frost (Polar Night, Ice Blue & Arctic Teal)
🌌 Midnight Glow (Stealth Slate, Sky Blue & Amber)
🌲 Emerald Forest (Mint Jade, Lime Leaf & Deep Pine)
🌊 Deep Ocean (Lagoon Aqua, Coral & Deep Indigo)
🏃 Fitness Activity (Apple Rings)
🎃 Spooky Halloween (Pumpkin & Witch Purple)
🎄 Festive Christmas (Pine, Crimson & Gold)
Synthwave and Cyberpunk are included: they were added after the de-emojification, so they never had a glyph to lose.
The option values are untouched, so saved dashboards keep resolving to the same palettes.
Upgrading
Nothing to change. Node emojis still follow your existing show_emojis setting; this only affects the editor dropdown labels.
v2.4.0 - Battery Used Today
Battery used today
The scorecard gets a fourth row: DISCHARGED TODAY, sitting under self-consumed, grid reliance and exported. It shows the kWh your battery delivered today and that figure as a share of your load, so "I used 15 kWh of battery" comes with the context of what that meant against the house.
The battery node also carries the number under its state of charge bar, so it is visible without tapping.
Where the numbers come from
The card reads your battery's daily discharge sensor, which it already knew about:
entities:
battery_daily_discharge: sensor.battery_discharge_today
battery_daily_charge: sensor.battery_charge_todayCommon names are auto-detected, and Wh or MWh are normalised to kWh. If your battery only reports power, build the energy sensor in Home Assistant first:
sensor:
- platform: integration
source: sensor.battery_power
name: battery_energy_out
unit_prefix: k
method: left
utility_meter:
battery_out_today:
source: sensor.battery_energy_out
cycle: dailyA missing or unavailable sensor shows -- instead of a confident 0.00 kWh, and hides the line on the battery node.
Customisation
- Text:
lbl_battery_discharged_todayandlbl_battery_discharged_subin Custom Titles & Display Names. - Colours: Row 4 in the Visual Colors Studio (
row_battery_title,row_battery_kwh,row_battery_bar). Harmonized and Shuffle regenerate them with the other rows. - Default accent is the palette device colour (violet on the solar palette) so it does not compete with the green self-consumed row.
show_battery_row: falsehides the row.battery_primary_view: statsopens the battery node on today's charged and discharged totals instead of live power.
Fixed along the way
_update() treated battery-left, the default battery position, as no battery at all. On the default layout that meant the battery node's live power, state of charge, SoC bar and stats view never updated. It now matches the visibility logic that already handled that mode.
Upgrading
Nothing to change. If you have a battery and a daily discharge sensor, the row appears by itself.
v2.3.9 - Tinted Flow Rails & Idle Rail Toggle
What was wrong
Three separate faults in the static flow rails, stacked on top of each other.
The rails were almost invisible. v1.x drew each rail in its own colour at 15%: cyan for solar to home, purple for solar to EV, green for solar to export, orange for grid to home. v2.0.0 replaced all of them with one shared flow_rails white at 5%, which is about 4% effective opacity on a dark card. Rails are tinted per line again, from the colour of the node each one feeds, with flow_rails kept as a single explicit override. The old baked 0.05 and 0.06 white values are ignored and no longer written by the palette generator, so configs saved by 2.0 to 2.3.8 heal on their own.
Two rails were missing whenever you had an EV or a battery. Rail visibility depends on whether the card can see those devices, and that check ran once during setConfig, before Home Assistant assigns hass. With no entities resolvable at that moment, the EV and battery rails were hidden at birth and never reconsidered, because later updates only refreshed the values. On an EV setup that left three lines instead of five. Visibility now re-evaluates as soon as the device inputs change, so an EV only layout draws the five v1 rails again: solar to home, solar to EV, solar to grid, grid to home, grid to EV.
Two dead rails. rail-solar-tesla and rail-grid-tesla were leftovers from the v1 naming, given the same geometry as the EV rails but never displayed by anything. Removed.
New option
show_idle_rails, default true, which keeps the v1 behaviour of always showing the grooves. Set it to false and a line is only drawn while that connection actually carries power, so the diagram shows just what is flowing right now. It is in the visual editor under Sizing, Speeds & Options, and in YAML:
show_idle_rails: false # only draw a flow line while it carries powerUpgrading
Nothing to change. If you already had a flow_rails colour set on purpose, it still applies to every rail. If you never touched it, you will see the tinted rails again without editing anything.
v2.3.8 - Solar Sub-Arrays Editor Restored
What was wrong
The Solar Sub-Arrays option, the one for microinverters, strings and separate roof orientations, was added in v2.2.0 and disappeared from the card editor in v2.3.6 without anyone noticing. The card itself still drew per-array sub-tiles the whole time, so a config written by hand worked, but the editor had lost the toggle, the four array slots and the code that loaded and saved them.
What changed
- Editor restored. Under Solar Panels you get "Show Sub-Arrays (Microinverters / Strings)" and an expandable "Solar Sub-Arrays (Roof, Garage, Balcony)" with four arrays, each with a name, a live power sensor and an optional energy-today sensor. Same fields and behaviour as v2.3.3.
- Loading and saving work again. Arrays are read out of
solar_sourceswhen the editor opens and rebuilt when you save. Entries beyond slot four, which a YAML config can carry, are preserved. Clearing every slot removes the key. - Everything added since v2.3.3 is untouched: daily peak sensor, financial placement, spot tariff, export compensation, fixed tariff and currency.
Also in this release
- The dev-lab and production files now register separate custom element tags. Before this, both files claimed every tag, so whichever one Home Assistant loaded first won and the dev-lab dashboard silently ran production code.
tools/make-dev-build.shbuilds the dev copy with a module-scoped flag so it claims only the dev tags, andAresEnergyFlowCard.BUILDreports which build a page is running. - Guard rails for that split:
scripts/check-tags.mjs,scripts/deploy-dev.ps1,scripts/deploy-prod.ps1,scripts/check-lanes.ps1,scripts/adopt-deployed.ps1, a pre-commit hook and a CI guard job, documented inAGENTS.mdandWORKFLOW.md.
Upgrading
Nothing to change in your YAML. If you already had solar_sources set by hand, the editor now shows it again. If you want to add arrays, open the card editor, tick "Show Sub-Arrays", fill in the slots and save.
v2.3.7 - Per-Ring Autarky Track Tint Restored
What was wrong
v2.0.0 replaced the three tinted ring tracks with one shared white track at 5% opacity. On a dark card that is nearly invisible, so the unfilled part of the autarky rings disappeared and only the bright arc was left. This release puts the v1.x look back: each ring's own colour at 15%.
What changed
- Each track is tinted from its own ring colour again, so on the default palette the outer ring has a faint green groove, the middle one orange and the inner one yellow.
- If your dashboard still carries the old
ring_bg_track: rgba(255, 255, 255, 0.05)value, it is skipped now. The tint comes back without you editing the config. - Harmonized, Shuffle and the preset list no longer write that value into your config.
- Changing ring colours in the colour studio recolours the tracks with them.
- The three scorecard bar grooves (Self-consumed, Grid reliance, Exported) use the same tints instead of a stray white.
ring_bg_trackstill works as an override. Set it and all three tracks use that colour, leave it blank and each ring is tinted on its own.
Upgrading
Nothing to edit in your YAML. Dashboards saved by 2.0 up to 2.3.6 keep working and simply ignore the old white track value.
v2.3.3 - Real Obtained Solar Peak, Algorithmic Harmony & Clean Box Fills
ChromaFlow v2.3.3 Release Notes
In this update, I focused on telemetry accuracy, color studio refinements, and editor polish:
- Real Obtained Daily Solar Peak: Bound the tapped 12-hour solar generation view to real peak power telemetry (
sensor.solar_daily_peak_poweror similar sensor candidate) paired with an automatic live peak tracker fallback. This replaces the earlier placeholder with today's true peak generation value. - Algorithmic Color Harmony: Upgraded the
Harmonizedbutton in the Visual Colors Studio. Instead of cycling existing presets, it now calculates a mathematically balanced palette (analogous and triadic color wheel relationships) on every tap while maintaining dark neutral box backgrounds. - Clean Neutral Box Fills: Box interiors across presets and Shuffle now default to a clean dark neutral style (
rgba(255, 255, 255, 0.03)). This ensures text and badges remain crisp, while vibrant colors accent borders, glowing outlines, flow lines, and autarky rings. - Shuffle Protection: When shuffling colors, box backgrounds remain protected so node boxes never turn into solid or muddy rectangles.
- Editor Polish and Deduplication: Removed redundant duplicate EV toggles in the editor schema, updated accordion title to
Home Battery & Electric Vehicle (EV), removed the prototype label from the solar chart option, and unified node naming.
v2.3.2 - Editor Crash Guard, EV SoC Entity Prioritization & Clean CSS
ChromaFlow v2.3.2 Maintenance Release
This release resolves several visual editor and entity state edge cases:
- Editor Crash Guard: Fixed an issue where opening the card configuration threw
Cannot read properties of undefined (reading 'palette')when mounting on clean or uninitialized card configs. - EV Entity Resolution & Live SoC: Improved automatic sensor discovery to prioritize entities reporting active valid data over sleeping/unknown states. This restores the live battery level (59%), battery progress bar, and range display for Tesla and EV integrations even when local BLE or secondary trackers are asleep.
- Sanitized EV Status Badge: Replaced the raw 'UNKNOWN' fallback badge text with clean contextual statuses ('PARKED' or 'CHARGING').
- Clearer Editor Labels: Updated 'Show EV Charger' to 'Show Electric Vehicle (EV)' and cleanly split Home Battery settings from EV Battery settings.
- Deduplicated CSS: Removed duplicate
.solar-sourcesstylesheet blocks.
v2.3.1 - Color Studio Toolbar, Theme Grid Border & Solar Chart Toggle
ChromaFlow v2.3.1 Patch Release
This patch addresses visual polish and layout feedback from v2.3.0:
- Grid In Border Color Fix: Resolved an issue where resetting ICP alerts or changing themes reverted the Grid In container border to a generic gray/white outline. It now retains its active theme border color (e.g. orange in Solar, hot pink in Cyberpunk).
- Color Theme Preset Relocated: Moved the Color Theme Preset selector to the top of the Visual Colors Studio accordion, making palette switching immediate and intuitive.
- Visual Colors Studio Toolbar: Aligned the Harmonized, Shuffle, and Reset buttons into a balanced 3-column row, fixing the wrapping issue where the reset button was pushed to a second row.
- Solar Node Tap Action & Chart View: Fixed the golden curve overlapping the forecast text. The Solar node now defaults to clean telemetry numbers and toggles to a dedicated 12-hour generation chart view on tap, mirroring the Tesla node interaction.