# ------------------------------------------------------------------
# Huawei Config
# ------------------------------------------------------------------
---
pred_bat:
module: predbat
class: PredBat
# Sets the prefix for all created entities in HA - only change if you want to run more than once instance
prefix: predbat
# Timezone to work in
timezone: Europe/Stockholm
# Sensors, more than one can be specified and they will be summed up automatically
#
# For two inverters the load today would normally be the master load sensor only (to cover the entire house)
# If you have three phase and one inverter per phase then you would need three load sensors
#
# For pv_today if you have multiple solar inverter inputs then you should include one entry for each inverter
#
load_today:
- sensor.huawei_energy_today_consumption
import_today:
- sensor.energy_today_kwh
export_today:
- sensor.export_today
# Vänta någon vecka tills sensorn under har historik.
# pv_today:
# -sensor.pv_daily_yield
pv_today:
- sensor.solceller_per_dag_pv
# Load forecast can be used to add to the historical load data (heat-pump)
# To link to Predheat
# Data must be in the format of 'last_updated' timestamp and 'energy' for incrementing kWh
#load_forecast:
# - predheat.heat_energy$external
#
num_inverters: 1
inverter_type: "HU"
#device_id: 6893ee838a0972bd3e50d9e0faa0ba5a
#
# Run balance inverters every N seconds (0=disabled) - only for multi-inverter
balance_inverters_seconds: 0
#
# If not using REST then instead set the Control here (one for each inverter)
# - you can delete this section if using REST
# inverter_mode:
# - select.battery_working_mode
charge_rate:
- sensor.battery_charge_only
discharge_rate:
- sensor.battery_discharge_only
battery_power:
- sensor.battery_charge_discharge_power
pv_power:
- sensor.inverter_input_power
load_power:
- sensor.power_meter_active_power
soc_percent:
- sensor.battery_state_of_capacity
soc_max:
- 10
charge_limit:
- number.battery_end_of_charge_soc
reserve:
- 12
scheduled_charge_enable:
- off
scheduled_discharge_enable:
- off
charge_start_time:
- "00:00:00"
charge_end_time:
- "06:00:00"
discharge_start_time:
- "07:00:00"
discharge_end_time:
- "23:00:00"
#Services to charge/discharge
device_id: 6893ee838a0972bd3e50d9e0faa0ba5a
charge_start_service: huawei_solar/forcible_charge_soc
charge_stop_service: huawei_solar/stop_forcible_charge
discharge_start_service: huawei_solar/forcible_discharge_soc
discharge_stop_service: huawei_solar/stop_forcible_charge
# Inverter max AC limit (one per inverter). E.g for a 3.6kw inverter set to 3600
# If you have a second inverter for PV only please add the two values together
inverter_limit:
- 3600
# Set the maximum charge/discharge rate of the battery
battery_rate_max:
- 3500
# Export limit is a software limit set on your inverter that prevents exporting above a given level
# When enabled Predbat will model this limit
#export_limit:
# - 3600
# - 3600
# Some inverters don't turn off when the rate is set to 0, still charge or discharge at around 200w
# The value can be set here in watts to model this (doesn't change operation)
#inverter_battery_rate_min:
# - 200
# Workaround to limit the maximum reserve setting, some inverters won't allow 100% to be set
# inverter_reserve_max : 99
# Some batteries tail off their charge rate at high soc%
# enter the charging curve here as a % of the max charge rate for each soc percentage.
# the default is 1.0 (full power)
# The example below is from GE 9.5kwh battery with latest firmware and gen1 inverter
#battery_charge_power_curve:
# 91 : 0.91
# 92 : 0.81
# 93 : 0.71
# 94 : 0.62
# 95 : 0.52
# 96 : 0.43
# 97 : 0.33
# 98 : 0.24
# 99 : 0.24
# 100 : 0.24
# Inverter clock skew in minutes, e.g. 1 means it's 1 minute fast and -1 is 1 minute slow
# Separate start and end options are applied to the start and end time windows, mostly as you want to start late (not early) and finish early (not late)
# Separate discharge skew for discharge windows only
# inverter_clock_skew_start: 0
# inverter_clock_skew_end: 0
# inverter_clock_skew_discharge_start: 0
# inverter_clock_skew_discharge_end: 0
# Clock skew adjusts the Appdaemon time
# This is the time that Predbat takes actions like starting discharge/charging
# Only use this for workarounds if your inverter time is correct but Predbat is somehow wrong (AppDaemon issue)
# 1 means add 1 minute to AppDaemon time, -1 takes it away
clock_skew: 0
# Set these to match solcast sensor names
# The regular [removed]re:) makes the solcast bit optional
# If these don't match find your own names in Home Assistant
# sensor.solcast_pv_forecast_forecast_today
# sensor.solcast_pv_forecast_forecast_tomorrow
pv_forecast_today: re:(sensor.(solcast_|)(pv_forecast_|)forecast_today)
pv_forecast_tomorrow: re:(sensor.(solcast_|)(pv_forecast_|)forecast_tomorrow)
pv_forecast_d3: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_3|d3))
pv_forecast_d4: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_4|d4))
# Defines the number of cars modelled by the system, set to 0 for no car
num_cars: 0
# If you have Octopus intelligent, enable the intelligent slot information to add to pricing
# Will automatically disable if not found, or comment out to disable fully
# When enabled it overrides the 'car_charging_planned' feature and predict the car charging based on the intelligent plan (unless octopus intelligent charging is False)
# This matches either the intelligent slot from the Octopus Plugin or from the Intelligent plugin
#octopus_intelligent_slot: 're:(binary_sensor.octopus_intelligent_slot|re:binary_sensor.octopus_energy_intelligent_dispatching)'
#octopus_intelligent_slot: 're:binary_sensor.octopus_energy_intelligent_dispatching'
#octopus_ready_time: 're:time.octopus_energy_intelligent_ready_time'
#octopus_charge_limit: 're:number.octopus_energy_intelligent_charge_limit'
# Energy rates
# Please set one of these three, if multiple are set then Octopus is used first, second rates_import/rates_export and latest basic metric
# Set import and export entity to point to the Octopus Energy plugin
# automatically matches your meter number assuming you have only one
# Will be ignored if you don't have the sensor
# Or manually set it to the correct sensor names e.g:
# sensor.octopus_energy_electricity_xxxxxxxxxx_xxxxxxxxxxxxx_current_rate
# sensor.octopus_energy_electricity_xxxxxxxxxx_xxxxxxxxxxxxx_export_current_rate
metric_octopus_import: sensor.nordpool_kwh_se3_sek_3_10_025
metric_octopus_export: sensor.nordpool_kwh_se3_sek_3_10_025
# Standing charge can be set to a sensor (e.g. Octopus) or manually entered in pounds here (e.g. 0.50 is 50p)
#metric_standing_charge: 're:(sensor.(octopus_energy_|)electricity_[0-9a-z]+_[0-9a-z]+_current_standing_charge)'
# Or set your actual rates across time for import and export
# If start/end is missing it's assumed to be a fixed rate
# Gaps are filled with zero rate
#rates_import:
# - start: "00:30:00"
# end: "04:30:00"
# rate: 7.5
# - start: "04:30:00"
# end: "00:30:00"
# rate: 40.0
#
# rates_export:
# - rate: 0
# Import rates can be overridden with rate_import_override
# Export rates can be overridden with rate_export_override
# Use the same format as above, but a date can be included if it just applies for a set day (e.g. Octopus power ups)
# This will override even the Octopus plugin rates if enabled
#
#rates_import_override:
# - date: '2023-09-10'
# start: '14:00:00'
# end: '14:30:00'
# rate: 5
# For pv estimate, leave blank for central estimate, or add 10 for 10% curve (worst case) or 90 or 90% curve (best case)
# If you use 10 then disable pv_metric10_weight below
# pv_estimate: 10
# Days previous is the number of days back to find historical load data
# Recommended is 7 to capture day of the week but 1 can also be used
# if you have more history you could use 7 and 14 (in a list) but the standard data in HA only lasts 10 days
days_previous:
- 7
# Days previous weight can be used to control the weighting of the previous load points, the values are multiplied by their
# weights and then divided through by the total weight. E.g. if you used 1 and 0.5 then the first value would have 2/3rd of the weight and the second 1/3rd
# Include one value for each days_previous value, each weighting on a separate line.
# If any days_previous's that are not given a weighting they will assume a default weighting of 1.
days_previous_weight:
- 1
# Number of hours forward to forecast, best left as-is unless you have specific reason
forecast_hours: 48
# Specify the devices that notifies are sent to, the default is 'notify' which goes to all
notify_devices:
- mobile_app_iphone13pro
# Battery scaling makes the battery smaller (e.g. 0.9) or bigger than its reported
# If you have an 80% DoD battery that falsely reports it's kwh then set it to 0.8 to report the real figures
battery_scaling: 1.0
# Can be used to scale import and export data, used for workarounds
import_export_scaling: 1.0
# Export triggers:
# For each trigger give a name, the minutes of export needed and the energy required in that time
# Multiple triggers can be set at once so in total you could use too much energy if all run
# Creates an entity called 'binary_sensor.predbat_export_trigger_<name>' which will be turned On when the condition is valid
# connect this to your automation to start whatever you want to trigger
export_triggers:
- name: 'large'
minutes: 60
energy: 1.0
- name: 'small'
minutes: 15
energy: 0.25
# If you have a sensor that gives the energy consumed by your solar diverter then add it here
# this will make the predictions more accurate. It should be an incrementing sensor, it can reset at midnight or not
# It's assumed to be in Kwh but scaling can be applied if need be
#iboost_energy_today: 'sensor.tasmota_energy_today'
#iboost_energy_scaling: 1.0 `