Skip to content

Commit

Permalink
Merge pull request #97 from davidusb-geek/davidusb-geek/dev/preparing…
Browse files Browse the repository at this point in the history
…_new_version

Davidusb geek/dev/preparing new version
  • Loading branch information
davidusb-geek committed Jul 5, 2024
2 parents 176e978 + dc461d0 commit 1de49ae
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 8 deletions.
9 changes: 9 additions & 0 deletions emhass/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.10.2 - 2024-07-06
### Improvement
- Weather forecast caching and Solcast method fix by @GeoDerp
- Added a new configuration parameter to control wether we compute PV curtailment or not
- Added hybrid inverter to data publish
- It is now possible to pass these battery parameters at runtime: `SOCmin`, `SOCmax`, `Pd_max` and `Pc_max`
### Fix
- Fixed problem with negative PV forecast values in optimization.py, by @GeoDerp

## 0.10.1 - 2024-06-03
### Fix
- Fixed PV curtailment maximum possible value constraint
Expand Down
5 changes: 1 addition & 4 deletions emhass/DOCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,6 @@ The following parameters are associated with the technical specifications of the

We will define the technical parameters of the PV installation. For the modeling task we rely on the PVLib Python package. For more information see: [https://pvlib-python.readthedocs.io/en/stable/](https://pvlib-python.readthedocs.io/en/stable/)

The complete list of supported modules can be found here: [https://github.com/davidusb-geek/emhass-add-on/files/9234460/sam-library-cec-modules-2019-03-05.csv](https://github.com/davidusb-geek/emhass-add-on/files/9234460/sam-library-cec-modules-2019-03-05.csv)

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)

This webapp can help you find your correct module/inverter key: [https://emhass-pvlib-database.streamlit.app/](https://emhass-pvlib-database.streamlit.app/)

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.
Expand All @@ -113,6 +109,7 @@ Solution (2) would be to use SolCast and pass that data directly to emhass as a
- 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).
- 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).
- inverter_is_hybrid: Set to True to consider that the installation inverter is hybrid for PV and batteries. (Default False).
- compute_curtailment: Set to True to compute a PV curtailment variable. (Default False).
- set_use_battery: Set to True if we should consider an energy storage device such as a Li-Ion battery. Defaults to False.

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.
Expand Down
9 changes: 8 additions & 1 deletion emhass/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: EMHASS
description: Energy Management for Home Assistant
url: https://github.com/davidusb-geek/emhass
version: 0.10.1
version: 0.10.2
slug: emhass
arch:
- aarch64
Expand Down Expand Up @@ -65,6 +65,9 @@ options:
list_set_deferrable_load_single_constant:
- set_deferrable_load_single_constant: false
- set_deferrable_load_single_constant: false
list_set_deferrable_startup_penalty:
- set_deferrable_startup_penalty: 0.0
- set_deferrable_startup_penalty: 0.0
load_peak_hours_cost: 0.1907
load_offpeak_hours_cost: 0.1419
photovoltaic_production_sell_price: 0.065
Expand All @@ -81,6 +84,7 @@ options:
list_strings_per_inverter:
- strings_per_inverter: 1
inverter_is_hybrid: false
compute_curtailment: false
set_use_battery: false
battery_nominal_energy_capacity: 5000
schema:
Expand Down Expand Up @@ -132,6 +136,8 @@ schema:
- treat_deferrable_load_as_semi_cont: "bool?"
list_set_deferrable_load_single_constant:
- set_deferrable_load_single_constant: "bool?"
list_set_deferrable_startup_penalty:
- set_deferrable_startup_penalty: "float?"
load_cost_forecast_method: "list(hp_hc_periods|csv)?"
production_price_forecast_method: "list(constant|csv)?" #optional
load_peak_hours_cost: "float(0,)?"
Expand All @@ -150,6 +156,7 @@ schema:
list_strings_per_inverter:
- strings_per_inverter: "int(0,)?"
inverter_is_hybrid: "bool?"
compute_curtailment: "bool?"
set_use_battery: "bool?"
set_battery_dynamic: "bool?" #optional
battery_dynamic_max: "float(0.0,1.0)?" #optional
Expand Down
4 changes: 4 additions & 0 deletions emhass/config_emhass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ optim_conf:
set_def_constant: # set as a constant fixed value variable with just one startup for each 24h
- False
- False
def_start_penalty: # Set a penalty for each start up of a deferrable load
- 0.0
- 0.0
weather_forecast_method: 'scrapper' # options are 'scrapper', 'csv', 'list', 'solcast' and 'solar.forecast'
load_forecast_method: 'naive' # options are 'csv' to load a custom load forecast from a CSV file or 'naive' for a persistance model
load_cost_forecast_method: 'hp_hc_periods' # options are 'hp_hc_periods' for peak and non-peak hours contracts and 'csv' to load custom cost from CSV file
Expand Down Expand Up @@ -78,6 +81,7 @@ plant_conf:
strings_per_inverter: # The number of used strings per inverter
- 1
inverter_is_hybrid: False # Set if it is a hybrid inverter (PV+batteries) or not
compute_curtailment: False # Compute a PV curtailment variable or not
Pd_max: 1000 # If your system has a battery (set_use_battery=True), the maximum discharge power in Watts
Pc_max: 1000 # If your system has a battery (set_use_battery=True), the maximum charge power in Watts
eta_disch: 0.95 # If your system has a battery (set_use_battery=True), the discharge efficiency
Expand Down
4 changes: 2 additions & 2 deletions emhass/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ h5py==3.11.0
pulp>=2.4
pyyaml>=5.4.1
tables<=3.9.1
skforecast==0.12.0
skforecast==0.12.1
# web server packages
flask>=2.0.3
waitress>=2.1.1
plotly>=5.6.0
#EMHASS
emhass==0.10.1
emhass==0.10.2
#git+https://github.com/davidusb-geek/emhass
5 changes: 4 additions & 1 deletion emhass/translations/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,10 @@ configuration:
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.
inverter_is_hybrid:
name: inverter_is_hybrid, Set to True if it is a hybrid inverter (PV+batteries) or not
description: Set to True to consider that the installation inverter is hybrid for PV and batteries. (Default False).
description: A special parameter to consider that the installation inverter is hybrid for PV and batteries. (Default False).
compute_curtailment:
name: compute_curtailment, Set to True to compute a PV curtailment variable.
description: A special parameter to define if we will compute a PV curtailment variable. (Default False).
set_use_battery:
name: set_use_battery, Set if a battery is present
description: Set to True if we should consider an energy storage device such as a Li-Ion battery. (Default False).
Expand Down

0 comments on commit 1de49ae

Please sign in to comment.