diff --git a/docs/apps-yaml.md b/docs/apps-yaml.md
index a83294fe8..5a5a231ac 100644
--- a/docs/apps-yaml.md
+++ b/docs/apps-yaml.md
@@ -224,7 +224,8 @@ The **givtcp_rest** line should be commented out/deleted in order for Predbat to
- **discharge_start_time** - GivTCP scheduled discharge slot_1 start time
- **discharge_end_time** - GivTCP scheduled discharge slot_1 end time
-If you are using REST control the above GivTCP configuration items can be deleted or commented out of apps.yaml.
+If you are using REST control the above GivTCP configuration items can be deleted or commented out of `apps.yaml`
+(but see section below on [creating the battery charge power curve](#workarounds)).
## Solcast Solar Forecast
@@ -248,7 +249,7 @@ If however you have a mixed PV array setup with some PV that does not feed into
then it's recommended that Solcast is only configured for the PV connected to the GivEnergy inverters.
Solcast produces 3 forecasted PV estimates, the 'central' (50% or most likely to occur) PV forecast, the '10%' (worst case) PV forecast, and the '90%' (best case) PV forecast.
-By default Predbat will use the central estimate and applies to it the **input_number.pv_metric10_weight** weighting of the 10% (worst case) estimate.
+By default Predbat will use the central estimate and applies to it the **input_number.predbat_pv_metric10_weight** weighting of the 10% (worst case) estimate.
Predbat models cloud coverage by using the difference between the PV and PV10 forecasts to work out a cloud factor,
this modulates the PV output predictions up and down accordingly as if there were passing clouds.
@@ -258,11 +259,11 @@ This can have an impact on planning, especially for things like freeze charging
or '90' to always use the 90% PV estimate (not recommended!).
Set to blank or delete / comment out the line to use the default central estimate.
-If **pv_estimate** is set to 10 then **input_number.pv_metric10_weight** in Home Assistant should be set to 1.0.
+If **pv_estimate** is set to 10 then **input_number.predbat_pv_metric10_weight** in Home Assistant should be set to 1.0.
## Energy Rates
-There are a number of configuration items in apps.yaml for telling Predbat what your import and export rates are.
+There are a number of configuration items in `apps.yaml` for telling Predbat what your import and export rates are.
These are described in detail in [Energy Rates](energy-rates.md) and are listed here just for completeness:
@@ -304,7 +305,7 @@ Set to 0 if you don't have an EV (and the remaining car sensors in apps.yaml can
You might want to remove your electric car charging data from the historical house load data so as to not bias the calculations, otherwise you will get
high battery charge levels when the car was charged previously (e.g. last week).
-- **switch.car_charging_hold** - A Home Assistant switch that when turned on (True) tells Predbat to remove car charging data from Predbat's battery prediction plan.
+- **switch.predbat_car_charging_hold** - A Home Assistant switch that when turned on (True) tells Predbat to remove car charging data from Predbat's battery prediction plan.
- **car_charging_energy** - Set in apps.yaml to point to a Home Assistant entity which is the incrementing kWh data for the car charger.
This has been pre-defined to a regular expression to auto-detect the appropriate Wallbox and Zappi car charger sensors, or edit as necessary in apps.yaml for your charger sensor.
@@ -312,12 +313,12 @@ This can be set to a list of car charging energy sensors, one per line if you ha
You can also use **car_charging_energy** to remove other house load kWh from the data Predbat uses for the forecast,
e.g. if you want to remove Mixergy hot water tank heating data from the forecast such as if you sometimes heat on gas, and sometimes electric depending upon import rates.
-- **input_number.car_charging_energy_scale** - A Home Assistant entity used to define a scaling factor (in the range 0.1 to 1.0)
+- **input_number.predbat_car_charging_energy_scale** - A Home Assistant entity used to define a scaling factor (in the range 0.1 to 1.0)
to multiply the car_charging_energy data by if required (e.g. set to 0.001 to convert Watts to kW).
If you do not have a suitable car charging kWh sensor in Home Assistant then comment the car_charging_energy line out of `apps.yaml` and configure the following Home Assistant entity:
-- **input_number.car_charging_threshold** - Sets the threshold above which home consumption is assumed to be car charging and will be removed from the home load data (default 6 = 6kW).
+- **input_number.predbat_car_charging_threshold** - Sets the threshold above which home consumption is assumed to be car charging and will be removed from the home load data (default 6 = 6kW).
### Planned Car Charging
@@ -448,18 +449,33 @@ Enter the charging curve as a series of steps of % of max charge rate for each s
The default is 1.0 (full power) charge all the way to 100%.
-Modelling the charge curve becomes important if you have limited charging slots (e.g. ony a few hours a night) or you wish to make accurate use of the
+Modelling the charge curve becomes important if you have limited charging slots (e.g. only a few hours a night) or you wish to make accurate use of the
low power charging mode (**switch.predbat_set_charge_low_power**).
-Predbat can now automatically calculate the charging curve for you if you have enough suitable data in your load history. The charging curve will be calculated
+Predbat can now automatically calculate the charging curve for you if you have enough suitable historical data in Home Assistant. The charging curve will be calculated
when battery_charge_power_curve option is *not* set in apps.yaml and Predbat is started for the first time (due to restarting AppDaemon or an edit to apps.yaml).
-You should look at the AppDaemon/Predbat logfile to find the predicted charging curve and copy/paste it into your apps.yaml. This will also include a recommendation
-for how to set your **battery_rate_max_scaling** setting in HA.
+You should look at the [AppDaemon/Predbat logfile](output-data.md#predbat-logfile) to find the predicted battery charging curve and copy/paste it into your `apps.yaml` file.
+This will also include a recommendation for how to set your **battery_rate_max_scaling** setting in HA.
Setting This option to **auto** will cause the computed curve to be stored and used automatically. This is not recommended if you use low power charging mode as your
history will eventually not contain any full power charging data to compute the curve, so in this case it's best to manually save the data.
-Example from a GivEnergy 9.5kWh battery with latest firmware and Gen 1 inverter:
+NB: In order for Predbat to have calculate your charging curve it needs to have access to historical Home Assistant data for battery_charge_rate, battery_power and soc_kw.
+
+If you are using the recommended default [REST mode to control your inverter](#inverter-control-configurations) then you will need to uncomment out the following entries in apps.yaml:
+
+```yaml
+ charge_rate:
+ - number.givtcp_{geserial}_battery_charge_rate
+ battery_power:
+ - sensor.givtcp_{geserial}_battery_power
+ soc_kw:
+ - sensor.givtcp_{geserial}_soc_kwh
+```
+
+Once the battery charge curve has been created these entries can be commented out again in `apps.yaml`.
+
+Example charging curve from a GivEnergy 9.5kWh battery with latest firmware and Gen 1 inverter:
```yaml
battery_charge_power_curve:
diff --git a/docs/car-charge-planning.md b/docs/car-charge-planning.md
index 2f15d216a..5b2485ac9 100644
--- a/docs/car-charge-planning.md
+++ b/docs/car-charge-planning.md
@@ -2,12 +2,17 @@
There are two ways to plan car charging slots:
-- If you have Intelligent Octopus import tariff and the Octopus Energy integration - in which case Predbat will use the slots allocated by Octopus Energy in battery prediction
- - Ensure **octopus_intelligent_slot** in `apps.yaml` points to the Intelligent Slot sensor in the Octopus Energy integration
+- If you have Intelligent Octopus import tariff and the Octopus Energy integration - in which case Predbat will use the slots allocated by Octopus Energy in battery prediction.
+The [Octopus Energy integration supports Octopus Intelligent](https://bottlecapdave.github.io/HomeAssistant-OctopusEnergy/entities/intelligent/),
+and through that Predbat gets most of the information it needs.
+ - **octopus_intelligent_slot** in `apps.yaml` is pre-configured with a regular expression to point to the Intelligent Slot sensor in the Octopus Energy integration.
+You should not need to change this, but its worth checking the [Predbat logfile](output-data.md#predbat-logfile) to confirm that it has found your Octopus account details
- Set **switch.predbat_octopus_intelligent_charging** to True
- - Information about the car's battery size will also be extracted from the Octopus Energy integration
- - You will need to set the cars current soc sensor, **car_charging_soc** in apps.yaml correctly to have accurate results
- - If you set **car_charging_limit** in `apps.yaml` then Predbat can also know if the car's limit is set lower than in Intelligent Octopus
+ - Information about the car's battery size will be automatically extracted from the Octopus Energy integration
+ - You should set the cars current soc sensor, **car_charging_soc** in `apps.yaml` to point to a sensor that specifies the car's current % charge level to have accurate results.
+This should normally be a sensor provided by your car charger. If you don't have this available for your charger then Predbat will assume the charge level is 0%.
+ - If you set **car_charging_limit** in `apps.yaml` then Predbat can also know if the car's limit is set lower than in Intelligent Octopus.
+ If you don't set this Predbat will default to 100%.
- You can use **car_charging_now** as a workaround to indicate your car is charging but the Intelligent API hasn't reported it.
- Let the Octopus app control when your car charges
diff --git a/docs/configuration-guide.md b/docs/configuration-guide.md
index d6ce5187b..54fb647d6 100644
--- a/docs/configuration-guide.md
+++ b/docs/configuration-guide.md
@@ -12,11 +12,11 @@ It is recommended that you [create a dashboard page](output-data.md#displaying-o
This page gives a summary of some of the key configuration settings you should consider in Predbat for different energy tariffs;
the [Predbat customisation guide](customisation.md) details all the Predbat customisation options.
-You should try to tune **input_number.inverter_loss**, **input_number.battery_loss** and **input_number.battery_loss_discharge** to the correct % loss for your system
-in order to get more accurate predictions. Around 4% for each is good for a hybrid inverter.
-Also set **switch.inverter_hybrid** to True or False depending upon if you have a Hybrid or AC-Coupled battery.
+You should try to tune **input_number.predbat_inverter_loss**, **input_number.predbat_battery_loss** and **input_number.predbat_battery_loss_discharge** to the correct % loss
+for your system in order to get more accurate predictions. Around 4% for each is good for a hybrid inverter.
+Also set **switch.predbat_inverter_hybrid** to True or False depending upon if you have a Hybrid or AC-Coupled battery.
-The setting **input_number.metric_battery_cycle** (_expert mode_) can be used to put a 'virtual cost' in pence per kWh on using your battery for charging and discharging.
+The setting **input_number.predbat_metric_battery_cycle** (_expert mode_) can be used to put a 'virtual cost' in pence per kWh on using your battery for charging and discharging.
If you configure this number higher then more expensive plans will be selected which avoids charging and discharging your battery as much.
The default is 1p but can be set to 0 if you want to turn this feature off.
@@ -47,9 +47,9 @@ If you are using expert mode then these options maybe worth reviewing:
|---------|---------------|-------------|
| input_number.predbat_forecast_plan_hours | 24 | If you set this to 24 then you will have quicker updates, the cycle repeats itself anyhow |
| switch.predbat_combine_charge_slots | True | As you have just one overnight rate then one slot is fine |
-| input_number.metric_min_improvement | 0 | Charge less if it's cost neutral |
+| input_number.predbat_metric_min_improvement | 0 | Charge less if it's cost neutral |
-You should set **select.predbat_mode** to 'Control Charge'
+You should set **select.predbat_mode** to 'Control charge'
## Cheap night rate, with a good export rate (e.g. Intelligent Octopus with Octopus Outgoing)
@@ -67,12 +67,12 @@ If you are using expert mode then these options maybe worth reviewing, otherwise
|---------|---------------|-------------|
| input_number.predbat_forecast_plan_hours | 24 | If you set this to 24 then you will have quicker updates, the cycle repeats itself anyhow |
| switch.predbat_combine_charge_slots | ? | Setting to False will allow charging at more expensive day rates when it's worth it to export more |
-| input_number.metric_min_improvement | 0 | Charge less if it's cost neutral |
-| input_number.metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
-| input_number.metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
+| input_number.predbat_metric_min_improvement | 0 | Charge less if it's cost neutral |
+| input_number.predbat_metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
+| input_number.predbat_metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
| input_number.predbat_best_soc_min | ? | Can be set non-zero if you want to force a minimum charge level |
-You should set **select.predbat_mode** to 'Control Charge & Discharge'
+You should set **select.predbat_mode** to 'Control charge & discharge'
## Multiple rates for import and export (e.g. Octopus Flux & Cozy)
@@ -92,12 +92,12 @@ If you are using expert mode then these options maybe worth reviewing, otherwise
|---------|---------------|-------------|
| input_number.predbat_forecast_plan_hours | 24 | If you set this to 24 then you will have quicker updates, the cycle repeats itself anyhow |
| switch.predbat_combine_charge_slots | ? | Setting to False will allow charging at more expensive day rates when it's worth it to export more |
-| input_number.metric_min_improvement | 0 | Charge less if it's cost neutral |
-| input_number.metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
-| input_number.metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
+| input_number.predbat_metric_min_improvement | 0 | Charge less if it's cost neutral |
+| input_number.predbat_metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
+| input_number.predbat_metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
| input_number.predbat_best_soc_min | 0 | Don't use non-zero otherwise all slots will be force charging |
-You should set **select.predbat_mode** to 'Control Charge & Discharge'
+You should set **select.predbat_mode** to 'Control charge & discharge'
## Half hourly variable rates (e.g. Octopus Agile)
@@ -114,10 +114,10 @@ If you are using expert mode then these options maybe worth reviewing, otherwise
| Item | Value | Comment |
|---------|---------------|-------------|
| input_number.predbat_forecast_plan_hours | 24-48 | If you set this to 24 then you will have quicker updates, going to 36/48 for a longer plan |
-| input_number.metric_min_improvement | 0 | Charge less if it's cost neutral |
-| input_number.metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
-| input_number.metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
+| input_number.predbat_metric_min_improvement | 0 | Charge less if it's cost neutral |
+| input_number.predbat_metric_min_improvement_discharge | 0.1 | Discharge only if there is a profit |
+| input_number.predbat_metric_battery_cycle | ? | Higher numbers mean less charging and discharging but higher costs |
| input_number.predbat_best_soc_min | 0 | Don't use non-zero otherwise all slots will be force charging |
-| switch.calculate_fast_plan | False | The fast plan feature reduces accuracy of planning |
+| switch.predbat_calculate_fast_plan | False | The fast plan feature reduces accuracy of planning |
-You should set **select.predbat_mode** to 'Control Charge & Discharge'
+You should set **select.predbat_mode** to 'Control charge & discharge'
diff --git a/docs/customisation.md b/docs/customisation.md
index cd047df19..35f3a7b68 100644
--- a/docs/customisation.md
+++ b/docs/customisation.md
@@ -44,12 +44,12 @@ both charge and discharge, reset charge and discharge rates to full power and re
### Predbat Monitor mode
-In **monitor** mode Predbat will not control or Plan any charging or discharging, inverter balancing will take place if enabled,
+In **Monitor** mode Predbat will not control or Plan any charging or discharging, inverter balancing will take place if enabled,
and the plan will show just what is expected based on the current inverter configuration alone.
-### Predbat Control SOC Only mode
+### Predbat Control SOC only mode
-In **Control SOC Only** mode Predbat will adjust the target charge percentage (SOC target) according to the Best plan, but the charge
+In **Control SOC only** mode Predbat will adjust the target charge percentage (SOC target) according to the Best plan, but the charge
window will not be modified.
This mode can be useful if you just have one fixed charge slot per day and you only want Predbat to control the percentage the battery is charged based on solar generation
@@ -57,17 +57,17 @@ and predicted house load.
_CAUTION: You must manually set any charging required on the inverter and if the charge window is disabled then no charging will take place._
-### Predbat Control Charge mode
+### Predbat Control charge mode
-In **Control Charge** mode Predbat will set the charge times and charge percentages according to the Best plan, charging can be enabled and
+In **Control charge** mode Predbat will set the charge times and charge percentages according to the Best plan, charging can be enabled and
disabled by Predbat.
Predbat will set the inverter into Eco mode when required to enable the battery to support house load, but it will not plan any forced discharging of the battery for export purposes.
This mode can be useful if you don't have an export rate, or if you want to preserve the battery for home demand.
-### Predbat Control Charge & Discharge mode
+### Predbat Control charge & discharge mode
-In **Control Charge and Discharge** mode Predbat will set both charge and discharge times and control charge and discharge percentages.
+In **Control charge & discharge** mode Predbat will set both charge and discharge times and control charge and discharge percentages.
If you have set the **switch.predbat_set_discharge_freeze_only** set to True then forced export won't occur but Predbat can force the export
of solar power to the grid when desired.
@@ -94,19 +94,19 @@ reduce your CPU load.
## Battery loss options
-**input_number.battery_loss** is an assumed percentage figure for energy lost when charging the battery, the default 0.05 is 5%.
+**input_number.predbat_battery_loss** is an assumed percentage figure for energy lost when charging the battery, the default 0.05 is 5%.
-**input_number.battery_loss_discharge** is an assumed percentage figure for energy lost whilst discharging the battery, the default 0.05 is 5%.
+**input_number.predbat_battery_loss_discharge** is an assumed percentage figure for energy lost whilst discharging the battery, the default 0.05 is 5%.
-**input_number.inverter_loss** is an assumed percentage figure for energy lost during the conversion within the inverter from DC to AC or AC to DC,
+**input_number.predbat_inverter_loss** is an assumed percentage figure for energy lost during the conversion within the inverter from DC to AC or AC to DC,
the default is 0% for legacy reasons but please adjust.
-**switch.inverter_hybrid** Set to True if you have a hybrid inverter so no inverter losses will be applied for DC charging from Solar generation.
+**switch.predbat_inverter_hybrid** Set to True if you have a hybrid inverter so no inverter losses will be applied for DC charging from Solar generation.
Set to False if you have an AC coupled battery and inverter losses will be applied when charging from solar.
NB: This switch only applies when Predbat is modelling solar charging.
All grid charging (regardless of inverter type) has to undergo an AC to DC conversion and so the inverter_loss % will be included in Predbat's model when charging from the grid.
-**input_number.metric_battery_cycle** (_expert mode_) This sets a 'virtual cost' in pence per kWh on using your battery for charging and discharging.
+**input_number.predbat_metric_battery_cycle** (_expert mode_) This sets a 'virtual cost' in pence per kWh on using your battery for charging and discharging.
Higher numbers will reduce battery cycles at the expense of using higher energy costs.
In theory if you think your battery will last say 6000 complete cycles and cost you £4000 and is 9.5kWh then each full charge and discharge cycle is 19kWh
and so the cost per cycle is £4000 / 19 / 6000 = 3.5p.
@@ -130,12 +130,12 @@ greater than 1.0 will value it more (and hence hold more charge at the end of th
## Scaling and weight options
-**input_number.battery_rate_max_scaling** is a percentage factor to adjust your maximum charge rate from that reported by the inverter.
+**input_number.predbat_battery_rate_max_scaling** is a percentage factor to adjust your maximum charge rate from that reported by the inverter.
For example a value of 0.95 would be 95% and indicate charging at 5% slower than reported. For GE inverters the charge rate reports the max
AC rate and thus needs to be reduced by inverter losses.
You can try computing your discharge curve and check recommendations for changing this figure in the logfile.
-**input_number.battery_rate_max_scaling_discharge** is a percentage factor to adjust your maximum discharge rate from that reported by the inverter.
+**input_number.predbat_battery_rate_max_scaling_discharge** is a percentage factor to adjust your maximum discharge rate from that reported by the inverter.
For GE inverters the discharge rate is reported as the max AC rate and thus is fairly accurate.
You can try computing your discharge curve and check recommendations for changing this figure in the logfile.
@@ -143,20 +143,20 @@ You can try computing your discharge curve and check recommendations for changin
rather than from the normal GivTCP reported 'Battery Capacity kWh' size.
If your battery size is reported wrongly maybe try turning this on and see if it helps.
-**input_number.load_scaling** is a percentage Scaling factor applied to historical load, increase this if you want to be more pessimistic on future consumption.
+**input_number.predbat_load_scaling** is a percentage Scaling factor applied to historical load, increase this if you want to be more pessimistic on future consumption.
Use 1.0 to use exactly previous load data. A value of 1.1 for example would add 10% to historical load.
-**input_number.load_scaling10** is a percentage Scaling factor applied to historical load only for the PV10% scenario (this is in addition to load_scaling above).
+**input_number.predbat_load_scaling10** is a percentage Scaling factor applied to historical load only for the PV10% scenario (this is in addition to load_scaling above).
This can be used to make the PV10% scenario take into account extra load usage and hence be more pessimistic while leaving the central
scenario unchanged. The default is 1.1 meaning an extra 10% load is added. This will only have an impact if the PV 10% weighting is non-zero.
-**input_number.load_scaling_saving** is a percentage Scaling factor applied to historical load only during Octopus Saving sessions.
+**input_number.predbat_load_scaling_saving** is a percentage Scaling factor applied to historical load only during Octopus Saving sessions.
This can be used to model your household cutting down on energy use inside a saving session (e.g. turning off a heat pump, deferring cooking until after the session, etc).
-**input_number.pv_scaling** is a percentage scaling factor applied to PV data, decrease this if you want to be more pessimistic on PV production vs Solcast.
+**input_number.predbat_pv_scaling** is a percentage scaling factor applied to PV data, decrease this if you want to be more pessimistic on PV production vs Solcast.
Use 1.0 to use exactly use the Solcast forecast generation data. A value of 0.9 for example would remove 10% from the Solcast generation forecast.
-**input_number.pv_metric10_weight** is the percentage weighting given to the Solcast 10% PV scenario in calculating solar generation.
+**input_number.predbat_pv_metric10_weight** is the percentage weighting given to the Solcast 10% PV scenario in calculating solar generation.
Use 0.0 to disable using the PV 10% in Predbat's forecast of solar generation.
A value of 0.1 assumes that 1 in every 10 times we will get the Solcast 10% scenario, and 9 in every 10 times we will get the 'median' Solcast forecast.
Predbat estimates solar generation for each half hour slot to be a pv_metric10_weight weighting of the Solcast 10% PV forecast to the Solcast Median forecast.
@@ -165,7 +165,7 @@ A value of 0.15 is recommended.
## Historical load data
The historical load data is taken from the load sensor as configured in `apps.yaml` and the days are selected
-using **days_previous** and weighted using ***days_previous_weight** in the same configuration file
+using **days_previous** and weighted using **days_previous_weight** in the same configuration file
**switch.predbat_load_filter_modal** (_expert mode_) when enabled will automatically discard the lowest daily consumption
day from the list of days to use (provided you have more than 1 day selected in days_previous). This can be used to ignore
@@ -178,20 +178,20 @@ a single low usage day in your average calculation. By default is feature is ena
Car charging hold is a feature where you try to filter out previous car charging from your historical data so that
future predictions are more accurate.
-When **car_charging_hold** is enabled when for loads of above the power threshold **car_charging_threshold** are
-assumed to be car charging and **car_charging_rate** will be subtracted from the historical load data.
+When **switch.predbat_car_charging_hold** is enabled when for loads of above the power threshold **input_number.predbat_car_charging_threshold** are
+assumed to be car charging and **input_number.predbat_car_charging_rate** will be subtracted from the historical load data.
-For more accurate results can you use an incrementing energy sensor set with **car_charging_energy** in the apps.yml
-In this case when **car_charging_hold** is enabled historical data will be subtracted from the load data instead of using
+For more accurate results can you use an incrementing energy sensor set with **car_charging_energy** in the `apps.yaml` configuration file.
+In this case when **switch.predbat_car_charging_hold** is enabled historical data will be subtracted from the load data instead of using
the fixed threshold method.
-**car_charging_energy_scale** Is used to scale the **car_charging_energy** sensor, the default units are kWh so
+**input_number.predbat_car_charging_energy_scale** Is used to scale the **car_charging_energy** sensor, the default units are kWh so
if you had a sensor in watts you might use 0.001 instead.
-- **input_number.car_charging_rate** - Set to the car's charging rate in kW per hour (normally 7.5 for 7.5kWh),
+- **input_number.predbat_car_charging_rate** - Set to the car's charging rate in kW per hour (normally 7.5 for 7.5kWh),
but will be pulled automatically from Octopus Energy integration if enabled for Octopus Intelligent.
-**car_charging_loss** gives the amount of energy lost when charging the car (load in the home vs energy added to the battery). A good setting is 0.08 which is 8%.
+**input_number.predbat_car_charging_loss** gives the amount of energy lost when charging the car (load in the home vs energy added to the battery). A good setting is 0.08 which is 8%.
### Car charging plan options
@@ -200,14 +200,14 @@ Car charging planning - is only used if Intelligent Octopus isn't enabled and ca
This feature allows Predbat to create a plan for when you car will charge, but you will have to create an automation
to trigger your car to charge using **binary_sensor.predbat_car_charging_slot** if you want it to match the plan.
-- **car_charging_plan_time** - When using Predbat-led planning set this to the time you want the car to be charged by
+- **select.predbat_car_charging_plan_time** - When using Predbat-led planning set this to the time you want the car to be charged by
-- **car_charging_plan_smart** - When enabled (True) allows Predbat to allocate car charging slots to the cheapest times,
+- **switch.predbat_car_charging_plan_smart** - When enabled (True) allows Predbat to allocate car charging slots to the cheapest times,
when disabled (False) all low rate slots will be used in time order.
**switch.predbat_octopus_intelligent_charging** when true enables the Intelligent Octopus charging feature
which will make Predbat create a car charging plan which is taken from the Intelligent Octopus plan
-you must have set **octopus_intelligent_slot** sensor in apps.yaml to enable this feature.
+you must have set the **octopus_intelligent_slot** sensor in apps.yaml to enable this feature.
If Octopus Intelligent Charging is enabled the switch **switch.predbat_octopus_intelligent_ignore_unplugged** (_expert mode_)
can be used to prevent Predbat from assuming the car will be charging when the car is unplugged. This will only work correctly
@@ -215,7 +215,7 @@ if **car_charging_planned** is set correctly in apps.yaml to detect your car bei
Control how your battery behaves during car charging:
-- **car_charging_from_battery** - When True the car can drain the home battery, Predbat will manage the correct level of battery accordingly.
+- **switch.predbat_car_charging_from_battery** - When True the car can drain the home battery, Predbat will manage the correct level of battery accordingly.
When False home battery discharge will be prevented when your car charges, all load from the car and home will be from the grid. This is achieved
by setting the discharge rate to 0 during car charging and to the maximum otherwise, hence if you turn this switch Off you won't be able to change
your discharge rate outside Predbat. The home battery can still charge from the grid/solar in either case. Only use this if Predbat knows your car
@@ -230,7 +230,8 @@ charging sessions but will not reset it automatically.
See the Predbat mode setting as above for basic calculation options
-**input_number.forecast_plan_hours** is the number of hours after the next charge slot to include in the plan, default 24 hours is the suggested amount (to match energy rate cycles).
+**input_number.predbat_forecast_plan_hours** is the number of hours after the next charge slot to include in the plan,
+default 24 hours is the suggested amount (to match energy rate cycles).
**switch.predbat_calculate_regions** (_expert mode_) When True the a second pass of the initial thresholds is
calculated in 4 hour regions before forming the detailed plan. Is True by default but can be turned off in expert
@@ -245,7 +246,7 @@ longer term plan will be less accurate.
**switch.predbat_calculate_discharge_oncharge** (_expert mode_) When True calculated discharge slots will
disable or move charge slots, allowing them to intermix. When False discharge slots will never be placed into charge slots.
-**switch.set_discharge_during_charge** - If turned off disables inverter discharge during charge slots, useful for multi-inverter setups
+**switch.predbat_set_discharge_during_charge** - If turned off disables inverter discharge during charge slots, useful for multi-inverter setups
to avoid cross charging when batteries are out of balance.
**switch.predbat_calculate_tweak_plan** (_expert mode_) When True causes Predbat to perform a second pass optimisation
@@ -263,50 +264,50 @@ This can help to slightly improve the plan for tariffs like Agile but can make i
## Battery margins and metrics options
-**input_number.best_soc_keep** is the minimum battery level in kWh that Predbat will to try to keep above during the whole period of the simulation time.
-This is a soft constraint only so it is possible for your SoC to drop below this - use **input_number.best_soc_min** for a hard SoC constraint that will always be maintained.
+**input_number.predbat_best_soc_keep** is the minimum battery level in kWh that Predbat will to try to keep above during the whole period of the simulation time.
+This is a soft constraint only so it is possible for your SoC to drop below this - use **input_number.predbat_best_soc_min** for a hard SoC constraint that will always be maintained.
It's usually good to have best_soc_keep set to a value above 0 to allow some margin
in case you use more energy than planned between charge slots.
-**input_number.best_soc_min** (_expert mode_) sets the minimum charge level (in kWh) for charging during each slot and the
+**input_number.predbat_best_soc_min** (_expert mode_) sets the minimum charge level (in kWh) for charging during each slot and the
minimum discharge level also (set to 0 if you want to skip some slots). If you set this to a non-zero value you will need
to use the low rate threshold to control which slots you charge from or you may charge all the time.
-**input_number.best_soc_max** (_expert mode_) sets the maximum charge level (in kWh) for charging during each slot.
+**input_number.predbat_best_soc_max** (_expert mode_) sets the maximum charge level (in kWh) for charging during each slot.
A value of 0 disables this feature.
-**switch.combine_charge_slots** Controls if charge slots of > 30 minutes can be combined. When disabled they will be split up,
+**switch.predbat_combine_charge_slots** Controls if charge slots of > 30 minutes can be combined. When disabled they will be split up,
increasing run times but potentially more accurate for planning. Turn this off if you want to enable ad-hoc import
during long periods of higher rates but you wouldn't charge normally in that period (e.g. pre-charge at day rate before
a saving session). The default is enable (True)
-**switch.combine_discharge_slots** (_expert mode_) Controls if discharge slots of > 30 minute can be combined. When disabled
+**switch.predbat_combine_discharge_slots** (_expert mode_) Controls if discharge slots of > 30 minute can be combined. When disabled
they will be split up, increasing run times but potentially more accurate for planning. The default is disabled (False)
-**input_number.metric_min_improvement** (_expert mode_) sets the minimum cost improvement in pence that it's worth lowering the battery SOC % for.
+**input_number.predbat_metric_min_improvement** (_expert mode_) sets the minimum cost improvement in pence that it's worth lowering the battery SOC % for.
The default value is 0 which means this feature is disabled and the battery will be charged less if it's cost neutral.
-If you use **pv_metric10_weight** then you probably don't need to enable this as the 10% forecast does the same thing better
+If you use **input_number.predbat_pv_metric10_weight** then you probably don't need to enable this as the 10% forecast does the same thing better
Do not use if you have multiple charge windows in a given period as it won't lead to good results (e.g. Agile)
-You could even go to something like -0.1 to say you would charge less even if it cost up to 0.1p more (best used with metric10)
+You could even go to something like -0.1 to say you would charge less even if it cost up to 0.1p more (best used with metric10).
-**input_number.metric_min_improvement_discharge** (_expert mode_) Sets the minimum pence cost improvement it's worth doing a forced discharge (and export) for.
+**input_number.predbat_metric_min_improvement_discharge** (_expert mode_) Sets the minimum pence cost improvement it's worth doing a forced discharge (and export) for.
A value of 0.1 is the default which prevents any marginal discharges. If you increase this value (e.g. you only want to discharge/forced export if definitely very profitable),
then discharges will become less common and shorter.
-**input_number.rate_low_threshold** (_expert mode_) When set to 0 (the default) Predbat will automatically look at the future import rates in the plan
+**input_number.predbat_rate_low_threshold** (_expert mode_) When set to 0 (the default) Predbat will automatically look at the future import rates in the plan
and determine the import rate threshold below which a slot will be considered to be a potential charging slot.
If rate_low_threshold is set to a non zero value this will set the threshold below future average import rates as the minimum to consider for a charge window,
e.g. setting to 0.8 = 80% of average rate.
If you set this too low you might not get enough charge slots. If it's too high you might get too many in the
24-hour period which makes optimisation harder.
-**input_number.rate_high_threshold** (_expert mode_) When set to 0 (the default) Predbat will automatically look at the future export rates in the plan
+**input_number.predbat_rate_high_threshold** (_expert mode_) When set to 0 (the default) Predbat will automatically look at the future export rates in the plan
and determine the threshold above which a slot can be considered a potential exporting slot.
If rate_high_threshold is set to a non zero value this will set the threshold above future average export rates as the minimum export rate to consider exporting for,
e.g. setting to 1.2 = 20% above average rate.
If you set this too high you might not get any export slots. If it's too low you might get too many in the 24-hour period.
-**input_number.metric_future_rate_offset_import** (_expert mode_) Sets an offset to apply to future import energy rates that are
+**input_number.predbat_metric_future_rate_offset_import** (_expert mode_) Sets an offset to apply to future import energy rates that are
not yet published, best used for variable rate tariffs such as Agile import where the rates are not published until 4pm.
If you set this to a positive value then Predbat will assume unpublished import rates are higher by the given amount.
@@ -314,7 +315,7 @@ Setting this to 1 to 1.5p for example results in Predbat being a little more agg
Predbat will charge the battery to a higher percentage than it would otherwise as it expects a cost benefit of using today's lower rates.
NB: this can lead to higher costs and to some export if solar generation is better than forecast.
-**input_number.metric_future_rate_offset_export** (_expert mode_) Sets an offset to apply to future export energy rates that are
+**input_number.predbat_metric_future_rate_offset_export** (_expert mode_) Sets an offset to apply to future export energy rates that are
not yet published, best used for variable rate tariffs such as Agile export where the rates are not published until 4pm.
If you set this to a negative value then Predbat will assume unpublished export rates are lower by the given amount.
@@ -322,39 +323,40 @@ If you set this to a negative value then Predbat will assume unpublished export
calculate the difference between today's actual load and today's predicated load and adjust the rest of the days usage
prediction accordingly. A scale factor can be set with **input_number.predbat_metric_inday_adjust_damping** (_expert mode_)
to either scale up or down the impact of the in-day adjustment (lower numbers scale down its impact). The in-day adjustment
-factor can be see in **predbat.load_inday_adjustment** and charted with the In Day Adjustment chart (template can be found
+factor can be seen in **predbat_load_inday_adjustment** and charted with the In Day Adjustment chart (template can be found
in the charts template in Github).
## Inverter control options
-**switch.set_status_notify** Enables mobile notification about changes to the Predbat state (e.g. Charge, Discharge etc). On by default.
+**switch.predbat_set_status_notify** Enables mobile notification about changes to the Predbat state (e.g. Charge, Discharge etc). On by default.
-**switch.set_inverter_notify** Enables mobile notification about all changes to inverter registers (e.g. setting window, turning discharge on/off).
+**switch.predbat_set_inverter_notify** Enables mobile notification about all changes to inverter registers (e.g. setting window, turning discharge on/off).
Off by default.
**switch.predbat_set_charge_low_power** Enables low power charging mode where the max charge rate will be limited to the
lowest possible to meet the charge target. Only really effective for charge windows >30 minutes.
Off by default.
-**switch.set_reserve_enable** (_expert_mode_) When enabled the reserve setting is used to hold the battery charge level
+**switch.predbat_set_reserve_enable** (_expert_mode_) When enabled the reserve setting is used to hold the battery charge level
once it has been reached or to protect against discharging beyond the set limit. Enabled by default.
-**switch.set_charge_freeze** (_expert mode_) When enabled will allow Predbat to hold the current battery level while drawing
+**switch.predbat_set_charge_freeze** (_expert mode_) When enabled will allow Predbat to hold the current battery level while drawing
from the grid/solar as an alternative to charging. Enabled by default.
-**switch.set_discharge_freeze_only** (_expert mode_) When enabled forced discharge is prevented, but discharge freeze can be used
+**switch.predbat_set_discharge_freeze_only** (_expert mode_) When enabled forced discharge is prevented, but discharge freeze can be used
(if enabled) to export excess solar rather than charging the battery. This is useful with tariffs that pay you for
solar exports but don't allow forced export (brown energy).
-If you have **switch.inverter_hybrid** set to False then if **switch.inverter_soc_reset** (_expert mode_) is set to True then the
+If you have **switch.predbat_inverter_hybrid** set to False then if **switch.predbat_inverter_soc_reset** (_expert mode_) is set to True then the
target SOC % will be reset to 100% outside a charge window. This may be required for AIO inverter to ensure it charges from solar.
-**input_number.set_reserve_min** Defines the reserve percentage to reset the reserve to when not in use, a value of 4 is the minimum and recommended to make use of the full battery.
+**input_number.predbat_set_reserve_min** Defines the reserve percentage to reset the reserve to when not in use,
+a value of 4 is the minimum and recommended to make use of the full battery.
If you want to pre-prepare the battery to retain extra charge in the event of a high likelihood of a grid power outage such as storms predicted,
you can increase set_reserve_min to 100%, and then change it back afterwards.
(Obviously this is only any use if your inverter is wired to act as an Emergency Power Supply or whole-home backup 'island mode' on the GivEnergy AIO).
-**switch.inverter_soc_reset** (_expert mode_) When enabled the target SOC for the inverter(s) will be reset to 100%
+**switch.predbat_inverter_soc_reset** (_expert mode_) When enabled the target SOC for the inverter(s) will be reset to 100%
when a charge slot is not active, this can be used to workaround some firmware issues where the SOC target is
used for solar charging as well as grid charging. When disabled the SOC % will not be changed after a charge slot.
This is disabled by default.
@@ -364,7 +366,7 @@ This is disabled by default.
When you have two or more inverters it's possible they get out of sync so they are at different charge levels or they start to cross-charge (one discharges into another).
When enabled, balance inverters tries to recover this situation by disabling either charging or discharging from one of the batteries until they re-align.
-The apps.yaml contains a setting **balance_inverters_seconds** which defines how often to run the balancing, 30 seconds is recommended if your
+The `apps.yaml` contains a setting **balance_inverters_seconds** which defines how often to run the balancing, 30 seconds is recommended if your
machine is fast enough, but the default is 60 seconds.
Enable the **switch.predbat_balance_inverters_enable** switch in Home Assistant to enable this feature.
@@ -377,31 +379,31 @@ Enable the **switch.predbat_balance_inverters_enable** switch in Home Assistant
## iBoost model options
-iBoost model, when enabled with **switch.iboost_enable** tries to model excess solar energy being used to heat
-hot water (or similar). The predicted output from the iBoost model is returned in **iboost_best**.
+iBoost model, when enabled with **switch.predbat_iboost_enable** tries to model excess solar energy being used to heat
+hot water (or similar). The predicted output from the iBoost model is returned in **predbat.iboost_best**.
-The following entities are only available when you turn on iboost enable:
+The following entities are only available when you turn on iBoost enable:
-**iboost_solar** When enabled assumes iBoost will use solar power to boost.
+**switch.predbat_iboost_solar** When enabled assumes iBoost will use solar power to boost.
-**iboost_min_soc** sets the minimum home battery soc % to enable iboost solar on, default 0
+**input_number.predbat_iboost_min_soc** sets the minimum home battery soc % to enable iBoost solar on, default 0
-**iboost_gas** When enabled assumes IBoost will operate when electric rates are lower than gas rates.
-Note: Gas rates have to be configured in apps.yaml with **metric_octopus_gas**
+**switch.predbat_iboost_gas** When enabled assumes IBoost will operate when electric rates are lower than gas rates.
+Note: Gas rates have to be configured in `apps.yaml` with **metric_octopus_gas**
-**iboost_gas_scale** Sets the scaling of the gas rates used before comparing with electric rates, to account for losses
+**input_number.predbat_iboost_gas_scale** Sets the scaling of the gas rates used before comparing with electric rates, to account for losses
-**iboost_charging** Assume IBoost operates when the battery is charging (can be combined with iboost_gas or not)
+**switch.predbat_iboost_charging** Assume iBoost operates when the battery is charging (can be combined with iboost_gas or not)
-**iboost_max_energy** Sets the max energy sets the number of kwh that iBoost can consume during a day before turning off - default 3kWh
+**input_number.predbat_iboost_max_energy** Sets the max energy sets the number of kWh that iBoost can consume during a day before turning off - default 3kWh
-**iboost_max_power** Sets the maximum power in watts to consume - default 2400
+**input_number.predbat_iboost_max_power** Sets the maximum power in watts to consume - default 2400
-**iboost_min_power** Sets the minimum power in watts to consume - default 500
+**input_number.predbat_iboost_min_power** Sets the minimum power in watts to consume - default 500
You will see **predbat.iboost_today** entity which tracks the estimated amount consumed during the day, and resets at night
-The **binary_sensor.iboost_active** entity will be enabled when IBoost should be active, can be used for automations to trigger boost
+The **binary_sensor.predbat_iboost_active** entity will be enabled when iBoost should be active, can be used for automations to trigger boost
If you have an incrementing Sensor that tracks iBoost energy usage then you should set **iboost_energy_today** sensor in
apps.yaml to point to it and optionally set **iboost_energy_scaling** if the sensor isn't in kWh.
@@ -414,7 +416,7 @@ Using the Home Assistant entity **input_number.predbat_holiday_days_left** you c
you will be away for (including today). The number will count down by 1 day at midnight until it gets back to zero.
Whilst holiday days left is non-zero, Predbat's 'holiday mode' is active.
-When Predbat's 'holiday mode' is active the historical load data will be taken from yesterday's data (1 day ago) rather than from the **days_previous** setting in apps.yaml.
+When Predbat's 'holiday mode' is active the historical load data will be taken from yesterday's data (1 day ago) rather than from the **days_previous** setting in `apps.yaml`.
This means Predbat will adjust more quickly to the new usage pattern.
If you have been away for a longer period of time (more than your normal days_previous setting) then obviously it's going
@@ -458,7 +460,7 @@ _CAUTION: If you leave Predbat turned off for a long period of time then the ove
## Debug
-**switch.debug_enable** when on prints lots of debug, leave off by default
+**switch.predbat_debug_enable** when on prints lots of debug, leave off by default
-**switch.plan_debug** (_expert mode_) when enabled adds some extra debug to the Predbat HTML plan - see [Predbat Plan debug mode](predbat-plan-card.md#debug-mode-for-predbat-plan)
+**switch.predbat_plan_debug** (_expert mode_) when enabled adds some extra debug to the Predbat HTML plan - see [Predbat Plan debug mode](predbat-plan-card.md#debug-mode-for-predbat-plan)
for more details.
diff --git a/docs/energy-rates.md b/docs/energy-rates.md
index 382894e16..02ac3362c 100644
--- a/docs/energy-rates.md
+++ b/docs/energy-rates.md
@@ -201,8 +201,8 @@ rates_import_override:
Would say that during a 1 hour period at 5:30-6:30pm on 21st of Jan set the import rate to 150p and assume our load will be 80% of normal (20% lower).
You can also make relative adjustments to your energy rates, e.g. if you want to avoid exporting during peak periods to improve your energy
-saving session results you could make a relative adjustment your export rates using **rate_increment**.
-The reason not to just set **rate** is then when an energy saving session is active you do not want to ignore the higher export take.
+saving session results you could make a relative adjustment to your export rates using **rate_increment**.
+The reason not to just set **rate** is then when an energy saving session is active you do not want to ignore the higher export rate that is automatically provided by Octopus.
In this example we subtract 10p from our export rate during the period that saving sessions normally fall within and thus steer Predbat away from
force exporting during that time. The saving session will still work correctly as a 10p adjustment on rates >100p will have little/no impact.
@@ -217,8 +217,8 @@ rates_export_override:
You can also use rate_increment with load_scaling, e.g. a rate_increment of 0 can be used to just apply load scaling to certain defined periods.
- **date** is in the date format of "YYYY-MM-DD" e.g. "2023-09-09", **start** and **end** in "HH:MM:SS" time format e.g. "12:30:00", and **rate** in pence.
-- **load_scaling** is a factor, where 1.0 would be no change, 0.8 is 80% of nominal.
-- **rate_increment** is the number of pence to add to the reported energy rates during this period
+- **load_scaling** is a percentage factor, where 1.0 would be no change, 0.8 is 80% of nominal house load.
+- **rate_increment** is the number of pence to add (or subtract) to the reported energy rates during this period
## Rate offsets
diff --git a/docs/faq.md b/docs/faq.md
index 07a07ca64..a7cbe85b2 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -18,15 +18,15 @@ it's better to charge more and not risk getting stung importing.
- Have you checked your energy rates for import and export are correct, maybe check the rates graph and confirm.
If you do something like have export>import then Predbat will try to export as much as possible.
- Have you tuned Solcast to match your output accurately?
-- Have you tuned **best_soc_keep settings**
+- Have you tuned **predbat_best_soc_keep settings**?
- Do you have predicted car charging during the time period?
-- You can also tune **load_scaling** and **pv_scaling** to adjust predictions up and down a bit
+- You can also tune **predbat_load_scaling** and **predbat_pv_scaling** to adjust predictions up and down a bit
- Maybe your historical data includes car charging, you might want to filter this out using car_charging_hold (see below)
## Why didn't the slot actually get configured?
- Are you in read-only mode?
-- Do you have the predbat_mode set to Control Charge (or Charge & Discharge)?
+- Do you have the predbat_mode set to Control charge (or Control charge & discharge)?
## The charge limit keeps increasing/decreasing in the charge window or is unstable
@@ -39,8 +39,8 @@ a script that changes the reserve %, this will cause problems - please disable o
## It's all running but I'm not getting very good results
-- You might want to tune **best_soc_keep** to set a minimum target battery level, e.g. I use 2.0 (for 2kWh, which is just over 20% on a 9.5kWh battery).
-If you set **best_soc_keep** too high then predbat could need to charge the battery in unfavourable import rates, so try to set it to a fairly low value,
+- You might want to tune **input_number.predbat_best_soc_keep** to set a minimum target battery level, e.g. I use 2.0 (for 2kWh, which is just over 20% on a 9.5kWh battery).
+If you set **input_number.predbat_best_soc_keep** too high then predbat could need to charge the battery in unfavourable import rates, so try to set it to a fairly low value,
especially if you have a small battery. If you set it to zero then predbat may not charge at all, so use 0.1 as a minimum.
- Have a read of the [energy rates configuration guide](energy-rates.md) as depending on your tariff different settings maybe required
- Check your solar production is well calibrated (you can compare solcast vs actually in the Home Assistant energy tab or on the GivEnergy portal)
@@ -58,11 +58,12 @@ and [Battery Margins](customisation.md#battery-margins-and-metrics-options) as t
Predbat's default configuration values are the recommended starting values for most users but there is no single right set of configuration values for every user of Predbat,
it depends on many factors and your personal preferences. Many users will need to customise and tweak their [Predbat configuration](customisation.md) to suit their needs.
-The SOC level that Predbat aims to keep in the battery **input_number.best_soc_keep** and the absolute minimum SoC level **input_number.best_soc_min** are the first thing to check.
+The SOC level that Predbat aims to keep in the battery **input_number.predbat_best_soc_keep**
+and the absolute minimum SoC level **input_number.predbat_best_soc_min** are the first thing to check.
If these are set too high then Predbat will charge at unfavourable rates to maintain the battery SoC.
Predbat performs a lowest cost battery optimisation so a key part of deciding whether to charge, discharge or feed the house from the battery are the loss rates
-**input_number.battery_loss**, **input_number.battery_loss_discharge** and **input_number.inverter_loss**.
+**input_number.predbat_battery_loss**, **input_number.predbat_battery_loss_discharge** and **input_number.predbat_inverter_loss**.
Typical values could be 4, 4, 4 or 5, 5, 5. It is tempting to set these inverter loss figures lower to encourage Predbat to use the battery more,
but this should be resisted as experience from the GivEnergy community forum suggests total energy conversion losses are in the range of 10-20%.
@@ -79,13 +80,13 @@ Predbat makes cost optimisation decisions so unless the current import rate is m
If you turn [debug mode on for the Predbat plan](predbat-plan-card.md#debug-mode-for-predbat-plan) then you can see the
effective import and export rates after losses that Predbat calculates in the Predbat plan.
-Predbat also uses **input_number.metric_battery_cycle** (_expert mode_ setting) to apply a 'virtual cost' in pence per kWh for charging and discharging the battery.
+Predbat also uses **input_number.predbat_metric_battery_cycle** (_expert mode_ setting) to apply a 'virtual cost' in pence per kWh for charging and discharging the battery.
The default value is 1p but this this can be changed to a different value to recognise the 'cost of using the battery', or set to zero to disable this feature.
So if metric battery cycle is set to 1p, and continuing the example above, each kWh of battery charge will be costed at 22.7p (21.7p + 1p battery metric to charge),
and the battery will not be discharged to support the home unless the current import rate is more than 25.6p (23.6p + 1p cost of charging + 1p cost to discharge).
-**input_number.metric_min_improvement** and **input_number.metric_min_improvement_discharge** (both _expert mode_ settings) also affect Predbat's cost optimisation decisions
+**input_number.predbat_metric_min_improvement** and **input_number.predbat_metric_min_improvement_discharge** (both _expert mode_ settings) also affect Predbat's cost optimisation decisions
as to whether to charge or discharge the battery so could be tweaked. The defaults (0p and 0.1p respectively) should however give good results for most users.
## Predbat is causing warning messages in the Home Assistant Core log
@@ -93,7 +94,7 @@ as to whether to charge or discharge the battery so could be tweaked. The defaul
- If you have a large **input_number.predbat_forecast_plan_hours** then you may see warning
messages in the Home Assistant Core log about the size of the predbat.plan_html entity.
This is just a warning, the entity isn't stored in the database, but you can suppress it by adding the following
-to your configuration.yaml:
+to your `configuration.yaml` file:
```yaml
# Filter out 'message too large' warnings from Predbat
@@ -134,6 +135,24 @@ If you've run out of API calls you will have to wait until midnight GMT for the
It's recommended that you don't include the Solcast forecast within your GivEnergy portal to avoid running out of API calls.
- Check the [Solcast server API status](https://status.solcast.com/) is OK
+## Note, Can not find battery charge curve
+
+If you get the message "Note: Can not find battery charge curve, one of the required settings for soc_kw, battery_power and charge_rate are missing from apps.yaml" in the logfile
+then Predbat is trying to create a battery charge curve but does not have access to the required history information in Home Assistant.
+
+[Creating the battery charge curve](apps-yaml.md#workarounds) is described in the apps.yaml document.
+The most likely cause of the above message appearing in the logfile is that you are controlling the inverter in REST mode
+but have not uncommented the following entities in apps.yaml that Predbat needs to obtain history from to create the battery charge curve:
+
+```yaml
+ charge_rate:
+ - number.givtcp_{geserial}_battery_charge_rate
+ battery_power:
+ - sensor.givtcp_{geserial}_battery_power
+ soc_kw:
+ - sensor.givtcp_{geserial}_soc_kwh
+```
+
## I have another problem not listed above
If you are still having trouble feel free to raise a [Github ticket](https://github.com/springfall2008/batpred/issues) for support
diff --git a/docs/install.md b/docs/install.md
index 43f1a321e..4617ff556 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -267,13 +267,15 @@ You have configured predbat's control entities, created a couple of dashboard pa
In order to enable Predbat you must delete the 'template: True' line in `apps.yaml` once you are happy with your configuration.
You may initially want to set **select.predbat_mode** to *Monitor* to see how Predbat operates, e.g. by studying the [Predbat Plan](predbat-plan-card.md).
-In *Monitor* mode Predbat will monitor (but not change) the current inverter settings and predict the battery SoC based on predicted Solar Generation and House Load.
+In *Monitor* mode Predbat will monitor (but not change) the current inverter settings and predict the battery SoC based on predicted Solar Generation and House Load.
+NB: In *Monitor* mode Predbat will *NOT* plan any battery charge or discharge activity of its own,
+it will report on the predicted battery charge level based on the current inverter charge & discharge settings, predicted house load and predicted solar generation.
The recommended next step is to start Predbat planning your inverter charging and discharging activity but not (yet) make any changes to the inverter.
This enables you to get a feel for the Predbat plan and [customise Predbat's settings](customisation.md) to meet your needs.
-Set **select.predbat_mode** to the correct [mode of operation](customisation.md#predbat-mode) for your system
-and also set **switch.predbat_set_read_only** to True to stop Predbat making any changes to your inverter.
+Set **select.predbat_mode** to the correct [mode of operation](customisation.md#predbat-mode) for your system - usually 'Control charge' or 'Control charge & discharge'.
+ALSO you should set **switch.predbat_set_read_only** to True to stop Predbat making any changes to your inverter.
Once you are happy with the plan Predbat is producing, and are ready to let Predbat start controlling your inverter charging and discharging,
set the switch **switch.predbat_set_read_only** to False and Predbat will start controlling your inverter.
@@ -282,8 +284,8 @@ You can see the planned charging and discharging activity in the [Predbat Plan](
## Updating Predbat
-Note that future updates to Predbat will not overwrite the `apps.yaml` configuration file that you have tailored to your setup.
-You may therefore need to manually copy across any new apps.yaml settings from the [Template apps.yaml](apps-yaml.md#templates) for new features.
+Note that any future updates to Predbat will not overwrite the `apps.yaml` configuration file that you have tailored to your setup.
+If new Predbat releases introduce new features to apps.yaml you may therefore need to manually copy across the new apps.yaml settings from the [Template apps.yaml](apps-yaml.md#templates).
## HACS Update
@@ -296,8 +298,8 @@ Go to Settings, Add-ons, AppDaemon, and click 'Restart'.
## Predbat built-in update
-Predbat can now update itself, just select the version you want from the **select.predbat_update** drop down menu, the latest version will be at the top of the list.
-Predbat will update itself and automatically restart.
+Predbat can now update itself, just select the version of Predbat you want to install from the **select.predbat_update** drop down menu,
+the latest version will be at the top of the list. Predbat will update itself and automatically restart.
Alternatively, if you turn on **switch.predbat_auto_update**, Predbat will automatically update itself as new releases are published on Github.
diff --git a/docs/output-data.md b/docs/output-data.md
index 1aa5aab1a..6aec0aade 100644
--- a/docs/output-data.md
+++ b/docs/output-data.md
@@ -18,7 +18,8 @@ A set of Apex Charts can also be created to see graphically what Predbat plans t
## Basic status
-- predbat.status - Gives the current status & errors and logs any changes that Predbat makes to your inverter
+- predbat.status - Gives the current status & errors and logs any changes that Predbat makes to your inverter.
+The different Predbat status values and their meanings are detailed in [what does predbat do](what-does-predbat-do.md#predbat-status).
## Baseline data
diff --git a/docs/predbat-plan-card.md b/docs/predbat-plan-card.md
index 45dcce03c..4944b9344 100644
--- a/docs/predbat-plan-card.md
+++ b/docs/predbat-plan-card.md
@@ -102,7 +102,8 @@ If the SOC is 50% or greater it will be coloured Green, 20% or greater, Yellow,
If the cost for the slot is 10p or more it will be coloured Orangey-Red, ½p or more it will be coloured Yellow, -½p or less it will be coloured Green,
otherwise it will be coloured White.
-- **Total** - The total cumulative cost so far for 'today' at the start of the slot. At midnight tonight this cumulative cost will be reset to zero.
+- **Total** - The total cumulative cost so far for 'today' at the start of the slot, including the standing charge.
+At midnight tonight this cumulative cost will be reset to the daily standing charge (or zero if metric_standing_charge wasn't set in `apps.yaml`).
Due to the way Predbat works, total cost is always reported (in Predbat output entities, this HTML plan, in the [Apex charts](creating-charts.md), etc)
as starting from midnight today and adding on from there.
Looking at the sample Predbat plan above as an example, the plan starts at 10:00 with total cost today already being £3.13. The house load is then fully met through the day and evening
@@ -116,7 +117,7 @@ Total cost is always coloured White.
If [Predbat expert mode](customisation.md#expert-mode) is turned on then a number of additional controls and switches are made available in Home Assistant.
-If **switch.plan_debug** is then turned on then the Predbat plan shows additional 'debugging' information for the import and export rate columns.
+If **switch.predbat_plan_debug** is then turned on then the Predbat plan shows additional 'debugging' information for the import and export rate columns.
The Predbat plan will now look like this with plan_debug turned on:
@@ -125,6 +126,7 @@ The Predbat plan will now look like this with plan_debug turned on:
Import and Export rate will now show the actual rate (according to how you have setup the [energy rates](energy-rates.md)) and also in brackets the *effective* import or export rate.
The *effective rate* takes into account [battery and inverter energy losses](customisation.md#battery-loss-options) for charging and discharging and converting from DC to AC and vice-versa.
+Note that the Cost and Total columns are always based upon the actual Import and Export rate.
Using the above debug plan as an example:
diff --git a/docs/what-does-predbat-do.md b/docs/what-does-predbat-do.md
index d9ee74af6..da321c936 100644
--- a/docs/what-does-predbat-do.md
+++ b/docs/what-does-predbat-do.md
@@ -55,13 +55,17 @@ exported if the battery is full. This is described as 'ECO' Mode for GivEnergy i
- **Charging** - The battery charges from the grid and the grid also covers any load. Solar power will also be used to charge the battery.
-- **Freeze charging** - The current battery level is held and the grid/solar covers any load. Solar power will also be used to charge the battery.
+- **Freeze charging** - The current battery level (SoC) is held and the grid/solar covers any load. Think of it as a charge to the current battery level.
+If there is excess Solar power above house load, the solar will be used to charge the battery,
+but if there is a shortfall of Solar power to meet house load, the excess house load is met from grid import.
+
- **Hold charging** - A type of charge where the target SOC % is the same as the current SOC %, effectively the same as a charge freeze (but without being explicitly selected).
- **No Charge** - A charge where the target SOC % is lower than the current battery SOC level so there will be no charging unless the usage is unexpectedly high.
- **Discharging** - The battery is being force-discharged. The house load will be covered by the battery and any excess is exported to the grid. Any solar generated will be exported.
-- **Freeze discharging** - The battery is covering the load but charging is disabled, thus any solar generated will be exported.
+- **Freeze discharging** - This is the same as Idle (Eco) mode but with charging disabled.
+The battery is covering the load but as charging is disabled, any solar generated will be exported.
- **Error** - There is a configuration error or other problem, you should check the [Predbat AppDaemon log file](output-data.md#predbat-logfile) for more details.