Is there a way to turn off the pv_curtailement?
I donāt get money for solar energy, but I also donāt have to pay to put it on the grid.
I always set negative solar prices to force emhass to self-consume as much as possible.
Now I also see strange values in my deferrable loads
deferrable 2 has a nominal value of 1700
deferrable 3 has a nominal value of 900
This is my config
logging_level: INFO
data_path: /share/
costfun: profit
sensor_power_photovoltaics: sensor.emhass_huidige_opbrengst
sensor_power_load_no_var_loads: sensor.huidig_verbruik_zonder_wp
set_total_pv_sell: false
set_nocharge_from_grid: false
set_nodischarge_to_grid: false
maximum_power_from_grid: 14000
maximum_power_to_grid: 9000
number_of_deferrable_loads: 5
list_nominal_power_of_deferrable_loads:
- nominal_power_of_deferrable_loads: 2000
- nominal_power_of_deferrable_loads: 2000
- nominal_power_of_deferrable_loads: 1700
- nominal_power_of_deferrable_loads: 900
- nominal_power_of_deferrable_loads: 2000
list_operating_hours_of_each_deferrable_load:
- operating_hours_of_each_deferrable_load: 2
- operating_hours_of_each_deferrable_load: 2
- operating_hours_of_each_deferrable_load: 2.5
- operating_hours_of_each_deferrable_load: 1
- 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
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
list_peak_hours_periods_start_hours:
- peak_hours_periods_start_hours: "7:00"
- peak_hours_periods_start_hours: "9:00"
- peak_hours_periods_start_hours: "11:00"
- peak_hours_periods_start_hours: "13:00"
- peak_hours_periods_start_hours: "15:00"
list_peak_hours_periods_end_hours:
- peak_hours_periods_end_hours: "8:00"
- peak_hours_periods_end_hours: "10:00"
- peak_hours_periods_end_hours: "12:00"
- peak_hours_periods_end_hours: "14:00"
- peak_hours_periods_end_hours: "16:00"
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: true
- treat_deferrable_load_as_semi_cont: true
- treat_deferrable_load_as_semi_cont: true
list_set_deferrable_load_single_constant:
- set_deferrable_load_single_constant: true
- set_deferrable_load_single_constant: true
- set_deferrable_load_single_constant: true
- set_deferrable_load_single_constant: false
- set_deferrable_load_single_constant: false
load_peak_hours_cost: 0.164497535
load_offpeak_hours_cost: 0.164497535
photovoltaic_production_sell_price: 0
list_pv_module_model:
- pv_module_model: CSUN_Eurasia_Energy_Systems_Industry_and_Trade_CSUN295_60M
list_pv_inverter_model:
- pv_inverter_model: SolarEdge_Technologies_Ltd___SE3000__240V_
- pv_inverter_model: Chint_Solar_Zhejiang__CHPI4KTL_US__240V_
list_surface_tilt:
- surface_tilt: 30
list_surface_azimuth:
- surface_azimuth: 205
list_modules_per_string:
- modules_per_string: 16
list_strings_per_inverter:
- strings_per_inverter: 1
inverter_is_hybrid: false
set_use_battery: false
battery_nominal_energy_capacity: 5000
hass_url: empty
long_lived_token: empty
optimization_time_step: 30
historic_days_to_retrieve: 3
method_ts_round: first
lp_solver: COIN_CMD
lp_solver_path: /usr/bin/cbc
set_battery_dynamic: false
battery_dynamic_max: 0.9
battery_dynamic_min: -0.9
load_forecast_method: mlforecaster
battery_discharge_power_max: 1000
battery_charge_power_max: 1000
battery_discharge_efficiency: 0.95
battery_charge_efficiency: 0.95
battery_minimum_state_of_charge: 0.3
battery_maximum_state_of_charge: 0.9
battery_target_state_of_charge: 0.6
mpc rest command
naive_mpc_optim:
url: http://localhost:5003/action/naive-mpc-optim
method: POST
content_type: "application/json"
payload: >-
{
"prod_price_forecast": {{
([state_attr('sensor.prod_price_forecast_list', 'extra') | float] +
state_attr('sensor.prod_price_forecast_list', 'list')[:states('sensor.prediction_horizon') | int - 1]) | tojson
}},
"load_cost_forecast": {{
(state_attr('sensor.cost_forecast_list', 'list')[:states('sensor.prediction_horizon') | int]) | tojson
}},
"pv_power_forecast": {{
([states('sensor.huidige_opbrengst')|int(0)] +
state_attr('sensor.pv_power_forecast_list', 'list')[:states('sensor.prediction_horizon') | int - 1]) | tojson
}},
"prediction_horizon": {{ states('sensor.prediction_horizon') | int }},
"alpha": 1,
"beta": 0,
"num_def_loads": 5,
"p_deferrable_nom": [2000, 2000, 1700, 900, 2000],
"def_total_hours": [
{{ states('sensor.wasmachien_uren') | float(0) }},
{{ states('sensor.droogkast_uren') | float(0) }},
{{ states('sensor.afwasmachien_uren') | float(0) }},
{{ states('sensor.warmtepompboiler_uren') | float(0) }},
{{ states('sensor.warmtepomp_uren') | float(0) }}],
"set_def_constant":[true, true, true, false, false],
"def_end_timestep": [
{{ states('sensor.wasmachien_end_timesteps') | int(0) }},
{{ states('sensor.droogkast_end_timesteps') | int(0) }},
{{ states('sensor.afwasmachien_end_timesteps') | int(0) }},
{{ states('sensor.warmtepompboiler_end_timesteps') | int(0) }},
{{ states('sensor.warmtepomp_end_timesteps') | int(0) }}],
"def_current_state": [
{{ "true" if is_state('input_boolean.emhass_wasmachien', "on") else "false" }},
{{ "true" if is_state('input_boolean.emhass_droogkast', "on") else "false" }},
{{ "true" if is_state('input_boolean.emhass_afwasmachien', "on") else "false" }},
{{ "true" if is_state('input_boolean.emhass_warmtepompboiler', "on") else "false" }},
{{ "true" if is_state('input_boolean.emhass_warmtepomp', "on") else "false" }}]
}
naive_mpc_optim:
url: http://localhost:5003/action/naive-mpc-optim
method: POST
content_type: "application/json"
payload: >-
{
"prod_price_forecast": [-0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11, -0.11],
"load_cost_forecast": [0.174497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.174497535, 0.174497535, 0.174497535, 0.174497535, 0.174497535, 0.174497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535, 0.164497535],
"pv_power_forecast": [1715, 3041, 3531, 3860, 3554, 2886, 2312, 1784, 1656, 1556, 1558, 1675, 1762, 1878, 1774, 1485, 1430, 1549, 1595, 1449, 1461, 1018, 576, 156, 88, 7, 0, 0, 0, 0],
"prediction_horizon": 30,
"alpha": 1,
"beta": 0,
"num_def_loads": 5,
"p_deferrable_nom": [2000, 2000, 1700, 900, 2000],
"def_total_hours": [
0.2,
0.0,
2.1,
2.1,
0.0],
"set_def_constant":[true, true, true, false, false],
"def_end_timestep": [
0,
0,
9,
4,
30],
"def_current_state": [
true,
false,
true,
false,
false]
}
Also my deferrable2 gets planned in again while it is started 1 hour ago(def_current_state = true), it even gets splitted(set_def_constant = true)