[Neues Modul] BOSE SoundTouch

Begonnen von dominik, 05 Januar 2016, 22:28:40

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Zitat von: Mad am 31 Januar 2026, 10:28:12Namen eines Lautsprechers in der App geändert. Könnte es damit zusammenhängen?
Eher nicht.

Ich vermute von den Symptomen her, dass eine der Voraussetzungen für BOSEST nicht erfüllt ist.

Tipp: Man aktualisert ein System nicht, indem man FHEM "neu aufsetzt".

LG

pah

Mad

Danke für die Antwort. Ich hatte leider keine andere Möglichkeit, da ich noch auf Buster unterwegs war. Updateversuche sind gescheitert, daher dieser Weg.
Es müsste soweit alles vorhanden sein, da es ja bis gestern ging....

betateilchen

Zitat von: Mad am 31 Januar 2026, 10:28:12ich habe gerade das Problem, dass meine Lautsprecher nicht mehr "online" in fhem gehen.
Im Log kommt folgende Meldung in Dauerschleife:

Was liefert eine manuelle Abfrage im Browser auf die URL

http://<ipDerBox>:8090//listMediaServers
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Mad

Zitat von: betateilchen am 31 Januar 2026, 17:31:27Was liefert eine manuelle Abfrage im Browser auf die URL

Es werden die Fritzboxen ausgeworfen....

Ich konnte es jetzt etwas weiter aufschlüsseln. Ich habe gestern noch ein fhem "update all" durchgeführt. Danach trat der Fehler auf.
Nun habe ich ein Backup von vor dem gestrigen update aufgespielt und es läuft wieder.
Wieso führt das update zu solch einem Fehler?

FlatTV

Heute wollte ich doch mal soundcork ausprobieren.
Auf meinem ,,trixie" Pi habe ich das GitHub Projekt pyenv eingesetzt, um eine Python 3.12.12 Umgebung zu bekommen und anscheinend soundcork installiert.
Der Server ,,startet" auch, ich muss aber das Environment .venv gesetzt lassen und auch in das Verzeichnis wechseln.
Ansonsten wird schon fastapi nicht gefunden.
Für mehr habe ich gerade keine Zeit.

((.venv) ) pi@pi3:~/soundcork/soundcork $ fastapi run main.py

   FastAPI   Starting production server 🚀
 
             Searching for package file structure from directories with __init__.py files
2026-02-01 09:53:28,669 [soundcork.datastore] INFO: Initiating Datastore
2026-02-01 09:53:28,676 [soundcork.datastore] INFO: Initiating Datastore
             Importing from /home/pi/soundcork
 
    module   📁 soundcork     
             ├── 🐍 __init__.py
             └── 🐍 main.py   
 
      code   Importing the FastAPI app object from the module with the following code:
 
             from soundcork.main import app
 
       app   Using import string: soundcork.main:app
 
    server   Server started at http://0.0.0.0:8000
    server   Documentation at http://0.0.0.0:8000/docs
 
             Logs:
 
      INFO   Started server process [51399]
2026-02-01 09:53:32,988 [uvicorn.error] INFO: Started server process [51399]
      INFO   Waiting for application startup.
2026-02-01 09:53:32,992 [uvicorn.error] INFO: Waiting for application startup.
2026-02-01 09:53:32,996 [soundcork.main] INFO: Starting up soundcork
2026-02-01 09:53:32,996 [soundcork.main] INFO: done starting up server
      INFO   Application startup complete.
2026-02-01 09:53:32,997 [uvicorn.error] INFO: Application startup complete.
      INFO   Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
2026-02-01 09:53:33,002 [uvicorn.error] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

Warum steht dort 0.0.0.0?

pi@pi3:~ $ netstat -a | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN     
pi@pi3:~ $
Naja auf die URL komme ich auch nicht 😔
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

ZitatDer Server ,,startet" auch, ich muss aber das Environment .venv gesetzt lassen und auch in das Verzeichnis wechseln
Korrekt, das muss auch so sein.

ZitatWarum steht dort 0.0.0.0?
Ist bei mir auch so, scheint in Ordnung zu sein.

ZitatNaja auf die URL komme ich auch nicht
Ist nicht in Ordnung. Wenn man direkt die Url http://<IP>:8000 aufruft, MUSS als Response stehen
Bose "Can't Brick Us"
Vermutung: Du hast vergessen, in der Datei .env.private die richtigen Daten einzutragen. Bei mir steht darin
base_url = "http://192.168.0.94:8000"
data_dir = "/home/soundcork/db"

Nicht ganz trivial ist auch, was man in die Datei soundcork.service einträgt. Bei mir steht dort
[Unit]
Description=Gunicorn Daemon for Soundcork
After=network.target

[Service]
User=soundcork
WorkingDirectory=/home/soundcork/soundcork/soundcork
ExecStart=/home/soundcork/soundcork/.venv/bin/gunicorn -c gunicorn_conf.py main:app


[Install]
WantedBy=multi-user.target

Konkret habe ich a.) den user soundcork hinzugefügt, mit Gruppe dialout. b.) In dessen home directory /home/soundcork das github-Projekt geklont, damit bin ich schon bei /home/soundcork/soundcork c.) Durch den Installationsprozess wird dann /home/soundcork/soundcork/soundcork erzeugt. Das ist reichlich wild, hoffentlich verbessert sich das noch im Lauf der Zeit.

Mit http://<IP>:8000/docs kommt man dann auf das API des soundcork Servers, und kann dort allerhand ausprobieren, siehe screenshot.

LG

pah

Treibhaus

Hallo,

das Git-Projekt :   verfolge ich auch erst einmal nicht weiter, da ich keine Kommunikation eines Tastenevents(der Box) am Server erkenne konnte.

Bei dem Soundfork hatte ich ebenfalls ein Webfindungsproblme auf port 8000.
(wahrscheinlich da "Docker-Portainer" diesen port 8000 für sich mitbeansprucht - dort aber eigentlich nix liefert)

Auch nach der Einrichtung der .env.private ..   wie bei Pah beschrieben. Allerdings auf port 8001 hat dies nicht geholfen.
(Diese liegt aber trotzdem noch im untersten Soundcork-Verzeichnis - keine Ahnung ob irgendein Programmschnipsel das noch einliest)


Gestartet wird nun mit:  fastapi run main.py --port=8001 --reload    Das funktioniert.


(.venv) player_1one@RASPI-FHEM:/tmp/soundcork/soundcork $ fastapi run main.py --port=8001 --reload

   FastAPI   Starting production server 🚀

             Searching for package file structure from directories with __init__.py files
2026-02-01 13:24:33,870 [soundcork.datastore] INFO: Initiating Datastore
2026-02-01 13:24:33,873 [soundcork.datastore] INFO: Initiating Datastore
             Importing from /tmp/soundcork

    module   📁 soundcork
             ├── 🐍 __init__.py
             └── 🐍 main.py

      code   Importing the FastAPI app object from the module with the following code:

             from soundcork.main import app

       app   Using import string: soundcork.main:app

    server   Server started at http://0.0.0.0:8001
    server   Documentation at http://0.0.0.0:8001/docs

             Logs:

      INFO   Will watch for changes in these directories: ['/tmp/soundcork/soundcork']
2026-02-01 13:24:37,935 [uvicorn.error] INFO: Will watch for changes in these directories: ['/tmp/soundcork/soundcork']
      INFO   Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)
2026-02-01 13:24:37,937 [uvicorn.error] INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)
      INFO   Started reloader process [527947] using WatchFiles
2026-02-01 13:24:37,940 [uvicorn.error] INFO: Started reloader process [527947] using WatchFiles
2026-02-01 13:24:44,202 [soundcork.datastore] INFO: Initiating Datastore
2026-02-01 13:24:44,206 [soundcork.datastore] INFO: Initiating Datastore
      INFO   Started server process [527951]
2026-02-01 13:24:44,266 [uvicorn.error] INFO: Started server process [527951]
      INFO   Waiting for application startup.
2026-02-01 13:24:44,270 [uvicorn.error] INFO: Waiting for application startup.
2026-02-01 13:24:44,273 [soundcork.main] INFO: Starting up soundcork
2026-02-01 13:24:44,274 [soundcork.main] INFO: done starting up server
      INFO   Application startup complete.
2026-02-01 13:24:44,274 [uvicorn.error] INFO: Application startup complete.
      INFO   192.168.0.67:60848 - "POST /v1/scmudc/08DF1F1195D9 HTTP/1.1" 404
      INFO   192.168.0.67:60850 - "POST /v1/scmudc/08DF1F1195D9 HTTP/1.1" 404
     
^C

Leider aber auch nur soweit. Das der Post (aus einem Tastenevent an der Box den Pfad wohl nicht findet "404")   ;) 

Gruß Jörg
Signatur:
Raspberry 5 & NVMe + HM-Module für 3 Etagen (inkl  Garage/Garten) 
+BSC EnOcean TCM310 -Fensterkontakt,-Bewegungsmelder
+ 1-wired Temp-Sensoren + RHASSPY-Spracherkennung