batpred icon indicating copy to clipboard operation
batpred copied to clipboard

Predbat not working after latest update

Open alanvalente75 opened this issue 1 year ago • 6 comments

Hi

since the last update Predbat doesn’t work on HA - The logs state the following

homeassistant/appdaemon/apps/batpred/predbat.py", line 14212, in async_restore_settings_yaml if (item["value"] != item.get("default", None)) and item.get("restore", True):

alanvalente75 avatar May 16 '24 18:05 alanvalente75

Have you tried restarting the appdaemon-predbat addon? From posts, this often seems to get predbat working again following an update.

Rob

SwiftRR avatar May 16 '24 20:05 SwiftRR

Thank you Rob that worked 👍

alanvalente75 avatar May 16 '24 21:05 alanvalente75

I've just encountered this but only after updating HA core, restarting the add on hasn't worked for me 😩

thewookiewon avatar May 17 '24 15:05 thewookiewon

`----------------------------------------------------------- Add-on: appdaemon-predbat Predbat pre-install in AppDaemon

Add-on version: 1.0.10 You are running the latest version of this add-on. System: Home Assistant OS 12.3 (aarch64 / raspberrypi5-64) Home Assistant Core: 2024.5.4 Home Assistant Supervisor: 2024.05.1

Please, share the above information when looking for help or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-appdaemon: starting s6-rc: info: service init-appdaemon successfully started s6-rc: info: service appdaemon: starting s6-rc: info: service appdaemon successfully started s6-rc: info: service legacy-services: starting [15:57:53] INFO: Starting AppDaemon... s6-rc: info: service legacy-services successfully started 2024-05-17 15:58:34.283779 WARNING pred_bat: ------------------------------------------------------------ 2024-05-17 15:58:34.284093 WARNING pred_bat: Unexpected error in worker for App pred_bat: 2024-05-17 15:58:34.284254 WARNING pred_bat: Worker Ags: {'id': 'abf4bde2aa1e4980ba2e3e498edbffb1', 'name': 'pred_bat', 'objectid': 'f7de7dfe834943fa843d65306a2842a1', 'type': 'scheduler', 'function': <bound method PredBat.update_time_loop of <predbat.PredBat object at 0x7f80a3fe10>>, 'pin_app': True, 'pin_thread': 0, 'kwargs': {'interval': 15, 'random_start': 0, 'random_end': 0, '__thread_id': 'thread-0'}} 2024-05-17 15:58:34.284369 WARNING pred_bat: ------------------------------------------------------------ 2024-05-17 15:58:34.286933 WARNING pred_bat: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/appdaemon/threading.py", line 1022, in worker funcref(self.AD.sched.sanitize_timer_kwargs(app, args["kwargs"])) File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock return f(*args, **kw) ^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 14780, in update_time_loop raise e File "/config/apps/predbat.py", line 14775, in update_time_loop self.update_pred(scheduled=False) File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock return f(*args, **kw) ^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 13685, in update_pred recompute = self.calculate_plan(recompute=recompute) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 11938, in calculate_plan self.calculate_yesterday() File "/config/apps/predbat.py", line 11744, in calculate_yesterday ) = self.run_prediction(charge_limit_best, charge_window_best, [], [], False, end_record=(24 * 60), save="yesterday") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 6194, in run_prediction ) = pred.run_prediction(charge_limit, charge_window, discharge_window, discharge_limits, pv10, end_record, save, step) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 1721, in run_prediction pv_now += pv_forecast_minute_step[minute + offset] ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ KeyError: 1440

2024-05-17 15:58:34.287083 WARNING pred_bat: ------------------------------------------------------------ 2024-05-17 16:00:03.895244 WARNING pred_bat: ------------------------------------------------------------ 2024-05-17 16:00:03.895499 WARNING pred_bat: Unexpected error in worker for App pred_bat: 2024-05-17 16:00:03.895690 WARNING pred_bat: Worker Ags: {'id': '5ee92bd886e440e5a44369831fe97b86', 'name': 'pred_bat', 'objectid': 'f7de7dfe834943fa843d65306a2842a1', 'type': 'scheduler', 'function': <bound method PredBat.run_time_loop of <predbat.PredBat object at 0x7f80a3fe10>>, 'pin_app': True, 'pin_thread': 0, 'kwargs': {'interval': 300, 'random_start': 0, 'random_end': 0, '__thread_id': 'thread-0'}} 2024-05-17 16:00:03.896010 WARNING pred_bat: ------------------------------------------------------------ 2024-05-17 16:00:03.898660 WARNING pred_bat: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/appdaemon/threading.py", line 1022, in worker funcref(self.AD.sched.sanitize_timer_kwargs(app, args["kwargs"])) File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock return f(*args, **kw) ^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 14802, in run_time_loop raise e File "/config/apps/predbat.py", line 14798, in run_time_loop self.update_pred(scheduled=True) File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock return f(*args, **kw) ^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 13685, in update_pred recompute = self.calculate_plan(recompute=recompute) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 11938, in calculate_plan self.calculate_yesterday() File "/config/apps/predbat.py", line 11744, in calculate_yesterday ) = self.run_prediction(charge_limit_best, charge_window_best, [], [], False, end_record=(24 * 60), save="yesterday") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 6194, in run_prediction ) = pred.run_prediction(charge_limit, charge_window, discharge_window, discharge_limits, pv10, end_record, save, step) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/apps/predbat.py", line 1721, in run_prediction pv_now += pv_forecast_minute_step[minute + offset] ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ KeyError: 1440

2024-05-17 16:00:03.898821 WARNING pred_bat: ------------------------------------------------------------`

thewookiewon avatar May 17 '24 15:05 thewookiewon

+1 with the Key error 1440.

Tried a few AD restarts but still present. I've rolled back to 7.19.0 and it's working again.

RobinCu avatar May 17 '24 15:05 RobinCu

Yep, confirmed rolling back to 7.19.0 fixes the problem for me

thewookiewon avatar May 17 '24 17:05 thewookiewon

I upgraded to 7.19.1 yesterday with no issues.

rob

SwiftRR avatar May 18 '24 07:05 SwiftRR

+1 with errors,

7.19.1 Changed to ERROR: Exception raised 1440 7.19.2 Changed to ERROR: Exception raised 1470

Neomancer86 avatar May 18 '24 13:05 Neomancer86

7.19.3 AD logs:

2024-05-18 15:23:57.385162 WARNING pred_bat: Unexpected error in worker for App pred_bat:
2024-05-18 15:23:57.385373 WARNING pred_bat: Worker Ags: {'id': 'dab4788f4e894b61a1f9d4991c0e618d', 'name': 'pred_bat', 'objectid': 'a56da057f3424f1a85dec2af70cc311d', 'type': 'scheduler', 'function': <bound method PredBat.update_time_loop of <predbat.PredBat object at 0x7f4592596590>>, 'pin_app': True, 'pin_thread': 0, 'kwargs': {'interval': 15, 'random_start': 0, 'random_end': 0, '__thread_id': 'thread-0'}}
2024-05-18 15:23:57.385580 WARNING pred_bat: ------------------------------------------------------------
2024-05-18 15:23:57.389137 WARNING pred_bat: Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/appdaemon/threading.py", line 1022, in worker
    funcref(self.AD.sched.sanitize_timer_kwargs(app, args["kwargs"]))
  File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock
    return f(*args, **kw)
           ^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 14746, in update_time_loop
    raise e
  File "/config/apps/batpred/predbat.py", line 14741, in update_time_loop
    self.update_pred(scheduled=False)
  File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock
    return f(*args, **kw)
           ^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 13649, in update_pred
    recompute = self.calculate_plan(recompute=recompute)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 11908, in calculate_plan
    self.calculate_yesterday()
  File "/config/apps/batpred/predbat.py", line 11706, in calculate_yesterday
    ) = self.run_prediction(charge_limit_best, charge_window_best, [], [], False, end_record=(24 * 60), save="yesterday")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 6187, in run_prediction
    ) = pred.run_prediction(charge_limit, charge_window, discharge_window, discharge_limits, pv10, end_record, save, step)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 1714, in run_prediction
    pv_now += pv_forecast_minute_step[minute + offset]
              ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 1470

2024-05-18 15:23:57.389404 WARNING pred_bat: ------------------------------------------------------------
2024-05-18 15:25:08.928140 WARNING pred_bat: ------------------------------------------------------------
2024-05-18 15:25:08.928401 WARNING pred_bat: Unexpected error in worker for App pred_bat:
2024-05-18 15:25:08.928616 WARNING pred_bat: Worker Ags: {'id': '0980e503eeb242d3af6fe2922a73cc20', 'name': 'pred_bat', 'objectid': '5cd1083d38be422b92645f681ed72240', 'type': 'scheduler', 'function': <bound method PredBat.run_time_loop of <predbat.PredBat object at 0x7f4592596590>>, 'pin_app': True, 'pin_thread': 0, 'kwargs': {'interval': 300, 'random_start': 0, 'random_end': 0, '__thread_id': 'thread-0'}}
2024-05-18 15:25:08.928802 WARNING pred_bat: ------------------------------------------------------------
2024-05-18 15:25:08.932529 WARNING pred_bat: Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/appdaemon/threading.py", line 1022, in worker
    funcref(self.AD.sched.sanitize_timer_kwargs(app, args["kwargs"]))
  File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock
    return f(*args, **kw)
           ^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 14768, in run_time_loop
    raise e
  File "/config/apps/batpred/predbat.py", line 14764, in run_time_loop
    self.update_pred(scheduled=True)
  File "/usr/lib/python3.11/site-packages/appdaemon/adbase.py", line 35, in f_app_lock
    return f(*args, **kw)
           ^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 13649, in update_pred
    recompute = self.calculate_plan(recompute=recompute)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 11908, in calculate_plan
    self.calculate_yesterday()
  File "/config/apps/batpred/predbat.py", line 11706, in calculate_yesterday
    ) = self.run_prediction(charge_limit_best, charge_window_best, [], [], False, end_record=(24 * 60), save="yesterday")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/predbat.py", line 6187, in run_prediction
    ) = pred.run_prediction(charge_limit, charge_window, discharge_window, discharge_limits, pv10, end_record, save, step)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/apps/batpred/config/predbat.py", line 1721, in run_prediction
    pv_now += pv_forecast_minute_step[minute + offset]
              ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 1470

2024-05-18 15:25:08.932726 WARNING pred_bat: ------------------------------------------------------------```

RobinCu avatar May 18 '24 14:05 RobinCu

+1 with errors,

7.19.1 Changed to ERROR: Exception raised 1440 7.19.2 Changed to ERROR: Exception raised 1470

Restarting appdaemon did not help

rholligan avatar May 18 '24 22:05 rholligan

I believe the issue if you changed forecast_hours in apps.yaml to something <48 it seems to trigger a bug, perhaps try putting it back to 48. I will try to fix it soon.

springfall2008 avatar May 20 '24 14:05 springfall2008

That worked for me. I have no idea why I changed forecast_hours; I must have been messing around.

RobinCu avatar May 20 '24 14:05 RobinCu

Confirmed! fixed for me too!

Neomancer86 avatar May 20 '24 14:05 Neomancer86

For the record, I have upgraded successfully through 7.19.0 up in steps to 7.19.5 without anything untoward. I have checked my apps.yaml file and my forecast hours are 48. Your comment in apps.yaml is apt, but it would be good to fix it to prevent predbats going awol. #Number of hours forward to forecast, best left as-is unless you have specific reason

Rob

SwiftRR avatar May 20 '24 15:05 SwiftRR

Fixed in v7.19.6

springfall2008 avatar May 20 '24 17:05 springfall2008