[Neues Modul] BOSE SoundTouch

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

Vorheriges Thema - Nächstes Thema

dominik

Ich glaub ich hab den Fehler gefunden :)

Glaub es lag wirklich daran, dass du nur einen Preset gesetzt hast. Lass mich wissen ob es nun funktioniert.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

VB90

ok, das sieht deutlich besser aus.

Änderungen vom Volume sehe ich nun mit minimalster Verzögerung live.
Es wurden in den Readings nun auch die Presets angelegt, bei mir nur die 1 belegt. Logisch.

Statusänderungen bei on (playing) und off (online) deutlich mehr versetzt, aber völlig in Ordnung.

Also ich hänge mich mal aus dem Fenster und sage : es funzt.

Danke für deine Mühe!!

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

dominik

Super! Danke für das ausführliche Testen!

Sobald die Box die Message schickt wird diese spätestens 0.7s später verarbeitet. Also mehr als, sagen wir mal, 3s sollte eine Statusänderung nie dauern.

Wenn ich bis morgen keine Probleme gemeldet bekomme, werde ich diese Version ins Repository hochladen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

VB90

#333
habe gerade etwas gefunden. Obs problematisch ist, musst du entscheiden.
Ich habe nachwievor Verbose 5 gesetzt. Aufs Modul und Device.

Ich bekomme derzeit ca. alle 20 Sekunden folgenden Eintrag:
Zitat2016.12.03 22:04:17.639 5: BOSEST: BOSE_689E194BA7C7, received message.
2016.12.03 22:04:17.649 4: BOSEST: Unknown event, please implement:
$VAR1 = {
          'msg' => {
                   'header' => {
                               'request' => {
                                            'info' => {
                                                      'type' => 'new'
                                                    },
                                            'requestID' => '1'
                                          },
                               'deviceID' => '689E194BA7C7',
                               'method' => 'GET',
                               'url' => 'webserver/pingRequest'
                             },
                   'body' => {
                             'pingRequest' => {
                                              'pong' => 'true'
                                            }
                           }
                 }
        };

Muss dazu sagen, das ich ein DOIF konfiguriert habe, das den Eingang auf AUX setzen soll, sobald mein Sat-Receiver im Netzwerk online ist. Eigentlich aber als "event-on-change-reading" gebaut, weil ich bisher das Problem hatte, das nicht jedesmal AUX gesetzt wurde, sondern die Eingänge (AUX, Bluetooth) durchgetooglet wurden. War kontraproduktiv ;)

Keine Ahnung ob das DOIF einen Einfluß drauf hat, wills nur erwähnt haben.

vb

edit: Hatte das DOIF gerade mal desablet, die Meldungen kommen weiter.
Wie ich das sehe setzt du dort einen Ping auf die IP und erwartest im besten Fall eine Antwort?
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

dominik

Das ist "ok". Werde das aber auch noch aus dem Log rausfiltern. Die Ping/Pong Messages werden alle 20s gesendet damit die Verbindung aufrecht erhalten bleibt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

VB90

ok, dann soll es so sein.

Bin mal gespannt, ob die Box morgen von aussen eingeschaltet werden kann.
Hatte bislang das Problem, das sie WLAN-technisch über Nacht teilweise so "tief eingeschlafen" ist, das ich sie nur per Fernbedienung wecken konnte.

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

StofLE

@dominik:
Zunächst erstmal vielen Dank für das Modul! Habe seit kurzem das BOSE Lifestyle 650, was grundsätzlich auch mit dem Modul zusammenarbeitet.

Was ich partout nicht hinbekomme, ist das Hinzufügen eines DLNA-Servers. Probiert mit dem Synology-DLNA-Dienst und mit minidlna auf dem Raspberry (wo auch fhem drauf läuft). Hab jetzt mal verbose=5 gesetzt und bekomme folgende Ausgabe:

2016.12.04 14:53:47 4 : BOSEST: set /setMusicServiceAccount => <credentials source="STORED_MUSIC" displayName="RPi"><user>4d696e69-444c-164e-9d41-b827eb100120/0</user><pass/></credentials>
2016.12.04 14:53:47 3 : BOSEST: failed: 500 Internal Server Error


minidlna läuft übrigens. Aus Windows und von einem Samsung TV heraus kann ich problemlos die über "speak" generierten Dateien sehen und abspielen.
Vielleicht hast Du Ideen, wie man den Fehler eingrenzen kann?

Stefan

dominik

Hi StofLE,
füge bitte mal per BOSE App den minidlna Server hinzu und lass dabei verbose=5 laufen. Bei richtiger DLNA Konfiguration, müsste es mit App auf alle Fälle funktionieren. Poste danach mal das Log, dann schau ich mir das an.

Gruß,
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

hschuett

#338
Hallo,
ich nutze die Bose Boxen für TTS, Meldung von "Fenster Auf", Zeitansage, ..., Name des aktuellen Anrufers (über Modul FB_CALLMONITOR) usw.
Das ganze klappt insgesamt auch gut, jedoch tut sich das System schwer mit Umlauten. Z.B. bei Ansage von Anrufern mit Umlauten im Namen. Beispiele:
"Schüller", "Schütt", "Müller", "Möller" enden in unverständlichen TTS-Ausgaben. Die TTS Sprache ist dabei auf 'de' festgelegt.
Ich hatte zunächst generell die Google TTS-Engine "in Verdacht", allerdings klappt die Aussprache über folgenden (direkten) Link fehlerfrei:
https://translate.google.com/translate_tts?ie=UTF-8&tl=de&client=tw-ob&q=Schütt%20Schüller%20Müller%20Möller
Die Strings (Namen) aus dem Modul FB_CALLMONITOR werden korrekt geliefert ("Schütt", "Schüller", "Müller", ...)
Die Frage ist also nun, an welcher Stelle die TTS-Ausgabe Probleme mit Umlauten bekommt?
Werden evtl. aus dem BOSEST Modul die Strings nicht um UTF-8 an die Google Engine übergeben bzw. werden Umlaute hier irgendwie anders codiert an Google TTS übergeben?
FBAnrufe.event:.ring {my $c = ReadingsVal("FBAnrufe","external_name","");fhem "set letzterAnrufer $c";fhem "set BOSE_.* speakOff \"Eingehender Anruf von $c\" 40 de"}
Hat evtl. jemand eine Idee, wie man die Umlaute korrekt per TTS ausgegeben bekommt?
Danke & Grüße,
Harald

mrhaefele@gmx.de

#339
[Thema minidlna: make Probleme beim Übersetzen (make Kommando)]

Hallo,

ich wollte als letzten Schritt den minidlna installieren. Ich bin nach Anleitung vorgegangen aus Post1. Habe ein update des Raspi gemacht mit

sudoapt-get update
sudo apt-get dist-upgrade

und dann nach Anleitung aus Post1.

Ich bekomme folgende Fehlermeldung beim "make" Kommando (autogen.sh und configure liefen ohne Felermeldung durch)

make  all-recursive
make[1]: Entering directory '/home/pi/minidlna/minidlna-git'
Making all in po
make[2]: Entering directory '/home/pi/minidlna/minidlna-git/po'
test ! -f ./minidlna.pot || \
  test -z "da.gmo de.gmo es.gmo fr.gmo it.gmo ja.gmo ko.gmo nb.gmo nl.gmo pl.gmo ru.gmo sl.gmo sv.gmo" || make da.gmo de.gmo es.gmo fr.gmo it.gmo ja.gmo ko.gmo nb.gmo nl.gmo pl.gmo ru.gmo sl.gmo sv.gmo
make[3]: Entering directory '/home/pi/minidlna/minidlna-git/po'
rm -f da.gmo && : -c --statistics --verbose -o da.gmo da.po
mv: der Aufruf von stat f▒r ▒t-da.gmo▒ ist nicht m▒glich: Datei oder Verzeichnis nicht gefunden
Makefile:131: recipe for target 'da.gmo' failed
make[3]: *** [da.gmo] Error 1
make[3]: Leaving directory '/home/pi/minidlna/minidlna-git/po'
Makefile:168: recipe for target 'stamp-po' failed
make[2]: *** [stamp-po] Error 2
make[2]: Leaving directory '/home/pi/minidlna/minidlna-git/po'
Makefile:616: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/minidlna/minidlna-git'
Makefile:441: recipe for target 'all' failed
make: *** [all] Error 2



Da steht was, dass der "Aufruf von stat" nicht möglich sei.

Bitte entschuldigt, kenne mich nicht so gut mit Unix aus und bin persönlich etwas überfordert mit der Fehlermeldung.

Kann mir evtl jemand helfen?

Gruß Udo

dominik

@hschuett, werde mir das mal genauer anschauen und eine passende Lösung suchen.

@Udo, hast du "stat" installiert? Probier mal
pi@raspberrypi ~ $ stat --version
stat (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Michael Meskes.

Müsste eigentlich bei jeder Standard Distribution dabei sein. Was verwendest du für eine Linux Distro? Raspbian?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

mrhaefele@gmx.de

#341
Hi,

mittlerweile bin ich über Umwege weiter und habe minidlna installiert. Ich habe diese Quelle (Schritt für Schritt ANleitung) benutzt.
http://www.htpcguides.com/install-readymedia-minidlna-1-1-4-raspberry-pi/
Der minidlna lässt sich jetzt in der Soundtouch-App ansprechen. Auch vom PC aus kann ich darauf zugreifen.

Keine Ahnung, warum es mit deiner Anleitung bei mir nicht funktioniert hat (Aber bei vielen anderen Usern funktioniert)... Ich habe mein fhem vor ca 6 Wochen auf Basis eines Jessie Images neu aufgebaut.

Im Nachhinein kann ich leider nicht mehr sagen, ob das "stat" Modul gefehlt hat.

Sprachansagen funkionieren. Klasse Sache.

Ich habe eine Soundtouch Wave mit u.a. DAB Radio. Was ich vermisse ist die Umschaltung auf das DAB-Radio über fhem. Siehst du evtl eine Möglichkeit, dies noch einzubauen bzw geht dies generell?


Gruß Udo

hschuett

#342
Hallo Dominik,
evtl. kann man den String der an Google Translate geht mit dem Modul URI::Escape
http://search.cpan.org/~ether/URI-1.71/lib/URI/Escape.pm
behandeln. Die websichere "Prozentcodierung" nach RFC 3986 könnte hier die Lösung sein.
Beispiel:
$tts_safe = uri_escape("TTS-String für Google mit Umlaut");

Den Aufruflink für Google würde ich noch um den Parameter ie=UTF-8 ergänzen.
Auszug aus BOSEST Code:
sub BOSEST_downloadGoogleTTS($$$$$;$) {
    my ($hash, $filename, $md5, $text, $lang, $callback) = @_;

    $hash->{helper}{useragent}->get("http://translate.google.com/translate_tts?tl=$lang&client=tw-ob&q=$text" => sub {
            my ($ua, $tx) = @_;

Link mit weiterem Parameter und TTS-String bereits nach RFC 3986 codiert:
https://translate.google.com/translate_tts?ie=UTF-8&tl=de&client=tw-ob&q=Sch%C3%BCtt

Ich könnte das ganz zunächst selbst hier bei mir lokal ins Modul einbauen, dann bei mir mal etwas testen und - falls es funktioniert - einen Patch (simples diff bzw. BOSEST_alt und BOSEST_neu) an Dich schicken. OK für Dich?

Grüße, Harald

Update:
Habe eine .diff Datei hier angehängt. Die Änderungen haben (bei mir) wie erwartet & fehlerfrei funktioniert. Im Wesentlichen überführe ich nur den Parameter $text per uri_escape in die "Prozentcodierung":
my $tts_safe = uri_escape($text);

dominik

Danke dir für den Patch Harald, das übernehme ich doch gerne in die nächste Version welche ich noch heute hochladen werde.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Neue Version soeben

v2.0.1 - 20161211
- FEATURE: support shuffle/repeat (thx@rockyou)
- BUGFIX:  support special characters for TTS (thx@hschuett)
- BUGFIX:  module didn't work if you had only 1 preset active
- CHANGE:  add link to commandref on how to setup TTS
- BUGFIX:  remove "unknown event" log entry for ping/pong messages

@Udo, kannst du mir ein /now_playing schicken wenn du DAB abspielst? Dann sollte das sicher machbar sein.
http://ip-der-box:8090/now_playing
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik