Source: https://cards.flixlix.com/home-flow-card/configuration

Home Flow Card

# Configuration

Every option the card reads, by where it goes in the YAML. Required fields are marked with \*.

Coming from Power Flow Card Plus?

Change `type` to `custom:home-flow-card` and move `grid`, `solar`, `battery` and `home` out of `entities` to the top level; their options stay the same. Options that only change Power Flow Card Plus' circles and lines (for example `display_zero_lines`) have no effect here.

## Card options

The card type, which nodes it draws, and how it moves.

```yaml
type: custom:home-flow-card
grid:
  entity: sensor.grid_power
solar:
  entity: sensor.solar_power
battery:
  entity: sensor.battery_power
  state_of_charge: sensor.battery_soc
animate_numbers: true
```

- `type` (string, required): `custom:home-flow-card`
- `title` (string): Card title.
- `mode` (string, default `power`): What the sensors measure: `power` for live power in W, or `energy` for energy in Wh over the period picked on the dashboard's energy date picker (today without one). In energy mode every node, the car and the heat pump read energy sensors, each wire carries its energy over the period and, without an expected range in Wh, the pulses share out what was supplied. A grid or battery that ran both ways gets a parallel line and a value each way. What only says what is happening now is left out: the grid's outage, the car's `idle` conditions and the heat pump's turning fan. See [the energy example](https://cards.flixlix.com/home-flow-card/examples#energy).
- `collection_key` (string): With `mode: energy`, the energy date picker to follow, as in Energy Flow Card Plus, for example `energy_living_room`. Without it, the dashboard's own.
- `energy_entities` (object): Each node's energy sensor, by node: `grid`, `solar`, `battery`, `home`, `generator`, `car` and `heat_pump`, each written like the node's `entity`. With them, the card gets a selector in its top right corner between live power and today, and reads today itself instead of following a date picker. The house keeps its live size and place. A node without an energy sensor is left out of today; the home without one shows what flowed into it. Only with `mode: power`, the default. See [the example](https://cards.flixlix.com/home-flow-card/examples#live-or-today).
- `views` (list, default `[live, today]`): With `energy_entities`, any of `live`, `today`, `yesterday`, `week`, `month` and `year` for the selector, always shown in that order. Two sit side by side; more open in Home Assistant's dropdown. A single one shows that view without a selector.
- `grid / solar / battery / home` (object): The nodes, at the top level of the card; see their sections below. Leave one out and it is not drawn; one of grid, solar or battery is required. Without `home`, the card works out what the home uses from the others.
- `generator` (object): A generator for grid outages; see [Generator](https://cards.flixlix.com/home-flow-card/configuration#generator).
- `car` (object): An electric car in front of the house; see [Car](https://cards.flixlix.com/home-flow-card/configuration#car).
- `heat_pump` (object): A heat pump on the front wall; see [Heat pump](https://cards.flixlix.com/home-flow-card/configuration#heat-pump).
- `animate_numbers` (boolean, default `true`): Roll each number to its new value when a reading changes. Always still when your system asks for reduced motion.
- `disable_dots` (boolean, default `false`): Keep the wires still: no pulses, only the colour of the power they carry.
- `wire_width` (number, default `1`): How many times thicker the wires are drawn, for example 2 for twice as thick. Like the labels' text, wires keep a similar size in px whatever the card's width: they stay visible in a narrow sidebar and do not swell on a wide dashboard.
- `two_way_value_size` (number, default `1`): In energy mode, how large the values of a grid or battery that ran both ways are drawn against the other labels' values, for example 0.8 so their two values take less room.
- `clickable_entities` (boolean, default `true`): Tapping a value opens its entity's details; `false` turns that off. A node's own [actions](https://cards.flixlix.com/home-flow-card/configuration#actions) run either way.

## Numbers and pulses

How values are rounded and how fast the pulses run, shared with Power Flow Card Plus.

```yaml
kilo_threshold: 1000
kilo_decimals: 2
max_expected_value: 5000
```

- `base_decimals` (number, default `0`): Decimals of values in W, or Wh in energy mode.
- `kilo_decimals` (number, default `1`): Decimals of values in kW (kWh).
- `kilo_threshold` (number, default `1000`): From how many W (Wh) a value is shown in kW (kWh).
- `mega_decimals` (number, default `2`): Decimals of values in MW (MWh).
- `mega_threshold` (number, default `1000000`): From how many W (Wh) a value is shown in MW (MWh).
- `min_flow_rate / max_flow_rate` (number, default `0.75 / 6`): Seconds per pulse at the most and the least power.
- `min_expected_value / max_expected_value` (number, default `0.01 / 2000`): The range the pulses follow, in W (Wh in energy mode): slowest and shortest at the min, fastest and longest at the max. In energy mode without them, each wire's pulses share out what was supplied over the period instead. The older `min_expected_power` and `max_expected_power` still work in power mode; the visual editor saves them under the new names.

## Grid

Under `grid`: the cable running off to the street.

```yaml
grid:
  entity:
    consumption: sensor.grid_import_power
    production: sensor.grid_export_power
  power_outage:
    entity: binary_sensor.grid_outage
    label_alert: Blackout
```

- `entity` (string | object, required): A power or energy sensor, positive while importing and negative while exporting; or `consumption` (import) and `production` (export), one sensor per direction, each positive.
- `name` (string, default `Grid`): Label name.
- `use_metadata` (boolean, default `false`): Take the name from the entity.
- `power_outage.entity` (string): The entity that reports an outage. While the grid is down, its cable goes dead and its label shows a dash and an alert. Live only: energy mode leaves it out.
- `power_outage.state_alert` (string, default `on`): The state of `power_outage.entity` that means the grid is down.
- `power_outage.label_alert` (string, default `Power Outage`): The alert under the grid's name during an outage.
- `invert_state` (boolean, default `false`): Swap import and export, for a sensor that reads the other way round.
- `display_zero_tolerance` (number, default `0`): Below this, in W (Wh in energy mode), the grid counts as idle.
- `unit_of_measurement` (string): Unit shown instead of the sensor's own.
- `decimals` (number): Decimals of the value, instead of the card's `base_decimals` and `kilo_decimals`.
- `color.consumption` (string | list, default `theme`): Colour of the wire while importing, as `#rrggbb` or `[r, g, b]`.
- `color.production` (string | list, default `theme`): Colour of the wire while exporting.
- `tap_action / hold_action / double_tap_action` (object): What tapping, holding or double-tapping the label does; see [Actions](https://cards.flixlix.com/home-flow-card/configuration#actions).

## Solar

Under `solar`: the panels on the roof.

```yaml
solar:
  entity: sensor.solar_power
  name: Roof
  color: "#ff9800"
```

- `entity` (string, required): The solar production sensor.
- `name` (string, default `Solar`): Label name.
- `use_metadata` (boolean, default `false`): Take the name from the entity.
- `invert_state` (boolean, default `false`): For a sensor that reads production as negative.
- `display_zero_tolerance` (number, default `0`): Below this, in W (Wh in energy mode), the solar counts as idle.
- `unit_of_measurement` (string): Unit shown instead of the sensor's own.
- `decimals` (number): Decimals of the value, instead of the card's `base_decimals` and `kilo_decimals`.
- `color` (string | list, default `theme`): Colour of the wire, as `#rrggbb` or `[r, g, b]`.
- `tap_action / hold_action / double_tap_action` (object): What tapping, holding or double-tapping the label does; see [Actions](https://cards.flixlix.com/home-flow-card/configuration#actions).

## Battery

Under `battery`: the battery on the wall, with its charge bar.

```yaml
battery:
  entity: sensor.battery_power
  state_of_charge: sensor.battery_soc
  state_of_charge_position: after_value
  state_of_charge_severity:
    red: 10
    yellow: 25
```

- `entity` (string | object, required): A power or energy sensor, positive while discharging and negative while charging; or `consumption` (discharge) and `production` (charge), one sensor per direction, each positive.
- `state_of_charge` (string): The state of charge sensor, in %. Fills the charge bar and shows on the label.
- `state_of_charge_position` (string, default `below_value`): Where the label shows the state of charge: `below_value`, beside whether it is charging; `above_value`, swapped with the value as the large one; or on the value's line, `after_value` or `before_value`. Without a state of charge, the label shows the value either way. The older `below_power`, `above_power`, `after_power` and `before_power` still work; the visual editor saves them under the new names.
- `state_of_charge_severity.red` (number, default `15`): The charge bar is red below this charge, in %.
- `state_of_charge_severity.yellow` (number, default `30`): The charge bar is yellow below this charge, in %, and green above it.
- `state_of_charge_unit` (string, default `%`): Unit of the state of charge.
- `state_of_charge_unit_white_space` (boolean, default `true`): Put a space between the state of charge and its unit.
- `state_of_charge_decimals` (number, default `0`): Decimals of the state of charge.
- `name` (string, default `Battery`): Label name.
- `use_metadata` (boolean, default `false`): Take the name and icon from the entity.
- `icon` (string, default `by charge`): The icon on the battery: `mdi:battery`, `mdi:battery-high`, `mdi:battery-medium`, `mdi:battery-low` or `mdi:battery-outline`. By default it follows the state of charge.
- `invert_state` (boolean, default `false`): Swap charging and discharging, for a sensor that reads the other way round.
- `display_zero_tolerance` (number, default `0`): Below this, in W (Wh in energy mode), the battery counts as idle.
- `unit_of_measurement` (string): Unit shown instead of the sensor's own.
- `decimals` (number): Decimals of the value, instead of the card's `base_decimals` and `kilo_decimals`.
- `color.consumption` (string | list, default `theme`): Colour of the wire while discharging, as `#rrggbb` or `[r, g, b]`.
- `color.production` (string | list, default `theme`): Colour of the wire while charging.
- `tap_action / hold_action / double_tap_action` (object): What tapping, holding or double-tapping the label does; see [Actions](https://cards.flixlix.com/home-flow-card/configuration#actions).

## Home

Under `home`: the outlet inside the house. Optional; without it the card works out what the home uses.

```yaml
home:
  entity: sensor.home_power
  override_state: true
```

- `entity` (string): The home's consumption sensor, opened on tap and read with `override_state`.
- `name` (string, default `Home`): Label name.
- `use_metadata` (boolean, default `false`): Take the name from the entity.
- `override_state` (boolean, default `false`): Show the `entity`'s reading instead of the consumption the card works out.
- `unit_of_measurement` (string): Unit shown instead of the sensor's own.
- `decimals` (number): Decimals of the value, instead of the card's.
- `tap_action / hold_action / double_tap_action` (object): What tapping, holding or double-tapping the label does; see [Actions](https://cards.flixlix.com/home-flow-card/configuration#actions).

## Generator

Under `generator`: a generator the inverter switches to during a grid outage. It gets its own wire into the inverter and is never drawn on the grid cable. It needs `grid.power_outage` to know when the grid is down; while it runs, its label takes the grid's place. In energy mode it needs no `power_outage`: it shows beside the grid whenever it ran over the period.

```yaml
grid:
  entity: sensor.grid_power
  power_outage:
    entity: binary_sensor.grid_outage
generator:
  entity: sensor.generator_power
```

- `entity` (string, required): The generator's power or energy sensor.
- `name` (string, default `Generator`): Label name.

## Car

Under `car`: an electric car parked in front of the house, wired to the home's outlet.

```yaml
car:
  entity: sensor.wallbox_power
  state_of_charge: sensor.car_battery_level
  visibility:
    - condition: state
      entity: device_tracker.car
      state: home
  idle:
    - condition: state
      entity: binary_sensor.car_plugged_in
      state: "off"
```

- `entity` (string, required): Its charging power or energy, positive while it charges and negative while it feeds the home.
- `state_of_charge` (string): Its battery level, in %, shown on its label under its power.
- `name` (string, default `Car`): Label name.
- `visibility` (list): [Conditions](https://cards.flixlix.com/home-flow-card/configuration#conditions), set up with the same editor as a card's visibility tab: the car shows only while all of them hold, for example while its tracker reads `home`. While hidden it keeps its room, so the house does not move as the car comes and goes. Without conditions the car always shows.
- `idle` (list): [Conditions](https://cards.flixlix.com/home-flow-card/configuration#conditions): while all of them hold, the car is parked and unplugged. It is drawn faded, without its cable, and its label shows its state of charge; without one, the car shows on its own, without a label. Without conditions the car is idle while it draws no power. Live only: in energy mode the car is idle while it used nothing over the period.

## Heat pump

Under `heat_pump`: a heat pump on the front wall, wired to the home's outlet, its fan turning while it runs. With a `car` configured it hangs above where the car parks; without one, low and further along the wall, its label below it. Only the config decides, so it stays put while the car is away.

```yaml
heat_pump:
  entity: sensor.heat_pump_power
  climate: climate.heat_pump
  status: temperature_and_target
```

- `entity` (string, required): Its power or energy.
- `climate` (string): Its climate entity: a tap on its label opens it, and its label reads its state or temperature from it. Without it, a tap opens `entity`.
- `status` (string, default `state`): What its label shows under its power, read from `climate`: `state` (what it is doing, for example Heating), `temperature`, or `temperature_and_target` (38 °C → 45 °C).
- `name` (string, default `Heat pump`): Label name.

## Conditions

`car.visibility` and `car.idle` take the conditions of a card's visibility tab. Since Home Assistant 2026.10 its editor writes `state` and `numeric_state` with `entity_id`, as automations do, and offers template, sun, zone and device conditions, which Home Assistant checks for the card. Before 2026.10 those are ignored.

- `state` (condition): `entity`, and `state` or `state_not`: a value or a list.
- `numeric_state` (condition): `entity`, `above`, `below`.
- `screen` (condition): `media_query`
- `user` (condition): `users`: user ids.
- `time` (condition): `after`, `before`, `weekdays`.
- `location` (condition): `target`: zones, by id, area, floor or label; `match_mode`: `any_zone` or `active_zone`; `away`. Or the older `locations`: `home`, `not_home` or zone names.
- `and / or` (condition): `conditions`: all of them, or any of them.
- `not` (condition): `conditions`: passes unless all of them hold.

## Actions

`tap_action`, `hold_action` and `double_tap_action` take Home Assistant's [actions](https://www.home-assistant.io/dashboards/actions/): `more-info`, `toggle`, `navigate`, `url`, `perform-action`, `assist` or `none`. Without any of them, tapping a label opens its entity's details, unless `clickable_entities: false`.
