this post was submitted on 04 Apr 2026
6 points (100.0% liked)

homeassistant

19071 readers
39 users here now

Home Assistant is open source home automation that puts local control and privacy first.
Powered by a worldwide community of tinkerers and DIY enthusiasts.

Home Assistant can be self-installed on ProxMox, Raspberry Pi, or even purchased pre-installed: Home Assistant: Installation

Discussion of Home-Assistant adjacent topics is absolutely fine, within reason.
If you're not sure, DM @GreatAlbatross@feddit.uk

founded 2 years ago
MODERATORS
 

I just got an Airthings Radon monitor, and the integration with HA went smoothly. As a starting dashboard I have a simple card displaying sensor values.

But I let myself get carried away and got the one with the most sensors. So expected to see history graphs so I can look at trends or events, but it never occurred to me they were all different units and scales. HA wants to create many charts, which is less easy to read.

Does anyone have dashboard ideas on how to display these?

you are viewing a single comment's thread
view the rest of the comments
[–] 18107@aussie.zone 2 points 2 days ago

I've found apexcharts-card to be fairly configurable and good looking. I've put 2 different data types on the one graph and used two axes (price left, % right). Sometimes the values get "stuck", but a refresh fixes it.

Example apexcharts-card using Amber energy price forecast and renewable energy %

YAML code for my chart

type: custom:apexcharts-card
apex_config:
  legend:
    show: false
graph_span: 12h
span:
  start: minute
yaxis:
  - id: price
    min: ~-10
    max: ~40
    decimals: 0
  - id: renewables
    opposite: true
    min: 0
    max: ~100
    decimals: 0
header:
  show: true
  title: Amber Prices
  show_states: true
  colorize_states: true
series:
  - entity: sensor.amber_general_forecast
    name: General Forecast
    unit: c/kWh
    color: "#3498DB"
    yaxis_id: price
    data_generator: >
      const data = [];

      data.push([hass.states['sensor.amber_general_price'].attributes.nem_date.replace(/0{2}$/,
      "30"), hass.states['sensor.amber_general_price'].attributes.per_kwh*100]);

      for(let i = 0; i <= 24; i++) {
        data.push([entity.attributes.forecasts[i].nem_date.replace(/0{2}$/, "30"), entity.attributes.forecasts[i].per_kwh*100])
      }

      return data.reverse();
  - entity: sensor.amber_feed_in_forecast
    name: Feed In Forecast
    unit: c/kWh
    color: "#ff9800"
    yaxis_id: price
    data_generator: >
      const data = [];

      data.push([hass.states['sensor.amber_feed_in_price'].attributes.nem_date.replace(/0{2}$/,
      "30"), hass.states['sensor.amber_feed_in_price'].attributes.per_kwh*100]);

      for(let i = 0; i <= 24; i++) {
        data.push([entity.attributes.forecasts[i].nem_date.replace(/0{2}$/, "30"), entity.attributes.forecasts[i].per_kwh*100])
      }

      return data.reverse();
  - entity: sensor.amber_feed_in_forecast
    name: Renewables
    yaxis_id: renewables
    unit: "%"
    color: "#2ECC71"
    data_generator: >
      const data = [];