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