Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

87insane

Hi - Geil!

Link zum Beitrag oder so?

Das aktuelle Design muss ich mir nochmal ansehen. Wenn das nun soweit steht, würde ich tatsächlich gern mal umstellen. Das Modul macht immer mehr Thema.
Neu ist z.B. bei Durchsagen und laufender Musik in Gruppen, wird nichts mehr angesagt bis die laufende Musik aus geschaltet wird oder aber die Gruppen aufgelöst werden. Es sieht aus als hätte SONOS die Namenvergabe angepasst. Es ist nach wie vor z.B. Wohnzimmer + 2 aber dies ist dann auch der Playername und nicht mehr einzeln zusätzlich. Ist das bei MQTT auch ein Thema geworden?

Otto123

Moin,
FHEM Wiki und sonos2mqtt - wird direkt gefunden. https://wiki.fhem.de/wiki/Sonos2mqtt  8)

Zum Rest kann ich nichts sagen.

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

87insane

Ich habe so meine Probleme mit dem Text2Speach bzw Sonos2Mqtt Sprachausgaben. MP3 wird erzeugt, ist abspielbar und erreichbar.
ABER - Ich nutze zb https und auch Benutzer/PW.

Aus dem Wiki:
ZitatFür die Funktion ist wichtig, dass das Sonos System den Host im Link zur Datei richtig auflösen kann. Deshalb wird der Hostname und Port des Servers im Reading host des TTS Device als Name oder IP Adresse abgelegt! Dies kann entweder mit dem hier gezeigten Befehl oder vollständig manuell erfolgen.
Wenn ich httpName also anpasse auf: https://NUTZER:PASSWORT@IP/DNS:PORT/fhem/cache/hash123.mp3, ist die Datei auch über einen fremden PC abspielbar. Allerdings sagen die Sonos nichts. Wenn Musik läuft wird auch für die Zeit der Ansage unterbrochen aber es kommt nichts.

Kann Sonos https nicht? Habe ich hier ein Thema wegen Zertifikats-Kontrolle?

Gruß,
87insane

Otto123

#588
Davon würde ich erstmal ausgehen, dass Sonos keine URL mit Anmeldung kann. Die können auch nur SMBv1.
HTTPS geht aber generell, siehe ja das Beispiel von Stephan mit https://cdn.smartersoft-group.com/various/pull-bell-short.mp3

Alternativ kannst Du die Bereitstellung über Samba machen. Hast Du ja sicher noch aktiv vom Sonos Modul. Hab ich das eigentlich als Alternativ im Wiki? Scheint man ja haben zu müssen ;)

Oder Du definierst ein Web ohne Passwort exklusiv für Sonos.
Allerdings wird das nur mit einem offiziellem prüfbaren Zertifikat funktionieren. Ein eigenes Clientzertifikat kann man nicht unterjubeln.

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

87insane

Zitatals Alternativ im Wiki?
Soweit ich sehen konnte nicht. Müsste mich auch nur eben rein lesen. Ist an sich ja das gleiche..

FunkOdyssey

Wie werden eigentlich die Readings wie DisplaySoftwareVersion aktualisiert?
Dies trägt immer noch ein altes Aktualisierungsdatum.

Otto123

#591
Das ist bisher nicht vorgesehen :)
Da müsstest Du set MQTT2_RINCON_.* x_raw_payload {"command": "adv-command","input": {"cmd":"GetZoneInfo","reply":"ZoneInfo"}}auslösen :)

Könnte man als seine Art Serviceroutine anlegen.

Zum Speak: Ich kümmere mich da nochmal drum, läuft ja momentan auch nicht in eine Queue. Dauert leider noch etwas.

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

FunkOdyssey

Im Speaker-Template ist folgende Zeile enthalten:

my $mutecmd = ReadingsVal($name,'mute','0') eq 'false'?'on':'off';

Kann es sein, dass das falsch ist. Ich musste es so ändern:

my $mutecmd = ReadingsVal($name,'mute','0') eq 'false'?'true':'false';

Otto123

@FunkOdyssey Bei mir steht etwas anderes drin?
  mute:true,false { my $value = $EVTPART1 eq "true" ? "mute" : "unmute"; qq(BASE_TOPIC/DEV_ID/control { "command": "$value" } ) }\

Am Template hat sich nichts verändert attrTemplateVersion 20200729

Du kannst die Templates aktualisieren:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
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

FunkOdyssey

#594
Entschuldige, ich hatte die Details vergessen. Meine setList ist identisch. Mein Template ist auch aktuell.

"Meine" Zeile steht in devStateIcon. Basierend auf dem Wiki-Eintrag: https://wiki.fhem.de/wiki/Sonos2mqtt

my $mutecmd = ReadingsVal($name,'mute','0') eq 'false'?'on':'off';

Irgendwie scheint das nicht zueinander zu passen, oder?

Otto123

#595
Sorry, hatte ich falsch verstanden. Du hast völlig Recht, ich habe es im Wiki korrigiert.

Ich habe nochmal über https nachgedacht und #588 editiert ;)

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

87insane

#596
ZitatHTTPS geht aber generell, siehe ja das Beispiel von Stephan mit https://cdn.smartersoft-group.com/various/pull-bell-short.mp3
Dann muss es am selbst signiertem Zertifikat liegen... Das müsste ich noch mit durch "schleifen"...

Hab aktuell die SMB Variante am laufen. Die war ja eh noch abgeschottet an. Finde ich aber SEMI! Würde es auch lieber aus schalten.

Würde auch gerne die Anzeige der Cover von außen möglich machen. Aber dafür müsste man sowas wie die Sonos DB haben bzw online anzapfen können. Die Cover werden aktuell über die lokale IP gezogen. Gibt bzw. kennt jemand den Link der "externen" DB? Die Sonos Boxen ziehen sich den Kram ja auch irgendwo her....

PS: pm2 hat mir nun echt das Leben schwer gemacht. Dazu brauch ich mal was FHEM geeignetes als Doku. Hab es nun hinbekommen aber naaaaja.

kjmEjfu

#597
Problem
Hat sich erledigt

Generell sollte man, wenn man den setlist-Aufruf (https://forum.fhem.de/index.php/topic,111711.msg1079176.html#msg1079176) für Speak (sonos-polly-tts) nimmt, sollte man dort auch den Pfad anpassen ;-)

Migriere derzeit zu Home Assistant

87insane

Achso.. Es geht mit pm2 sicher besser aber für die, die es ggf. mögen...

Anbei mal ein devStateIcon für die Bridge.
{
my $amp = ReadingsVal($name,"connected","0") eq "0"
? "rot"
: ReadingsVal($name,"connected","0") eq "1" ? "gelb" : "gruen";;
my $stateinfo = ReadingsVal($name,"connected","0") eq "0"
? "sonos2MQTT Dienst ist aus"
: ReadingsVal($name,"connected","0") eq "1"
? "sonos2MQTT findet kein SONOS Gerät"
: "sonos2MQTT läuft!";;
my $start = "<a href=\"/fhem?cmd.dummy=set $name start_service&XHR=1\">".FW_makeImage("audio_play\@green")."</a>";;
my $stop = "<a href=\"/fhem?cmd.dummy=set $name stop_service&XHR=1\">".FW_makeImage("audio_stop\@red")."</a>";;
my $restart = "<a href=\"/fhem?cmd.dummy=set $name restart_service&XHR=1\">".FW_makeImage("audio_repeat\@blue")."</a>";;
my $show = FW_makeImage("10px-kreis-".$amp);;
"<div>$start $stop $restart &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $show $stateinfo</div>" }


Die Befehle:
start_service
stop_service
restart_service

könnte man so in sL eintragen (geht sicher besser, vor allem mit gecryptetem PW):
start_service:noArg {system ("sudo pm2 start sonos2mqtt -- --mqtt mqtt://USER:PW\@IP:PORT")}
restart_service:noArg {system ("sudo pm2 restart sonos2mqtt -- --mqtt mqtt://USER:PW\@IP:PORT")}
stop_service:noArg {system ("sudo pm2 stop sonos2mqtt")}


Hätte aber den Charm, das es so aussehen würde und steuerbar wäre. Man braucht es nicht so oft aber man müsste den Befehl nicht rauß suchen (für User die es ggf. nicht so oft brauchen)...

kjmEjfu

Bei dem Notify

notify:textField sonos/RINCON_B8E93729518A01400/control { "command":"notify","input":{"trackUri":"$EVTPART2","onlyWhenPlaying":false,"timeout":10,"volume":$EVTPART1,"delayMs":700}}

Landet im Log ein Fehler:

2020.10.21 14:59:26.344 3: MQTT2_DEVICE set Sonos_Wohnzimmer notify
2020.10.21 14:59:26.418 1: Error parsing >$EVTPART1,"delayMs":700< for volume


jemand eine Idee woran das liegt?
Migriere derzeit zu Home Assistant