flobz / psa_car_controller

Control psa car with connected_car v4 API.
GNU General Public License v3.0
403 stars 210 forks source link

Callback error updating page-content.children #502

Closed sebcorse closed 1 year ago

sebcorse commented 1 year ago

After upgrade Ubuntu 20 to 22 (with.a lot of broken packages). Now with python 3.10.6, this error appears in control tab.

File "Button.py", line 21, in init callback_id = create_callback_id(self._output) TypeError: create_callback_id() missing 1 required positional argument: 'inputs'

jhaarden commented 1 year ago

The same error happens when running PSACC in a container in Home Assistant OS. Full log:

2023-04-14 12:03:14,647 :: INFO :: 172.30.32.1 - - [14/Apr/2023 12:03:14] "GET /_dash-dependencies HTTP/1.1" 200 - 
2023-04-14 12:03:14,706 :: ERROR :: get_control_tabs: Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/view/control.py", line 50, in get_control_tabs buttons_row.extend([Button(REFRESH_SWITCH, car.vin, 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/tools/Button.py", line 21, in __init__ callback_id = create_callback_id(self._output) 
TypeError: create_callback_id() missing 1 required positional argument: 'inputs' 
2023-04-14 12:03:14,709 :: ERROR :: Exception on /_dash-update-component [POST] 
Traceback (most recent call last): 
File "/usr/lib/python3/dist-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) 
File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise raise value 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) 
File "/usr/local/lib/python3.9/dist-packages/dash/dash.py", line 1283, in dispatch ctx.run( 
File "/usr/local/lib/python3.9/dist-packages/dash/_callback.py", line 450, in add_context output_value = func(*func_args, **func_kwargs) # %% callback invoked %% 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/view/views.py", line 72, in display_page page = get_control_tabs(APP) 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/view/control.py", line 61, in get_control_tabs buttons_row.append(Switch(ABRP_SWITCH, car.vin, "Send data to ABRP", myp.abrp.enable_abrp, 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/tools/Switch.py", line 14, in __init__ super().__init__(role, element_id, label, fct, prevent_initial_call) 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/tools/Button.py", line 21, in __init__ callback_id = create_callback_id(self._output) 
TypeError: create_callback_id() missing 1 required positional argument: 'inputs' 
2023-04-14 12:03:14,709 :: ERROR :: Exception on /_dash-update-component [POST] 
Traceback (most recent call last): 
File "/usr/lib/python3/dist-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) 
File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise raise value 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() 
File "/usr/lib/python3/dist-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) 
File "/usr/local/lib/python3.9/dist-packages/dash/dash.py", line 1283, in dispatch ctx.run( 
File "/usr/local/lib/python3.9/dist-packages/dash/_callback.py", line 450, in add_context output_value = func(*func_args, **func_kwargs) # %% callback invoked %% 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/view/views.py", line 72, in display_page page = get_control_tabs(APP) 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/view/control.py", line 61, in get_control_tabs buttons_row.append(Switch(ABRP_SWITCH, car.vin, "Send data to ABRP", myp.abrp.enable_abrp, 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/tools/Switch.py", line 14, in __init__ super().__init__(role, element_id, label, fct, prevent_initial_call) 
File "/usr/local/lib/python3.9/dist-packages/psa_car_controller/web/tools/Button.py", line 21, in __init__ callback_id = create_callback_id(self._output) 
TypeError: create_callback_id() missing 1 required positional argument: 'inputs' 
2023-04-14 12:03:14,714 :: INFO :: 172.30.32.1 - - [14/Apr/2023 12:03:14] "POST /_dash-update-component HTTP/1.1" 500 -

By the way, it was really tricky to copy and paste this log from the Log section of the web interface, when run inside of the Home Assistant web interface on a Mac, because the line breaks are not regular line breaks.

flobz commented 1 year ago

fix in last version v3.0.12