Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

Otto123

Ich habe noch Einen nachgelegt :) das zusätzliche "dummy" userReadings  alarmLists:Alarms:.* wird nicht mehr benötigt. Ich starte bei listalarms jetzt auch die sonos2mqtt() und dort wird mit einem sleep SonosBridge:Alarms:.* auf das Reading gewartet.
{sonos2mqtt_setup('a:model=sonos2mqtt_bridge')} macht jetzt alles :)

Jetzt ist irgendwie noch das Thema mit den Favoriten und den uris offen. Das muss ich mir noch anschauen, da hatte ich in Reiners Modul noch eine Idee gefunden.
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

Ralli

Klappt - da ich das Setup nicht erneut ausführen wollte, musste ich nur das getList-Attribut der Bridge gemäß der neuen Utils anpassen.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

binford6000

Zitat von: Otto123 am 24 Mai 2021, 22:51:37
Hallo Karsten,

der Container zaubert ja auch nicht - da könnte man notfalls reinschauen die Parameter gemappt werden. Hast Du den Container probiert? Funktioniert der?

Gruß Otto

Hallo Otto, hallo Karsten,
ich habe mich jetzt mal wieder dran gesetzt und den sonos-tts-polly Container zum Laufen gebracht! Danke auch nochmal an PatrickR  ;)

In der Doku https://svrooij.io/sonos2mqtt/getting-started.html wird ein Docker-Compose Beispiel gezeigt.
Dort fehlt bei SONOS_TTS_CACHE_URI ein "/" am Ende! Mit / hats dann auch prompt funktioniert.
SONOS_TTS_CACHE_URI http://10.3.3.9:5601/cache/

VG Sebastian

binford6000

Hallo Otto,
du behandelst ja die Befehle ('stop','pause','toggle','volumeUp','volumeDown','next','previous') als easycmd und gibst diese 1:1 an sonos2mqtt weiter.
{return lc( qq($topic { "command": "$cmd" }) )}
In der sonos-2-mqtt Doku steht, dass der Befehl auch einen optionalen Parameter number kennt. Ich tippe (und hoffe) mal auf die Schrittweite. Ohne Parameter wird Volume um 4 Schritte erhöht. Das ist mir etwas zu viel, da ich mit einem Tradfri-Dimmer die Lautstärke verändern möchte.

Wie baue ich die volume(Up|Down) Befehle mit Parameter um? Ein
{return lc( qq($topic { "command": "volumeUp 2" }) )}
hat zwar keinen Fehler ausgegeben aber auch keine Lautstärke verändert.

Danke und VG,
Sebastian

Otto123

Hallo Sebastian,

Ich bin unterwegs und kann nichts testen. Aber wenn du hier am Anfang das Beispiel mit Volume anschaust:
https://svrooij.github.io/sonos2mqtt/control/commands.html

So wird es gehen?

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

binford6000

Zitat von: Otto123 am 11 August 2021, 22:22:39
Hallo Sebastian,

Ich bin unterwegs und kann nichts testen. Aber wenn du hier am Anfang das Beispiel mit Volume anschaust:
https://svrooij.github.io/sonos2mqtt/control/commands.html

So wird es gehen?

Gruß Otto

Hi Otto, jepp so gehts:
if($cmd eq 'volumeUp') {
   # Schrittlänge
   my $step = 2;
   return lc( qq($topic { "command": "$cmd", "input": $step}) )
}


Schön wäre natürlich ein optionaler Parameter "step" bei volumeUp|Down  - ohne Übergabe des Parameters wie gehabt step=4,

Danke!  8)

Smyr

Hallo

ist es gewollt, dass alle Slaves in einer Gruppe automatisch den State PLAYING bekommen auch wenn der Master in der Gruppe gar keine Musik abspielt?

Ich würde gerne auf die States in einem notify reagieren um auf Knopfdruck einen Player zu einer Gruppe hinzuzufügen bzw. wenn kein Player läuft eine Playlist abzuspielen. Ein Slave mit dem State Playing verhindert das aber.

Gruß

Otto123

Hi,

Die Mitglieder einer Gruppe erhalten keine Status Updates mehr. Das ist leider so und irgendwo hier Thread mal beschrieben, wenn ich mich richtig erinnere.

Ich habe die Aufgabe nicht verstanden. Musst Du näher erklären.

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

Smyr

#1088
Zitat von: Otto123 am 03 September 2021, 00:28:16

Die Mitglieder einer Gruppe erhalten keine Status Updates mehr. Das ist leider so und irgendwo hier Thread mal beschrieben, wenn ich mich richtig erinnere.


Hallo

ich habe mir so etwas schon gedacht. Danke schon mal für die Auskunft.

Wird der State von FHEM oder von sonos2mqtt auf PLAYING gesetzt? Wenn man auf das verhalten Einfluss nehmen könnte wäre mir schon geholfen. Wenn die Mitglieder auf STOPPED bleiben würden wäre es für meinen Fall besser.

Ich habe 4 Sonos Lautsprecher. Mit einem Notify reagiere ich auf einen Tastendruck. Nun möchte ich, als Beispiel, dass der Lautsprecher im Badezimmer sich entweder mit einem anderen Lautsprecher Gruppiert wenn dieser bereits Musik abspielt oder aber wenn kein anderer Lautsprecher Musik abspielt soll er nur eine Playlist wiedergeben.

Funktioniert soweit auch nur wenn sich ein oder mehrere Lautsprecher in Gruppen befinden bekommen die Slaves den State "PLAYING" auch wenn die Gruppe keine Musik wiedergibt. Ich habe STATE genutzt um auszuwerten ob ein anderer Player Musik abspielt oder nicht.

Gruß

Otto123

Hi,

sonos2mqtt liefert nur noch wenige Aktualisierungen für die Slaves, der transportState wird nicht mehr aktualisiert.
Du kannst vielleicht etwas bauen was den transportState auf den Slaves mit dem Master synchronisiert, die Informationen sollten alle da sein. Du kannst aber auch die Abfrage in deinem notify so machen, das Du Dir die nötigen Infos zusammensuchst. Du weißt ja ob er Master ist oder nicht und wenn er nicht sein Master ist musst Du eben den Master abfragen. Wer Master ist weißt Du auch.

Mit langem Tastendruck den nicht gruppierten, nicht spielenden Player in die spielende Gruppe aufnehmen ist aber eine Standardfunktion von Sonos. Die brauchst Du nicht zu erfinden!

Ebenfalls Sonos Standard: Wenn die Taste eines beliebigen Players in einer Gruppe gedrückt wird, wird die Gruppe mit dem gestartet was zuletzt war.

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

Smyr

Hi

danke für die Unterstützung. Ich setze den transportState der Slaves nun automatisch auf Stopped. Der Master der Gruppe bekommt ja noch Status Updates und für meine Funktion genügt das.

Die Funktion mit langem Tastendruck war mir tatsächlich nicht bekannt. In meinem Anwendungsfall aber nicht zielführend da die Tasten nicht immer zu erreichen sind  :P

Gruß

Otto123

Hi,

nur noch als Idee aus meiner Routine für das devStateIcon: ich denke damit kann man immer den STATE des Masters ermitteln:
Value((devspec2array('DEF='.ReadingsVal($name,'coordinatorUuid','0')))[0])

oder den transportState direkt auslesen:
ReadingsVal((devspec2array('DEF='.ReadingsVal($name,'coordinatorUuid','0')))[0],'transportState','STOPPED')
Das könnte man auch als stateFormat verwenden. Aber eventuell hakt es an der Aktualisierung...

Hab das nicht probiert, nur laut gedacht ;)

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

Ralli

#1092
Hallo Otto,

speziell für gruppierte Lautsprecher gibt's in der neuen Beta den neuen Wert "ExtendedTransportState":

https://github.com/svrooij/sonos2mqtt/issues/110

EDIT:

Und ab Version 3.1.2 ist der Typo "listalarm(s)" gelöst (https://github.com/svrooij/sonos2mqtt/issues/145). Betrifft die folgende Zeile in 99_sonos2mqttUtils.pm:


   if($cmd eq 'listalarms') {fhem("sleep $bridge:Alarms:.* ;{sonos2mqtt_alarm(\"$bridge\",'alarmlist')}");return "$devicetopic/cmd/listalarm"}
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Otto123

Hallo Ralli,

die zweite Info hatte ich. Ich werde das einfach so einbauen und keine Rücksicht auf alte Versionen nehmen. Die es haben haben es, die neu anfangen nehmen ja die neue Version!?
Die erste Info ist ist interessant, danke :)

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

christian.71

Ich frage mich gerade, ob es richtig ist, wenn ich an den Master einer Gruppe den speak Befehl mit "de-DE Vicki 30 Hier ist eine Durchsage" absetze, dass sich dann nur die Lautstärke vom Master auf die angegebene Volume Angabe ändert. Ist das normal? Oder muss der Befehl dann evtl. anders lauten, damit die Lautstärke an allen Speakern geändert wird?