Skip to content

Commit 2decc57

Browse files
committed
Added a new control parameter for hybrid inverters and prepared a new version
1 parent 1520247 commit 2decc57

File tree

6 files changed

+29
-6
lines changed

6 files changed

+29
-6
lines changed

emhass/CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## 0.10.0 - 2024-06-02
4+
### BREAKING CHANGE
5+
- In this new version we have added support for PV curtailment computation. While doing this the nominal PV peak power is needed. The easiest way find this information is by directly using the `inverter_model` defined in the configuration. As this is needed in the optimization to correctly compute PV curtailment, this parameter need to be properly defined for your installation. Before this chage this parameter was only needed if using the PV forecast method `scrapper`, but now it is not optional as it is directly used in the optimization.
6+
Use the dedicated webapp to find the correct model for your inverter, if you cannot find your exact brand/model then just pick an inverter with the same nominal power as yours: [https://emhass-pvlib-database.streamlit.app/](https://emhass-pvlib-database.streamlit.app/)
7+
### Improvement
8+
- Added support for hybrid inverters and PV curtailment computation
9+
- Implemented a new `continual_publish` service that avoid the need of setting a special automation for data publish. Thanks to @GeoDerp
10+
- Implement a deferrable load start penalty functionality. Thanks to @werdnum
11+
- This feature also implement a `def_current_state` that can be passed at runtime to let the optimization consider that a deferrable load is currently scheduled or under operation when launching the optimization task
12+
### Fix
13+
- Fixed forecast methods to treat delta_forecast higher than 1 day
14+
- Fixed solar.forecast wrong interpolation of nan values
15+
316
## 0.9.1 - 2024-05-13
417
### Fix
518
- Fix patch for issue with paths to modules and inverters database

emhass/DOCS.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,19 @@ The complete list of supported modules can be found here: [https://github.com/da
100100

101101
And the list of inverter models can be found here: [https://github.com/davidusb-geek/emhass-add-on/files/9532724/sam-library-cec-inverters-2019-03-05.csv](https://github.com/davidusb-geek/emhass-add-on/files/9532724/sam-library-cec-inverters-2019-03-05.csv)
102102

103+
This webapp can help you find your correct module/inverter key: [https://emhass-pvlib-database.streamlit.app/](https://emhass-pvlib-database.streamlit.app/)
104+
103105
If your specific model is not found in these lists then solution (1) is to pick another model as close as possible as yours in terms of the nominal power.
104106

105107
Solution (2) would be to use SolCast and pass that data directly to emhass as a list of values from a template. Take a look at this example here: [https://emhass.readthedocs.io/en/latest/forecasts.html#example-using-solcast-forecast-amber-prices](https://emhass.readthedocs.io/en/latest/forecasts.html#example-using-solcast-forecast-amber-prices)
106108

107-
- pv*module_model: The PV module model. For example: 'CSUN_Eurasia_Energy_Systems_Industry_and_Trade_CSUN295_60M'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '*'.
108-
- pv*inverter_model: The PV inverter model. For example: 'Fronius_International_GmbH**Fronius_Primo_5_0_1_208_240**240V*'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '\_'.
109+
- pv_module_model: The PV module model. For example: 'CSUN_Eurasia_Energy_Systems_Industry_and_Trade_CSUN295_60M'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '_'.
110+
- pv_inverter_model: The PV inverter model. For example: 'Fronius_International_GmbH__Fronius_Primo_5_0_1_208_240__240V_'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '_'.
109111
- surface_tilt: The tilt angle of your solar panels. This is a value between 0 and 90. Defaults to 30. This parameter can be a list of integers to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270).
110112
- surface_azimuth: The azimuth of your PV installation. This is a value between 0 and 360. Defaults to 205. This parameter can be a list of integers to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270).
111113
- modules_per_string: The number of modules per string. Defaults to 16. This parameter can be a list of integers to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270).
112114
- strings_per_inverter: The number of used strings per inverter. Defaults to 1. This parameter can be a list of integers to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270).
115+
- inverter_is_hybrid: Set to True to consider that the installation inverter is hybrid for PV and batteries. (Default False).
113116
- set_use_battery: Set to True if we should consider an energy storage device such as a Li-Ion battery. Defaults to False.
114117

115118
If the `set_use_battery` is set to `true`, then the following parameters need to be defined properly. If you don't have a battery then just leave the default values, they will not be used.

emhass/config.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: EMHASS
22
description: Energy Management for Home Assistant
33
url: https://github.com/davidusb-geek/emhass
4-
version: 0.9.1
4+
version: 0.10.0
55
slug: emhass
66
arch:
77
- aarch64
@@ -80,6 +80,7 @@ options:
8080
- modules_per_string: 16
8181
list_strings_per_inverter:
8282
- strings_per_inverter: 1
83+
inverter_is_hybrid: false
8384
set_use_battery: false
8485
battery_nominal_energy_capacity: 5000
8586
schema:
@@ -148,6 +149,7 @@ schema:
148149
- modules_per_string: "int(0,)?"
149150
list_strings_per_inverter:
150151
- strings_per_inverter: "int(0,)?"
152+
inverter_is_hybrid: "bool?"
151153
set_use_battery: "bool?"
152154
set_battery_dynamic: "bool?" #optional
153155
battery_dynamic_max: "float(0.0,1.0)?" #optional

emhass/config_emhass.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
retrieve_hass_conf:
44
freq: 30 # The time step to resample retrieved data from hass in minutes
5-
days_to_retrieve: 8 # We will retrieve data from now and up to days_to_retrieve days
5+
days_to_retrieve: 2 # We will retrieve data from now and up to days_to_retrieve days
66
var_PV: 'sensor.power_photovoltaics' # Photovoltaic produced power sensor in Watts
77
var_load: 'sensor.power_load_no_var_loads' # Household power consumption sensor in Watts (deferrable loads should be substracted)
88
load_negative: False # Set to True if the retrived load variable is negative by convention
@@ -13,6 +13,7 @@ retrieve_hass_conf:
1313
- 'sensor.power_photovoltaics'
1414
- 'sensor.power_load_no_var_loads'
1515
method_ts_round: 'nearest' # Set the method for timestamp rounding, options are: first, last and nearest
16+
continual_publish: False # Save published sensor data and check for state change every freq minutes
1617

1718
optim_conf:
1819
set_use_battery: False # consider a battery storage
@@ -76,6 +77,7 @@ plant_conf:
7677
- 16
7778
strings_per_inverter: # The number of used strings per inverter
7879
- 1
80+
inverter_is_hybrid: False # Set if it is a hybrid inverter (PV+batteries) or not
7981
Pd_max: 1000 # If your system has a battery (set_use_battery=True), the maximum discharge power in Watts
8082
Pc_max: 1000 # If your system has a battery (set_use_battery=True), the maximum charge power in Watts
8183
eta_disch: 0.95 # If your system has a battery (set_use_battery=True), the discharge efficiency

emhass/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ flask>=2.0.3
1616
waitress>=2.1.1
1717
plotly>=5.6.0
1818
#EMHASS
19-
emhass==0.9.1
19+
emhass==0.10.0
2020
#git+https://github.com/davidusb-geek/emhass

emhass/translations/en.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ configuration:
147147
name: list_pv_module_model, (method=scrapper/solar.forecast) A list of the PV module model
148148
description: For example 'CSUN_Eurasia_Energy_Systems_Industry_and_Trade_CSUN295_60M'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '_'.
149149
list_pv_inverter_model:
150-
name: list_pv_inverter_model, (method=scrapper) A list of the PV inverter model
150+
name: list_pv_inverter_model, (method=all methods, used in the optimization to set the PV peak power) A list of the PV inverter model
151151
description: For example 'Fronius_International_GmbH__Fronius_Primo_5_0_1_208_240__240V_'. This parameter can be a list of strings to enable the simulation of mixed orientation systems, for example one east-facing array (azimuth=90) and one west-facing array (azimuth=270). When finding the correct model for your installation remember to replace all the special characters in the model name by '_'.
152152
list_surface_tilt:
153153
name: list_surface_tilt, (method=scrapper/solar.forecast) The tilt angle of your solar panels
@@ -161,6 +161,9 @@ configuration:
161161
list_strings_per_inverter:
162162
name: list_strings_per_inverter, (method=scrapper) The number of used strings per inverter
163163
description: (Default 1). This parameter can be a list of integers to enable the simulation of mixed orientation systems, for example one east-facing array and one west-facing array.
164+
inverter_is_hybrid:
165+
name: inverter_is_hybrid, Set to True if it is a hybrid inverter (PV+batteries) or not
166+
description: Set to True to consider that the installation inverter is hybrid for PV and batteries. (Default False).
164167
set_use_battery:
165168
name: set_use_battery, Set if a battery is present
166169
description: Set to True if we should consider an energy storage device such as a Li-Ion battery. (Default False).

0 commit comments

Comments
 (0)