[Modul] Bose SoundTouch

Gerne [emoji6]

Gesendet von iPhone mit Tapatalk

@gosef Habe ich auch manchmal… kommt vermutlich vom Update Timer. Werde demnächst mal das Modul ändern, sind ja neue IPS Funktionen hinzugekommen, so dass ich das mit dem Update Timer ändern will. Muss mal in die API schauen, ob es einen Callback gibt… wird aber noch dauern [emoji848]

Gesendet von iPhone mit Tapatalk

Ich hab den Timeout auf 2000ms gesetzt. Das tut es auch :wink:

Oder so [emoji3]

Gesendet von iPhone mit Tapatalk

Könnte mir jemand die Funktion BST_setVolume erklären?

Kann keine Dokumentation finden.
In IPS wenn ich den Befehl auswähle sind die Parameter nur die ObjektID kein Value.
Wenn ich als Parameter (ObjektID,Value) ausprobiere funktioniert es aber leider nicht.

Was mache ich falsch?

Die Funktion ist zwar als public deklariert macht aber keinen Sinn diese so zu nutzten. Die Funktion so wie sie momentan existiert liest den Wert des Volumesliders aus und setzt damit das Volume. Da die Funktion auch keinen Übergabewert hat kannst Du diese also aus einem Skript heraus so nicht sinnvoll nutzten. Du müsstest also vorher den Wert des Sliders setzen wenn die Funktion denn nutzbar sein soll oder den Author des Moduls darum bitten einen weitere Funktion in das Modul mit einem Übergabeparameter ins Modul aufzunehmen.

Danke für die Antwort

Siehst du vielleicht eine elegante Möglichkeit für mich aus einem Skript heraus die Lautstärke zu setzen?

Gut … ich habe mir nun vorerst selber eine setVolumeto Funktion in die Module.php reingeschrieben … muss ich beim nächsten Update nur aufpassen, dass die dann nicht flöten geht :slight_smile:

Den Author darum bitten eine public Funktion mit Parameterübergabe im Modul zu ergänzen, das ist das sinnvollste, alles andere ist Murks.

Ansonsten könntest Du das versuchen aber da wird mir schon schlecht wenn ich das hier überhaupt aufschreibe :eek:


$objectidbose = 12345; // ObjektID der Bose Instanz
$volume = 20; // Ziel Volume
SetValue(IPS_GetObjectIDByIdent("VolumeSlider", $objectidbose), $volume);
BST_setVolume($objectidbose);

Hallo Zusammen,
das BST Modul war mein erstes Modul für IPS. Seitdem hat sich sehr viel getan. Heute würde ich einige Dinge anders umsetzten. Daher bin ich gerader an einer Überarbeitung, bzw. erstelle das Modul neu. Da es ein Freizeitprojekt ist, kann ich noch nicht sagen, wann es fertig ist.

Gerne kann ich einige Funktionen in die bestehende Version einbauen, somit wäre mit

$setVolume = BST_setDeviceVolume(int $instanceID, int $volume);

Die Anpassung der Lautstärke möglich.

Ich schaue mir das heute Abend mal an.

Gruss
UB

Gesendet von iPad mit Tapatalk

Ja, das wäre bestimmt für viele eine Sinnvolle Ergänzung.

so, ein Update liegt vor:

new public function setDeviceVolume

$volume = BST_setDeviceVolume(int $deviceInstanceID, int $volume);

Beispiel:
$volume = BST_setDeviceVolume(53908, 20);

Zukünftig plane ich die public functions auf zwei Ebenen. Einmal auf Modul Ebene, d.h. es können Interaktionen in der Visualisierung / WebFront genutzt, geschaltet werden. Die andere Ebene geht direkt auf das Device.

Somit gibt es zukünftig die Möglichkeit mit

BST_setDeviceVolume(12345, 20); direkt die Lautstärke am Gerät zu ändern

oder mit

BST_setModuleVolume(12345, 20); den Volumeslider im Modul, der den Wert dann wieder an das Device weitergibt.

Das ist aber alles noch work in progress.

Die Funktion setDeviceVolume in dem jetzigen Modul ist nur ein Behelf.

Viel Spaß!

Sorry wenn ich meinen Senf dazu gebe ich besitzte ja gar kein Bose. Du brauchst doch aber nur eine public Funktion für den User zum Setzten der Lautstärke. Den VolumeSlider bei Bedienung über den Webfront liest Du doch bei RequestAction aus und setzt dann dort auch gleich den neuen Wert des Slider und übergibst den Lautstärkewert an die Funktion zum Setzten des Volume. Oder ich habe noch nicht ganz verstanden was Du eigentlich machen willst bzw. wozu da zwei Funktionen notwendig sind.

Das ist ein guter Hinweis… man lent ja immer dazu. Werde nochmal übe das Design nachdenken. Die Device Funktionen werden auf jedenfall besser nutzbar sein.

Gesendet von iPad mit Tapatalk

Hallo zusammen,

ich will mal mit der Sprachausgabe an meine Soundtouch weiterkommen, vorrangig will ich das Klingeln anzeigen. Hierzu hat sich ja in der Richtung noch nichts getan, oder?
Ich bin leider ein Laie im Programmieren und daher tu ich mir sehr schwer.

Mein Plan:

  1. Auslesen des akutellen Status der Soundtouch und in Variablen schreiben
  2. Umschalten auf ein NAS-Laufwerk (Synology) und eine MP3-Datei abspielen
  3. alten Zustand wiederherstellen

Diese drei Punkte funktionieren soweit auch mit meinen Testskripts, welche ich mir mithilfe des Moduls zusammengereimt hab .
Meine Probleme bzw ToDo-Sachen sind:

  • Im freigegebenen Ordner kann ich zwar eine MP3 abspielen, aber wenn dort mehrere liegen kann ich keine bestimmte auswählen. unter <ip>:8090/now_playing wird bei mehreren Dateien im Ordner der „Offset“-Wert geändert. Weiß aber nicht ob und wie ich diesen setzen kann. Alternativ könnte man vielleicht eine MP3U-Playlist abspielen und in dieser reinschreiben welche mp3 abgespielt werden soll

  • Per TTS eine MP3 erstellen und in den Ordner kopieren (evtl. danach auch wieder löschen bzw. verschieben)

  • MP3 Länge auswerten und nach einer vorgegebenen Zeit den alten Zustand wiederherstellen

Für meine Aufgabe, die Soundtouch als Klingel zu verwenden, müsste mein Testskript soweit funktionieren. Liest den Zustand aus, spielt dann die MP3 auf meiner Synology-Nas ab und schaltet nach vorgegebener Zeit wieder zurück in den Ur-Zustand. Problem hierbei ist, dass ich der Soundtouch nicht sagen kann, dass sie die MP3 von Beginn spielen soll. Ich habs mir „PREV_TRACK“ probiert, aber dann fängt sie kurz an zu spielen und der Key wird erst später gemeldet, dann fängt sie nochmal an.
Bei ein paar Test wurde leider die Quelle (also die NAS) nicht gefunden. Das wäre für eine Klingelverwendung der Tod - weil nichts signalisiert wird. Hier muss ich nochmal testen an was das liegen könnte.

Für eine mögliche TTS ausgabe werde immer nur eine MP3 im Ordner lassen und diese versuchen abzuändern für die TTS Ausgabe. Die Idee mit der M3U habe ich wieder verworfen…
Die MP3 Länge wird von der Soundtouch ausgewertet und kann per now_playing aufgerufen werden. So müsste ich die Zeit berechnen können, wie lange die Soundtouch insgesamt umschalten muss. Ist ein bißchen tricky, da die Soundtouch ja unterschiedlich Zeit zum umschalten auf die MP3 braucht. Evtl. müsste ich das über eine Schleife auswerten können.

Falls jemand noch ne Ideen oder Hilfestellung für mich hat - bin dankbar für jede Anregung.

Hallo, magst du mir mal deine Skripte schicken, dann schaue ich nochmal in der API nach, wie man es vielleicht lösen könnte. Zeitlich wird das aber dauern, da ich im Moment sehr eingespannt bin…

Gesendet von iPhone mit Tapatalk

Guten Morgen,

ich habe neulich mal gelesen, dass du im Modul etwas mit Bluetooth Unterstützung gemacht hast ?

added useDeviceBluetoothMode function · ubittner/SymconBoseSoundTouch@605f3b4 · GitHub

Finde das aber nach Aktualisierung nicht.

Muss ich da noch etwas anderes einstellen ?

Es ist endlich möglich Amazon Prime Music darüber zu streamen :slight_smile:

Zwar fehlt noch eine Suchfunktion, aber…

DANKE für dieses Modul!