[Neues Modul] BOSE SoundTouch

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

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Kurze ZWischeninfo: Ich habe das Modul 98_SoundTouch inzwischen überarbeitet und einige Änderungen vorgenommen. Ist derzeit noch im Test, denn das Hin- und herschalten zwischen verschiedenen "source"-Parametern bei der ST300 ist noch etwas wackelig.

LG

pah

FlatTV

Ich bedanke mich jetzt schon einmal für deine Mühe!
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

Insbesondere, dies vielleicht hier zur Diskussion:

Ich betreibe seit vielen Jahren eine gepatchte Version des Moduls. Die kennt einen Befehl "set ... origin <string>".

Warum?

In der Originalversion kann man mit "playTrack" suchen lassen nach Titel, Album, Künstler (siehe https://forum.fhem.de/index.php?topic=46838.msg594029#msg594029). Aber eben keine Playlists, und man kann auch nicht nach Ordnern suchen.

Typischerweise sind auch klassische Musikstücke selten mit z.B. "artist=Johann Sebastian Bach" gekennzeichnet, sondern enthalten den Namen des Orchesters, oder des tatsächlich spielenden Künstlers. Darum gibt es bei mir ein Zusatzprogramm, das solche Suchen ermöglicht (stelle ich gerne zur Verfügung).

Um dieses Zusatzprogramm aufzurufen, brauche ich natürlich ein Event und übergebe dann Daten, Wenn ich meiner Spracherkennung sage "Spiele im Wohnzimmer Musik von Bach", saugt die Spracherkennung zunächst einmal daraus das Zieldevice (meine ST300 steht im Wohnzimmer), und liefert dann einen Befehl an dieses Device ab, nämlich "set ... origin Bach".

"origin" heißt das, weil eben "source" im Bose-Universum schon für die Hardware-Schnittstelle verwendet wird.

Im Beispiel wird jedenfalls dann die Funktion originHandler(<device>,"Bach") gerufen. Die sucht im Verzeichnisbaum (eben nicht per DLNA!), ob ein Ordner mit dem Teil-Namen "Bach" existiert (und sogar, wenn mehrere Unterverzeichnisse vorhanden sind, ein zufällig ausgewähltes davon), erzeugt daraus eine temporäre Playlist und setzt dann Sekundärbefehle an das Device ab.

Das ist alles optional, die neue Version des Moduls wird eben nur den Mechanismus enthalten, mit "set ... origin <string>" eine externe Funktionm aufzurufen.

LG

pah

Teemo

Zitat von: fred_feuerstein am 26 Januar 2026, 15:58:26Habt ihr auch schon was gefunden um auf den soundtouch wireless link per root zu kommen?
der hat ja soweit auch keine Tasten und normale manurlle Firmware Updates gehen über PC Verbindung.
Er hat eine mikro USB Schnittstelle mit SETUP beschriftet.

Per Default bekomme ich nur den Zugang auf Port 17000. Das ist aber kein root Zugriff.


Haben Sie es geschafft, Root-Rechte für den Wireless Adapter zu erhalten?
Haben Sie versucht, mit der Version https://archive.org/download/bose-soundtouch-software-and-firmware/Firmware/2015-2020_Bluetooth/Bluetooth_ST20-30_or_Wireless_Link_Adapter/ eine niedrigere Version zu verwenden?

Prof. Dr. Peter Henning

So, die erste Beta-Version 3.0beta ist im github verfügbar. Das Teil habe ich jetzt den ganzen Tag über auf meinen 4 Devices getestet.

@FlatTV: Den angegebenen Fehler mit der Übermittlung des Laustärkewertes statt des Source-Parameters habe ich nicht nachstellen können. Der Wechsel der Quellen funktioniert bei mir vollkommen reibungslos.

Allerdings war in dem angegebenen Patch ein übler Fehler, es fehlte ein
$hash->{helper}{switchSource} = "";Dadurch gab es eine Endlosschleife des set-Befehls. Es kann sein, dass dies für an angegebenen "bug" verantwortlich war.

Die Änderungen von betateilchen habe ich drin gelassen - sind sehr nützlich für meine Unterbrechungen des laufenden Programms durch Sprachausgabe.

ZitatFEATURE: set ... saveState restoreState restoreVolAndOff (betateilchen)
    FEATURE: add PRODUCT TV and HDMI_1 to source for ST300 (FlatTV)
    FEATURE: set ... origin added (phenning)
    FEATURE: playinfo1 and playinfo2 readings added (phenning)

LG

pah

FlatTV

#785
Zitat von: Teemo am 06 Februar 2026, 15:53:07
Zitat von: fred_feuerstein am 26 Januar 2026, 15:58:26Habt ihr auch schon was gefunden um auf den soundtouch wireless link per root zu kommen?
der hat ja soweit auch keine Tasten und normale manurlle Firmware Updates gehen über PC Verbindung.
Er hat eine mikro USB Schnittstelle mit SETUP beschriftet.

Per Default bekomme ich nur den Zugang auf Port 17000. Das ist aber kein root Zugriff...

Haben Sie es geschafft, Root-Rechte für den Wireless Adapter zu erhalten?
Haben Sie versucht, mit der Version https://archive.org/download/bose-soundtouch-software-and-firmware/Firmware/2015-2020_Bluetooth/Bluetooth_ST20-30_or_Wireless_Link_Adapter/ eine niedrigere Version zu verwenden?
Also ich konnte da nichts testen, da mir das entsprechende Gerät fehlt - sorry

Zitat von: Prof. Dr. Peter Henning am 06 Februar 2026, 04:26:21Insbesondere, dies vielleicht hier zur Diskussion:

Ich betreibe seit vielen Jahren eine gepatchte Version des Moduls. Die kennt einen Befehl "set ... origin <string>".

Warum?

In der Originalversion kann man mit "playTrack" suchen lassen nach Titel, Album, Künstler (siehe https://forum.fhem.de/index.php?topic=46838.msg594029#msg594029). Aber eben keine Playlists, und man kann auch nicht nach Ordnern suchen...
Ich finde es absolut spannend (und dafür liebe ich FHEM), auf welche Lösung hier die Anwender oder Entwickler kommen.

Bei mir war es erst einmal die Frage, wo erstelle ich (oder besser meine Frau) die Playlist.
Eigentlich war es YouTube, wir haben uns dann aber auf Amazon Music geeinigt, da es mir sinnvoller erschien.
Meine Frau möchte allerdings nicht ,,Wohnzimmer" oder ,,Küche" sagen, sie will nur da wo sie ist Musik hören.
Also gibt es in den notwendigen Räumen einen Alexa Echo.
Leider ist ,,Musik" ein reserviertes Wort aber ich konnte nach Trennung der Bose App, den ,,Lautsprecher" verwenden.

Sie sagt also, da wo sie ist, ,,...schalte den Lautsprecher ein".
1. Ein Dummy vom Typ Alexa Media geht auf on
2. Ein Notyfy erkennt das und refresht alle Alexa Echos
3. Am nun getriggerten Alexa Device wird der Raum erkannt und das entsprechende Reading Voice abgefragt, ob es sich um ,,Lautsprecher" handelt
4. Da es über echodevice.pm nicht funktioniert, den Lautsprecher via Bluetooth zu koppeln, startet das Notify über das Modul den Aufruf einer Alexa Routine. Dort ist hinterlegt, ,,verbinde bluetooth" und ,,Spiel meine Playlist Lieblingssongs im Shuffle-Modus". So läuft erst einmal die Bose Box mit den Wünschen meiner Frau.
5. ,,..., spiele meine Playlist Retro Soul" langt dann um weitere Playlists abzurufen.

Auch ist es so möglich, einfach zu sagen ,,..., schalte den Lautsprecher lauter", ohne den Raum angeben zu müssen.
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

#786
Ich habe feste Playlists - z.B. "Peters Favoriten". Die werden nur, solange das nicht in den vergangenen 24 Stunden schon einmal gemacht worden ist, zufällig neu sortiert bevor sie an SoundTouch-Devices gehen.

Dazu kommen temporäre Playlists, die ich mit dem FHEM-Modul 98_MediaList.pm erstelle.

Beispiel 1: Ich wähle - per Sprache und anschließender Suche einen Ordner, sagen wir "Spiele im Wohnzimmer Musik von Mozart aus dem Album Zauberflöte" => /home/music/_Klassik/Mozart/Die Zauberflöte
und nehme alle Files auf die temporäre Playlist.

Beispiel 2: In meinem FTUI3-Interface kann ich mit dem MediaList-Modul durch alle Ordner scrollen, und jeden einzelnen Titel per Klick auf die temporäre Playlist befördern.

Natürlich kann ich auch auf die Angabe eines Raums verzichten, dann wird aus dem Ort des Spracheingabegerätes geschlossen, wo das abgespielt werden soll (das mache ich mit Babble+RiveScript).

Ach ja, und für meine Chefin gibt es eine Funkfernbedienung (2 Buttons nur). Mit der kann sie mit einem Klick ihre Favoritenliste verändern, den gerade gespielten Track herausnehmen oder hinzufügen.

Zitat von: Teemo am 06 Februar 2026, 15:53:07Haben Sie es geschafft, Root-Rechte für den Wireless Adapter zu erhalten?
Nö, ich habe ja das Gerät nicht. Laut Infos im Netz geht das mit einem USB-OTG-Adapter, genau wie bei der ST10

LG

pah

FlatTV

Ich habe die Änderungen gerade eingespielt.
Zum Test komme ich wohl nicht viel, bin krank 🤧
Mein persönliches Problem ist aber geblieben.

Über das WebIF (siehe Bild)
2026.02.07 09:59:50 3: BOSEST: BOSEST_Set: BOSE_9884E307C182, source
$VAR1 = [
          '17'
        ];
und per ,,set BOSE_9884E307C182 source tv"
2026.02.07 10:08:01 3: BOSEST: BOSEST_Set: BOSE_9884E307C182, source
$VAR1 = [
          'tv'
        ];
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

#788
Sehr mysteriös, das kann nicht aus dem Modul kommen (wie man am manuellen Set-Befehl sieht), das muss also ein Artefakt der Konfiguration des FHEMWEB sein. Sicher, dass da nicht etwas Falsches in widgetOrverride steht? Was sagt der Eventmonitor?


LG

pah

FlatTV

Da habe ich eigentlich nicht wirklich dran rumgefummelt.
Internals:
   BYTES_READ 3139514
   BYTES_WRITTEN 1723789325
   CONNECTS   2182
   CSRFTOKEN  csrf_119696384750043
   DEF        8083 global
   FD         5
   FUUID      6468cdfa-f33f-742c-862d-4235a31806394473
   NAME       WEB
   NR         31
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2026-01-29 21:22:10   state           Initialized
Attributes:
   JavaScripts codemirror/fhem_codemirror.js
   codemirrorParam { "theme":"blackboard", "lineNumbers":true }
   editConfig 1
   longpoll   1
   room       90.System.fhem
   stylesheetPrefix ios12
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

#790
So, ich habe gerade eine neue Version 3.0beta2 ins github eingespielt, habe den Fehler mit dem Bass-Slider beseitigt.

Unklar ist mir, warum bei meiner ST300 mit Subwoofer der Bass zwar per Fernbedienung einstellbar ist, aber nicht im API ??

@FlatTV:
Nein, das habe ich auch nicht gemeint. Sondern irgendetwas im BOSEST-FHEM-Device ist faul, aber eben nicht im Modul. Bitte wirklich mal den Event-Monitor laufen lassen mit Filter .*BOSEST.* Und dann die Source ändern.

LG

pah

Edit: Sieh an, es geht doch. Wenn man die ST300 abfragt mit
http://<ip>:8090/audioproducttonecontrolsbekommt man die aktuellen Werte für Bass und Höhen als z.B.
<audioproducttonecontrols>
<bass value="100" minValue="-100" maxValue="100" step="25"/>
<treble value="-100" minValue="-100" maxValue="100" step="25"/>
</audioproducttonecontrols>

Und sendet man einen HTTP POST, z.B. mit
curl -X POST -H "Content-Type: application/xml" -d @payload_bass0treble0.xml http://192.168.0.104:8090/audioproducttonecontrolsund dem Dateiinhalt des files payload_bass0treble0.xml als
<?xml version="1.0" encoding="UTF-8"?>
<audioproducttonecontrols>
    <bass value="0" />
    <treble value="0" />
</audioproducttonecontrols>
kann man diese Werte auch setzen.

Das muss ich also noch ins Modul aufnehmen...



FlatTV

Zitat von: Prof. Dr. Peter Henning am 07 Februar 2026, 12:13:55@FlatTV:
Nein, das habe ich auch nicht gemeint. Sondern irgendetwas im BOSEST-FHEM-Device ist faul, aber eben nicht im Modul. Bitte wirklich mal den Event-Monitor laufen lassen mit Filter .*BOSEST.* Und dann die Source ändern.
WebIF
2026-02-07 14:26:54 BOSEST BOSE_9884E307C182 origin: 29Cmd
2026-02-07 14:27:44 BOSEST BOSE_9884E307C182 origin: TV
2026-02-07 14:27:45 BOSEST BOSE_9884E307C182 playinfo1: playing TV
2026-02-07 14:27:45 BOSEST BOSE_9884E307C182 playinfo2: TV

Boah heute fällt mir alles schwer.
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

FlatTV

Ich habe gerade meinen eigenen Post gelesen, liegt es etwa daran?stylesheetPrefix ios12
Ich werde schwach...
ohne ,,attr WEB stylesheetPrefix ios12"
WebIF
2026.02.07 17:02:39 1: BOSEST: BOSEST_Set: BOSE_9884E307C182, source
$VAR1 = [
          'tv'
        ];
cmd
2026.02.07 17:04:23 1: BOSEST: BOSEST_Set: BOSE_9884E307C182, source
$VAR1 = [
          'tv'
        ];
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Prof. Dr. Peter Henning

Muss wohl. In dem ios12 Stylesheet ist irgendetwas faul - und, wie vermutet, hat es etwas mit der lokalen Konfiguration des FHEMWEB zu tun.

LG

pah

FlatTV

@pah
Sorry das ich das mal so unpräzise mache, ist dir der hier durchgerutscht oder mit Absicht entfernt?
sub BOSEST_setSource($$) {
     my ($hash, $source) = @_;
     $hash->{helper}{switchSource} = uc $source;
-
-    if($hash->{helper}{switchSource} eq "") {
-        return undef;
-    }
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)