diff --git a/ha-configs/151/automations.yaml b/ha-configs/151/automations.yaml index 4753dee..b5dd98c 100644 --- a/ha-configs/151/automations.yaml +++ b/ha-configs/151/automations.yaml @@ -65,7 +65,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} # Program 2: 00:00 - kontynuacja @@ -85,7 +87,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} # Program 3: 06:00 - koniec nocnego Ƃadowania @@ -175,7 +179,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} - service: notify.persistent_notification @@ -184,7 +190,9 @@ message: > {%- set pv_kwh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) -%} {%- set pv_wh = pv_kwh * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {%- set target = [[net_wh / 143.36 + 10, 40] | max, 100] | min | int -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} @@ -276,7 +284,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} # Program 2: 00:00 @@ -296,7 +306,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} # Program 3: 06:00 - koniec nocnego @@ -386,7 +398,9 @@ data: value: > {%- set pv_wh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) * 1000 -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_wh, 0] | max -%} {{ [[net_wh / 143.36 + 10, 40] | max, 100] | min | int }} - service: notify.persistent_notification @@ -394,7 +408,9 @@ title: '🌙 G12W: Ɓadowanie na poniedziaƂek' message: > {%- set pv_kwh = states('sensor.solcast_pv_forecast_prognoza_na_jutro') | float(0) -%} - {%- set load_w = [states('sensor.inverter_deye_load_power') | int(0), 500] | max -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set net_wh = [load_w * 16 - pv_kwh * 1000, 0] | max -%} {%- set target = [[net_wh / 143.36 + 10, 40] | max, 100] | min | int -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} @@ -457,7 +473,9 @@ value_template: > {%- set pv_next_wh = states('sensor.solcast_pv_forecast_prognoza_na_nastepna_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set pv_13_15_wh = pv_next_wh * 1.8 -%} {%- set bat_surplus_wh = [pv_13_15_wh * 0.94 - load_w * 2, 0] | max -%} @@ -486,7 +504,9 @@ data: value: > {%- set pv_w = states('sensor.inverter_deye_pv_power') | int(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set surplus_a = ((pv_w * 0.94 - load_w) / vbat) | int -%} {{ [5, [surplus_a, 100] | min] | max }} @@ -496,7 +516,9 @@ message: > {%- set pv_next_wh = states('sensor.solcast_pv_forecast_prognoza_na_nastepna_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set pv_13_15_wh = pv_next_wh * 1.8 -%} {%- set bat_surplus_wh = [pv_13_15_wh * 0.94 - load_w * 2, 0] | max -%} @@ -529,7 +551,9 @@ value: > {%- set pv_next_wh = states('sensor.solcast_pv_forecast_prognoza_na_nastepna_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set pv_13_15_wh = pv_next_wh * 1.8 -%} @@ -553,7 +577,9 @@ value: > {%- set pv_next_wh = states('sensor.solcast_pv_forecast_prognoza_na_nastepna_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set needed_from_bat_wh = [load_w * 7 - [remaining_kwh * 1000 - pv_next_wh * 1.8, 0] | max, 0] | max -%} {{ [[needed_from_bat_wh / 143.36 + 15, 20] | max, 100] | min | int }} - service: notify.persistent_notification @@ -562,7 +588,9 @@ message: > {%- set pv_next_wh = states('sensor.solcast_pv_forecast_prognoza_na_nastepna_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set pv_13_15_wh = pv_next_wh * 1.8 -%} @@ -720,7 +748,9 @@ value_template: > {%- set pv_hour_wh = states('sensor.solcast_pv_forecast_prognoza_na_biezaca_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set now_min = now().hour * 60 + now().minute -%} {%- set remaining_window_h = ([15 * 60 - now_min, 0] | max) / 60 -%} @@ -751,7 +781,9 @@ data: value: > {%- set pv_w = states('sensor.inverter_deye_pv_power') | int(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set surplus_a = ((pv_w * 0.94 - load_w) / vbat) | int -%} {{ [5, [surplus_a, 100] | min] | max }} @@ -762,7 +794,9 @@ value_template: > {%- set pv_hour_wh = states('sensor.solcast_pv_forecast_prognoza_na_biezaca_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set now_min = now().hour * 60 + now().minute -%} {%- set remaining_window_h = ([15 * 60 - now_min, 0] | max) / 60 -%} @@ -794,7 +828,9 @@ value: > {%- set pv_hour_wh = states('sensor.solcast_pv_forecast_prognoza_na_biezaca_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set now_min = now().hour * 60 + now().minute -%} @@ -820,7 +856,9 @@ value: > {%- set pv_hour_wh = states('sensor.solcast_pv_forecast_prognoza_na_biezaca_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set now_min = now().hour * 60 + now().minute -%} {%- set remaining_window_h = ([15 * 60 - now_min, 0] | max) / 60 -%} {%- set pv_rem_wh = pv_hour_wh * remaining_window_h -%} @@ -833,7 +871,9 @@ message: > {%- set pv_hour_wh = states('sensor.solcast_pv_forecast_prognoza_na_biezaca_godzine') | int(0) -%} {%- set remaining_kwh = states('sensor.solcast_pv_forecast_pozostala_prognoza_na_dzis') | float(0) -%} - {%- set load_w = states('sensor.inverter_deye_load_power') | int(1000) -%} + {%- set today_kwh = states('sensor.inverter_deye_today_load_consumption') | float(0) -%} + {%- set elapsed_h = [now().hour + now().minute / 60.0, 2.0] | max -%} + {%- set load_w = [(today_kwh * 1000 / elapsed_h) | int, 800] | max -%} {%- set soc = states('sensor.inverter_deye_battery') | int(0) -%} {%- set vbat = states('sensor.inverter_deye_battery_voltage') | float(51.2) -%} {%- set now_min = now().hour * 60 + now().minute -%}