Closed ghost closed 2 years ago
Klappt es besser, wenn du pip3 install xonox
zur Installation nutzt?
Nein, gleiche Meldung
Das geht: sudo pip3.8 install xonox oder sudo pip3.8 install xonox -v für verbose mode
python -m xonox liefert dann Folgendes:
Ich vermute, dass die permission denied
-Meldung durch den Versuch den Port 80 zu öffnen entsteht. Unter Linux/Unix dürfen in der Regel normale Benutzer nur Ports über 1024 öffnen. Da die iRadios jedoch Port 80 erwarten, muss xonox
auf diesem laufen.
@HorstRado: Versuche mal, ob xonox
läuft, wenn du das Script als superuser ausführst, also:
sudo python -m xonox
⚠️ Es kann passieren, dass dadurch zwar der Port geöffnet wird, xonox
aber nicht die Konfiguration im Home-Verzeichnis speichern kann. Deshalb empfehle ich dir, den Speicherort für die Konfiguration manuell anzugeben, wenn du sudo
nutzt. Um die xonox.config
zum Beispiel im Verzeichnis home/pi
zu speichern, nutze:
sudo python -m xonox --config-dir /home/pi
Normalerweise würde ich davon abraten, einen Service als superuser auszuführen. So kannst du aber schnell feststellen, ob es an den fehlenden Berechtigungen für Port 80 lag.
Ich bin jetzt noch mal über 'Los' gegangen :-)
Raspi neu installiert mit der aktuellen Raspian Version
enthalten ist Python V3.9.2
pip install xonox funktioniert ohne Fehlermeldung: horst@raspberrypi:~ $ pip install xonox Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: xonox in ./.local/lib/python3.9/site-packages (0.0.5) Requirement already satisfied: flask in /usr/lib/python3/dist-packages (from xonox) (1.1.2)
legacy.noxonserver.eu und gate1.noxonserver.eu sind in pi-hole (läuft auf einem anderen raspi) umgeleitet.
python -m xonox liefert: horst@raspberrypi:~ $ python -m xonox
Radio ist Noxon iRado300
P.S.
@HorstRado: Es freut mich, dass du noch nicht aufgegeben hast. 👍
Du hast xonox
als Benutzer horst
installiert. Deshalb wurde das Modul durch pip
in /home/horst/.local/lib/python3.9/site-packages/xonox/
abgelegt.
Wenn du jetzt aber sudo python -m xonox
ausführst, wird das ganze (wahrscheinlich) als Benutzer pi
ausgeführt. Im Verzeichnis /home/pi/.local/lib/python3.9/site-packages/
wird es aber wahrscheinlich kein xonox
geben.
Du hast jetzt zwei Möglichkeiten:
Du installierst für pi
das Paket xonox
mittels sudo pip install xonox
. Dann kannst du mit sudo python -m xonox --config-dir .
den Service starten. (Vielleicht deinstallierst du das Paket dann noch für den Nutzer horst
mittels pip uninstall xonox
.)
Oder du führst xonox
als Benutzer horst
, ohne sudo
aus. Dazu benötigst du aber noch ein Helferlein wie authbind
.
Installation:
sudo apt install authbind
# configure access to port 80
sudo touch /etc/authbind/byport/80
sudo chmod 777 /etc/authbind/byport/80
Start von xonox
:
authbind --deep python -m xonox --config-dir .
@HorstRado: Falls du xonox
nicht bei dir als Autostart-Service konfiguriert hast und verhindern möchtest, dass der Service nach deinem SSH-Logout beendet wird, kann dir screen
weiterhelfen.
Erst mal vielen Dank für deine gute Hilfe!
Ich hab jetzt mit dem Benutzer pi folgendes gemacht: pi@raspberrypi:~ $ sudo pip install xonox Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: xonox in /usr/local/lib/python3.9/dist-packages (0.0.5) Requirement already satisfied: flask in /usr/lib/python3/dist-packages (from xonox) (1.1.2)
pi@raspberrypi:~ $ sudo python -m xonox
Am Radiomenu 'Internet' angewählt gibt die noxon Konsole folgendes aus und das Radiodisplay sagt 'leer': 192.168.42.125 - - [26/Jun/2022 17:40:26] "GET /setupapp/fs/asp/BrowseXML/loginXML.asp?token=0 HTTP/1.1" 200 - 192.168.42.125 - - [26/Jun/2022 17:40:26] "GET /setupapp/fs/asp/BrowseXML/loginXML.asp?gofile=&mac=9f868345b8fa93a771e9f6bc7309e275&dlang=ger&fver=79&hw=10143&ven=Terratec HTTP/1.1" 200 -
Beim Absenden deines Beispiels: curl --location --request POST 'http://legacy.noxonserver.eu/station' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Radio Swiss Pop", "description": "Radio Swiss Pop Live Stream", "streamUrl": "http://stream.srg-ssr.ch/m/rsp/mp3_128" }'
oder bei
curl --location --request GET 'http://legacy.noxonserver.eu/station'
curl: (7) Failed to connect to legacy.noxonserver.eu port 80: Connection refused
Wenn das Radiodisplay 'leer' anzeigt, ist das ein gutes Zeichen. Das zeigt, dass das Radio mit xonox
sprechen kann. Bei den Beispielrequests in der Doku bin ich davon ausgegangen, dass der Rechner der den Curl-Request abschickt den gleichen DNS-Server wie die Radios nutzt. Wenn das bei dir nicht der Fall ist, dann schicke die Requests an die IP-Adresse des xonox
-Services. Wenn du direkt auf dem Raspberry bist auf dem auch xonox
läuft, dann könntest du auch den Request an den localhost
abschicken.
Also wenn du den Request vom Raspberry ausführst:
curl --location --request POST 'http://localhost/station'
--header 'Content-Type: application/json'
--data-raw '{
"name": "Radio Swiss Pop",
"description": "Radio Swiss Pop Live Stream",
"streamUrl": "http://stream.srg-ssr.ch/m/rsp/mp3_128"
}'
Von einem anderen Computer:
curl --location --request POST 'http://xonox-ip/station'
--header 'Content-Type: application/json'
--data-raw '{
"name": "Radio Swiss Pop",
"description": "Radio Swiss Pop Live Stream",
"streamUrl": "http://stream.srg-ssr.ch/m/rsp/mp3_128"
}'
Kaum macht man es richtig und schon geht's auch. Vielen Dank für deine geduldige Hilfe.
Autostart des xonox Servers:
sudo nano /etc/rc.local
Vor der Zeile mit exit 0 sudo python -m xonox & einfügen
Hallo, ich habe Python 3.8.0 auf dem Raspi und bekomme u.a. Meldung bei pip install xonox. Any ideas?
pi@raspberry:~ $ python -V Python 3.8.0 pi@raspberry:~ $ pip install xonox Collecting xonox Could not find a version that satisfies the requirement xonox (from versions: ) No matching distribution found for xonox