x789 / xonox

An alternative service for legacy NOXON(tm) devices
GNU Affero General Public License v3.0
6 stars 2 forks source link

Problems with xonox 1.0.1 in Ubuntu 22.04.4 LTS (Jammy Jellyfish) #17

Closed SaschaRei closed 4 months ago

SaschaRei commented 4 months ago

Hello TillW, before I explain my problem, it is very important for me to thank you for the great program "xonox" that has saved my five Noxon devices from being thrown away for the last two years and makes me very happy. :-) I'm running xonox in a VM with Ubuntu 18.04 LTS (Bionic Beaver) and the program version v0.0.7.2 nearly since two years. Everything runs without any problems (except some preset-buttons, but that can be neglected). Unfortunately, the support for my Ubuntu version has expired, so that I have to deal with a change to the current LTS version (Ubuntu 22.04.4 LTS, Jammy Jellyfish). Regardless of whether I upgrade the existing installation or do a completely clean installation of Ubuntu with a new installation of xonox 1.0.1 (dependencies successfully installed: Jinja2-3.1.3, MarkupSafe-2.1.5, Werkzeug-3.0.1, blinker-1.7.0, click-8.1.7, flask-3.0.2, itsdangerous-2.1.2) the started program reports the following error messages after the call by the devices:

---------------------
ERROR ln app: Exception on /setupapp/fs/asp/BrowseXML/Search.asp [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request ()
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.10/dist-packages/flask/app.py", line 855, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type : ignore[no-any-return]
File "/usr/local/lib/python3.10/dist-packages/xonox/server.py", line 103, in search_station
station = stationRepository.get(requestedStationId)
File "/usr/local/lib/python3.10/dist-packages/xonox/station_repository.py", line 26, in get
raise KeyError()
KeyError
---------------------

In a new installation of xonox it seems to me that there won't be created a new config file (xonox.conf) automatically. Unfortunately, I cannot interpret the error messages. Is it a program error or a problem on my part?

I am aware that you manage the maintenance of the program in your very limited free time and I don't want to burden you with too many questions. But perhaps this problem is also relevant for other users and also solves their problem.

Of course, I don't expect an immediate solution, but I would be happy if you could check the problem at the next opportunity with some time. Thank you very much in advance and best wishes for Easter. Thank you very much for your commitment.

Best wishes and regards SaschaRei

x789 commented 4 months ago

Hello @SaschaRei, first of all, thank you for your kind words, for using xonox and for your patience.

If I understood correctly, you also upgraded xonox from 0.0.7.2 to 1.0.1 as part of your OS upgrade. Normally a radio should not call the endpoint Search.asp without parameters. Probably the complete URL was not printed, so I have to guess a bit now. I suspect that a radio wants to call a station that xonox does not recognize. This can happen if a radio wants to play the last played station automatically and the station list of xonox has changed in the meantime. The list of stations and their internally used IDs are managed by the server and not by the radios.

If you do not want to reuse your old xonox.conf: The xonox.conf is only created when you add a station to the station list via the management API. Does the problem also exist if you take this approach?

In case you are using your old xonox.conf from 0.0.7.2: What happens when you request the station list via your radio? Does the radio display a list? If a list is displayed and you select a station, does the error message appear in the xonox log? Can you send me your xonox.conf? To protect your privacy, you are welcome to remove the names, descriptions and URLs of the stations. I am interested in the structure of the file. (0.0.7.2 and 1.0.1 should be compatible, but maybe I missed something).

Best wishes, Till

SaschaRei commented 4 months ago

Hello @x789, thank you very much for your quick and friendly reply.

You exactly found the problem that I had: The above described key error occurs if you did a new clean xonox installation in a new system. If you start the Noxon Radio it tries to reconnect it to the last played station and contacts the xonox server with a empty station station list, which - of course - causes that error message.

Your information regarding the creation of the xonox.conf helped me to solve my problem. I've added manually with CURL one new station to the list and after this it worked perfectly. In next step I had to search the path of the xonox.conf, which was not detectable with the file search, because it was located as a result of the sudo issue in the protected location "admin:///root", while in the old VM it was stored in the users directory (although I just installed pip and xonox there also via sudo context and installed it in the new machine same way). After restoring the xonox.conf from the old VM in the discovered path of the new VM, all stations have been restored successfully. Now xonox works as perfect as before and there was also a further improvement: In the new xonox version now all five preset-buttons are working perfectly. It's like christmas. Thank you!

Even if I'm a bit ashamed of my request afterwards, I'm very, very happy that everything is now up and running. Thanks to Ubuntu's ESU updates, the current LTS version is now supported until 2032, so hopefully I won't have to ask any more questions until then. Nevertheless, I hope that Xonox will continue to be updated from time to time, if your time allows it. Many, many thanks for your support. I wish you a happy Easter and send my best regards and wishes SaschaRei :-)