Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

Begonnen von Otto123, 31 Mai 2020, 18:30:55

Vorheriges Thema - Nächstes Thema

TomLee

ZitatDa passt doch jetzt SonosSpeakWeb und FileDir nicht zusammen?

Ja, ok. Aber muss in der HTTPSRV-Definition <infix> <directory> das Verzeichnis cache heissen und genau dort liegen ?
Kann ich nicht irgendeinen anderen Ordner angeben ?

Ich habs schon so versucht gehabt:
defmod SonosSpeakWeb HTTPSRV www/sounds www/sounds SonosSpeakWebund
attr SonosTTS TTS_CacheFileDir www/sounds

Otto123

#1366
ZitatNotice: All links are relative to http://hostname:8083/fhem.
Ich meine laut dem Beispiel in der commandref es ist so:
defmod SonosSpeakWeb HTTPSRV cache cache SonosSpeakWeb
der Pfad liegt in /opt/fhem/cache
der Zugriff ist http://hostname:8083/fhem/cache

defmod SonosSpeakWeb HTTPSRV cache www/sounds SonosSpeakWeb
der Pfad liegt in /opt/fhem/www/sounds
der Zugriff ist http://hostname:8083/fhem/cache

defmod SonosSpeakWeb HTTPSRV willi /home/lustig/sounds SonosSpeakWeb
der Pfad liegt in /home/lustig/sounds
der Zugriff ist http://hostname:8083/fhem/willi

BTW: der erste Aufruf mit set ... notify 40 datei.mp3 funktioniert bei mir auch nur als kurzes Bruchstück. Danach wird immer sauber gespielt.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#1367
Zitatdefmod SonosSpeakWeb HTTPSRV cache www/sounds SonosSpeakWeb
der Pfad liegt in /opt/fhem/www/sounds

so weit komm ich mit und klappt auch mit:
defmod SonosTTS Text2Speech none
attr SonosTTS TTS_CacheFileDir www/sounds
attr SonosTTS TTS_FileMapping Vibrating:Vibrating.mp3 Temple:Temple.mp3
attr SonosTTS TTS_Language Deutsch
attr SonosTTS TTS_Speed 10
attr SonosTTS TTS_UseMP3Wrap 1
attr SonosTTS group s2m
attr SonosTTS room Media
attr SonosTTS userReadings httpName:lastFilename.* {'http://'.ReadingsVal($name,'host','set host:port first').'/fhem/'.ReadingsVal($name,'lastFilename','')}

setstate SonosTTS 2023-11-20 02:27:40 host 192.168.188.30:8084
setstate SonosTTS 2023-11-20 20:29:33 httpName http://192.168.188.30:8084/fhem/www/sounds/42eb2a6d84f64027c88d1ed59ef1d50f.mp3
setstate SonosTTS 2023-11-20 20:29:33 lastFilename www/sounds/42eb2a6d84f64027c88d1ed59ef1d50f.mp3
setstate SonosTTS 2023-11-20 20:29:33 playing 0

Das verstehe ich (noch) nicht:
Zitatder Zugriff ist http://hostname:8083/fhem/cache

Der Zugriff erfolgt doch über die URL in httpName, oder lieg ich da falsch?
Ich verstehe <infix> immer noch nicht, die "gespeicherten Sprachausgaben" landen ja jetzt auch in www/sounds, die hätte ich irgendwie gerne in cache gehabt.
ZitatBTW: der erste Aufruf mit set ... notify 40 datei.mp3 funktioniert bei mir auch nur als kurzes Bruchstück. Danach wird immer sauber gespielt.
Gut zu hören dass das bei Dir auch so ist.

Otto123

naja es sind doch zwei Dinge:
Der eine (TTS) schreibt eine Datei in ein Verzeichnis der andere (HTTPSRV) stellt die über eine URL zur Verfügung. Die URL muss funktionieren und der HTTPSRV muss richtig konfiguriert werden

Im TTS Device ist der Name der Sprachdatei bekannt, deswegen baut TTS hilfsweise den String für die URL zusammen.

Wenn jetzt lastFilename (welcher den Pfad enthält) nicht zum Webserver passt funktioniert das so einfach nicht. Dann musst Du das userReadings httpName anders bauen. Bei cache cache funktioniert es, bei willi willi auch, bei willi lustig liefert das TTS Device die falsche URL!
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Danke für das ausführliche erläutern, glaube das hat mich weiter gebracht (in der Theorie), muss mich aber noch mit beschäftigen und genau nachvollziehen.

TomLee

#1370
ZitatDas dies überhaupt funktioniert? Da passt doch jetzt SonosSpeakWeb und FileDir nicht zusammen?

Braucht man denn wirklich SonosSpeakWeb ?
Wir nutzen doch die Text2speech-Definition im Server-Modus! Wenn du Lust und Zeit hast, lösch mal bitte SonosSpeakWeb. Die Dateien abspielen und die Sprachausgaben sind dann trotzdem möglich. Man braucht gar keine zusätzliche http-Server-Definition, alle Dateien die sich in TTS_CacheFileDir befinden werden doch "bereitgestellt" oder übersehe ich was ?

TomLee

Ich denke das passt schon so.

Wenn ich jetzt in TTS_CacheFileDir www/s2m angebe und meinen setter von
playSound:textField {my $tts="SonosTTS";my ($cmd,$vol,$file)=split(' ', $EVENT,3);$file=($file=~m/.*\.mp3$/)?"$file":"$file.mp3";fhem("set $NAME notify $vol http://[$tts:host]/fhem/[a:$tts:TTS_CacheFileDir]/$file")}auf
ZitatplaySound:textField {my $tts="SonosTTS";my ($cmd,$vol,$file)=split(' ', $EVENT,3);$file=($file=~m/.*\.mp3$/)?"$file":"$file.mp3";fhem("set $NAME notify $vol http://[$tts:host]/fhem/[a:$tts:TTS_CacheFileDir]/".'sounds/'.$file)}
ändere, dann hab ich wie ich mir das in etwa vorstellte einen extra Ordner für die gespeicherten Sprachausgaben und einen für die Sounds.

Otto123

Zitat von: TomLee am 21 November 2023, 12:22:16Wir nutzen doch die Text2speech-Definition im Server-Modus!
Hier zur Erklärung: Server-Modus bedeutet doch nur, dass TTS selbst kein play Kommando absetzt sondern einfach nur die Datei erzeugt.

Ich vermute Du verwendest bei deinem Test jetzt anstatt dem SonosSpeakWeb einfach den FHEMWEB Server, weil die Verzeichnisstruktur zufällig passt.

Das mit der Änderung des userReadings wäre auch mein Vorschlag für Dich gewesen. 
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitat... weil die Verzeichnisstruktur zufällig passt.

Da ist was dran, auch wenn ich das Attribut TTS_CacheFileDir (default dann cache) lösche oder irgendeinen anderen Pfad angebe, sind die Dateien in www/s2m weiterhin im Browser aufrufbar.
Nicht nur die in www/s2m, sondern immer alle Dateien die sich in einem Unterordner von www befinden, die in www direkt nicht.

frinkenstein

Hallo zusammen,

nach jahrelangem mitlesen/lernen hier im/vom Forum trau ich mich mal (da ich dazu bisher nichts fand aber brauchte) etwas (kleines) beizusteuern:nachdem sonos2mqtt erfreulicherweise stabiler als SONOS/SONOSPLAYER (disconnect, Radio artist/titel-Anzeige seeehr selten) läuft, ich aber den ganzen Tag nebenbei Radio höre und gerne mal schau wer da was "singt" hab ich versucht das ins DeviceOverview der Sonos Beam über Anpassung in der 99_sonos2mqttUtils.pm des devStateIcon sub sonos2mqtt_devStateIcon anzeigen zu lassen - Artist und Titel zusammen bekam ich nicht hin, nur jeweils eins von beiden.

Alternativ fiel mir nur ein dann dem Mouseover über die Sound-Buttons mit attr MQTT2_RINCON_XYZ123 stateFormat transportState: currentTrack_Artist: currentTrack_Title die Anzeige beizubringen, was sogar recht schick ausschaut.Vielleicht kanns jemand gebrauchen - oder hat ne bessere Idee.

Davon ab vielen Dank für euren bisherigen Output - speziell hier an Otto123.

frinkenstein
RPi5 8GB Ubuntu 23.10@M.2-SSD: (podman: fhem-docker (Dank an alle Devs dafür), deCONZ, mysql8, grafana-oss, sonos2mqtt, MQTT2), sep. Rpimatic CCU3 - HmIP, div. ESPEasy ESP8266/ESP32, ConBee II, IT JeeLink (LaCrosseITPlusReader.10.1s), div. Shelly´s + Fibaros´s, ZMEEUZB1; Trotec SL400 an PT8005.pm

JudgeDredd

Hallo Zusammen,

ich habe meinen SONOS Play:1 aus dem Keller gezerrt, entstaubt und wollte mal sonos2mqtt aus Neugier ausprobieren.
Die Einrichtung ging problemlos und die Beispiele funktionieren auch so wie sie sollen.

Da ich aber ungern den gesamten Beitrag einzeln durchklickern wollte und die Suche innerhalb eines Themas nun schon über 9 Monate nicht mehr funktioniert, hoffe ich mal auf Euer Wissen/Erinnerung der 92 Seiten.

Ich bin auf der Suche nach einem Topic, welches mir den Inhalt meiner eigenen Musikbibliothek im Modus Shuffle wiedergibt.
(Die Bibliothek ist eine SMB Freigabe, die ich mit der APP konfiguriert habe und funktioniert)

Vielleicht kann mir ja da einer behilflich sein.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Otto123

Moin,

Du meinst das? https://forum.fhem.de/index.php?topic=111711.msg1291486;topicseen#msg1291486
Ich weiß das mit der Suche ist blöd, aber ich hatte schon früher Probleme damit und habe mir immer so beholfen:
Thema "drucken" und dann einfach Browser Suche ctrl+f

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JudgeDredd

Hallo Otto,
Zitat von: Otto123 am 23 Dezember 2023, 12:41:52Du meinst das? https://forum.fhem.de/index.php?topic=111711.msg1291486;topicseen#msg1291486
vielen Dank für den Hinweis, zwischenzeitlich habe ich das sogar schon bei mir gelöst.
Es lag aber an einer falschen Playlist-ID. Ich bin dem Beispiel auf GitHub gefolgt, aber meine Playlist-ID ist gar nicht numerisch sondern alphanumerisch.
Playlist starten/stoppen funktioniert nun wie ich es hätte.
Zitat von: Otto123 am 23 Dezember 2023, 12:41:52Ich weiß das mit der Suche ist blöd, aber ich hatte schon früher Probleme damit und habe mir immer so beholfen:
Thema "drucken" und dann einfach Browser Suche ctrl+f
Der Tip ist ja fast noch besser, als die Sonos Geschichte 👍

frohe Weihnachten,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Otto123

Zitat von: JudgeDredd am 23 Dezember 2023, 13:16:03Der Tip ist ja fast noch besser, als die Sonos Geschichte 👍
;D

Dir auch schöne Weihnachten
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

aski71

Hallo zusammen,
seit ein paar Wochen habe ich sonos2MQTT im Einsatz.
Nun habe ich festgestellt, dass das System von zwei meiner sechs konfigurierten Lautsprechern keine MQTT Messages bekommt. Ich kann da zwar z.B. Play in fhem drücken, aber fhem bekommt keine Message, dass der Player tatsächlich was abspielt.
Ich habe mal den MQTT Monitor laufen lassen und einen der Lautsprecher händisch eingeschaltet: Keine MQTT Message zu sehen, keine Statusänderung in fhem.
Was kann ich tun?
Danke, Alex