Yaml
🧩 Syntax:
views:
- title: Home
sections:
- type: grid
cards:
- graph: line
type: sensor
entity: sensor.daily_import
detail: 1
- graph: line
type: sensor
entity: sensor.amber_general_price
detail: 1
name: BUY
- graph: line
type: sensor
entity: sensor.amber_feed_in_price
detail: 1
name: SELL
- graph: line
type: sensor
entity: sensor.daily_export
detail: 1
column_span: 2
- type: grid
cards:
- type: tile
entity: sensor.solcast_pv_forecast_forecast_remaining_today
features_position: bottom
vertical: false
name: PV forecast remaining
hide_state: false
- type: custom:modern-circular-gauge
entity: sensor.daily_solar_combined
secondary:
entity: sensor.pv_power_surplus
show_gauge: inner
show_state: true
show_unit: true
max: >-
{{ states('sensor.solcast_pv_forecast_peak_forecast_today') |
float ()}}
needle: false
start_from_zero: true
adaptive_state_color: false
state_text: ''
gauge_foreground_style: {}
label: Surplus
tertiary:
entity: sensor.total_solar_combined
show_gauge: inner
needle: false
show_state: true
show_unit: true
max: >-
{{ states('sensor.solcast_pv_forecast_peak_forecast_today') |
float ()}}
start_from_zero: true
label: Instant
min: 0
start_from_zero: true
adaptive_state_color: false
needle: false
show_state: true
show_unit: true
grid_options:
columns: 6
rows: 4
icon: mdi:solar-power-variant-outline
show_icon: false
header_position: top
show_header: true
name: >-
Daily PV ({{ states('sensor.solcast_pv_forecast_forecast_today')
| int()}} kW fcst)
max: >-
{{ states('sensor.solcast_pv_forecast_forecast_today') | float
()}}
- type: conditional
conditions:
- condition: state
entity: sun.sun
state: above_horizon
card:
type: tile
entity: sensor.solcast_pv_forecast_peak_time_today
features_position: bottom
vertical: false
name: PV peak generation
show_entity_picture: false
grid_options:
columns: 6
rows: 1
- type: conditional
conditions:
- condition: state
entity: sun.sun
state: above_horizon
card:
type: tile
entity: sensor.solcast_pv_forecast_power_in_1_hour
features_position: bottom
vertical: false
show_entity_picture: false
name: PV power in 1 hour
grid_options:
columns: 6
rows: 1
- type: tile
entity: sensor.solcast_pv_forecast_forecast_tomorrow
features_position: bottom
vertical: false
name: PV forecast tomorrow
- type: conditional
conditions:
- condition: state
entity: sun.sun
state: below_horizon
card:
type: tile
entity: sensor.solcast_pv_forecast_forecast_day_3
features_position: bottom
vertical: false
name: PV forecast day 3
show_entity_picture: false
grid_options:
columns: 6
rows: 1
- type: conditional
conditions:
- condition: state
entity: sun.sun
state: below_horizon
card:
type: tile
entity: sensor.solcast_pv_forecast_forecast_day_4
features_position: bottom
vertical: false
name: PV forecast day 4
show_entity_picture: false
grid_options:
columns: 6
rows: 1
column_span: 1
- type: grid
cards:
- type: gauge
entity: sensor.solarnet_power_grid
max: 20000
min: -20000
needle: true
severity:
green: 0
yellow: -20000
red: -20000
name: Grid Power
grid_options:
columns: 6
rows: 4
- type: tile
entity: sensor.daily_consumption
features_position: bottom
vertical: false
- type: tile
entity: sensor.ev_charge_daily
features_position: bottom
vertical: false
name: EV Charger today
- type: tile
entity: sensor.sigen_plant_consumed_power
features_position: bottom
vertical: false
name: Instant consumption
- type: tile
entity: sensor.consumption_without_ev_charger
features_position: bottom
vertical: false
name: Instant (No EV)
- type: grid
cards:
- type: custom:modern-circular-gauge
entity: sensor.wattpilot_charging_power
secondary:
entity: number.wattpilot_max_charging_current
show_gauge: inner
show_state: true
show_unit: false
max: '32'
needle: false
tertiary:
show_gauge: inner
needle: false
show_state: true
show_unit: false
max: >-
{{ states('sensor.solcast_pv_forecast_forecast_today') | float
()}}
min: 0
max: 22000
start_from_zero: true
adaptive_state_color: false
needle: false
show_state: true
show_unit: true
grid_options:
columns: 6
rows: 4
show_icon: false
header_position: top
show_header: true
name: Wattpilot power({{ states('select.wattpilot_phase_switch') }})
- type: entities
entities:
- entity: select.wattpilot_charging_mode
- entity: button.wattpilot_start_charging
- entity: button.wattpilot_stop_charging
- entity: sensor.wattpilot_carconnected
grid_options:
columns: 6
rows: 4
show_header_toggle: false
- type: entities
entities:
- entity: number.wattpilot_pv_battery_threshold
- entity: number.sigen_plant_ess_backup_state_of_charge
name: Backup reserve
- entity: input_number.amber_max_buy_price
- entity: input_number.amber_min_sell_price
- entity: number.wattpilot_max_price
- entity: switch.wattpilot_discharge_pv_battery
name: Use battery for EV
- type: grid
cards:
- type: custom:gauge-card-pro
entity: sensor.sigen_inverter_battery_state_of_charge
segments:
- from: 0
color: red
- from: 25
color: '#FFA500'
- from: 50
color: rgb(255, 255, 0)
- from: 100
color: var(--green-color)
needle: true
gradient: true
gradient_resolution: medium
min_indicator:
type: entity
value: number.wattpilot_boost_discharges_until
opacity: 0.4
min: 0
max: 100
entity2: sensor.battery_soc_kw
max_indicator:
type: entity
value: number.wattpilot_pv_battery_threshold
opacity: 0.39
titles:
primary: Sigen Battery SOC
secondary: >-
Thresholds: {{
states('number.sigen_plant_ess_backup_state_of_charge') }}% -
{{ states('number.wattpilot_pv_battery_threshold') }}%
grid_options:
columns: 6
rows: 3
- type: gauge
entity: sensor.sigen_plant_battery_power
max: 20000
min: -20000
grid_options:
columns: 6
rows: 3
needle: true
severity:
green: 0
yellow: -20000
red: -20000
name: Battery Power
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.battery_runtime
above: 0
card:
type: tile
entity: sensor.battery_runtime
features_position: bottom
vertical: false
grid_options:
columns: 6
rows: auto
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.time_to_100
above: 0
card:
type: tile
entity: sensor.time_to_100
features_position: bottom
vertical: false
grid_options:
columns: 6
rows: 1
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.time_to_100_at_full
above: 0.1
card:
type: tile
entity: sensor.time_to_100_at_full
features_position: bottom
vertical: false
grid_options:
columns: 6
rows: 1
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.time_to_end_of_buy_window
below: 3
card:
type: tile
entity: sensor.time_to_end_of_buy_window
features_position: bottom
vertical: false
name: Buy window ends in
grid_options:
columns: 6
rows: 1
- type: custom:apexcharts-card
experimental:
color_threshold: true
brush: false
brush:
selection_span: 3.5hr
graph_span: 3.5h
span:
start: minute
offset: +5m
header:
show: true
title: Amber 5 Min Forecast
show_states: true
colorize_states: true
floating: false
all_series_config:
curve: stepline
float_precision: 2
series:
- entity: sensor.amber_general_forecast
stroke_width: 3
color_threshold:
- value: 0
color: cyan
- value: 0.16
color: green
- value: 0.25
color: yellow
- value: 0.5
color: red
name: Buy
show:
in_brush: true
extremas: false
datalabels: true
legend_value: false
in_header: after_now
data_generator: |
return entity.attributes.forecasts.map((entry) => {
return [new Date(entry.start_time), entry.per_kwh];
});
- entity: sensor.amber_feed_in_forecast
stroke_width: 3
color_threshold:
- value: 0
color: cyan
- value: 0.16
color: green
- value: 0.25
color: yellow
- value: 0.5
color: red
name: Sell
show:
in_brush: false
extremas: true
datalabels: true
legend_value: false
in_header: after_now
data_generator: |
return entity.attributes.forecasts.map((entry) => {
return [new Date(entry.start_time), entry.per_kwh];
});
yaxis:
- min: auto
max: auto
decimals: 2
apex_config:
forceNiceScale: true
column_span: 1
- type: grid
cards:
- type: heading
heading: New section
- type: entities
entities:
- entity: binary_sensor.amber_demand_window
- entity: sensor.amber_feed_in_forecast
- entity: sensor.amber_feed_in_price_descriptor
- entity: sensor.amber_general_forecast
- entity: sensor.amber_general_price_descriptor
- entity: binary_sensor.amber_price_spike