update readme & add example HA config files
@@ -0,0 +1,90 @@
|
||||
# You will need to merge with your own Home Assistant configuration.yml file...
|
||||
|
||||
input_select:
|
||||
solar_output_source_priority:
|
||||
name: Solar Output Source Priority
|
||||
options:
|
||||
- POP00 (Utility first)
|
||||
- POP01 (Solar first)
|
||||
- POP02 (SBU)
|
||||
|
||||
solar_charger_priority:
|
||||
name: Solar Charger Priority Order
|
||||
options:
|
||||
- PCP00 (Utility first)
|
||||
- PCP01 (Solar first)
|
||||
- PCP02 (Solar and utility)
|
||||
- PCP03 (Solar only)
|
||||
|
||||
|
||||
# Automations of Solar PV Inverter (such as when to charge batteries off grid / from PV etc)...
|
||||
# This will automatically fire off the event to the inverter when changed in the UI.
|
||||
automation:
|
||||
- id: 'set_solar_output_source'
|
||||
alias: Solar Trigger Output Source Change
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_select.solar_output_source_priority
|
||||
action:
|
||||
service: mqtt.publish
|
||||
data_template:
|
||||
topic: 'homeassistant/sensor/voltronic'
|
||||
payload: >
|
||||
{% if is_state("input_select.solar_output_source_priority", "POP00 (Utility first)") %}
|
||||
POP00
|
||||
{% elif is_state("input_select.solar_output_source_priority", "POP01 (Solar first)") %}
|
||||
POP01
|
||||
{% elif is_state("input_select.solar_output_source_priority", "POP02 (SBU)") %}
|
||||
POP02
|
||||
{% endif %}
|
||||
|
||||
- id: 'set_solar_charge_priority'
|
||||
alias: Stolar Trigger Charge Priority Change
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: input_select.solar_charger_priority
|
||||
action:
|
||||
service: mqtt.publish
|
||||
data_template:
|
||||
topic: 'homeassistant/sensor/voltronic'
|
||||
payload: >
|
||||
{% if is_state("input_select.solar_charger_priority", "PCP00 (Utility first)") %}
|
||||
PCP00
|
||||
{% elif is_state("input_select.solar_charger_priority", "PCP01 (Solar first)") %}
|
||||
PCP01
|
||||
{% elif is_state("input_select.solar_charger_priority", "PCP02 (Solar and utility)") %}
|
||||
PCP02
|
||||
{% elif is_state("input_select.solar_charger_priority", "PCP03 (Solar only)") %}
|
||||
PCP03
|
||||
{% endif %}
|
||||
|
||||
# Auto Switch to 'Solar based charging ONLY at sunrise' (will not charge batteries from the Grid to save power...)
|
||||
- id: 'switch_solar_only_charging_am'
|
||||
alias: Auto switch to "Solar Only" charging at Sunrise
|
||||
trigger:
|
||||
- event: sunrise
|
||||
platform: sun
|
||||
offset: "00:15:00"
|
||||
condition: []
|
||||
action:
|
||||
- service: input_select.select_option
|
||||
data:
|
||||
entity_id: input_select.solar_charger_priority
|
||||
option: "PCP01 (Solar first)"
|
||||
- service: input_select.select_option
|
||||
data:
|
||||
entity_id: input_select.solar_output_source_priority
|
||||
option: "POP01 (Solar first)"
|
||||
|
||||
- id: 'switch_battery_late_evenings'
|
||||
# Running on UPS mode seems to fuck up the 8 port tplink switch (it drops out from time to time) so it's best that we change mode after 2AM when less people are using Plex etc...
|
||||
alias: Switch to battery preferred output late evenings
|
||||
trigger:
|
||||
- at: '02:00'
|
||||
platform: time
|
||||
condition: []
|
||||
action:
|
||||
- service: input_select.select_option
|
||||
data:
|
||||
entity_id: input_select.solar_output_source_priority
|
||||
option: "POP02 (SBU)"
|
||||
@@ -0,0 +1,152 @@
|
||||
resources:
|
||||
- type: js
|
||||
url: /local/vertical-stack-in-card.js?v=0.1.2
|
||||
- type: module
|
||||
url: /local/circle-sensor-card.js?v=0
|
||||
title: Solar Dashboard
|
||||
|
||||
views:
|
||||
- badges: []
|
||||
cards:
|
||||
- cards:
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '1'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/1.png
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '2'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/2.png
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '3'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/3.png
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '4'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/4.png
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '5'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/5.png
|
||||
- type: conditional
|
||||
conditions:
|
||||
- entity: sensor.voltronic_inverter_mode
|
||||
state: '6'
|
||||
card:
|
||||
type: picture
|
||||
image: /local/inverter-modes/6.png
|
||||
- content: |
|
||||
---
|
||||
type: markdown
|
||||
- type: entities
|
||||
entities:
|
||||
- entity: input_select.solar_output_source_priority
|
||||
icon: 'mdi:battery'
|
||||
- entity: input_select.solar_charger_priority
|
||||
icon: 'mdi:format-list-numbered'
|
||||
- entity: automation.auto_switch_to_solar_only_charging_at_sunrise
|
||||
- entity: automation.switch_to_battery_preferred_output_late_evenings
|
||||
show_header_toggle: false
|
||||
title: null
|
||||
type: 'custom:vertical-stack-in-card'
|
||||
- cards:
|
||||
- entities:
|
||||
- entity: sensor.voltronic_pv_in_voltage
|
||||
name: PV Voltage (V)
|
||||
icon: 'mdi:grid'
|
||||
type: sensor
|
||||
- entity: sensor.voltronic_pv_in_watts
|
||||
name: PV Watts (W)
|
||||
icon: 'mdi:battery-charging-70'
|
||||
type: sensor
|
||||
type: glance
|
||||
- entities:
|
||||
- entity: sensor.voltronic_load_watt
|
||||
name: Inverter Output Load
|
||||
type: history-graph
|
||||
- entities:
|
||||
- entity: sensor.voltronic_ac_grid_frequency
|
||||
icon: 'mdi:current-ac'
|
||||
name: Grid Frequency
|
||||
- entity: sensor.voltronic_ac_grid_voltage
|
||||
icon: 'mdi:power-plug'
|
||||
name: Grid Voltage
|
||||
- entity: sensor.voltronic_ac_out_frequency
|
||||
icon: 'mdi:current-ac'
|
||||
name: Output Freq
|
||||
- entity: sensor.voltronic_ac_out_voltage
|
||||
icon: 'mdi:power-plug'
|
||||
name: Output Voltage
|
||||
type: glance
|
||||
show_header_toggle: false
|
||||
title: System Overview
|
||||
type: 'custom:vertical-stack-in-card'
|
||||
- cards:
|
||||
- cards:
|
||||
- color_stops:
|
||||
'40': '#00dc10'
|
||||
'60': '#ff0000'
|
||||
'80': '#ffe400'
|
||||
entity: sensor.voltronic_load_pct
|
||||
font_style:
|
||||
font-size: 1.5em
|
||||
gradient: true
|
||||
name: System Load (%)
|
||||
stroke_width: 10
|
||||
type: 'custom:circle-sensor-card'
|
||||
- color_stops:
|
||||
'50': '#ff0000'
|
||||
'75': '#ffe400'
|
||||
'100': '#00dc10'
|
||||
entity: sensor.voltronic_battery_capacity
|
||||
font_style:
|
||||
font-size: 1.5em
|
||||
gradient: true
|
||||
name: Battery Capacity
|
||||
stroke_width: 10
|
||||
type: 'custom:circle-sensor-card'
|
||||
type: horizontal-stack
|
||||
- entities:
|
||||
- entity: sensor.voltronic_battery_charge_current
|
||||
name: Battery Charge Current (A)
|
||||
- entity: sensor.voltronic_battery_discharge_current
|
||||
name: Battery Discharge Current (A)
|
||||
type: history-graph
|
||||
- entities:
|
||||
- entity: sensor.voltronic_battery_float_voltage
|
||||
icon: 'mdi:battery-charging'
|
||||
name: Float Point
|
||||
- entity: sensor.voltronic_battery_recharge_voltage
|
||||
icon: 'mdi:battery-negative'
|
||||
name: Recharge Lvl
|
||||
- entity: sensor.voltronic_battery_redischarge_voltage
|
||||
icon: 'mdi:battery-plus'
|
||||
name: Discharge Lvl
|
||||
- entity: sensor.voltronic_battery_under_voltage
|
||||
icon: 'mdi:battery-charging-wireless-outline'
|
||||
name: Critical Cutoff
|
||||
type: glance
|
||||
- entity: sensor.voltronic_battery_voltage
|
||||
name: Battery Voltage (V)
|
||||
type: sensor
|
||||
show_header_toggle: false
|
||||
title: null
|
||||
type: 'custom:vertical-stack-in-card'
|
||||
icon: 'mdi:grid'
|
||||
title: Solar Configuration
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 14 KiB |