EMHASS: An Energy Management for Home Assistant

Hi, that feature has not been released yet.
I am trying to work on a new release very soon.

Ah that explains it haha. No problem, looking forward to it!

1 Like

Perfect, thank you. I think I may have got it now.
How often should I run this?

{
  "load_cost_forecast": [
    0.084,
    -0.006,
    -0.024,
    -0.025,
    -0.025,
    -0.02,
    -0.002,
    0.084,
    0.272,
    0.292,
    0.35,
    0.575,
    0.679,
    0.888,
    0.892,
    0.906,
    1.262,
    1.49,
    1.751,
    1.612,
    1.477,
    1.264,
    1.16,
    0.913,
    0.882
  ],
  "prod_price_forecast": [
    0.07,
    0,
    -0.02,
    -0.02,
    -0.02,
    -0.02,
    0,
    0.07,
    0.22,
    0.23,
    0.28,
    0.46,
    0.54,
    0.71,
    0.71,
    0.72,
    1.01,
    1.19,
    1.4,
    1.29,
    1.18,
    1.01,
    0.93,
    0.73,
    0.71
  ],
  "pv_power_forecast": [
    0,
    0,
    0,
    6,
    55,
    135,
    220,
    312,
    442,
    540,
    606,
    606,
    540,
    399,
    263,
    177,
    116,
    67,
    18,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    6,
    44,
    101,
    163,
    220,
    238,
    257,
    276,
    270,
    251,
    213,
    176,
    144,
    113,
    69,
    25,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
  ],
  "num_def_loads": 1,
  "def_total_hours": [
    3
  ],
  "P_deferrable_nom": [
    1300
  ],
  "treat_def_as_semi_cont": [
    1
  ]
}

Traceback (most recent call last):
File ā€œā€, line 198, in _run_module_as_main
File ā€œā€, line 88, in _run_code
File ā€œ/usr/local/lib/python3.11/dist-packages/emhass/web_server.pyā€, line 305, in
url_from_options = options[ā€˜hass_urlā€™]
~~~~~~~^^^^^^^^^^^^
KeyError: ā€˜hass_urlā€™
s6-supervise emhass: warning: unable to spawn ./finish: Permission denied

my addon is not starting, can someone help?

Itā€™s only the day ahead plan so only once a day. However, you can run it as many times as you like. But there may be one period in the day that makes the most sense. When Iā€™m using this method I run it before the first call to solcast so that itā€™s using the solcast data from the day before. So experiment with when to run it. Once you are happy with it publish_data every 5 minutes.

Thereā€™s a lot of volatility in tariffs in my area so I use the MPC method which I run every 60 second so the plan keeps up with the changes.

But get the dayahead working first.

1 Like

Did you fill in a url for your home assistant instance?

If you run the add on on ha os you can leave this empty

it is HA OS, i donā€™t even have that option

Ok, thats odd. Can you turn on debug on the addon and share the log?

same log with debug:

just started looking at this add-in and have the same ā€˜hass-urlā€™ error as above. Running ha on vmm in synology with HAOS.

1 Like

Hi David,

I changed the forecast method to naive and that worked.
Changed it back to mlforecaster and that is now working too again.
But now itā€™s splitting loads again. It worked before, after you did the update.

Most of these latest issues should be solved with the latest version from today.

@davidusb very big release today with a whole bunch of additional functionality, which is great to see the project moving forward.

However the upgrade hasnā€™t been smooth for me, so make sure you take a backup before attempting the upgrade.

I havenā€™t gotten to the bottom of this issue, but wanted to get this out early to the community.

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun emhass (no readiness notification)
s6-rc: info: service legacy-services successfully started
waitress   INFO  Serving on http://0.0.0.0:5000
2024-01-30 08:29:01,560 - web_server - ERROR - Exception on /action/naive-mpc-optim [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 872, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 870, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 855, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/emhass/web_server.py", line 50, in action_call
    input_data_dict = set_input_data_dict(config_path, str(data_path), costfun,
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/emhass/command_line.py", line 112, in set_input_data_dict
    rh.prepare_data(retrieve_hass_conf['var_load'], load_negative = retrieve_hass_conf['load_negative'],
  File "/usr/local/lib/python3.11/dist-packages/emhass/retrieve_hass.py", line 208, in prepare_data
    self.df_final[new_var_replace_zero] = self.df_final[new_var_replace_zero].fillna(0.0)
                                          ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/frame.py", line 3767, in __getitem__
    indexer = self.columns._get_indexer_strict(key, "columns")[1]
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/base.py", line 5877, in _get_indexer_strict
    self._raise_if_missing(keyarr, indexer, axis_name)
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/base.py", line 5938, in _raise_if_missing
    raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Index(['s', 'e', 'n', 's', 'o', 'r', '.', 'a', 'p', 'f', '_', 'g', 'e', 'n',\n       'e', 'r', 'a', 't', 'i', 'o', 'n', '_', 'e', 'n', 't', 'i', 't', 'y'],\n      dtype='object')] are in the [columns]"

configuration.yaml

costfun: profit
logging_level: WARNING
set_total_pv_sell: false
set_nocharge_from_grid: false
set_nodischarge_to_grid: false
sensor_power_photovoltaics: sensor.apf_generation_entity
sensor_power_load_no_var_loads: sensor.power_load_no_var_loads
number_of_deferrable_loads: 6
list_nominal_power_of_deferrable_loads:
  - nominal_power_of_deferrable_loads: 1340
  - nominal_power_of_deferrable_loads: 5000
  - nominal_power_of_deferrable_loads: 11500
  - nominal_power_of_deferrable_loads: 4000
  - nominal_power_of_deferrable_loads: 600
  - nominal_power_of_deferrable_loads: 11500
list_operating_hours_of_each_deferrable_load:
  - operating_hours_of_each_deferrable_load: 4
  - operating_hours_of_each_deferrable_load: 2
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 3
  - operating_hours_of_each_deferrable_load: 0
list_start_timesteps_of_each_deferrable_load:
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
list_end_timesteps_of_each_deferrable_load:
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
list_peak_hours_periods_start_hours:
  - peak_hours_periods_start_hours: "02:54"
  - peak_hours_periods_start_hours: "17:24"
list_peak_hours_periods_end_hours:
  - peak_hours_periods_end_hours: "15:24"
  - peak_hours_periods_end_hours: "20:24"
list_treat_deferrable_load_as_semi_cont:
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
list_set_deferrable_load_single_constant:
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
load_peak_hours_cost: 0.31
load_offpeak_hours_cost: 0.09
photovoltaic_production_sell_price: 0.23
maximum_power_from_grid: 20000
list_pv_module_model:
  - pv_module_model: Advance_Power_API_M370
  - pv_module_model: Advance_Power_API_M370
list_pv_inverter_model:
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
list_surface_tilt:
  - surface_tilt: 18
  - surface_tilt: 10
list_surface_azimuth:
  - surface_azimuth: 90
  - surface_azimuth: 270
list_modules_per_string:
  - modules_per_string: 29
  - modules_per_string: 21
list_strings_per_inverter:
  - strings_per_inverter: 1
  - strings_per_inverter: 1
set_use_battery: true
battery_nominal_energy_capacity: 43519
hass_url: empty
long_lived_token: empty
optimization_time_step: 30
historic_days_to_retrieve: 2
method_ts_round: first
lp_solver: COIN_CMD
lp_solver_path: /usr/bin/cbc
set_battery_dynamic: true
battery_dynamic_max: 0.5
battery_dynamic_min: -0.5
weight_battery_discharge: 0.1
weight_battery_charge: 0
load_forecast_method: naive
battery_discharge_power_max: 16336
battery_charge_power_max: 11000
battery_discharge_efficiency: 0.95
battery_charge_efficiency: 0.95
battery_minimum_state_of_charge: 0
battery_maximum_state_of_charge: 1
battery_target_state_of_charge: 0.1
web_ui_url: 0.0.0.0
nominal_power_of_deferrable_loads: 5500,1500,7000,3000
operating_hours_of_each_deferrable_load: 10,16,3,1
peak_hours_periods_start_hours: 02:54,17:24
peak_hours_periods_end_hours: 15:24,20:24
pv_module_model: Advance_Power_API_M370,Advance_Power_API_M370
pv_inverter_model: >-
  SolarEdge_Technologies_Ltd___SE7600A_US__208V_,SolarEdge_Technologies_Ltd___SE7600A_US__208V_
surface_tilt: 10,10
surface_azimuth: 90,270
modules_per_string: 29,21
strings_per_inverter: 1,1
delta_forecast: 3
1 Like

Iā€™m also experiencing the same error using mpc, EMHASS add-on v.0.6.0
Rolling back to v0.5.4 for now.

1 Like

Greetings all (just made an account on here).
I have actually seen that error while testing. (Although I believe it was a once off)

If your using EMHASS as an add-on:
Could you let me know if:

  • uninstalling the add-on.
  • Restarting HA
  • pressing the ā€œcheck for updatesā€ button a few times (in the add-on on store page)
  • re installing add-on

still presents issues?
Iā€™m finding the add-on install sometimes has issues, but this could be irrelevant.

For @markpurcell, I will test it here locally to see if I can replicate the issue gain and find out why

1 Like

@markpurcell looking at your config, have you tried something like this:

costfun: profit
logging_level: "WARNING"
set_total_pv_sell: false
set_nocharge_from_grid: false
set_nodischarge_to_grid: false
sensor_power_photovoltaics: "sensor.apf_generation_entity"
sensor_power_load_no_var_loads: "sensor.power_load_no_var_loads"
number_of_deferrable_loads: 6
list_nominal_power_of_deferrable_loads:
  - nominal_power_of_deferrable_loads: 1340
  - nominal_power_of_deferrable_loads: 5000
  - nominal_power_of_deferrable_loads: 11500
  - nominal_power_of_deferrable_loads: 4000
  - nominal_power_of_deferrable_loads: 600
  - nominal_power_of_deferrable_loads: 11500
list_operating_hours_of_each_deferrable_load:
  - operating_hours_of_each_deferrable_load: 4
  - operating_hours_of_each_deferrable_load: 2
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 3
  - operating_hours_of_each_deferrable_load: 0
list_start_timesteps_of_each_deferrable_load:
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
list_end_timesteps_of_each_deferrable_load:
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
list_peak_hours_periods_start_hours:
  - peak_hours_periods_start_hours: "02:54"
  - peak_hours_periods_start_hours: "17:24"
list_peak_hours_periods_end_hours:
  - peak_hours_periods_end_hours: "15:24"
  - peak_hours_periods_end_hours: "20:24"
list_treat_deferrable_load_as_semi_cont:
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
list_set_deferrable_load_single_constant:
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
load_peak_hours_cost: 0.31
load_offpeak_hours_cost: 0.09
photovoltaic_production_sell_price: 0.23
maximum_power_from_grid: 20000
list_pv_module_model:
  - pv_module_model: Advance_Power_API_M370
  - pv_module_model: Advance_Power_API_M370
list_pv_inverter_model:
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
list_surface_tilt:
  - surface_tilt: 18
  - surface_tilt: 10
list_surface_azimuth:
  - surface_azimuth: 90
  - surface_azimuth: 270
list_modules_per_string:
  - modules_per_string: 29
  - modules_per_string: 21
list_strings_per_inverter:
  - strings_per_inverter: 1
  - strings_per_inverter: 1
set_use_battery: true
battery_nominal_energy_capacity: 43519
optimization_time_step: 30
historic_days_to_retrieve: 2
method_ts_round: "first"
lp_solver: "COIN_CMD"
lp_solver_path: /usr/bin/cbc
set_battery_dynamic: true
battery_dynamic_max: 0.5
battery_dynamic_min: -0.5
weight_battery_discharge: 0.1
weight_battery_charge: 0
load_forecast_method: "naive"
battery_discharge_power_max: 16336
battery_charge_power_max: 11000
battery_discharge_efficiency: 0.95
battery_charge_efficiency: 0.95
battery_minimum_state_of_charge: 0
battery_maximum_state_of_charge: 1
battery_target_state_of_charge: 0.1
web_ui_url: 0.0.0.0
list_nominal_power_of_deferrable_loads: 
  - nominal_power_of_deferrable_loads: 5500
  - nominal_power_of_deferrable_loads: 1500
  - nominal_power_of_deferrable_loads: 7000
  - nominal_power_of_deferrable_loads: 3000
list_operating_hours_of_each_deferrable_load:
  - operating_hours_of_each_deferrable_load: 10
  - operating_hours_of_each_deferrable_load: 16
  - operating_hours_of_each_deferrable_load: 3
  - operating_hours_of_each_deferrable_load: 1
list_peak_hours_periods_start_hours: 
  - peak_hours_periods_start_hours: "02:54"
  - peak_hours_periods_start_hours: "17:24"
list_peak_hours_periods_end_hours:
  - peak_hours_periods_end_hours: "15:24"
  - peak_hours_periods_end_hours: "20:24"
list_pv_module_model: 
  - pv_inverter_model: Advance_Power_API_M370
  - pv_inverter_model: Advance_Power_API_M370
list_pv_inverter_model:
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
list_surface_tilt: 
  - surface_tilt: 10
  - surface_tilt: 10
list_surface_azimuth: 
  - surface_azimuth: 90
  - surface_azimuth: 270
list_modules_per_string: 
  - modules_per_string: 29
  - modules_per_string: 21
list_strings_per_inverter:
  - strings_per_inverter: 1
  - strings_per_inverter: 1
delta_forecast_daily: 3

I have uninstalled and rolled back and reinstalled and the same issue presents itself.

Quoting the sensor names doesnā€™t seem to help the issue.

2024-01-30 16:39:48,676 - web_server - ERROR - Variable "sensor.power_load_no_var_loads" was not found. This is typically because no data could be retrieved from Home Assistant
2024-01-30 16:39:48,680 - web_server - ERROR - Exception on /action/naive-mpc-optim [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 872, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 870, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/flask/app.py", line 855, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/emhass/web_server.py", line 50, in action_call
    input_data_dict = set_input_data_dict(config_path, str(data_path), costfun,
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/emhass/command_line.py", line 112, in set_input_data_dict
    rh.prepare_data(retrieve_hass_conf['var_load'], load_negative = retrieve_hass_conf['load_negative'],
  File "/usr/local/lib/python3.11/dist-packages/emhass/retrieve_hass.py", line 208, in prepare_data
    self.df_final[new_var_replace_zero] = self.df_final[new_var_replace_zero].fillna(0.0)
                                          ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/frame.py", line 3767, in __getitem__
    indexer = self.columns._get_indexer_strict(key, "columns")[1]
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/base.py", line 5877, in _get_indexer_strict
    self._raise_if_missing(keyarr, indexer, axis_name)
  File "/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/base.py", line 5938, in _raise_if_missing
    raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: 'None of [Index([\'"\', \'s\', \'e\', \'n\', \'s\', \'o\', \'r\', \'.\', \'a\', \'p\', \'f\', \'_\', \'g\', \'e\',\n       \'n\', \'e\', \'r\', \'a\', \'t\', \'i\', \'o\', \'n\', \'_\', \'e\', \'n\', \'t\', \'i\', \'t\',\n       \'y\', \'"\'],\n      dtype=\'object\')] are in the [columns]'

Hi Mark,
Nothing to do with the error messages, but thereā€™s a correction to be made in your configuration:
You have 5 or 6 deferrable loads, so you need an equivalent amount of items in the section about start and end timesteps (where currently I only see 2 items each time)

2 Likes

something like this may help:

costfun: profit
logging_level: WARNING
set_total_pv_sell: false
set_nocharge_from_grid: false
set_nodischarge_to_grid: false
sensor_power_photovoltaics: sensor.apf_generation_entity
sensor_power_load_no_var_loads: sensor.power_load_no_var_loads
number_of_deferrable_loads: 6
list_nominal_power_of_deferrable_loads:
  - nominal_power_of_deferrable_loads: 1340
  - nominal_power_of_deferrable_loads: 5000
  - nominal_power_of_deferrable_loads: 11500
  - nominal_power_of_deferrable_loads: 4000
  - nominal_power_of_deferrable_loads: 600
  - nominal_power_of_deferrable_loads: 11500
list_operating_hours_of_each_deferrable_load:
  - operating_hours_of_each_deferrable_load: 4
  - operating_hours_of_each_deferrable_load: 2
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 0
  - operating_hours_of_each_deferrable_load: 3
  - operating_hours_of_each_deferrable_load: 0
list_start_timesteps_of_each_deferrable_load:
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
  - start_timesteps_of_each_deferrable_load: 0
list_end_timesteps_of_each_deferrable_load:
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
  - end_timesteps_of_each_deferrable_load: 0
list_peak_hours_periods_start_hours:
  - peak_hours_periods_start_hours: "02:54"
  - peak_hours_periods_start_hours: "17:24"
list_peak_hours_periods_end_hours:
  - peak_hours_periods_end_hours: "15:24"
  - peak_hours_periods_end_hours: "20:24"
list_treat_deferrable_load_as_semi_cont:
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: false
  - treat_deferrable_load_as_semi_cont: true
  - treat_deferrable_load_as_semi_cont: false
list_set_deferrable_load_single_constant:
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
  - set_deferrable_load_single_constant: false
load_peak_hours_cost: 0.31
load_offpeak_hours_cost: 0.09
photovoltaic_production_sell_price: 0.23
maximum_power_from_grid: 20000
list_pv_module_model:
  - pv_module_model: Advance_Power_API_M370
  - pv_module_model: Advance_Power_API_M370
list_pv_inverter_model:
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
  - pv_inverter_model: SolarEdge_Technologies_Ltd___SE7600A_US__208V_
list_surface_tilt:
  - surface_tilt: 18
  - surface_tilt: 10
list_surface_azimuth:
  - surface_azimuth: 90
  - surface_azimuth: 270
list_modules_per_string:
  - modules_per_string: 29
  - modules_per_string: 21
list_strings_per_inverter:
  - strings_per_inverter: 1
  - strings_per_inverter: 1
set_use_battery: true
battery_nominal_energy_capacity: 43519
optimization_time_step: 30
historic_days_to_retrieve: 2
method_ts_round: first
lp_solver: COIN_CMD
lp_solver_path: /usr/bin/cbc
set_battery_dynamic: true
battery_dynamic_max: 0.5
battery_dynamic_min: -0.5
weight_battery_discharge: 0.1
weight_battery_charge: 0
load_forecast_method: naive
battery_discharge_power_max: 16336
battery_charge_power_max: 11000
battery_discharge_efficiency: 0.95
battery_charge_efficiency: 0.95
battery_minimum_state_of_charge: 0
battery_maximum_state_of_charge: 1
battery_target_state_of_charge: 0.1
delta_forecast_daily: 3

Going to troubleshoot tonight after I have eaten and my brain works :sweat_smile:

1 Like