diff --git a/apps/predbat/config.py b/apps/predbat/config.py index 74030ed4c..39a317110 100644 --- a/apps/predbat/config.py +++ b/apps/predbat/config.py @@ -1613,7 +1613,7 @@ "target_soc_used_for_discharge": True, }, "SIG": { - "name": "Huawei Solar", + "name": "Sigenergy Sigenstor", "has_rest_api": False, "has_mqtt_api": False, "output_charge_control": "power", diff --git a/docs/apps-yaml.md b/docs/apps-yaml.md index 0a58fc03c..03e4cde11 100644 --- a/docs/apps-yaml.md +++ b/docs/apps-yaml.md @@ -251,23 +251,24 @@ The template `apps.yaml` for each inverter type comes pre-configured with regula If you have more than one inverter or entity names are non-standard then you will need to edit apps.yaml for your inverter entities. -### Givenergy cloud direct +### Givenergy Cloud Direct -Predbat now supports direct communication with the GivEnergy cloud services, with this method you can have your inverter auto-configured. -Just log into the GivEnergy web site and create an API key and copy it into the key settings. The number of inverters and their settings -will be configured automatically. +Predbat now supports direct communication with the GivEnergy cloud services instead of local control via GivTCP to your inverter. -If you set **ge_cloud_automatic** to False then you can manually configure to point to Predbat's GE Cloud configuration. +Log into the GivEnergy Portal web site and create an API key and copy it into the **ge_cloud_key** setting in `apps.yaml`. -If you set **ge_cloud_data** to False then Predbat will use the local data for history rather than the cloud data, you will need to wait until -you have a few days work (at least days_previous days) before this will work correctly. +If you set **ge_cloud_automatic** to True, the number of inverters and their settings will be configured automatically. +Or, if you set **ge_cloud_automatic** to False then you need to manually configure **ge_cloud_serial** to your inverter serial number for Predbat to use on the GivEnergy Cloud. + +If you set **ge_cloud_data** to False then Predbat will use the local Home Assistant data for history rather than the cloud data; +you will need to wait until you have a few days of history established (at least days_previous days) before this will work correctly. ```yaml - ge_cloud_data: True - ge_cloud_serial: '{geserial}' - ge_cloud_key: 'xxxxx' ge_cloud_direct: True ge_cloud_automatic: True + ge_cloud_serial: '{geserial}' + ge_cloud_key: 'xxxxx' + ge_cloud_data: True ``` ### num_inverters @@ -280,23 +281,26 @@ The number of inverters you have. If you increase this above 1 you must provide ### inverter_type -inverter_type defaults to 'GE' (GivEnergy) if not set in apps.yaml, or should be set to one of the inverter types that are already pre-programmed into Predbat: +inverter_type defaults to 'GE' (GivEnergy) if not set in `apps.yaml`, or should be set to one of the inverter types that are already pre-programmed into Predbat: - GE: GivEnergy - GEC: GivEnergy Cloud + FoxCloud: Fox Cloud integration + FoxESS: FoxESS via modbus + GE: GivEnergy via GivTCP + GEC: GivEnergy Cloud integration GEE: GivEnergy EMC GS: Ginlong Solis + HU: Huawei Solar + SA: Solar Assistant SE: SolarEdge - SX4: Solax Gen4 (Modbus Power Control) SF: Sofar HYD SFMB: Sofar HYD with solarman modbus - HU: Huawei Solar + SIG: SigEnergy Sigenstor SK: Sunsynk - SA: Solar Assistant + SX4: Solax Gen4 (Modbus Power Control) If you have multiple inverters, then set inverter_type to a list of the inverter types. -If you have created a [custom inverter type](inverter-setup.md#i-want-to-add-an-unsupported-inverter-to-predbat) in apps.yaml then inverter_type must be set to the same code as has been used in the custom inverter definition. +If you have created a [custom inverter type](inverter-setup.md#i-want-to-add-an-unsupported-inverter-to-predbat) in `apps.yaml` then inverter_type **must** be set to the same code as has been used in the custom inverter definition. ### geserial @@ -310,7 +314,7 @@ If you have more than one GivEnergy inverter you will need one per inverter to ``` If you are running GivTCP v3 and have an 'All-In-One' (AIO) or a 3-phase inverter then the helper regular expression will not correctly work -and you will need to manually set geserial in apps.yaml to your inverter serial number, e.g.: +and you will need to manually set geserial in apps.yaml to your inverter serial number which must be entered in lower case, e.g.: ```yaml geserial: 'chNNNNgZZZ' @@ -498,21 +502,26 @@ The **givtcp_rest** line should be commented out/deleted on anything but GivTCP #### Charge/Discharge rate - **charge_rate** - Battery charge rate entity in watts -- **discharge_rate** - Battery discharge max rate entity in watts +- **discharge_rate** - Battery discharge rate entity in watts or - **charge_rate_percent** - Battery charge rate entity in percent of maximum rate (0-100) - **discharge_rate_percent** - Battery discharge max rate entity in percent of maximum rate (0-100) +or + +- **timed_charge_current** - Battery charge rate entity in amps +- **timed_discharge_current** - Battery discharge rate entity in amps + #### Battery Information -- **battery_voltage** - Current battery voltage (only needed for inverters controlled via amps) +- **battery_voltage** - Nominal maximum battery voltage (not current battery voltage) - only needed for inverters controlled via Amps and used internally by Predbat to convert Watts to Amps to control the inverter. - **battery_rate_max** - Sets the maximum battery charge/discharge rate in watts (e.g. 6000). For GivEnergy inverters this can be determined from the inverter, but must be set for non-GivEnergy inverters or Predbat will default to 2600W. - **soc_max** - Entity name for the maximum charge level for the battery in kWh -- **battery_min_soc** - When set limits the target SOC% setting for charge and discharge to a minimum percentage value -- **reserve** - sensor name for the reserve setting in % -- **battery_temperature** - Defined the temperature of the battery in degrees C (default is 20 if not set) +- **battery_min_soc** - When set limits the target SoC% setting for charge and discharge to a minimum percentage value +- **reserve** - sensor name for the reserve SoC % setting. The reserve SoC is the lower limit target % to discharge the battery down to. +- **battery_temperature** - Defined the temperature of the battery in degrees C (default is 20 if not set). #### Power Data @@ -566,15 +575,23 @@ or - **charge_start_time** - Battery charge start time entity - can be a HA select entity in format HH:MM or HH:MM:SS or a HA time entity. - **charge_end_time** - Battery charge end time entity - can be a HA select entity in format HH:MM or HH:MM:SS or a HA time entity. +- **discharge_start_time** - Battery discharge start time, same format as charge_start_time. +- **discharge_end_time** - Battery discharge end time, same format as charge_end_time. +- **charge_start_hour**, **charge_start_minute** - Battery charge start time for inverters with separate hour and minute control entities. +- **charge_end_hour**, **charge_end_minute** - Ditto for battery charge end time. +- **discharge_start_hour**, **discharge_start_minute** - Ditto for battery discharge start time +- **discharge_end_hour** and **discharge_end_minute** - Ditto for battery discharge end time +- **charge_time** - Battery charge time entity for inverters that require a charge time expressed as a range in the format "*start hour*:*start minute*-*end hour*:*end minute*". +- **discharge_time** = Ditto battery discharge time expressed as a time range. - **charge_limit** - Entity name for used to set the SOC target for the battery in percentage (AC charge target) -- **scheduled_charge_enable** - Scheduled charge enable config -- **scheduled_discharge_enable** - Scheduled discharge enable config -- **discharge_start_time** - scheduled discharge slot_1 start time -- **discharge_end_time** - scheduled discharge slot_1 end time +- **scheduled_charge_enable** - Switch to enable/disable battery charge according to the charge start/end times defined above. +- **scheduled_discharge_enable** - Switch to enable/disable battery discharge according to the discharge start/end times defined above. - **discharge_target_soc** - Set the battery target percent for timed exports, will be written to minimum by Predbat. -- **pause_mode** - Givenergy pause mode register (if present) +- **pause_mode** - GivEnergy pause mode register (if present) - **pause_start_time** - scheduled pause start time (only if supported by your inverter) - **pause_end_time** - scheduled pause start time (only if supported by your inverter) +- **idle_start_time** - start time for idle (Eco) mode - for GivEnergy EMS +- **idle_end_time** - end time for idle (Eco) mode - for GivEnergy EMS If you are using REST control the configuration items should still be kept as not all controls work with REST. @@ -627,9 +644,9 @@ Example service is below: entity_id: "switch.sunsynk_inverter_use_timer" ``` -See [Service API](https://springfall2008.github.io/batpred/inverter-setup/#service-api) for details. +See [Service API](inverter-setup.md#has_service_api) for details. -Note that **device_id** will be passed to the service automatically, it can be set in apps.yaml. +Note that **device_id** will be passed to the service automatically, or it can be set in `apps.yaml`. ### MQTT API @@ -873,10 +890,11 @@ high battery charge levels when the car was charged previously (e.g. last week). *TIP:* Check the house load being reported by your inverter when your car is charging. If it doesn't include the car charging load then there is no need to follow these steps below (and if you do, you'll artificially deflate your house load). -- **switch.predbat_car_charging_hold** - A Home Assistant switch that when turned on (True) tells Predbat to remove car charging data from your historical house load -so that Predbat's battery prediction plan is not distorted by previous car charging. +- **switch.predbat_car_charging_hold** - A switch that when turned on (True) tells Predbat to remove car charging data from your historical house load so that Predbat's battery prediction plan is not distorted by previous car charging. Default is off. -- **car_charging_energy** - Set in `apps.yaml` to point to a Home Assistant entity which is the daily incrementing kWh data for the car charger. +If you are getting erroneous house load predictions in your plan then check this setting and **car_charging_energy** are set correctly. + +- **car_charging_energy** - Set in `apps.yaml` to point to an entity which is the daily incrementing kWh data for the car charger. This has been pre-defined as a regular expression that should auto-detect the appropriate Wallbox and Zappi car charger sensors, or edit as necessary in `apps.yaml` for your charger sensor.
Note that this must be configured to point to an 'energy today' sensor in kWh not an instantaneous power sensor (in kW) from the car charger.

@@ -892,13 +910,10 @@ car_charging_energy can be set to a list of energy sensors, one per line if you - sensor.mixergy_ID_energy ``` -- **input_number.predbat_car_charging_energy_scale** - A Home Assistant entity used to define a scaling factor (in the range of 0 to 1.0) -to multiply the car_charging_energy sensor data by if required (e.g. set to 0.001 to convert Watts to kW). - -If you do not have a suitable car charging energy 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.predbat_car_charging_energy_scale** - Used to define a scaling factor (in the range of 0 to 1.0) +to multiply the car_charging_energy sensor data by if required (e.g. set to 0.001 to convert Watts to kW). Default 1.0, i.e. no scaling. -- **input_number.predbat_car_charging_threshold** (default 6 = 6kW)- Sets the kW power threshold above which home consumption is assumed to be car charging -and **input_number.predbat_car_charging_rate** will be subtracted from the historical load data. +If you do not have a suitable car charging energy kWh sensor in Home Assistant then comment the car_charging_energy line out of `apps.yaml` and configure **input_number.predbat_car_charging_threshold** (see [Additional car charging configuration](car-charging.md#additional-car-charging-configurations)). ### Planned Car Charging @@ -945,7 +960,7 @@ low rate slot for the car/house (and might therefore start charging the battery) WARNING: Some cars will briefly start charging as soon as they are plugged in, which Predbat will detect and assume that this is a low rate slot even when it isn't. It is therefore recommended that you do NOT set car_charging_now unless you have problems with the Octopus Intelligent slots, and car_charging_now should be commented out in `apps.yaml`. -**CAUTION:** Do not use car_charging_now with Predbat led charging or you will create an infinite loop. Do you use car_charging_now with Octopus intelligent +**CAUTION:** Do not use car_charging_now with Predbat-led charging or you will create an infinite loop. Only use car_charging_now with Octopus Intelligent-led charging unless you can't make it work any other way as it will assume all car charging is at a low rate. - **car_charging_now_response** - Set to the range of positive responses for car_charging_now to indicate that the car is charging. diff --git a/docs/car-charging.md b/docs/car-charging.md index 7c6d96df0..91cda4b63 100644 --- a/docs/car-charging.md +++ b/docs/car-charging.md @@ -13,59 +13,80 @@ Start by configuring the [Car charging settings in apps.yaml](apps-yaml.md#car-c There are two ways that Predbat can plan the slots for charging your car: +### Octopus-led charging + - If you have the Intelligent Octopus import tariff, have completed enrollment of your car/charger to Intelligent Octopus (requires a compatible charger or car), and you have installed the Octopus Energy integration - in which case Predbat will use the car charging 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 it is 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 be automatically extracted from the Octopus Energy integration - - You should set the car's current SoC sensor, **car_charging_soc** in `apps.yaml` to point to a Home Assistant 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 car's current 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 - - The switch **switch.predbat_octopus_intelligent_consider_full** (_expert mode_) - when turned on will cause Predbat to predict when your car battery is full and assume no further charging will occur. - This can be useful if Octopus does not know your car battery's state of charge but you have a sensor setup in Predbat (**car_charging_soc**) which does know the current charge level. - Predbat will still assume all Octopus charging slots are low rates even if some are not used by your car. - The default for this option is False. - - The switch **switch.predbat_octopus_intelligent_ignore_unplugged** (_expert mode_) - can be used to prevent Predbat from assuming the car will be charging or that future extra low-rate slots apply when the car is unplugged. - This will only work correctly if **car_charging_planned** is set correctly in apps.yaml to detect your car being plugged in - - Let the Octopus app control when your car charges. - - _TIP:_ If you have a Zappi EV charger then you have to set it to Eco+ mode for IOG to control it. - If Predbat starts exporting your battery (e.g. prior to the IOG cheap overnight period) then the Zappi can treat the exported energy as excess solar and start charging the EV battery with it!
- To prevent this happening, in the Zappi configuration set the Export Margin to 8000W so that the Zappi will only charge the EV from excess solar when more than 8000W is being exported (which should never happen). - -- Predbat-led charging - Here Predbat plans and can initiate the car charging based on the upcoming low import rate slots - - Ensure **car_charging_limit**, **car_charging_soc** and **car_charging_planned** are set correctly in `apps.yaml` to point to the appropriate sensors from your EV (see [Car charging config in apps.yaml](apps-yaml.md#car-charging-integration)) - - Check (and if necessary add) the sensor response value from the sensor configured in **car_charging_planned** that is returned - when the car is 'plugged in and ready to charge' is in the list of **car_charging_planned_response** values configured in apps.yaml - - If your car does not have a state of charge (SoC) sensor you can set **switch.predbat_car_charging_manual_soc** to True - to have Predbat create **input_number.predbat_car_charging_manual_soc_kwh** which will hold the cars SoC in kWh.
- You will need to manually set this to the car's current charge level before charging, Predbat will increment it during - charging sessions but will not reset it automatically.
- NB: **input_number.predbat_car_charging_manual_soc_kwh** must be set to the current kWh value of your car battery NOT a percentage SoC figure - otherwise, Predbat won't know how much energy there currently is in the battery.
- NB2: If you have **car_charging_soc** set and working for your car SoC sensor in apps.yaml, **switch.predbat_car_charging_manual_soc** must be set to Off - as otherwise the car SoC sensor will be ignored - - Ensure **switch.predbat_octopus_intelligent_charging** in Home Assistant is set to Off - - Set **input_number.predbat_car_charging_rate** to the car's charging rate in kW per hour (e.g. 7.5 for 7.5kWh) - - If you have more than one car then **input_number.predbat_car_charging_rate_1** will be the second car etc. - - Set **select.predbat_car_charging_plan_time** to the time you want the car charging to be completed by - - Turn on **switch.predbat_car_charging_plan_smart** if you want to use the cheapest slots only. When disabled (turned off) all low-rate slots will be used in time order - - You can set **input_number.predbat_car_charging_plan_max_price** if you want to set a maximum price in pence per kWh to charge your car (e.g. 10p). - If you set this to zero, this feature is disabled, and all low-rate slots will be used. This may mean you need to use expert mode and change your low-rate - threshold to configure which slots should be considered if you have a tariff with more than 2 import rates (e.g. Flux) - - _WARNING: Do not set **car_charging_now** or you will create a circular dependency._ - - Predbat will set **binary_sensor.predbat_car_charging_slot** when it determines the car can be charged; - you will need to write a Home Assistant automation based on this sensor to control when your car charges.
- A sample automation to start/stop car charging using a Zappi car charger and the [MyEnergi Zappi integration](https://github.com/CJNE/ha-myenergi) is as follows, - this should be adapted for your charger type and how it controls starting/stopping car charging: + +- **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 it is worth checking the [Predbat logfile](output-data.md#predbat-logfile) to confirm that it has found your EV charger details.
+If you are using the [Octopus Energy direct](energy-rates.md#octopus-energy-direct) method of Predbat directly connecting to your Octopus account then this configuration line is not required and should be commented out of `apps.yaml`. + +- Set **switch.predbat_octopus_intelligent_charging** to On + +- You should set the car's current SoC sensor, **car_charging_soc** in `apps.yaml` to point to a Home Assistant 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 car's current 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%. + +- **octopus_charge_limit** and **octopus_ready_time** in `apps.yaml` are pre-configured with regular expressions to point to the appropriate sensors for your EV charger in the Octopus Energy integration. +These retrieve details of the charge limit and when the car will finish charging from your Octopus app settings. +Again, if you are using the Octopus Energy direct method for Predbat then these configuration lines are not required and should be commented out of `apps.yaml`. + +- You can configure **car_charging_now** in `apps.yaml` to point a Home Assistant sensor that indicates that the car is currently charging as a workaround to indicate your car is charging, but the Intelligent API hasn't reported it. + +- The switch **switch.predbat_octopus_intelligent_consider_full** (_expert mode_) +(default is Off) when turned on will cause Predbat to predict when your car battery is full and assume no further charging will occur. +This can be useful if Octopus does not know your car battery's state of charge but you have a sensor setup in Predbat (**car_charging_soc**) which does know the current charge level. +Predbat will still assume all Octopus charging slots are low rates even if some are not used by your car. + +- The switch **switch.predbat_octopus_intelligent_ignore_unplugged** (_expert mode_) (default value is off) can be used to prevent Predbat from assuming the car will be charging or that future extra low-rate slots apply when the car is unplugged. +This will only work correctly if **car_charging_planned** is set correctly in apps.yaml to detect your car being plugged in + +- Let the Octopus app control when your car charges. + +_TIP:_ If you have a Zappi EV charger then you have to set it to Eco+ mode for IOG to control it. +If Predbat starts exporting your battery (e.g. prior to the IOG cheap overnight period) then the Zappi can treat the exported energy as excess solar and start charging the EV battery with it!
+To prevent this happening, in the Zappi configuration set the Export Margin to 8000W so that the Zappi will only charge the EV from excess solar when more than 8000W is being exported (which should never happen). + +### Predbat-led charging + +Here Predbat plans and can initiate the car charging based on the upcoming low import rate slots + +- Ensure **car_charging_limit**, **car_charging_soc** and **car_charging_planned** are set correctly in `apps.yaml` to point to the appropriate sensors from your EV (see [Car charging config in apps.yaml](apps-yaml.md#car-charging-integration)) + +- Check (and if necessary add) the sensor response value from the sensor configured in **car_charging_planned** that is returned when the car is 'plugged in and ready to charge' is in the list of **car_charging_planned_response** values +configured in `apps.yaml` + +- If your car does not have a state of charge (SoC) sensor you can set **switch.predbat_car_charging_manual_soc** to On to have Predbat create **input_number.predbat_car_charging_manual_soc_kwh** which will hold the cars SoC in kWh.
+You will need to manually set this to the car's current charge level before charging, Predbat will increment it during charging sessions but will not reset it automatically.
+NB: **input_number.predbat_car_charging_manual_soc_kwh** must be set to the current kWh value of your car battery NOT a percentage SoC figure +otherwise, Predbat won't know how much energy there currently is in the battery.
+NB2: If you have **car_charging_soc** set and working for your car SoC sensor in apps.yaml, **switch.predbat_car_charging_manual_soc** must be set to Off as otherwise the car SoC sensor will be ignored + +- Ensure **switch.predbat_octopus_intelligent_charging** in Home Assistant is set to Off + +- Set **input_number.predbat_car_charging_rate** to the car's charging rate in kW per hour (e.g. 7.5 for 7.5kWh) + +- If you have more than one car then **input_number.predbat_car_charging_rate_1** will be the second car etc. + +- Set **select.predbat_car_charging_plan_time** to the time you want the car charging to be completed by + +- Turn on **switch.predbat_car_charging_plan_smart** if you want to use the cheapest slots only. When disabled (turned off) all low-rate slots will be used in time order + +- You can set **input_number.predbat_car_charging_plan_max_price** if you want to set a maximum price in pence per kWh to charge your car (e.g. 10p). +If you set this to zero, this feature is disabled, and all low-rate slots will be used. +This may mean you need to use expert mode and change your low-rate threshold to configure which slots should be considered if you have a tariff with more than 2 import rates (e.g. Flux) + +- _WARNING: Do not set **car_charging_now** in `apps.yaml` or you will create a circular dependency._ + +- Predbat will set **binary_sensor.predbat_car_charging_slot** when it determines the car can be charged; you will need to write a Home Assistant automation based on this sensor to control when your car charges.
+A sample automation to start/stop car charging using a Zappi car charger and the [MyEnergi Zappi integration](https://github.com/CJNE/ha-myenergi) is as follows, +this should be adapted for your charger type and how it controls starting/stopping car charging: ```yaml alias: Car charging @@ -105,8 +126,8 @@ NOTE: [Multiple cars](apps-yaml.md#multiple-electric-cars) can be planned with P ## Additional Car charging configurations -If you have one charger and multiple cars configured in Predbat then set **car_charging_exclusive** in apps.yaml to True to indicate that only one -car may charge at once (the first car reporting as plugged in will be considered as charging). If you set this to False then it is assumed each car +- If you have one charger and multiple cars configured in Predbat then set **car_charging_exclusive** in apps.yaml to `True` to indicate that only one +car may charge at once (the first car reporting as plugged in will be considered as charging). If you set this to `False` then it is assumed each car can charge independently and hence two or more could charge at once ```yaml @@ -115,11 +136,11 @@ can charge independently and hence two or more could charge at once - True ``` -See [Car charging filtering](apps-yaml.md#car-charging-filtering) and [Planned car charging](apps-yaml.md#planned-car-charging) +- See [Car charging filtering](apps-yaml.md#car-charging-filtering) and [Planned car charging](apps-yaml.md#planned-car-charging) in the [apps.yaml settings](apps-yaml.md) section of the documentation. -- **switch.predbat_car_charging_from_battery** - When set to True the car can drain the home battery, Predbat will manage the correct level of battery accordingly. -When set to False home battery discharge will be prevented when your car charges, and all load from the car and home will be from the grid. +- **switch.predbat_car_charging_from_battery** - When set to On the car can drain the home battery, Predbat will manage the correct level of battery accordingly. +When set to Off home battery discharge will be prevented when your car charges, and all load from the car and home will be from the grid. This is achieved by setting the battery discharge rate to 0 during car charging and to the maximum otherwise. The home battery can still charge from the grid/solar in either case. Only use this if Predbat knows your car charging plan, e.g. you are using Intelligent Octopus or you use the car slots in Predbat to control your car charging. @@ -127,6 +148,12 @@ e.g. you are using Intelligent Octopus or you use the car slots in Predbat to co - **input_number.predbat_car_charging_loss** gives the percentage 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_energy_scale** - Used to define a scaling factor (in the range of 0 to 1.0) +to multiply the **car_charging_energy** sensor data by if required (e.g. set to 0.001 to convert Watts to kW). Default 1.0, i.e. no scaling + +- **input_number.predbat_car_charging_threshold** (default 6 = 6kW)- Sets the kW power threshold above which home consumption is assumed to be car charging +and **input_number.predbat_car_charging_rate** will be subtracted from the historical load data. + ## Example EV and charger setup Sample setup and Predbat automation to use the cheapest charging slots with no/limited Home Assistant Integration. diff --git a/docs/caution.md b/docs/caution.md index 798d4f4ef..3c595aa32 100644 --- a/docs/caution.md +++ b/docs/caution.md @@ -32,3 +32,5 @@ Things you can do to have a less complex plan include: Predbat creates an entity called **predbat.inverter_register_writes** which can be used to check the total number of writes across all inverters. If you divide this by the period of use and by the number of inverters, you will be able to figure out the actual rate of register writes - see the [Simple inverter writes dashboard](output-data.md#inverter-data). + +If you do use Predbat's balance inverters function, then you are strongly recommended to turn on "real time registers" using `switch.givtcp_xxxx_real_time_control` for GivEnergy inverters controlled via GivTCP, or an equivalent function for your inverter. diff --git a/docs/compare.md b/docs/compare.md index 61df13751..c44d7bdaa 100644 --- a/docs/compare.md +++ b/docs/compare.md @@ -21,9 +21,22 @@ When changing tariffs, you should use your judgment, the Predbat Compare data is First, you need to tell Predbat in apps.yaml which tariffs you want to compare, you should list all the tariffs you realistically might want to switch between, including your current tariff to act as a baseline. -Below is a suggestion of various Octopus tariff combinations (valid Feb 2025) against region A. +Below is a suggestion of various Octopus tariff combinations (valid October 2025) against region A. You will need to change **dno_region** to match your region code if you decide to use this template - see list of [Electricity region codes](https://energy-stats.uk/dno-region-codes-explained/). +From time to time Octopus change and withdraw their tariffs so the URL's the compare function uses might stop working.
+A full list of available Octopus products is at . + +If you view this page, search for the tariff by name, then copy the URL it shows into a new tab. + +E.g. + +Look through that page to find the right URL for usage charges in your DNO area + + + +(For area A) + As well as Octopus rate URLs (rates_import_octopus_url/rates_export_octopus_url) you can use manual rates (rates_import/rates_export), Octopus integration rates (metric_octopus_import/metric_octopus_export) and Energi Data service rates (metric_energidataservice_import/metric_energidataservice_export). @@ -48,58 +61,58 @@ If you do not set an import or export rate for a particular tariff then your exi rates_export: - rate: 4.1 - id: 'eon_next_drive' - name: 'Eon Next Drive import/Fixed export"' + name: 'Eon Next Drive import/Fixed export' rates_import: - rate: 6.7 start: "00:00:00" end: "07:00:00" - rate: 24.86 start: "07:00:00" - end: "24:00:00" + end: "00:00:00" rates_export: - rate: 16.5 - id: 'igo_fixed' name: 'Intelligent GO import/Fixed export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/INTELLI-VAR-24-10-29/electricity-tariffs/E-1R-INTELLI-VAR-24-10-29-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-BB-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-BB-24-10-26-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-24-10-26-{dno_region}/standard-unit-rates/' - id: 'igo_agile' name: 'Intelligent GO import/Agile export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/INTELLI-VAR-24-10-29/electricity-tariffs/E-1R-INTELLI-VAR-24-10-29-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-{dno_region}/standard-unit-rates/' - id: 'go_fixed' name: 'GO import/Fixed export' - rates_import_octopus_url: 'https://api.octopus.energy/v1/products/GO-VAR-BB-23-02-07/electricity-tariffs/E-1R-GO-VAR-BB-23-02-07-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-BB-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-BB-24-10-26-{dno_region}/standard-unit-rates/' + rates_import_octopus_url: 'https://api.octopus.energy/v1/products/GO-VAR-22-10-14/electricity-tariffs/E-1R-GO-VAR-22-10-14-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-24-10-26-{dno_region}/standard-unit-rates/' - id: 'go_agile' name: 'GO import/Agile export' - rates_import_octopus_url: 'https://api.octopus.energy/v1/products/GO-VAR-BB-23-02-07/electricity-tariffs/E-1R-GO-VAR-BB-23-02-07-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-{dno_region}/standard-unit-rates/' + rates_import_octopus_url: 'https://api.octopus.energy/v1/products/GO-VAR-22-10-14/electricity-tariffs/E-1R-GO-VAR-22-10-14-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-{dno_region}/standard-unit-rates/' - id: 'agile_fixed' name: 'Agile import/Fixed export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-BB-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-BB-24-10-26-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-24-10-26-{dno_region}/standard-unit-rates/' - id: 'agile_agile' name: 'Agile import/Agile export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-{dno_region}/standard-unit-rates/' - id: 'flux' name: 'Flux import/Export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-{dno_region}/standard-unit-rates' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-{dno_region}/standard-unit-rates' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-{dno_region}/standard-unit-rates' - id: 'cosy_fixed' name: 'Cosy import/Fixed export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/COSY-22-12-08/electricity-tariffs/E-1R-COSY-22-12-08-{dno_region}/standard-unit-rates' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-BB-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-BB-24-10-26-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-24-10-26-{dno_region}/standard-unit-rates/' - id: 'cosy_agile' name: 'Cosy import/Agile export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/COSY-22-12-08/electricity-tariffs/E-1R-COSY-22-12-08-{dno_region}/standard-unit-rates' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-{dno_region}/standard-unit-rates/' - id: 'snug_fixed' name: 'Snug import/Fixed export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/SNUG-24-11-07/electricity-tariffs/E-1R-SNUG-24-11-07-{dno_region}/standard-unit-rates/' - rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-BB-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-BB-24-10-26-{dno_region}/standard-unit-rates/' + rates_export_octopus_url: 'https://api.octopus.energy/v1/products/OUTGOING-VAR-24-10-26/electricity-tariffs/E-1R-OUTGOING-VAR-24-10-26-{dno_region}/standard-unit-rates/' - id: 'iflux' - name: 'Intelligent Flux import/Export' + name: 'Intelligent Flux import/export' rates_import_octopus_url: 'https://api.octopus.energy/v1/products/INTELLI-FLUX-IMPORT-23-07-14/electricity-tariffs/E-1R-INTELLI-FLUX-IMPORT-23-07-14-{dno_region}/standard-unit-rates/' rates_export_octopus_url: 'https://api.octopus.energy/v1/products/INTELLI-FLUX-EXPORT-23-07-14/electricity-tariffs/E-1R-INTELLI-FLUX-EXPORT-23-07-14-{dno_region}/standard-unit-rates/' ``` diff --git a/docs/customisation.md b/docs/customisation.md index 03cef7fc7..198e26c2b 100644 --- a/docs/customisation.md +++ b/docs/customisation.md @@ -31,16 +31,15 @@ Selecting any of the .yaml files you have created will restore your settings fro The mode that Predbat operates in will change the operation, this can be configured with **select.predbat_mode** drop-down menu as follows: - Monitor -- Control SOC Only +- Control SOC only - Control charge - Control charge & discharge -If the **switch.predbat_set_read_only** is set to True then this prevents Predbat from making modifications to the inverter settings (regardless of the configuration). +If the **switch.predbat_set_read_only** is set to On then this prevents Predbat from making modifications to the inverter settings (regardless of the configuration). Predbat will continue making and updating its prediction plan every 5 minutes, but no inverter changes will be made. This is useful if you want to override what Predbat is planning to do (e.g. your own automation), or whilst you are learning how Predbat works before turning it on 'in anger'. -_NOTE: Changing the Predbat mode or the read-only switch will cause Predbat to reset the inverter settings to default, this will disable -both charge and discharge, reset charge and discharge rates to full power and reset the reserve to the default setting_ +_NOTE: Changing the Predbat mode or the read-only switch will cause Predbat to reset the inverter settings to default, this will disable both charge and discharge, reset charge and discharge rates to full power and reset the reserve to the default setting_ ![image](https://github.com/springfall2008/batpred/assets/48591903/43faa962-6b8a-495a-88f8-f762aa1d55b8) @@ -51,7 +50,7 @@ and the plan will show just what is expected based on the current inverter confi ### 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 @@ -61,8 +60,7 @@ _CAUTION: You must manually set any charging required on the inverter and if the ### 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 -disabled by Predbat. +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, you have a 'no export' limitation from your electricity supplier, or if you want to preserve the battery for home demand. @@ -71,27 +69,24 @@ This mode can be useful if you don't have an export rate, you have a 'no export' In **Control charge & discharge** mode Predbat will set both charge and force export (discharge) times and control charge and force export percentages. -If you have set the **switch.predbat_set_export_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. +If you have set the **switch.predbat_set_export_freeze_only** set to On then forced export won't occur but Predbat can force the export of solar power to the grid when desired. ## Expert mode Predbat has a toggle switch called **switch.predbat_expert_mode** which is set to Off by default for new installs (On by default for upgraded installs). -A lot of Predbat's more advanced configuration options will not be available unless expert mode is enabled. -It's recommended for new users to start without expert mode and then maybe enable it later once you become more confident with the tool. +A lot of Predbat's more advanced configuration options will not be available unless expert mode is turned On. +It's recommended for new users to start without expert mode and then maybe turn it on later once you become more confident with the tool. ## Performance related -By default Predbat controls the inverter and updates the plan every 5 minutes, this can however use a lot of CPU power -especially on more complex tariffs like Agile when run on lower power machines such as Raspberry PIs and some thin clients. +By default Predbat controls the inverter every 5 minutes and updates the plan every 10 minutes. +This can however use a lot of CPU power especially on more complex tariffs like Agile when run on lower power machines such as Raspberry PIs and some thin clients. -You can tweak **input_number.predbat_calculate_plan_every** (_expert mode_) to reduce the frequency of replanning while -keeping the inverter control in the 5-minute slots. E.g. a value of 10 or 15 minutes should also give good results. +You can tweak **input_number.predbat_calculate_plan_every** (_expert mode_) (default 10 minutes) to reduce the frequency of replanning while keeping the inverter control in the 5-minute slots. E.g. a value of 10 or 15 minutes should also give good results. -If you have performance problems leave **switch.predbat_calculate_second_pass** (_expert mode_) turned Off as it's -quite CPU intensive and provides very little improvement for most systems. +If you have performance problems leave **switch.predbat_calculate_second_pass** (_expert mode_) turned Off as it's quite CPU intensive and provides very little improvement for most systems. -You can enable **combine_charge_slots** and **combine_export_slots** to speed up planning. +You can turn on **combine_charge_slots** and **combine_export_slots** to speed up planning. Note: Combining export slots may prevent optimal forced export. Combining charge slots is usually fine for tariffs with longer periods of fixed rates but can limit the planning ability in some cases. @@ -100,17 +95,16 @@ if you don't have multiple CPUs available or set it to 'auto' (the default) to u ## Battery loss options -**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.predbat_battery_loss** is an assumed percentage figure for energy lost when charging the battery, the default 0.03 is 3%. -**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.predbat_battery_loss_discharge** is an assumed percentage figure for energy lost whilst discharging the battery, the default 0.03 is 3%. -**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. +**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 0.04 is 4%. _TIP:_ Make sure you set the losses correctly, they are decimal percentages, so don't set them to '4' thinking it'll be 4%, Predbat will take this as being 400% and your plan will be very strange! -**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. +**switch.predbat_inverter_hybrid** Set to On (the default) if you have a hybrid inverter so no inverter losses will be applied for DC charging from Solar generation. +You should set it to Off if you have an AC-coupled battery and inverter losses will be applied when the battery is 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 so the inverter_loss % will be included in Predbat's model when charging from the grid. @@ -134,31 +128,32 @@ Figures of around 0p-2p are recommended, the default is 0p per kWh. **input_number.predbat_metric_battery_value_scaling** (_expert mode_) A percentage value that can be used to scale the value of the energy in the battery at the end of the plan. The battery value is accounted for in the optimisations at the lowest future import rate including charging and inverter losses. -A value of 1.0 means no change to this, while lower than 1.0 means to value future battery levels less, +A value of 1.0 (the default) means no change to this, while lower than 1.0 means to value future battery levels less, greater than 1.0 will value it more (and hence hold more charge at the end of the plan). -**input_number.metric_self_sufficiency** (_expert mode_) A price in pence per kWh used to skew the calculations towards self-sufficiency. Effectively saying to Predbat to -account for imports at a higher price than reality in the calculation and thus selecting plans with less import. If you want to be as self-sufficient as possible then set -this to the difference between your lowest import rate and the highest export rate to take exports that require additional import appear unprofitable. This setting will not -impact the real calculated costs and is only used for plan selection. Values of 5-10p may be worth trying if you prefer to avoid importing even if it saves you money. +**input_number.metric_self_sufficiency** (_expert mode_) A price in pence per kWh used to skew the calculations towards self-sufficiency. Defaults to 0.0p/kWh. +Effectively saying to Predbat to account for imports at a higher price than reality in the calculation and thus selecting plans with less import. +If you want to be as self-sufficient as possible then set this to the difference between your lowest import rate and the highest export rate to take exports that require additional import appear unprofitable. +This setting will not impact the real calculated costs and is only used for plan selection. Values of 5-10p may be worth trying if you prefer to avoid importing even if it saves you money. ## Scaling and weight options **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. +For example, a value of 0.95 would be 95% and indicate charging at 5% slower than reported. +For GivEnergy 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. +The default is 1.0, i.e. no scaling. **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. +For GivEnergy 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. +The default is 1.0, i.e. no scaling. -**switch.predbat_battery_capacity_nominal** - When enabled Predbat uses the reported battery size from the GivTCP 'Battery Nominal Capacity' field -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. +**switch.predbat_battery_capacity_nominal** - When set to On, Predbat uses the reported battery size from the GivTCP 'Battery Nominal Capacity' field 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. Defaults to Off. **input_number.predbat_load_scaling** is a percentage Scaling factor applied to the historical load, increase this if you want to be more pessimistic on future consumption. -Use 1.0 to use exactly the previous load data. A value of 1.1 for example would add 10% to the historical load. +Use 1.0 to use exactly the previous load data. A value of 1.1 for example would add 10% to the historical load. The default value is 1.05 to add 5% scaling. Note that the output data entity predbat.load_energy_h0 will be scaled accordingly. **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). @@ -167,6 +162,11 @@ The default is 1.1 meaning an extra 10% load is added. This will only have an im **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). +The default is 1.0, i.e. no change to load in saving sessions. + +**input_number.predbat_load_scaling_free** is a percentage Scaling factor applied to historical load only during Free electricity sessions. +This can be used to model your household increasing house load in a free electricity session (e.g. extra washing, cooking, tumble dryer, etc). +The default is 1.2, i.e. 20^ extra load in saving sessions. ## Solar PV adjustment options @@ -179,16 +179,16 @@ Use 1.0 to accurately apply the Solcast forecast generation data. A value of 0.9 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.
-A value of 0.15 is recommended. +A value of 0.15 (the default) 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 +The historical load data is taken from the load sensor as configured in `apps.yaml` with the days are selected using **days_previous**, and weighted using **days_previous_weight** in `apps.yaml`. + +**switch.predbat_load_filter_modal** (_expert mode_) when turned On (the default) 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 a single low usage day in your average calculation. By default is feature is On but can be turned Off only in expert mode. -**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 -a single low usage day in your average calculation. By default is feature is enabled but can be disabled only in expert mode. +**switch.predbat_predheat_enable** when turned On, uses the Predheat model to predict your home heating system. Outputs include predicted temperature and energy usage and costs. See [Predheat documentation](predheat.md) for details. Off by default. ## Car Charging @@ -203,7 +203,7 @@ These are described in detail in [Car Charging](car-charging.md) and are listed - **input_number.predbat_car_charging_loss** - percentage energy lost when charging the car - **switch.predbat_octopus_intelligent_charging** - controls whether Octopus Intelligent (via the Octopus Energy integration) controls the car charging or Predbat plans the car charging - **switch.predbat_octopus_intelligent_ignore_unplugged** (_expert mode_) - used with Octopus Intelligent to prevent Predbat from assuming the car will be charging when the car is unplugged -- **binary_sensor.predbat_car_charging_slot** - set to True by Predbat when the car should be charged (Predbat-led charging) +- **binary_sensor.predbat_car_charging_slot** - set to On by Predbat when the car should be charged (Predbat-led charging) - **select.predbat_car_charging_plan_time** - the time you want the car to be charged by - **switch.predbat_car_charging_plan_smart** - allows Predbat to allocate car charging slots to the cheapest times rather than all low-rate slots - **input_number.predbat_car_charging_plan_max_price** - maximum price per kWh to pay when charging your car @@ -218,48 +218,39 @@ See the Predbat mode setting above for basic calculation options **input_number.predbat_forecast_plan_hours** is the minimum length of the Predbat charge plan, and is the number of hours _after_ the first charge slot to include in the plan. The default of 24 hours is the recommended value (to match energy rate cycles). Note that the actual length of the Predbat plan will vary depending upon when the first charge slot is. -**switch.predbat_calculate_export_oncharge** (_expert mode_) When True calculated export slots will -disable or move charge slots, allowing them to intermix. When False export slots will never be placed into charge slots. +**switch.predbat_calculate_export_oncharge** (_expert mode_) When turned On, calculated export slots will disable or move charge slots, allowing them to intermix in the plan. When Off (the default) export slots will never be placed into charge slots. -**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_set_discharge_during_charge** - When turned On disables inverter discharge during charge slots, useful for multi-inverter setups to avoid cross-charging when batteries are out of balance. Default is Off. -**switch.predbat_inverter_set_charge_before** - (_expert_mode_) When True charge slots will be programmed before their start time, when False they will only be -configured when the charging time starts. +**switch.predbat_inverter_set_charge_before** - (_expert_mode_) When turned On (the default), charge slots will be programmed before their start time, when Off they will only be configured when the charging time starts. -**switch.predbat_calculate_tweak_plan** (_expert mode_) When True causes Predbat to perform a second pass optimisation -across the next 8 charge and export windows in time order. +**switch.predbat_calculate_tweak_plan** (_expert mode_) When turned On causes Predbat to perform a second pass optimisation across the next 8 charge and export windows in time order. Turned Off by default. -This can help to slightly improve the plan for tariffs like Agile but can make it worse in some fixed rate tariffs which -you want to force export late. +This can help to slightly improve the plan for tariffs like Agile but can make it worse in some fixed rate tariffs which you want to force export late. -**switch.predbat_calculate_second_pass** (_expert mode_) When True causes Predbat to perform a second pass optimisation -across all the charge and export windows in time order. +**switch.predbat_calculate_second_pass** (_expert mode_) When turned On causes Predbat to perform a second pass optimisation across all the charge and export windows in time order. -NOTE: This feature is quite slow so may need a higher-performance machine. +NOTE: This feature is quite slow so may need a higher-performance machine so is turned Off by default. This can help to slightly improve the plan for tariffs like Agile but can make it worse in some fixed rate tariffs in which you want to force export late. -**switch.calculate_import_low_export** (_expert_mode_) When True import slots of the same value are sorted by export price. -When False they are sorted just by price and then time. The default is True. +**switch.predbat_calculate_import_low_export** (_expert_mode_) When turned On (the default), import slots of the same value are sorted by export price. +When turned Off they are sorted just by price and then time. + +By default with this option turned On, if there are multiple charge slots of the same price Predbat will try to charge when the export rates are the lowest thus leaving the higher export slots available. -By default with this option enabled if there are multiple charge slots of the same price Predbat will try to charge when the export rates are the lowest -thus leaving the higher export slots available. +**switch.predbat_calculate_export_high_import** (_expert_mode_) When turned On (the default) export slots of the same value are sorted by import price (to avoid exporting in the low price import slots). -**switch.calculate_export_high_import** (_expert_mode_) When True export slots of the same value are sorted by import price (to avoid the low import slots for export). -When False they are sorted just by price and then time. The default is True. +When Off export slots are sorted just by decreasing export price and then time (so high value exports are planned first). -By default with this option disabled the latest export slot of the same value will be picked, this is useful for fixed-price export tariffs where -you want to export as late in the day as you can. +By default with this option On the latest export slots of the same value will be picked, this is useful for fixed-price export tariffs where you want to export as late in the day as you can, thus preserving the battery for as long as possible. ## Battery margins and metrics options **input_number.predbat_best_soc_keep** is the minimum battery level in kWh that Predbat will to try to keep the battery above for the Predbat plan. This is a soft constraint only that's used for longer-term planning and is ignored for the forthcoming first 4 hours of the plan. -As this is not used for short-term planning your SoC can drop below this - use **input_number.predbat_best_soc_min** -if you want to force all charges to be above a set level. -It's usually good to have best_soc_keep set to 0 to use your entire battery, values above zero will end up costing more money but will ensure you -have some spare battery kept back for emergency use. +As this is not used for short-term planning your SoC can drop below this - use **input_number.predbat_best_soc_min** if you want to force all charges to be above a set level. +It's usually good to have best_soc_keep set to 0kWh to use your entire battery, values above zero will end up costing more money but will ensure you have some spare battery kept back for emergency use. **input_number.predbat_best_soc_keep_weight** (_expert_mode_) Is used to tune how strongly you want the keep metric to apply. A value of 0 would essentially ignore keep while higher values will make it more important to always stay above your keep threshold even if it costs @@ -267,37 +258,35 @@ more money to do so. The default is 0.5 - this is the recommended setting. -**input_number.predbat_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_) (default 0kWh) sets the minimum charge level (in kWh) for charging during each slot and the minimum force export 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.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. +A value of 0kWh (the default) disables this feature. **input_number.combine_rate_threshold** (_expert mode_) sets a threshold (in pence) to combine charge or export slots into a single larger average rate slot. The default is 0p which disables this feature and all rate changes result in a new slot. -**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 the day rate before -a saving session). The default is disabled (False) +**switch.predbat_combine_charge_slots** Controls if charge slots of > 30 minutes can be combined. When turned Off (the default) 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 the day rate before +a saving session). -**switch.predbat_combine_export_slots** (_expert mode_) Controls if export 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) +**switch.predbat_combine_export_slots** (_expert mode_) Controls if export slots of > 30 minute can be combined. When turned Off (the default) they will be split up, increasing run times but potentially more accurate for planning. -**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 **input_number.predbat_pv_metric10_weight** then you probably don't need to enable this as the 10% forecast does the same thing better +**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.0p which means this feature is disabled and the battery will be charged less if it's cost neutral. +If you use **input_number.predbat_pv_metric10_weight** then you probably don't need to use this as the 10% forecast does the same thing better Do not use it 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). **input_number.predbat_metric_min_improvement_export** (_expert mode_) Sets the minimum pence cost improvement it's worth doing a forced export for. -A value of 0.1 is the default which prevents any marginal exports as they must be worth at least 0.1 pence for a 30-minute slot (less for shorter slots). +A value of 0.1p is the default which prevents any marginal exports as they must be worth at least 0.1 pence for a 30-minute slot (less for shorter slots). If you increase this value (e.g. you only want to force export if very profitable), then exports will become less common. The value is in pence per 30 minutes of export time. **input_number.predbat_metric_min_improvement_export_freeze** (_expert mode_) Sets the minimum pence cost improvement it's worth doing an export freeze for. -A value of 0.1 is the default which prevents any marginal freezes as they must be worth at least 0.1 pence for a 30-minute slot (less for shorter slots). +A value of 0.1p is the default which prevents any marginal freezes as they must be worth at least 0.1 pence for a 30-minute slot (less for shorter slots). If you increase this value (e.g. you only want to freeze export if very profitable), then freeze exports will become less common. The value is in pence per 30 minutes of export time. @@ -319,7 +308,7 @@ If rate_high_threshold is set to a non-zero value this will set the threshold ab 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.predbat_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_) Default 0p/kWh. Sets a pence per kWh 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. @@ -327,35 +316,31 @@ 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.predbat_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_) Default 0p/kWh. 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. -**switch.predbat_calculate_inday_adjustment** (_expert mode_) Enabled by default with damping of 0.95. When enabled will -calculate the difference between today's actual load and today's predicated load and adjust the rest of the day's 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 seen in **predbat.load_inday_adjustment** and charted with the In-Day Adjustment chart (template can be found -in the charts template in Github). +**switch.predbat_calculate_inday_adjustment** (_expert mode_) Set to On by default. When turned on, will calculate the difference between today's actual load and today's predicated load and adjust the rest of the day's usage prediction accordingly. +A scale factor can be set with **input_number.predbat_metric_inday_adjust_damping** (_expert mode_) (default 0.95) 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 seen in **predbat.load_inday_adjustment** and charted with the [In-Day Adjustment chart](creating-charts.md). -**switch.predbat_metric_pv_calibration_enable** When enabled allows Predbat to use historical data to calibrate your PV -production estimates on a 30 minute basis based on actual data. This can be useful to adjust for your systems real performance. +**switch.predbat_metric_pv_calibration_enable** When turned On, Predbat will use historical data to calibrate your PV production estimates on a 30 minute basis based on actual generation data. +This can be useful to adjust for your systems real performance. Default is Off. -**input_number.predbat_carbon_metric** (_carbon enable_) When Carbon footprint tracking is enabled (**switch.predbat_carbon_enable**) -you can specify a cost per Kg of CO2 used to weight the selection of plans. Values of around 10-200 will give varying outcomes to trade off -cost vs carbon footprint of your system. +**input_number.predbat_carbon_metric** (_carbon enable_) When Carbon footprint tracking is turned On (**switch.predbat_carbon_enable**) (Off by default), +you can specify a cost per Kg of CO2 used to weight the selection of plans. Values of around 10-200 will give varying outcomes to trade off cost vs carbon footprint of your system. -_Note: Carbon footprint tracking can only be enabled if apps.yaml is configured to point to the correct CO2 cost sensor_ +_Note: Carbon footprint tracking can only be turned on if `apps.yaml` is configured to point to the correct CO2 cost sensor_ ## Inverter control options -**switch.predbat_set_status_notify** Enables mobile notification about changes to the Predbat state (e.g. Charge, Export etc). On by default. +**switch.predbat_set_status_notify** Enables mobile notification about changes to the Predbat state (e.g. Charge, Export etc). Set the list of [devices to notify](apps-yaml.md#notify_devices) in `apps.yaml`. On by default. **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 automatically determined by Predbat to be the +**switch.predbat_set_charge_low_power** Enables low-power charging mode where the max charge rate will be automatically determined by Predbat to be the lowest possible rate to meet the charge target. This is only really effective for charge windows longer than 30 minutes. If this setting is turned on, it is strongly recommended that you create a [battery_power_charge_curve in apps.yaml](apps-yaml.md#workarounds) as otherwise the low power charge may not reach the charge target in time. @@ -364,50 +349,49 @@ This setting is off by default. The YouTube video [low power charging and charging curve](https://youtu.be/L2vY_Vj6pQg?si=0ZiIVrDLHkeDCx7h) explains how the low-power charging works and shows how Predbat automatically creates it. -**input_number.predbat_charge_low_power_margin** (requires switch.predbat_set_charge_low_power to be enabled) Controls how many minutes before the completion time to target finishing charging, this defaults to 10 -but can be changed between 0 and 30. +**input_number.predbat_charge_low_power_margin** (requires **switch.predbat_set_charge_low_power** to be turned On) Controls how many minutes before the completion time to target finishing charging, +this defaults to 10 but can be changed between 0 and 30. -**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.predbat_set_reserve_enable** (_expert_mode_) When turned On (the default) the battery reserve setting is used to hold the battery charge level +once it has been reached or to protect against discharging beyond the set limit. -**switch.predbat_set_export_freeze** When enabled will allow Predbat to export Solar to the grid rather than charging the battery. -Enabled by default on those inverters that have this support. +**switch.predbat_set_charge_freeze** (_expert mode_) When turned On will allow Predbat to hold the current battery level while drawing from the grid/solar as an alternative to charging. Off by default. -**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.predbat_set_export_freeze** When turned On (the default) will allow Predbat to export Solar to the grid rather than charging the battery. -**switch.predbat_set_export_freeze_only** (_expert mode_) When enabled forced export is prevented, but export 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). +**switch.predbat_set_export_freeze_only** (_expert mode_) When turned On forced export is prevented, but export 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). Off by default. -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 of a charge window. This may be required for the AIO inverter to ensure it charges from solar. The default for -this switch is True but it can be disabled in expert mode if need be. +If you have **switch.predbat_inverter_hybrid** set to Off then if **switch.predbat_inverter_soc_reset** (_expert mode_) is set to On then the +target SoC % will be reset to 100% outside of a charge window. This may be required for the AIO inverter to ensure it charges from solar. The default for +this switch is On but it can be disabled in expert mode if need be. **input_number.predbat_set_reserve_min** Defines the battery reserve percentage, i.e. the minimum charge level that should be retained in the battery, -a value of 4 is the minimum and recommended to make use of the full battery. +a value of 4 is the default and minimum value and is recommended to make use of the full battery. When the battery level reaches the specified minimum level, your inverter will start importing from the grid to satisfy house load. 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 a higher value, 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). -Note that input_number.predbat_set_reserve_min is used by Predbat to stop the battery SoC dropping below the specified level but it is not used in planning battery charging. +Note that **input_number.predbat_set_reserve_min** is used by Predbat to stop the battery SoC dropping below the specified level but it is not used in planning battery charging. i.e. if you change the reserve min to a level higher than the current battery SoC then Predbat will not plan charging activity to increase the SoC to that level; you should set [manual charges](#manual-control) to increase the SoC level. -**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 enabled by default. +**switch.predbat_inverter_soc_reset** (_expert mode_) When set to On (the default) 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 target % will not be changed after a charge slot. ## Balance Inverters 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 try 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 -machine is fast enough, but the default is 60 seconds. +If you do use Predbat's balance inverter function then be aware that Predbat will start repeatedly and rapidly updating your inverter settings to keep the inverters in balance with each other. +This can be a problem with inverters that have a [limited life-span flash memory](caution.md#flash-memory). +If available, you are strongly recommended to turn on "real time registers" using `switch.givtcp_xxxx_real_time_control` for GivEnergy inverters controlled via GivTCP, or an equivalent function for your inverter. -Enable the **switch.predbat_balance_inverters_enable** switch in Home Assistant to enable this feature. +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. + +Turn On **switch.predbat_balance_inverters_enable** to enable this feature. It is Off by default. When turned on a number of other balance controls and configurations are made available: - **switch.predbat_balance_inverters_charge** - Is used to toggle on/off balancing while the batteries are charging - **switch.predbat_balance_inverters_discharge** - Is used to toggle on/off balancing while the batteries are discharging @@ -417,15 +401,15 @@ Enable the **switch.predbat_balance_inverters_enable** switch in Home Assistant ## Cloud coverage and load variance -Predbat tries to model passing clouds by modulating the PV forecast data on a 5-minute interval up and down while retaining the same predicted total. +By default Predbat tries to model passing clouds by modulating the PV forecast data on a 5-minute interval up and down while retaining the same predicted total. The amount of modulation depends on the difference between the PV50% (default) and PV10% scenario produced by Solcast. -You can disable this feature (_expert mode only_) using **switch.predbat_metric_cloud_enable** +You can disable this feature (_expert mode only_) using **switch.predbat_metric_cloud_enable**. -Predbat tries to model changes in your household load by modulating the historical data on a 5-minute interval up and down while retaining the same predicted total. +By default Predbat tries to model changes in your household load by modulating the historical data on a 5-minute interval up and down while retaining the same predicted total. The amount of modulation depends on the standard deviation of your load predictions over the coming period (currently 4 hours). -You can disable this feature (_expert mode only_) using **switch.metric_load_divergence_enable** +You can disable this feature (_expert mode only_) using **switch.metric_load_divergence_enable**. ## iBoost model options @@ -436,7 +420,7 @@ a MyEnergy Eddi (using the MyEnergy integration), or it can be used with a high- So although Predbat refers to controlling an iBoost, you are not limited to just an iBoost device when using this model within Predbat. -To turn the model on, **switch.predbat_iboost_enable** needs to be enabled. +To turn the model on, **switch.predbat_iboost_enable** needs to be turned On (default is Off). The predicted output from the iBoost solar diverter model is returned in **predbat.iboost_best** and is populated in the 'iBoost' column of the [Predbat plan](predbat-plan-card.md). @@ -456,8 +440,7 @@ The default value of 0.75 means that each kWh of energy diverted is accounted fo Higher values will generate plans with more solar diversion while lower values will generate less. A value of 0 means all diverted energy should be ignored in planning (assumed to be zero value). -- **switch.predbat_iboost_energy_subtract** When enabled (default) energy reported by the **iboost_energy_today** sensor configured in apps.yaml will be subtracted -from your historical load data to improve the accuracy of predictions. +- **switch.predbat_iboost_energy_subtract** When turned On (the default) energy reported by the **iboost_energy_today** sensor configured in `apps.yaml` will be subtracted from your historical load data to improve the accuracy of predictions. If you are using PredAI you will also need to subtract this data inside PredAI configuration. Different boost modes can be selected: @@ -466,34 +449,34 @@ Different boost modes can be selected: #### Solar -- **switch.predbat_iboost_solar** When enabled assume the diverter will use solar power to boost the hot water heating. -- **switch.predbat_iboost_solar_excess** When disabled will allow any solar power to be diverted while if enabled only excess power (power that would otherwise be exported) will be used. The default is Off. -- By default iboost will not run the battery is in force export mode unless you turn on **switch.predbat_iboost_on_export** +- **switch.predbat_iboost_solar** When turned On, Predbat assumes the diverter will use solar power to boost the hot water heating. +- **switch.predbat_iboost_solar_excess** When turned Off (the default) will allow any solar power to be diverted while if enabled only excess power (power that would otherwise be exported) will be used. +- By default iboost will not run the battery is in force export mode unless you turn on **switch.predbat_iboost_on_export**. - **input_number.predbat_iboost_min_soc** sets the minimum home battery SoC percentage that must be in the battery before the solar diverter is turned on. The default is 0 meaning hot water heating can occur regardless of what SoC level the battery is at. #### Battery -- **switch.predbat_iboost_charging** If set to on, the diverter will operate when the battery is charging (can be combined with solar) +- **switch.predbat_iboost_charging** If set to On, the diverter will operate when the battery is charging (can be combined with solar) #### Energy rates only -If both of the above are off, but iBoost is enabled then boost will happen solely based on energy rates (see below). +If both of the above are Off, but iBoost is turned On then boost will happen solely based on energy rates (see below). - **switch.predbat_iboost_smart** Will pick the lowest import rate slots within 24 hours to achieve the desired energy as specified by **input_number.predbat_iboost_max_energy**. Only slots at or below the rate threshold will be selected. -Note this option only applies when iboost_solar and iboost battery are both off. +Note this option only applies when iboost_solar and iboost battery are both Off. - **input_number.predbat_iboost_smart_min_length** Sets the minimum slot length in minutes to iBoost (only applies for energy rate only modes). The default is 30 minutes but can be set in multiples of 30. Increasing this slot size could increase costs depending on your tariff. -- **switch.predbat_iboost_on_export** If set to on allows iBoost to run even if the battery is forced to export to the grid, otherwise it won't run in these circumstances. +- **switch.predbat_iboost_on_export** If set to On allows iBoost to run even if the battery is forced to export to the grid, otherwise it won't run in these circumstances. -- **switch.iboost_prevent_discharge** When set will stop your battery from discharging when iBoost is active and thus prevent your battery from draining to the diverter. -This switch will work in all modes and is not recommended to be used when iBoost Solar is enabled as it will prevent your battery from discharging during excess solar periods +- **switch.iboost_prevent_discharge** When set to On will stop your battery from discharging when iBoost is active and thus prevent your battery from draining to the diverter. +This switch will work in all modes and is not recommended to be used when iBoost Solar is On as it will prevent your battery from discharging during excess solar periods which could cause additional imports due to passing clouds. ### iBoost energy rate filtering @@ -501,8 +484,8 @@ which could cause additional imports due to passing clouds. - **input_number.predbat_iboost_rate_threshold** Sets the maximum import rate (in pence) that the diverter will trigger on, defaults to 100. - **input_number.predbat_iboost_rate_threshold_export** Sets the maximum export rate (in pence) that the diverter will trigger on, defaults to 100. -- **switch.predbat_iboost_gas** When enabled will control the diverter to only operate when import electric rates are lower than gas rates. -- **switch.predbat_iboost_gas_export** When enabled will control the diverter to only operate when export electric rates are lower than gas rates. +- **switch.predbat_iboost_gas** When turned On will control the diverter to only operate when import electric rates are lower than gas rates. +- **switch.predbat_iboost_gas_export** When turned On will control the diverter to only operate when export electric rates are lower than gas rates. These can be useful if you have the choice to heat your hot water by immersion heater or by gas boiler. @@ -518,7 +501,7 @@ It should be set to the reciprocal of the boiler efficiency, i.e. for an 80% eff You will see **input_number.predbat_iboost_today** entity which tracks the estimated kWh consumed by the solar diverter during the day, and resets at midnight every night. -The **binary_sensor.predbat_iboost_active** entity will be enabled when the solar diverter should be active and can be used for automations to trigger the immersion heater boost. +The **binary_sensor.predbat_iboost_active** entity will be turned On when the solar diverter should be active and can be used for automations to trigger the immersion heater boost. The attributes within this sensor include 'solar' which includes Solar diversion should be active and 'full' which indicates iBoost should run at maximum rate (could be during a charge cycle or grid import). @@ -557,8 +540,8 @@ The sensor should be an incrementing sensor which can reset at midnight or not. When you go away you are likely to use less electricity and so the previous load data will be quite pessimistic. -Using the Home Assistant entity **input_number.predbat_holiday_days_left** you can set the number of full days that -you will be away (including today). The number will count down by 1 day at midnight until it gets back to zero. +Using the Home Assistant entity **input_number.predbat_holiday_days_left** you can set the number of full days that you will be away (including today). +The number will count down by 1 day at midnight until it gets back to zero. Whilst the holiday days left are 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`. @@ -574,9 +557,8 @@ In summary: ## Manual control -In some cases, you may want to override Predbat's planned behaviour and make a decision yourself. One way to achieve this is to put Predbat into -read-only mode using **switch.predbat_set_read_only**. When going to read-only mode the inverter will be put back to the default settings and you should then -control it yourself using your inverter controls directly. +In some cases, you may want to override Predbat's planned behaviour and make a decision yourself. One way to achieve this is to put Predbat into read-only mode using **switch.predbat_set_read_only**. +When going to read-only mode the inverter will be put back to the default settings and you should then control it yourself using your inverter controls directly. A better alternative in some cases is to tell Predbat what you want it to do using the manual force features: @@ -586,10 +568,14 @@ You can select multiple slots by using the drop-down menu more than once. When Predbat updates the plan you will see the slots picked to be charging slots in the current value of this selector, and annotated in the [Predbat HTML plan](predbat-plan-card.md#displaying-the-predbat-plan) with an upside down 'F' symbol. -You can cancel a force slot by selecting the slot time again (it will be shown in square brackets to indicate it's already selected). +Selected slots will be shown in the in the list in square brackets and you can cancel a force slot by selecting the slot time again. + +The **off** option at the bottom of the list will cancel all selected force charges. ![image](https://github.com/springfall2008/batpred/assets/48591903/aa668cc3-60fc-4956-8619-822f09f601dd) +All the other **select.predbat_manual_XX** controls operate in the same way. + The **select.predbat_manual_export** selector can be used to manually force an export within a 30-minute slot in the same way as the manual force charge feature. The force export takes priority over force charging. @@ -603,26 +589,24 @@ hold at the current level. The grid may be used if solar is not enough to cover The **select.predbat_manual_freeze_export** selector is used to force Predbat to freeze export during a 30-minute slot, this implies the battery will not charge but will still discharge for the house load. Any solar will be exported to the grid. -The **select.predbat_manual_import_rates** selector is used to override the import rates for a 30-minute slot, the rate selected will be that configured in **input_number.predbat_manual_import_value** +The **select.predbat_manual_import_rates** selector is used to override the import rates for a 30-minute slot, the rate selected will be that configured in **input_number.predbat_manual_import_value** (default 0p) which can be adjusted prior to making a selection. As with the other selectors the selection can be cleared by selecting the option in square brackets or by using **off** If this selector is used in an automation you can set the time and rate together by making a selection in the format HH:MM:SS=rate e.g. 12:30:00=29.5 -The **select.predbat_manual_export_rates** selector is used to override the export rates for a 30-minute slot, the rate selected will be that configured in **input_number.predbat_manual_export_value** -which can be adjusted prior to making a selection. As with the other selectors the selection can be cleared by selecting the option in square brackets or by using **off** +The **select.predbat_manual_export_rates** selector is used to override the export rates for a 30-minute slot, +the rate selected will be that configured in **input_number.predbat_manual_export_value** (default 0p) which can be adjusted prior to making a selection. If this selector is used in an automation you can set the time and rate together by making a selection in the format HH:MM:SS=rate e.g. 12:30:00=29.5 The **select.predbat_manual_load_adjust** selector is used to make adjustments to the predicted load for a 30-minute slot, the adjustment in kWh (which is added to the predicted load) will be that -configured in **input_number.predbat_manual_load_value** which can be adjusted prior to making a selection. As with the other selectors the selection can be cleared by selecting the option in -square brackets or by using **off** +configured in **input_number.predbat_manual_load_value** which can be adjusted prior to making a selection (default 0.5kWh). If this selector is used in an automation you can set the time and rate together by making a selection in the format HH:MM:SS=adjustment e.g. 12:30:00=0.5 -When you use the manual override features you can only select times in the next 18 hours, the overrides will be removed once their time -slot expires (they do not repeat). +When you use the manual override features you can only select times in the next 18 hours, the overrides will be removed once their time slot expires (they do not repeat). -_NOTE: once you select a time slot from any of the **select.predbat_manual_** selectors the selected time slot is immediately marked on the drop-down and you can then make another change. +_NOTE_: once you select a time slot from any of the **select.predbat_manual_XX** selectors the selected time slot is immediately marked on the drop-down and you can then make another change. Predbat still has to update the plan which it will be doing so in the background, and this can take a few minutes to run (depending on the speed and power of the PC you are running Home Assistant on) so don't be surprised why the [Predbat plan](predbat-plan-card.md) doesn't change immediately - remember you can see the date/time the plan was last updated on the first row of the plan. @@ -631,9 +615,15 @@ _CAUTION: If you leave Predbat turned off for a long period of time then the ove ![image](https://github.com/springfall2008/batpred/assets/48591903/7e69730f-a379-483a-8281-f72de0cc6e97) +## Manual API + +**select.predbat_manual_api** enables you to overwrite configuration entries normally set in `apps.yaml`, e.g. from an automation. + +This is described in detail in [Car Charging](manual-api.md) and is mentioned here just for completeness. + ## Debug -**switch.predbat_debug_enable** When on will create lots of debugging information to aid diagnosis of Predbat issues. By default this is turned off and its recommended that its only switched on when debug logs are requested. With the switch on: +**switch.predbat_debug_enable** When turned On will create lots of debugging information to aid diagnosis of Predbat issues. By default this is turned Off and its recommended that its only switched on when debug logs are requested. With the switch on: - Firstly Predbat prints lots of extra debug information in the predbat logfile which means the logfile will fill and swap to a new file more rapidly - Secondly Predbat will create a debug output file 'debug/predbat_debug_HH_MM_SS.yaml' in a subfolder of the Predbat installation directory. @@ -667,5 +657,16 @@ actions: mode: single ``` -**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. +**switch.predbat_plan_debug** (_expert mode_) when turned On 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. Off by default. + +## Updating Predbat + +You can either manually update Predbat to a new (or old) version or set Predbat to automatically update itself. + +These are described in detail in [Updating Predbat](install.md#updating-predbat) and are listed here just for completeness: + +- **switch.predbat_car_charging_hold** - remove the historical car charging load from the house load +- **input_number.predbat_car_charging_threshold** - power threshold above which Predbat assumes the car is being charged + +- **select.predbat_update** - List of Predbat software versions you can select to update Predbat to +- **switch.predbat_auto_update** - When On, Predbat will automatically update itself as new releases are published on GitHub. diff --git a/docs/energy-rates.md b/docs/energy-rates.md index 01c0ebdba..8cd500414 100644 --- a/docs/energy-rates.md +++ b/docs/energy-rates.md @@ -19,25 +19,24 @@ At least one of these methods must be used to define your import and export rate ## Octopus Energy direct -If your electricity supplier is Octopus Energy then the simplest way to provide Predbat with your electricity pricing information -is to connect Predbat directly to Octopus. +If your electricity supplier is Octopus Energy then the simplest way to provide Predbat with your electricity pricing information is to connect Predbat directly to Octopus. - This method will not work correctly if you have multiple import or export meters. -- A single Octopus Intelligent GO car charger or car is supported. -- Saving sessions are also supported, including auto-enroll. +- A single Octopus Intelligent GO car charger or car is supported and Predbat will plan your battery charging based on iGo sessions. +- Saving sessions are also supported, including Predbat auto-enrolling you to them (note you must be joined to both the Octopus Octopoints and then the Saving Sessions schemes beforehand). -You should first log into your Octopus account and go to the [Accounts](https://octopus.energy/dashboard/new/accounts/) section and copy your account number e.g. A-1234567. +You should first log into your Octopus account and go to the [Accounts](https://octopus.energy/dashboard/new/accounts/) section and copy your Octopus account number e.g. `A-1234567`. -Then go to the [API Access page](https://octopus.energy/dashboard/new/accounts/personal-details/api-access) where you can copy your API key e.g. sk_live_1as12355... +Then go to the [API Access page](https://octopus.energy/dashboard/new/accounts/personal-details/api-access), click 'regenerate API key' and copy your API key e.g. `sk_live_1as12355...` -Put these both into your apps.yaml and you are done. +Put these both into your `apps.yaml` and you are done. ```yaml octopus_api_account: 'XXXXXXXX' octopus_api_key: 'sk_live_yyyyyyyy' ``` -Free energy sessions: +### Octopus Free energy sessions Predbat can obtain details of Free energy sessions directly from the Octopus Web Site. As Octopus do not publish an API for this information it has to be done by 'scraping' the website - there may be future issues with this if Octopus ever change the website format. @@ -57,15 +56,14 @@ this brings greater configurability than the direct method. The Octopus Energy integration connects to your Octopus Energy account and retrieves the tariffs you are on, and the current tariff rates. If you change tariff within Octopus the integration will automatically retrieve the updated tariff information, and as tariff prices change, again they are automatically retrieved. -The integration also provides support for Intelligent Octopus charging to support car charging. +The integration also provides support for Intelligent Octopus charging to support (multiple) car charging. Follow the instructions provided in the Octopus Energy integration documentation to install and set up the integration. Once installed, you will need to configure the integration (go to Settings / Devices & Services / Integrations / Octopus Energy then click 'Configure') and provide the integration with your 'Octopus API key' (that you obtain from your Octopus account: Personal Details / API access). -**CAUTION** To get detailed energy rates needed by Predbat you need to go into Home Assistant and manually enable the following -Octopus Energy events which are disabled by default when the integration is installed: +**CAUTION** To get detailed energy rates needed by Predbat you need to go into Home Assistant and manually enable the following Octopus Energy events which are disabled by default when the integration is installed: ```yaml event.octopus_energy_electricity_xxxxxxxx_previous_day_rates @@ -107,12 +105,16 @@ but you can comment out the regular expression lines to disable, or you set them - **metric_octopus_import** - Import rates from the Octopus Energy integration, should point to the sensor sensor.octopus_energy_electricity_METER_NUMBER_current_rate - **metric_octopus_export** - Export rates from the Octopus Energy integration, should point to the sensor sensor.octopus_energy_electricity_METER_NUMBER_export_current_rate - **metric_octopus_gas** - Gas rates from the Octopus Energy integration, should point to the sensor sensor.octopus_energy_gas_METER_NUMBER_current_rate -- **octopus_intelligent_slot** - If you have the Octopus Intelligent Go tariff this should point to the 'slot' sensor binary_sensor.octopus_energy_ACCOUNT_ID_intelligent_dispatching +- **octopus_intelligent_slot** - If you have the Octopus Intelligent Go tariff this should point to the 'slot' sensor binary_sensor.octopus_energy_DEVICE_ID_intelligent_dispatching metric_octopus_gas is (as above) only required to be configured if you are using Predbat to determine whether to heat your hot water via your iBoost or gas. If you do not have an export rate or are not on the Octopus Go tariff, then the appropriate lines can be commented out in apps.yaml. +NOTE: Predbat using the Octopus integration rates relies upon the day rate events being enabled (see above) and the events and the sensor found by metric_octopus_xxx in `apps.yaml` being similarly named.
+There have been occasions with some Octopus Integration installations where the event name is as above but the sensor name has a different prefix, e.g. sensor.electricity_METER_NUMBER_current_rate and not sensor.octopus_energy_electricity_METER_NUMBER_current_rate.
+If this is the case then the sensor must be renamed to the correct format so that Predbat can function correctly. + ### Standing charge Predbat can also (optionally) include the daily standing charge in cost predictions. @@ -123,12 +125,17 @@ The following configuration item in apps.yaml defaults to obtaining the standing You can manually change this to a standing charge in pounds, e.g. 0.50 is 50p, or delete this line from apps.yaml, or set it to zero if you don't want the standing charge (and only have consumption usage) to be included in Predbat charts and output data. +Note that this configuration option to suppress the standing charge only applies if you are using the Octopus Integration from Predbat. +If you are using the Octopus Energy direct method of Predbat directly connecting to Octopus then the standing charge will always be included in the plan and charts. + ### Octopus Saving sessions Predbat can automatically join you to Octopus saving sessions and plan battery activity for the saving session period to maximise your income. -For Predbat to automatically manage Octopus saving sessions the following additional configuration item in apps.yaml is used. -Like the electricity rates, this is set in the apps.yaml template to a regular expression that should auto-discover the Octopus Energy integration. +Note: **You must have signed up to both the Octopus Octoplus and then the Saving Session schemes to benefit from these events** + +For Predbat to automatically manage Octopus saving sessions the following additional configuration item in `apps.yaml` is used. +Like the electricity rates, this is set in the `apps.yaml` template to a regular expression that should auto-discover the Octopus Energy integration. - **octopus_saving_session** - Indicates if a saving session is active, should point to the sensor binary_sensor.octopus_energy_ACCOUNT_ID_octoplus_saving_sessions. @@ -153,7 +160,7 @@ or 'Control charge & discharge' for Predbat to be able to manage the battery for If you do not have an export tariff then forced export will not apply and Predbat will just ensure you have enough battery charge to see you through the saving session period. If you do not want Predbat to automatically join Octopus saving sessions and manage your battery activity for the session, -simply delete or comment out the **octopus_saving_session** entry in apps.yaml. +simply delete or comment out the **octopus_saving_session** entry in `apps.yaml`. ### Octopus free (power up) events @@ -161,7 +168,7 @@ Predbat can automatically detect Octopus free events and adjust your battery pla For Predbat to automatically manage Octopus free sessions the following additional configuration item in apps.yaml is used. -Note: **You must have signed up to Octoplus and eligible to benefit from these events** +Note: **You must have signed up to the Octopus Octoplus scheme and eligible to benefit from these events** Like the electricity rates, this is set in the apps.yaml template to a regular expression that should auto-discover the Octopus Energy integration. @@ -188,29 +195,39 @@ not work in future if Octopus ever change the website format. If you enable this ## Octopus Rates URL -If you do not wish to use the Octopus Energy integration and are an Octopus Energy customer then you can configure Predbat to get the electricity rates -directly online from the Octopus website. +As an alternative to the Octopus Direct or Octopus Energy integration methods, for Octopus Energy customers, you can configure Predbat to get the electricity rates directly online from the Octopus website. In apps.yaml configure the following lines: - **rates_import_octopus_url** to point to the appropriate import tariff URL on the Octopus website - **rates_export_octopus_url** to point to the export tariff URL -e.g. +e.g. (for DNO region A) ```yaml rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" - rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" ``` If you configure the rates_import_octopus_url then Predbat will use this instead of metric_octopus or rates_import. Similarly, rates_export_octopus_url takes precedence over metric_octopus_export or rates_export. -Configuring the Octopus rates URL is an expert feature and for most users, the Octopus Energy integration is a simpler solution. +A full list of available Octopus products is at . + +If you view this page, search for the tariff by name, then copy the URL it shows into a new tab. + +E.g. + +Look through that page to find the right URL for usage charges in your DNO area + + + +(For area A) + +Configuring the Octopus rates URL is an expert feature as Octopus change the available products from time to time, so for most users, the Octopus Direct or Octopus Energy integration are simpler solutions. ## Energidataservice Integration @@ -221,7 +238,7 @@ This integration allows you to automatically retrieve rates and apply them withi The integration processes hourly pricing data and converts it into 30-minute intervals, making it ideal for scheduling and optimizing energy usage. -## Configuring Predbat to Use the Energidataservice Integration +### Configuring Predbat to Use the Energidataservice Integration The following configuration items in apps.yaml are used to configure Predbat to use the Energidataservice integration. These items must be set explicitly to ensure that Predbat retrieves the correct import and export rates. diff --git a/docs/install.md b/docs/install.md index 87785aea9..f7decedec 100644 --- a/docs/install.md +++ b/docs/install.md @@ -80,7 +80,7 @@ To access the entire HA directory structure, click the three horizontal bars to **Recommended** -The simplest way to install Predbat now is with the Predbat add-on. +The simplest way to install Predbat now is with the Predbat add-on. The Predbat-Appdaemon add-on and Appdaemon install methods previously used for Predbat have been retired. Go to settings, add-ons, select Add-on Store, three dots on the top right, Repositories, then add the following repo '' to the list and click close. Now refresh the list and find Predbat, click on it and click 'install'. @@ -97,7 +97,11 @@ You can use your file editor (i.e. 'File editor' or 'Studio Code Server' add-on) The Predbat web interface will work through the Predbat add-on, you can click on the 'Web UI' button to open it once Predbat is running. -If you wish to use Docker with Predbat it is recommended you read the Docker installation instructions inside the Predbat. +## Docker Install + +As an alternative to the Predbat add-on, Predbat can be installed via Docker + +The Predbat docker image is [https://hub.docker.com/r/nipar44/predbat_addon](https://hub.docker.com/r/nipar44/predbat_addon) and a fork of the Predbat add-on with installation instructions and updates for Docker can be found at [https://github.com/nipar4/predbat_addon](https://github.com/nipar4/predbat_addon). ## Solcast Install @@ -110,6 +114,9 @@ If you don't have one already, register for a free [Solcast hobbyist account](ht You can create 2 sites maximum under one (free hobbyist) account, if you have more aspects then it suggests you average the angle based on the number of panels e.g. $7/10 * 240^\circ + 3/10 * 120^\circ$. +Make sure you configure the Azimuth (panel orientation) correctly in your Solcast account, Azimuth is not set as a 0-359 degree value, but rather as 0-180 for westerly facing, or 0 to minus 179 for easterly facing. +The Azimuth value is the number of degrees angled away from North, with the sign being West or East. If you're not sure, then do some quick research and check your roof orientation with a protractor on Google maps. + **Hybrid inverters only**: If your hybrid inverter capacity is smaller than your array peak capacity, tell Solcast that your AC capacity is equal to your DC capacity (both equal to your array peak kW). Otherwise, Solcast will provide forecast data clipped at your inverter capacity. Let Predbat handle any necessary clipping instead. When supplied with the unclipped Solcast forecast data, Predbat can allow in its model for PV over the inverter capacity going to battery charging @@ -147,7 +154,7 @@ You can create one or more rooftops by providing a list of the data for each one The latitude and longitude are your location in world, or for the UK you can set a postcode. -The azimuth is the direction of the roof: 0=North, -90=East, 90=West, -180/180 = South +The azimuth is the direction of the roof: 0=North, -90=East, 90=West, -180/180 = South - note these are different to how Solcast measures azimuth so if you do swap from forecast.solar to Solcast, don't just copy the azimuth over! The declination is the angle of the panels, e.g. 45 for a sloped roof or 20 for those on a flat roof The efficiency relates to the aging of your panels, 0.95 is for newer systems but they will lose around 1% each year. The optional forecast_solar_max_age setting sets the number of hours between updates to PV data, the default is 8. @@ -169,7 +176,7 @@ or you can set longitude and latitude if you are not in the UK or postcode does longitude: -0.1276 ``` -Optionally you can set an api_key for personal or professional accounts and you can also set 'days' to define how many future days of data the forecast includes (2 for free, 3 for personal or 6 for professional) +Optionally you can set an api_key for personal or professional accounts and you can also set 'days' to define how many future days of data the forecast includes (2 for free, 3 for personal or 6 for professional). ``` yaml forecast_solar: @@ -185,25 +192,18 @@ Note you can omit any of these settings for a default value. They do not have to Install the Solcast integration (), create a free [Solcast account](https://solcast.com/), configure details of your solar arrays, and request an API key that you enter into the Solcast integration in Home Assistant. -Predbat is configured in `apps.yaml` to automatically discover the Solcast forecast entities created by the Solcast integration in Home Assistant. - -If you don't have any solar generation then use a file editor to comment out the following lines from the Solar forecast part of the `apps.yaml` configuration: +Make sure that the configuration option 'Enable forecast half-hourly detail attributes' is turned on as predbat requires the half-hourly detailed solar forecast to populate the predbat plan. +By default the Solcast integration only provides hourly forecasts and Predbat will take each hourly PV forecast and treat it as a half-hour value - doubling your solar generation forecast! -```yaml - 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)) -``` +Predbat is configured in `apps.yaml` to automatically discover the Solcast forecast entities created by the Solcast integration in Home Assistant. -Note that Predbat does not update Solcast integration for you so you will need to create your own Home Assistant automation that updates the solar -forecast a few times a day (e.g. dawn, dusk, and just before your nightly charge slot). Keep in mind hobbyist accounts only have 10 polls per day -so the refresh period needs to be less than this. If you use the same Solcast account for other automations the total polls need to be kept under the limit or you will experience failures. +Note that Predbat does not update Solcast integration for you so you will either need to use the default forecast auto-update within the integration, or create your own Home Assistant automation that updates the solar forecast a few times a day +(e.g. dawn, dusk, and just before your nightly charge slot). +Keep in mind hobbyist accounts only have 10 polls per day so the refresh period needs to be less than this. If you use the same Solcast account for other automations the total polls need to be kept under the limit or you will experience failures. Due to the popularity of the Solcast Hobbyist service, Solcast has introduced rate limiting for Hobbyist (free) accounts. If your update gets a 429 error then this is due to rate limiting. Solcast recommends that you poll for updated solar forecasts at random times, i.e. don't poll at precisely X o'clock and zero seconds. -The Solcast integration will auto-retry if it gets a 429 error, -but to minimise the potential rate limiting the sample Solcast automation below contains non-precise poll times for just this reason. +The Solcast integration will auto-retry if it gets a 429 error, but to minimise the potential rate limiting the sample Solcast automation below contains non-precise poll times for just this reason. Example Solcast update automation script: @@ -227,6 +227,17 @@ mode: single Manually run the automation and then make sure the Solcast integration is working in Home Assistant by going to Developer Tools / States, filtering on 'solcast', and check that you can see the half-hourly solar forecasts in the Solcast entities. +### No solar + +If you don't have any solar generation then use a file editor to comment out the following lines from the Solar forecast part of the `apps.yaml` configuration: + +```yaml + 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)) +``` + ## Energy Rates Predbat needs to know what your electricity import and export rates are to optimise battery charging and discharging to minimise your expenditure. @@ -299,13 +310,13 @@ Once Predbat is running successfully the recommended next step is to start Predb This enables you to get a feel for the Predbat plan and further [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 - usually 'Control charge' or 'Control charge & discharge'. -Also, you should set **switch.predbat_set_read_only** to True to stop Predbat from making any changes to your inverter. +Also, you should set **switch.predbat_set_read_only** to On to stop Predbat from making any changes to your inverter. You can see the planned solar and grid charging and discharging activity in the [Predbat Plan](predbat-plan-card.md). Another set of views can be seen in the detailed [Apex Charts showing Predbat's predictions](creating-charts.md). 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. +set the switch **switch.predbat_set_read_only** to Off and Predbat will start controlling your inverter. ## Updating Predbat @@ -331,12 +342,12 @@ Click on the update and select Install: 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. +Alternatively, if you turn On **switch.predbat_auto_update**, Predbat will automatically update itself as new releases are published on GitHub. ![image](https://github.com/springfall2008/batpred/assets/48591903/56bca491-1069-4abb-be29-a50b0a67a6b9) Once Predbat has been installed and configured you should update Predbat to the latest version by selecting the latest version in the **select.predbat_update** selector, -or by enabling the **switch.predbat_auto_update** to auto-update Predbat. +or by turning on the **switch.predbat_auto_update** to auto-update Predbat. ## Upgrading from AppDaemon to Predbat add-on diff --git a/docs/inverter-setup.md b/docs/inverter-setup.md index 5bb1591ec..d350eda4c 100644 --- a/docs/inverter-setup.md +++ b/docs/inverter-setup.md @@ -22,6 +22,9 @@ PredBat was originally written for GivEnergy inverters using the GivTCP integrat Note that support for all these inverters is in various stages of development. Please expect things to fail and report them as Issues on GitHub. +Additionally you can create a [custom inverter definition for Predbat](#i-want-to-add-an-unsupported-inverter-to-predbat) if your inverter type is not directly supported. +Once you get everything working please share the configuration as a github issue so it can be incorporated into the predbat documentation. + NB: By default the apps.yaml template for GivTCP is installed with Predbat. If you are using a different inverter then you will need to copy the appropriate apps.yaml template from the above list and use it to **replace the GivTCP apps.yaml** - if you copy but don't replace the standard template then Predbat will not function correctly. @@ -98,9 +101,9 @@ The rest of the [Predbat installation instructions](install.md) should now be fo but its worth highlighting that there are a few specific settings that should be set for certain GivEnergy equipment. These settings are documented in the appropriate place in the documentation, but for ease of identification, are repeated here: -- If you are using GivTCP v3 and have an AIO or 3-phase inverter then you will need to manually set [geserial in apps.yaml](apps-yaml.md#geserial) to your inverter serial number as the auto-detect doesn't work for this setup +- If you are using GivTCP v3 and have an AIO or 3-phase inverter then you will need to manually set [geserial in apps.yaml](apps-yaml.md#geserial) to your inverter serial number in lower case as the auto-detect doesn't work for this setup - If you have a single AIO then control is directly to the AIO. Ensure [geserial in apps.yaml](apps-yaml.md#geserial) is correctly picking the AIO and comment out geserial2 lines -- If you have multiple AIOs then all control of the AIOs is done through the Gateway so [geserial in apps.yaml](apps-yaml.md#geserial) should be set to the Gateway serial number +- If you have multiple AIOs then all control of the AIOs is done through the Gateway so [geserial in apps.yaml](apps-yaml.md#geserial) should be set to the Gateway serial number in lower case - If you have multiple AIOs you might want to consider setting [inverter charge and discharge limits](apps-yaml.md#inverter-control-configurations) unless you want to charge and discharge at the full 12kWh! - If you have a 2.6kWh, 5.2kWh or AIO battery then you will need to set [battery_scaling in apps.yaml](apps-yaml.md#battery-size-scaling) @@ -670,32 +673,44 @@ The following additions are needed to facilitate integration with Predbat and ne - First copy one of the template configurations that is close to your system and try to configure it to match the sensors you have - Create a GitHub ticket for support and add what you know to the ticket - Then find out how to control your inverter inside Home Assistant, ideally share any automation you have to control the inverter -- You can create a new inverter type in apps.yaml and change the options as to which controls it has -- Set [inverter_type in apps.yaml](apps-yaml.md#inverter_type) to match the custom inverter definition ('MINE' in the example below) -- The easy way to integrate using Home Assistant services to start charges and discharges, edit the template below: +- You can create a new inverter type in `apps.yaml` and change the options as to which controls it has +- You **must** set [inverter_type in apps.yaml](apps-yaml.md#inverter_type) with a custom name ('MINE' in the example below) - if you do not do this then Predbat will assume you have a GivEnergy inverter +and will apply inverter limits for that inverter (e.g. max charge/discharge of 2600W) +- Configure Predbat with the appropriate Home Assistant services to start charges and discharges, etc. + +The following template can be used as a starting point: ```yaml inverter_type: MINE inverter: - name: "My Shiny new Inverter" + name: "MINE" has_rest_api: False has_mqtt_api: False + has_service_api: True output_charge_control: "power" + charge_control_immediate: False + current_dp: 1 + charge_discharge_with_rate: False has_charge_enable_time: False has_discharge_enable_time: False has_target_soc: False + target_soc_used_for_discharge: True has_reserve_soc: False + has_timed_pause: False + time_button_press: False + support_charge_freeze: False + support_discharge_freeze: False + has_ge_inverter_mode: False + has_fox_inverter_mode: False + has_idle_time: False + has_time_window: False charge_time_format: "S" charge_time_entity_is_option: False - soc_units: "%" - num_load_entities: 1 - has_ge_inverter_mode": False - time_button_press: False + can_span_midnight: False clock_time_format: "%Y-%m-%d %H:%M:%S" + num_load_entities: 1 + soc_units: "%" write_and_poll_sleep: 2 - has_time_window: False - support_charge_freeze: False - support_discharge_freeze": False # Services to control charging/discharging charge_start_service: @@ -710,43 +725,42 @@ The following additions are needed to facilitate integration with Predbat and ne service: select.select_option entity_id: "select.solaredge_i1_storage_command_mode" option: "Maximize Self Consumption" - ``` -## Inverter control option +## Inverter control options The following options are supported per inverter: ### has_rest_api -When True the REST API will be used to fetch data/control the inverter. This is currently only for GivEnergy inverters with GivTCP and **givtcp_rest** must be set in apps.yaml +When True the REST API will be used to fetch data/control the inverter. This is currently only for GivEnergy inverters with GivTCP and **givtcp_rest** must be set in `apps.yaml` ### has_mqtt_api -When True the MQTT API to Home Assistant will be used to issue control messages for the inverter +When True the Home Assistant MQTT API will be used to issue control messages for the inverter -The MQTT/publish service is used with the topic as defined by **mqtt_topic** in apps.yaml +The MQTT/publish service is used with the topic as defined by **mqtt_topic** in `apps.yaml` Messages will be sent through these controls: Values that are updated: -- **topic**/set/reserve - payload=reserve +- **topic**/set/reserve - payload=reserve - **topic**/set/charge_rate - payload=new_rate - **topic**/set/discharge_rate - payload=new_rate - **topic**/set/target_soc - payload=target_soc -These three change between battery charge/discharge and auto (idle) mode: +These three messages change between battery charge/discharge and auto (demand) mode: - **topic**/set/charge - payload=charge_rate - **topic**/set/discharge - payload=discharge_rate - **topic**/set/auto - payload=true -### Service API +### has_service_api -When True a Home Assistant service will be used to issue control messages for the inverter +When True a Home Assistant service will be used to issue control messages for the inverter. -For each service you wish to use it must be defined in apps.yaml. +For each service you wish to use it must be defined in `apps.yaml`. There are two ways to define a service, the basic mode: @@ -754,9 +768,9 @@ There are two ways to define a service, the basic mode: charge_start_service: my_service_name_charge ``` -Will call my_service_name_charge for the charge start service. +Will call `my_service_name_charge` for the charge start service. -Or the custom method: +Or the custom method where you can define all the parameter values passed to the service and use the default values from the template, or define your own: ```yaml charge_start_service: @@ -768,8 +782,6 @@ Or the custom method: charge_end_time: "{charge_end_time}" ``` -Here you can define all the values passed to the service and use the default values from the template or define your own. - You can also call more than one service e.g: ```yaml @@ -800,8 +812,8 @@ Called to start a charge The default options passed in are: -- device_id - as defined in apps.yaml by **device_id** -- target_soc - The SOC to charge to +- device_id - as defined in `apps.yaml` by **device_id** +- target_soc - The SoC to charge to - power - The charge power to use - charge_start_time - Start time for the charge - charge_end_time - End time for the charge @@ -810,133 +822,155 @@ The default options passed in are: If defined will be called for freeze charge, otherwise, charge_start_service is used for freeze charge also. +#### charge_stop_service + +Called to stop a charge + +- device_id - as defined in `apps.yaml` by **device_id** + #### discharge_start_service Called to start a discharge The default options passed in are: -- device_id - as defined in apps.yaml by **device_id** -- target_soc - The SOC to discharge to +- device_id - as defined in `apps.yaml` by **device_id** +- target_soc - The SoC to discharge to - power - The discharge power to use #### discharge_freeze_service If defined will be called for Discharge freeze, otherwise, discharge_start_service is used for freeze discharge also. -#### charge_stop_service - -Called to stop a charge - -device_id - as defined in apps.yaml by **device_id** - #### discharge_stop_service Called to stop a discharge, if not set then **charge_stop_service** will be used instead -- device_id - as defined in apps.yaml by **device_id** +- device_id - as defined in `apps.yaml` by **device_id** ### output_charge_control -Set to power, current or none +Controls what charge control units are to be used when starting charging. Set to "power", "current" or "none". -When power the inverter has a **charge_rate** and **discharge_rate** setting in watts defined in apps.yaml +When set to "power", Predbat will use the inverter sensors configured as **charge_rate** and **discharge_rate** in `apps.yaml` to set the inverter charge/discharge power levels. These inverter sensors must be in watts. -When current the inverter has **timed_charge_current** and **timed_discharge_current** setting in amps defined in apps.yaml +When set to "current", Predbat will use the inverter sensors configured as **timed_charge_current** and **timed_discharge_current** in `apps.yaml` to set the inverter charge/discharge current levels. These inverter sensors must be in amps.
+Additionally if you are using "current" control for your inverter you must set **battery_voltage** in `apps.yaml` to your nominal maximum battery voltage (NB: not the current battery voltage) +as Predbat will use this to convert its output commands from watts to amps for the inverter. ### charge_control_immediate -When True the inverter uses **timed_charge_current** and **timed_discharge_current** to control charging and discharging by setting current levels directly, instead of following a time-based plan. +When True, the inverter uses **timed_charge_current** and **timed_discharge_current** in `apps.yaml` to control charging and discharging by setting current levels directly, instead of following a time-based plan. ### current_dp -Sets the number of decimal places when setting the current in Amps, which should be 0 or 1 +Sets the number of decimal places to be used when setting the current in Amps, which should be 0 or 1. + +### charge_discharge_with_rate + +When True, the inverter requires that when charging the discharge rate must set be 0; and vice-versa, when discharging the charge rate must be set to 0. + +When False, the charge/discharge rate does not have to change. ### has_charge_enable_time -When True the inverter has a setting defined in apps.yaml called **scheduled_charge_enable** when can be used to enable/disable timed charging. +When True, Predbat uses the **scheduled_charge_enable** switch configured in `apps.yaml` to enable/disable timed charging on the inverter. ### has_discharge_enable_time -When True the inverter has a setting defined in apps.yaml called **scheduled_discharge_enable** when can be used to enable/disable timed discharging. +When True, Predbat uses the **scheduled_discharge_enable** switch configured in `apps.yaml` to enable/disable timed discharging on the inverter. ### has_target_soc -When True the inverter has a target charge SoC setting in apps.yaml called **charge_limit**. -When False charging must be turned on and off by Predbat rather than the inverter doing it based on the target SoC %. +When True, Predbat uses the **charge_limit** sensor configured in `apps.yaml` to set the target charge SoC % setting for the inverter. The charge limit is the limit that the inverter will charge the battery up to. +When False, charging will be turned on and off by Predbat rather than the inverter doing it based on the target SoC %. + +### target_soc_used_for_discharge + +When True, Predbat will use the **charge_limit** sensor configured in `apps.yaml` to control the target discharge SoC% for the inverter. + +When False, Predbat will not adjust the **charge_limit** sensor when discharging. ### has_reserve_soc -When True the inverter has a discharge reserve SoC setting in apps.yaml called **reserve** which is the target % to discharge the battery down to. -When False discharging must be turned on and off by Predbat rather than the inverter doing it based on discharge Soc %. +When True, Predbat uses the **reserve** sensor configured in `apps.yaml` to set the discharge reserve SoC % for the inverter. The reserve SoC is the target % to discharge the battery down to. +When False, discharging will be turned on and off by Predbat rather than the inverter doing it based on discharge SoC %. ### has_timed_pause -When True the inverter has a setting in apps.yaml called **pause_mode** and settings **pause_start_time** and **pause_end_time** which can be used to pause the inverter from -charging and discharging the battery - this is for GivEnergy systems only right now. +When True, Predbat uses the **pause_mode** and optional **pause_start_time** and **pause_end_time** settings in `apps.yaml` to pause the inverter from charging and discharging the battery. This setting is for GivEnergy systems only right now. -### charge_time_format +### time_button_press -When set to "HH:MM:SS" the inverter has: +When True, the inverter requires a button press to update the inverter registers from the Home Assistant values. -**charge_start_time** **charge_end_time** -**discharge_start_time** **discharge_end_time** +The `apps.yaml` setting **charge_discharge_update_button** is the entity name of the button that Predbat will "push" to update the inverter registers. -Which are option selectors in the format HH:MM:SS (e.g. 12:23:00) where seconds are always 00. +### support_charge_freeze -When set to "H M" the inverter has: +When True, the inverter supports charge freeze modes. -**charge_start_hour** **charge_end_hour** **charge_start_minute** **charge_end_minute** -**discharge_start_hour** **discharge_end_hour** **discharge_start_minute** **discharge_end_minute** +### support_discharge_freeze -Settings in apps.yaml which can be used to set the start and end times of charges and discharges +When True, the inverter supports discharge freeze modes. -### charge_time_entity_is_option +### has_ge_inverter_mode -When True **charge_start_time** **charge_end_time** **discharge_start_time** and **discharge_end_time** are all Options, when false they are number values. +When True, the inverter supports the GivEnergy inverter modes (ECO, Timed Export etc). -### clock_time_format +### has_fox_inverter_mode -Defines the time format of the inverter clock setting **inverter_time** in apps.yaml +When True, the inverter supports Fox inverter modes, i.e. Eco (Paused) is treated the same as Eco mode and the inverter mode is always set to "SelfUse" as all charging and discharging is controlled by schedule, not inverter modes. -### soc_units +### has_idle_time -Defines the units of the SOC setting (currently not used) +When True, the inverter has an idle time register which must be set to the start and end times for Eco mode (GivEnergy EMS). **idle_start_time** and **idle_end_time** must be configured in `apps.yaml` to the appropriate inverter controls. -### time_button_press +### has_time_window -When true the inverter has a button press which is needed to update the inverter registers from the Home Assistant values. +Not currently used by Predbat. -The apps.yaml setting **charge_discharge_update_button** is the entity name of the button that must be pressed and polled until it updates after each inverter register change. +### charge_time_format -### support_charge_freeze +This setting is used to control what format of charge and discharge times the inverter requires. -When True the inverter supports charge freeze modes +When set to "HH:MM:SS", Predbat will control the inverter charge/discharge start and end times by setting the entities defined by **charge_start_time**, **charge_end_time**, **discharge_start_time** and **discharge_end_time** in `apps.yaml`. -### support_discharge_freeze +The format of these entities depends on **charge_time_entity_is_option** as defined below. -When True the inverter supports discharge freeze modes +When set to "H M", Predbat will control the inverter charge/discharge start and end times by setting the entities defined by **charge_start_hour**, **charge_start_minute**, **charge_end_hour**, **charge_end_minute**, +**discharge_start_hour**, **discharge_start_minute**, **discharge_end_hour** and **discharge_end_minute** in `apps.yaml`. -### has_ge_inverter_mode +These entities are used to set the start and end hours and minutes of charges and discharges. -When True the inverter as the GivEnergy inverter modes (ECO, Timed Export etc). +When set to "H:M-H:M", Predbat will control the inverter charge/discharge start and end times by setting the entities defined by **charge_time** and **discharge_time** in `apps.yaml`. +The entities take a single time range value in the format "*start hour*:*start minute*-*end hour*:*end minute*" -### num_load_entities +### charge_time_entity_is_option -Sets the number of **load_power_n** settings in apps.yaml are present in addition to **load_power** (the default) +When True, **charge_start_time** **charge_end_time** **discharge_start_time** and **discharge_end_time** are all option selectors for time in the format HH:MM:SS (e.g. 12:23:00) where seconds are always 00. -### write_and_poll_sleep +When False, these entities are all number values. -Sets the number of seconds between polls of inverter settings +### can_span_midnight -### has_idle_time +When True, start and end times for charge and discharge can span midnight e.g. 23:00:00 - 01:00:00 is a 2-hour slot. -When True the inverter has an idle time register which must be set to the start and end times for ECO mode (GivEnergy EMS) +When False, start and end times can't span midnight and Predbat will control the inverter with separate charges/discharges up to and then after midnight if required by the plan. -### can_span_midnight +### clock_time_format -When True start and end times for charge and discharge can span midnight e.g. 23:00:00 - 01:00:00 is a 2-hour slot. +Defines the time format of the inverter clock setting **inverter_time** in `apps.yaml` -### charge_discharge_with_rate +### num_load_entities + +Enables you to define additional house load power sensors in `apps.yaml` in addition to the default **load_power** sensor. e.g. if set to 2 then Predbat will additionally use **load_power_1** and **load_power_2** settings in `apps.yaml`. +This setting might be required for 3-phase inverters. + +### soc_units + +Defines the units of the SoC setting (currently not used), it defaults to "%". + +### write_and_poll_sleep -When True when charging discharge rate must be 0 and visa-versa. When false the rate does not have to change. +Sets the number of seconds between polls of inverter settings. diff --git a/docs/output-data.md b/docs/output-data.md index 077dd8e4b..f0e105707 100644 --- a/docs/output-data.md +++ b/docs/output-data.md @@ -564,12 +564,21 @@ The following sensors give the forecast Solar data from Solcast. Predbat populates these sensors irrespective of whether you are using the [Predbat direct Solcast or Solcast integration method](install.md#solcast-install) to get your Solar forecast, but if you are using the Solcast integration then the Predbat sensors mirror the similarly named Solcast integration sensors so could be disabled if you so wish. -- sensor.predbat_pv_today - Tracks the PV forecast in kWh for today, attributes give the remaining amount today and the half-hourly data -- sensor.predbat_pv_tomorrow - Tracks the PV forecast in kWh for tomorrow, attributes give the remaining amount today and the half-hourly data +- sensor.predbat_pv_today - Tracks the PV forecast in kWh for today, attributes give the total today, remaining amount today and the half-hourly data +- sensor.predbat_pv_tomorrow - Tracks the PV forecast in kWh for tomorrow, attributes give the total today, remaining amount today and the half-hourly data - sensor.predbat_pv_d2 - Similar to the above, but tracking the PV forecast for the day after tomorrow - sensor.predbat_pv_d3 - PV forecast for two days after tomorrow - sensor.predbat_pv_forecast_h0 - Tracks the PV 'power now' forecast in Watts, attributes give the 10% and 90% power now forecast +The solar sensor attributes include: + +- total - total PV forecast for the day +- total10 - total PV 10% forecast for the day +- total90 - total PV 90% forecast for the day +- totalCL - total calibrated PV forecast for the day, this is the PV forecast adjusted by Predbat based on historical forecast vs generation data. The calibration should take account of shading or panel performance issues +- remaining/remaining10/remaining90/remainingCL - forecast solar generation for the remainder of the day +- detailedForecast - a half hourly breakdown of solar forecast for the day, with similar PV estimate, 10% estimate, 90% estimate and calibrated estimate values + ## Dummy inverter sensors Predbat can now manage different inverter types, some of which don't have all the same control characteristics. Predbat might create dummy entities for control aspects that your inverter doesn't natively support. @@ -762,24 +771,24 @@ The script will need to be customised for your mobile details. alias: Predbat error monitor description: Alert when Predbat has raised an exception trace: - stored_traces: 20 + stored_traces: 50 triggers: - trigger: template - alias: Predbat status contains 'Error' for 5 minutes + alias: Predbat status contains 'Error' for 10 minutes value_template: "{{ 'Error' in states('predbat.status') }}" for: - minutes: 5 + minutes: 10 variables: alert_text: >- Predbat status is {{ states('predbat.status') }}, error={{ state_attr('predbat.status', 'error') }} - trigger: state - alias: Predbat is in error status for 5 minutes + alias: Predbat is in error status for 10 minutes entity_id: predbat.status attribute: error to: "true" for: - minutes: 5 + minutes: 10 variables: alert_text: >- Predbat status is {{ states('predbat.status') }}, error={{ @@ -792,10 +801,10 @@ triggers: minutes: 20 variables: alert_text: >- - Predbat stalled? Restarting. last_updated=' {{ + Predbat last_updated=' {{ state_attr('predbat.status','last_updated')|as_timestamp|timestamp_custom('%a %H:%M') }}', unchanged for 20 mins; Status='{{ states('predbat.status') - }}' + }}', restarting restart_predbat: "Y" - trigger: state alias: Predbat add-on not running for 15 minutes @@ -815,7 +824,38 @@ triggers: variables: alert_text: Predbat active has been stuck on (updating the plan) for 20 minutes, restarting restart_predbat: "Y" + - trigger: template + alias: Predbat entities not populated for 20 minutes + value_template: "{{ states('predbat.plan_html') == 'unknown' }}" + for: + minutes: 20 + variables: + alert_text: >- + Predbat plan is unknown for 20 minutes, possibly failed on startup, + restarting + restart_predbat: "Y" + - alias: "Heartbeat: check predbat has populated output entities OK" + trigger: time_pattern + minutes: /30 + id: heartbeat actions: + - alias: Heartbeat, check predbat output variables are populated + if: + - condition: trigger + id: + - heartbeat + then: + - if: + - condition: template + value_template: "{{states('predbat.plan_html') == 'unknown' }}" + then: + - variables: + alert_text: >- + Predbat has not populated its output entities, possibly failed + on startup, restarting + restart_predbat: "Y" + else: + - stop: "Heartbeat check: Predbat plan is populated, all is OK" - action: notify.mobile_app_ alias: Send alert message data: diff --git a/docs/predbat-plan-card.md b/docs/predbat-plan-card.md index d4c4f6018..6665345ec 100644 --- a/docs/predbat-plan-card.md +++ b/docs/predbat-plan-card.md @@ -96,7 +96,7 @@ discharging and force exported, or being held at the current level.
Alongside the state is an arrow which points upwards if the battery SoC is increasing (i.e. charging), to the right if the battery SoC remains constant, or downwards if the battery SoC is decreasing (i.e. discharging).
If Predbat's plan has been over-ridden and the [slot has been manually controlled](customisation.md#manual-control) to be a Charging slot, Discharging or Idle, -then alongside the State and battery SoC arrow will be an upside down 'F' indicating it is a 'Forced' activity.
+then alongside the State and battery SoC arrow will be an upside down 'F' (ⅎ) indicating it is a 'Forced' activity.
The slot will be coloured Green for Charging, Yellow for Discharging, Silver Grey for Freeze Charging, Dark Grey for Freeze Discharging, Pale Blue for Hold Charging or White for Idle.
NB: The Predbat plan is shown in 30-minute time slots but Predbat actually plans battery activity in 5-minute segments within the 30-minute slot. If the Home Assistant control *switch.predbat_calculate_export_oncharge* is set to True, @@ -104,7 +104,8 @@ then within a 30-minute slot (and depending on import and export rates), Predbat charging and discharging activity - if Predbat plans this, the state will show as both Charging and Exporting in the same slot. - **Limit %** - Alongside any battery activity (charging, discharging, etc) there will be a SoC limit. This limit is what the SoC is planned to be at the end of the 30-minute time slot. -e.g. 'Charge↗ 70%' is charge to 70% SoC, and 'Exp↘ 4%' is force exporting the battery to the 4% reserve level. +e.g. 'Charge↗ 70%' is charge to 70% SoC, and 'Exp↘ 4%' is force exporting the battery to the 4% reserve level.
+If Predbat is planning a slow charge or slow export then the limit will be preceded by a snail symbol (🐌) and will be shown as 'limit.tens_of_percentage_rate_reduction'. e.g.: 16.3 means limit of 16% and charge/discharge at 70% of normal rate. - **PV kWh** - The predicted solar forecast for the half-hour slot, estimated from the [Solcast Forecast](apps-yaml.md#solcast-solar-forecast).
If the PV forecast is above 0.2kWh for the slot it will be coloured Melon Red with a little sun symbol, above 0.1kWh it will be Yellow with a sun symbol, diff --git a/docs/predheat.md b/docs/predheat.md index 56ff228e7..5e4627c02 100644 --- a/docs/predheat.md +++ b/docs/predheat.md @@ -27,7 +27,7 @@ Future versions will also offer Predbat to run in master mode, controlling your ## Installation guide -Predheat is now part of Predbat, you will need to configure it using apps.yaml and then enable it by turning on **switch.predbat_predheat_enable** +Predheat is now part of Predbat, you will need to configure it using `apps.yaml` and then enable it by turning on **switch.predbat_predheat_enable** ### Openweather install diff --git a/templates/fox.yaml b/templates/fox.yaml index db21befa4..a3b60c8f9 100644 --- a/templates/fox.yaml +++ b/templates/fox.yaml @@ -243,12 +243,12 @@ pred_bat: # 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 + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 @@ -305,13 +305,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/fox_cloud.yaml b/templates/fox_cloud.yaml index 83a1b2c44..ff9f7631c 100644 --- a/templates/fox_cloud.yaml +++ b/templates/fox_cloud.yaml @@ -153,13 +153,13 @@ pred_bat: #car_charging_exclusive: # - True - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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 + # 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 the intelligent slot from the Octopus Energy integration octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' - octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_limit)' + octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' @@ -228,13 +228,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-BB-24-10-01/electricity-tariffs/E-1R-AGILE-BB-24-10-01-A/standard-unit-rates/" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/ge_cloud_octopus_standalone.yaml b/templates/ge_cloud_octopus_standalone.yaml index c44de38d4..0add9cecf 100644 --- a/templates/ge_cloud_octopus_standalone.yaml +++ b/templates/ge_cloud_octopus_standalone.yaml @@ -221,13 +221,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import - #rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-L/standard-unit-rates" - #rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-L/standard-unit-rates/" + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-L/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-L/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-L/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/ginlong_solis.yaml b/templates/ginlong_solis.yaml index 960d6f532..4256a1ea4 100644 --- a/templates/ginlong_solis.yaml +++ b/templates/ginlong_solis.yaml @@ -218,12 +218,12 @@ pred_bat: # car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Carbon Intensity data from National grid @@ -277,13 +277,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/givenergy_cloud.yaml b/templates/givenergy_cloud.yaml index 60273d88b..183a029e1 100644 --- a/templates/givenergy_cloud.yaml +++ b/templates/givenergy_cloud.yaml @@ -265,12 +265,12 @@ pred_bat: car_charging_soc: - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 @@ -333,13 +333,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/givenergy_ems.yaml b/templates/givenergy_ems.yaml index 5e9fc1fc1..ef5b723cc 100644 --- a/templates/givenergy_ems.yaml +++ b/templates/givenergy_ems.yaml @@ -262,12 +262,12 @@ pred_bat: car_charging_soc: - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 @@ -331,13 +331,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/givenergy_givtcp.yaml b/templates/givenergy_givtcp.yaml index b73cce2b0..24393e87c 100644 --- a/templates/givenergy_givtcp.yaml +++ b/templates/givenergy_givtcp.yaml @@ -305,13 +305,14 @@ pred_bat: #car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' + # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -372,13 +373,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/huawei.yaml b/templates/huawei.yaml index 7bcc1e86d..305b2e8ba 100644 --- a/templates/huawei.yaml +++ b/templates/huawei.yaml @@ -226,16 +226,13 @@ pred_bat: #car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' - octopus_charge_limit: 're:(number.octopus_energy_([0-9a-z_]+|)_intelligent_charge_target)' - - # Carbon Intensity data from National grid - carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' @@ -245,6 +242,9 @@ pred_bat: # Set this to False if you use Octopus Intelligent slot for car planning but when on another tariff e.g. Agile #octopus_slot_low_rate: False + # Carbon Intensity data from National grid + carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed # Rate is read automatically from the add-in and converted to pence using the conversion rate below (default is 8) octopus_saving_session: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))' @@ -291,6 +291,17 @@ pred_bat: #rates_export: # - rate: 0 + # Can be used instead of the plugin to get import rates directly online + # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" + + # Overrides metric_octopus_export and rates_export + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" + # 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) diff --git a/templates/luxpower.yaml b/templates/luxpower.yaml index 2c1496ea7..2710809ed 100644 --- a/templates/luxpower.yaml +++ b/templates/luxpower.yaml @@ -267,13 +267,14 @@ pred_bat: #car_charging_exclusive: # - True - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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 + # 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 the intelligent slot from the Octopus Energy integration octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' - octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_limit)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' + # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -331,13 +332,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-G/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-G/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/sigenergy_sigenstor.yaml b/templates/sigenergy_sigenstor.yaml index 89cf2d350..7bac7f680 100644 --- a/templates/sigenergy_sigenstor.yaml +++ b/templates/sigenergy_sigenstor.yaml @@ -202,13 +202,12 @@ pred_bat: # car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Carbon Intensity data from National grid @@ -258,13 +257,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/sofar.yaml b/templates/sofar.yaml index 212f1aa2c..21b88957f 100644 --- a/templates/sofar.yaml +++ b/templates/sofar.yaml @@ -206,17 +206,14 @@ pred_bat: #car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' - # Carbon Intensity data from National grid - carbon_intensity: 're:(sensor.carbon_intensity_uk)' - # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -225,6 +222,9 @@ pred_bat: # Set this to False if you use Octopus Intelligent slot for car planning but when on another tariff e.g. Agile #octopus_slot_low_rate: False + # Carbon Intensity data from National grid + carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed # rate configured with input_number.predbat_metric_octopus_saving_rate in-side HA octopus_saving_session: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))' @@ -274,13 +274,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/sofar_modbus.yaml b/templates/sofar_modbus.yaml index ec3f26cca..b03d0285c 100644 --- a/templates/sofar_modbus.yaml +++ b/templates/sofar_modbus.yaml @@ -227,13 +227,13 @@ pred_bat: #car_charging_exclusive: # - True - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy([0-9a-z_]+|)_intelligent_dispatching)' - # octopus_ready_time: 're:(time.octopus_energy([0-9a-z_]+|)_intelligent_ready_time)' - # octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_limit)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' @@ -293,13 +293,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/solar_assistant_growatt_spa.yaml b/templates/solar_assistant_growatt_spa.yaml index fcd5cb7e8..7ac502eef 100644 --- a/templates/solar_assistant_growatt_spa.yaml +++ b/templates/solar_assistant_growatt_spa.yaml @@ -200,13 +200,12 @@ pred_bat: # car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Carbon Intensity data from National grid @@ -256,13 +255,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/solar_assistant_growatt_sph.yaml b/templates/solar_assistant_growatt_sph.yaml index 2d35644e9..6133e2c78 100644 --- a/templates/solar_assistant_growatt_sph.yaml +++ b/templates/solar_assistant_growatt_sph.yaml @@ -195,18 +195,14 @@ pred_bat: # car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' - # Carbon Intensity data from National grid - carbon_intensity: 're:(sensor.carbon_intensity_uk)' - # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -215,6 +211,9 @@ pred_bat: # Set this to False if you use Octopus Intelligent slot for car planning but when on another tariff e.g. Agile #octopus_slot_low_rate: False + # Carbon Intensity data from National grid + carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed # Rate is read automatically from the add-in and converted to pence using the conversion rate below (default is 8) octopus_saving_session: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))' @@ -251,13 +250,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/solaredge.yaml b/templates/solaredge.yaml index bda7f9853..661fd9954 100644 --- a/templates/solaredge.yaml +++ b/templates/solaredge.yaml @@ -202,17 +202,14 @@ pred_bat: car_charging_soc: - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' - # Carbon Intensity data from National grid - carbon_intensity: 're:(sensor.carbon_intensity_uk)' - # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -221,6 +218,9 @@ pred_bat: # Set this to False if you use Octopus Intelligent slot for car planning but when on another tariff e.g. Agile #octopus_slot_low_rate: False + # Carbon Intensity data from National grid + carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed # Rate is read automatically from the add-in and converted to pence using the conversion rate below (default is 8) octopus_saving_session: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))' @@ -261,13 +261,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/solax_sx4.yaml b/templates/solax_sx4.yaml index 46207770b..421cc2bb0 100644 --- a/templates/solax_sx4.yaml +++ b/templates/solax_sx4.yaml @@ -238,18 +238,14 @@ pred_bat: # car_charging_soc: # - 're:sensor.tsunami_battery' - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' - # Carbon Intensity data from National grid - carbon_intensity: 're:(sensor.carbon_intensity_uk)' - # Example alternative configuration for Ohme integration release >=v0.6.1 #octopus_intelligent_slot: 'binary_sensor.ohme_slot_active' #octopus_ready_time: 'time.ohme_target_time' @@ -258,6 +254,9 @@ pred_bat: # Set this to False if you use Octopus Intelligent slot for car planning but when on another tariff e.g. Agile #octopus_slot_low_rate: False + # Carbon Intensity data from National grid + carbon_intensity: 're:(sensor.carbon_intensity_uk)' + # Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed # Rate is read automatically from the add-in and converted to pence using the conversion rate below (default is 8) octopus_saving_session: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))' @@ -298,13 +297,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override diff --git a/templates/sunsynk.yaml b/templates/sunsynk.yaml index c7eb755e5..fee9b4f51 100644 --- a/templates/sunsynk.yaml +++ b/templates/sunsynk.yaml @@ -319,13 +319,12 @@ pred_bat: #car_charging_exclusive: # - True - # If you have Octopus intelligent, enable the intelligent slot information to add to pricing + # If you have Octopus Intelligent Go and are not using the Octopus Direct connection method, 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_energy_([0-9a-z_]+|)_intelligent_dispatching)' - octopus_ready_time: 're:(time.octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' + # 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 the intelligent slot from the Octopus Energy integration + octopus_intelligent_slot: 're:(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)' + octopus_ready_time: 're:((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)' octopus_charge_limit: 're:(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)' # Example alternative configuration for Ohme integration release >=v0.6.1 @@ -388,13 +387,14 @@ pred_bat: # Can be used instead of the plugin to get import rates directly online # Overrides metric_octopus_import and rates_import + # See the 'energy rates' part of the documentation for instructions on how to find the correct URL for your tariff and DNO region + # # rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates" - # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates" + # rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-A/standard-unit-rates" # Overrides metric_octopus_export and rates_export - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/" - # rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-23-02-14-A/standard-unit-rates" + # rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-19-05-13/electricity-tariffs/E-1R-AGILE-OUTGOING-19-05-13-A/standard-unit-rates/" # Import rates can be overridden with rate_import_override # Export rates can be overridden with rate_export_override