adds template sources
This commit is contained in:
29
helpers/sensor.estimated_optimal_output_limit.jinja
Normal file
29
helpers/sensor.estimated_optimal_output_limit.jinja
Normal file
@@ -0,0 +1,29 @@
|
||||
{# Configuration #}
|
||||
{% set totalWh = 3200 %}
|
||||
{% set maxPower = 600 %}
|
||||
{% set targetChargePercent = 100 %}
|
||||
{% set sunsetOffset = -3 %}
|
||||
|
||||
{% set currentChargePercent = states('sensor.system_flos_bkw_sb_state_of_charge') | float(0) %}
|
||||
{% set solarAvailable = states('binary_sensor.solar_power_available') | bool(false) %}
|
||||
|
||||
{% if solarAvailable and currentChargePercent < 100 %}
|
||||
{# Current state infos #}
|
||||
{% set timeToSunsetHours = ((as_timestamp(state_attr('sun.sun', 'next_setting')) - as_timestamp(now()))) / 3600 + sunsetOffset %}
|
||||
|
||||
{# Average battery power for the day to reach targetChargePercent #}
|
||||
{% set remainingChargePercent = [ 0, targetChargePercent - currentChargePercent ] | max %}
|
||||
{% set remainingChargeWh = (remainingChargePercent / 100) * totalWh %}
|
||||
{% set remainingAvgPower = (remainingChargeWh / timeToSunsetHours) %}
|
||||
|
||||
{# Today average production power #}
|
||||
{% set todayProductionWh = (states('sensor.balkon_solcast_pv_forecast_balkonsolar_forecast_remaining_today') | float(0)) * 1000 %}
|
||||
{% set todayOffsetWh = todayProductionWh - remainingChargeWh %}
|
||||
{% set todayOffsetPower = todayOffsetWh / timeToSunsetHours %}
|
||||
{% set positiveOffsetPower = [ 0, todayOffsetPower ] | max %}
|
||||
{% set limitedOffsetPower = [ maxPower, positiveOffsetPower ] | min %}
|
||||
|
||||
{{ limitedOffsetPower | round(0) }}
|
||||
{% else %}
|
||||
{{ 0 }}
|
||||
{% endif %}
|
||||
Reference in New Issue
Block a user