Skip to content

Instantly share code, notes, and snippets.

@klaasnicolaas
Last active June 26, 2024 12:54
Show Gist options
  • Save klaasnicolaas/ccfd1cd3da62a13b3199ff378480bdbb to your computer and use it in GitHub Desktop.
Save klaasnicolaas/ccfd1cd3da62a13b3199ff378480bdbb to your computer and use it in GitHub Desktop.
Collecting the hourly energy prices via a service in the EnergyZero or easyEnergy integration and using them in an ApexCharts card in your dashboard.
- type: custom:apexcharts-card
graph_span: 1d
header:
show: true
title: Electriciteitsprijzen Vandaag (€/kwh)
span:
start: day
now:
show: true
label: Now
yaxis:
- id: price
decimals: 2
apex_config:
tickAmount: 5
series:
- entity: sensor.energy_prices_today
name: Price this hour
yaxis_id: price
data_generator: |
return entity.attributes.prices.map((entry) => {
return [new Date(entry.timestamp).getTime(), entry.price];
});
type: column
show:
extremas: true
opacity: 0.8
float_precision: 2
---
# Today - Hourly energy prices
template:
- trigger:
- platform: homeassistant
event: start
- platform: time_pattern
hours: "*"
action:
- service: energyzero.get_energy_prices
response_variable: response
data:
config_entry: PUT_HERE_YOURS
incl_vat: True
sensor:
- name: Energy prices - Today
device_class: timestamp
state: "{{ now() }}"
attributes:
prices: '{{ response.prices }}'
# Tomorrow - Hourly energy prices
- trigger:
- platform: homeassistant
event: start
- platform: template
value_template: "{{ now() > today_at('14:00') and now().minute == 0 }}"
action:
- service: energyzero.get_energy_prices
response_variable: response
data:
config_entry: PUT_HERE_YOURS
start: "{{ now() + timedelta(days=1) }}"
end: "{{ now() + timedelta(days=1) }}"
incl_vat: True
sensor:
- name: Energy prices - Tomorrow
device_class: timestamp
state: "{{ now() + timedelta(days=1) }}"
attributes:
prices: '{{ response.prices }}'
@wouterdebruijn
Copy link

wouterdebruijn commented Feb 6, 2024

@mhoeneveld The provided trigger:

- platform: time_pattern
  minutes: 1

Matches every hour one minute past whole.

See https://www.home-assistant.io/docs/automation/trigger/#time-pattern-trigger for more information.

@GofranAy
Copy link

GofranAy commented Mar 16, 2024

Hello i am beginner with home assistant and wanted to get this work.
but keep getting stuck i have energyzero installed and apexchart.
when trying like to change sensor when copying a yaml from above.
it get stuck with Loading. i only changed a one yaml i copied from Maartendrenth.
but it says missng
apexcharts-card
Entity not available: sensor.energy_prices_today <---- where to get this and the one under i tried change it to
energyzero_today_energy_current_hour_price.

this one is also missing
Entity not available: sensor.energy_prices_tomorrow

type: custom:apexcharts-card
graph_span: 48h
header:
  show: true
  title: Electriciteitsprijzen Vandaag en Morgen EnergyZero (€/kwh)
span:
  start: day
now:
  show: true
  label: Now
yaxis:
  - id: price
    decimals: 3
    min: -0.2
    max: 0.3
    apex_config:
      tickAmount: 10
series:
  - entity: sensor.energy_prices_today
    name: Price this hour
    yaxis_id: price
    data_generator: |
      return entity.attributes.prices.map((entry) => {
        return [new Date(entry.timestamp).getTime(), entry.price];
      });
    type: column
    show:
      extremas: true
    opacity: 0.8
    float_precision: 3
  - entity: sensor.energy_prices_tomorrow
    name: Price this hour
    yaxis_id: price
    data_generator: >-
      return entity.attributes.prices.map((entry) => { return [new
      Date(entry.timestamp).getTime(), entry.price]; });
    type: column
    show:
      extremas: true
    opacity: 0.8
    float_precision: 3

@klaasnicolaas
Copy link
Author

@GofranAy You have only copied the apexcharts code, but without the template sensors (which retrieve the data) you will not get the correct entities.

./Klaas

@GofranAy
Copy link

GofranAy commented Apr 4, 2024

@klaasnicolaas can you please share where to go add that entities i have anwb for energy.
I live in holland/dutch/netherland

@klaasnicolaas
Copy link
Author

@GofranAy in your configuration.yaml?

@GofranAy
Copy link

GofranAy commented Apr 4, 2024

@klaasnicolaas i am sorry do you mean i need to add.
hourly_price_charts.yaml and price_template_sensors.yaml

So just copy paste in to configuration.yaml.

@klaasnicolaas
Copy link
Author

Only the YAML of price_template_sensors.yaml to get the 2 trigger template sensors in Home Assistant. You use the apex code snippet where you created your dashboard in YAML.

Side note: everyone uses YAML differently in their Home Assistant instance, without context (how you organize your config) it's impossible to give advice on where to put the code snippets and I assume that people know where you should place these.

@CreaticDD
Copy link

Didn't work: defining the template sensor under Settings > Devices & Services > Helpers
Keep getting error "response is undefined"

What works: copy/pasting the template sensor code into configuration.yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment