Predbat: Anyone have a working apps.yaml example for Fox KH7 inverter?

I am trying to set up predbat with a Fox-ESS KH7 inverter. I have plugged in my sensor/control names (I am using FoxESS-Modbus), but cannot get a plan to display in predbat, and am seeing these errors repeatedly in the predbat log:

39869	2026-06-25 08:39:15.373380: Warn: record_status Error: Inverter 0 unable to read charge window time as neither REST, charge_start_time or charge_start_hour are set
39868	2026-06-25 08:39:15.355360: Error: Inverter 0 unable to read charge window time as neither REST, charge_start_time or charge_start_hour are set
39853	2026-06-25 08:37:01.319042: Error: timer_tick caught exception:
39852	2026-06-25 08:37:01.318906: Warn: record_status Error: Exception raised

My current apps.yaml is below. Any advice would be much appreciated.

pred_bat:
  module: predbat
  class: PredBat
  prefix: predbat
  timezone: Europe/London
  currency_symbols:
  - "£"
  - "p"
  predbat_mode: "Monitor"
  validation_check: false

  metric_inverter_load: 0.0
  metric_house_load: "sensor.foxess_kh7_load_power"
  metric_battery_soc: "sensor.foxess_kh7_battery_soc"
  metric_grid_power: "sensor.foxess_kh7_grid_ct"
  metric_battery_capacity: 11.52
  metric_battery_charge_rate_max: 6000
  metric_battery_discharge_rate_max: 6000

  threads: auto
  load_filter_threshold: 30
  load_today:
  - sensor.foxess_kh7_load_power
  import_today:
  - sensor.foxess_kh7_grid_consumption_energy_today
  export_today:
  - sensor.foxess_kh7_feed_in_energy_today
  pv_today:
  - sensor.foxess_kh7_solar_energy_today

  num_inverters: 1
  balance_inverters_seconds: 60
  charge_start_service:
    service: select.select_option
    entity_id: select.foxess_kh7_work_mode
    option: "Force Charge"
  charge_stop_service:
    service: select.select_option
    entity_id: select.foxess_kh7_work_mode
    option: "Self Use"
  discharge_start_service:
    service: select.select_option
    entity_id: select.foxess_kh7_work_mode
    option: "Force Discharge"
  discharge_stop_service:
    service: select.select_option
    entity_id: select.foxess_kh7_work_mode
    option: "Self Use"
  charge_start_hour:
  - 0
  charge_start_minute:
  - 0
  charge_end_hour:
  - 0
  charge_end_minute:
  - 0
  charge_rate:
  - number.foxess_kh7_force_charge_power
  discharge_rate:
  - number.foxess_kh7_force_discharge_power
  battery_power:
  - sensor.foxess_kh7_invbatpower
  pv_power:
  - sensor.foxess_modbus_foxess_kh7_pv_power_foxess_kh7
  load_power:
  - sensor.foxess_kh7_load_power
  grid_power:
  - sensor.foxess_kh7_grid_consumption
  soc_kw:
  - sensor.foxess_kh7_bms_kwh_remaining
  soc_max:
  - sensor.foxess_kh7_bms_kwh_remaining
  reserve:
  - number.foxess_kh7_min_soc_on_grid
  charge_enable:
  - input_boolean.predbat_dummy_charge_enable  # <-- ADD THIS
  charge_limit:
  - input_number.input_number_predbat_dummy_charge_limit # <-- UPDATE THIS
  inverter_limit:
  - 7000
  inverter_clock_skew_start: 0
  inverter_clock_skew_end: 0
  inverter_clock_skew_discharge_start: 0
  inverter_clock_skew_discharge_end: 0
  clock_skew: 0
  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))
  car_charging_energy: "re:(sensor.myenergi_zappi_[0-9a-z]+_charge_added_session|sensor.wallbox_portal_added_energy)"
  num_cars: 0
  car_charging_planned:
  - "re:(sensor.wallbox_portal_status_description|sensor.myenergi_zappi_[0-9a-z]+_plug_status)"
  car_charging_planned_response:
  - "yes"
  - "on"
  - "true"
  - "connected"
  - "ev connected"
  - "charging"
  - "paused"
  - "waiting for car demand"
  - "waiting for ev"
  - "scheduled"
  - "enabled"
  - "latched"
  - "locked"
  - "plugged in"
  - "waiting"
  car_charging_now_response:
  - "yes"
  - "on"
  - "true"

  octopus_api_key: "sk_live_********************"
  octopus_api_account: "A-******"
  octopus_automatic: true
  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)"
  octopus_saving_session: "re:(event.octopus_energy([0-9a-z_]+|)_saving_session_event(s|))"
  octopus_saving_session_octopoints_per_penny: 8
  octopus_free_session: "re:(event.octopus_energy_([0-9a-z_]+|)_octoplus_free_electricity_session_events)"
  metric_octopus_import: "sensor.octopus_energy_electricity_z16n195525_1900006012690_current_rate"
  rates_export_agile_override: 0.0
  metric_standing_charge: "sensor.octopus_energy_electricity_z16n195525_1900006012690_current_standing_charge"
  days_previous:
  - 7
  days_previous_weight:
  - 1
  forecast_hours: 48
  battery_scaling:
  - 1.0
  import_export_scaling: 1.0
  solcast_api_key: "*************************"
  solcast_poll_hours: 8          # Forces Predbat to only poll once every 8 hours (3 calls/day)