JustPaste.it

Predbat

# ------------------------------------------------------------------
# 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 `