Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

Otto123

#1200
Hallo Spartacus,

interessante Fragestellung, davor stand ich auch schon mal. Habe dann alles per Hand gemacht  :-\
Ich kann mir vorstellen das geht, ich weiß auch das man hier ansetzen kann https://svrooij.io/sonos2mqtt/control/browse.html#browse-with-own-query
Ich weiß jetzt bloß noch nicht die zielgenaue Abfrage.

Wenn man die Playliste hätte ist der Export bestimmt einfach machbar.
Fleißaufgabe ;)
Beispiel - dieser Abfragestring bei einem Player ins x_raw_payload Inputfeld geworfen:
{
  "command": "adv-command",
  "input": {
    "cmd": "ContentDirectoryService.BrowseParsed",
    "val": {
      "ObjectID": "Q:0",
      "BrowseFlag": "BrowseDirectChildren",
      "Filter": "*",
      "StartingIndex": 0,
      "RequestedCount": 0,
      "SortCriteria": ""
    },
    "reply": "Reply"
  }
}

Erzeugt in der SonosBridge im Reading Reply die aktuelle Playlist des Players in einem Json String. Aus dem müsste man jetzt die Titel extrahieren...

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

Spartacus

Hallo Otto,

vielen Dank für die schnelle Antwort und deinen Einsatz. Ich habe inzwischen eine Möglichkeit gefunden, die Playlisten direkt von amazon music nach Spotify zu übertragen. Das klappt bis zu 500 Titel sogar kostenlos und das geht wirklich schnell!

https://www.tunemymusic.com/de/


Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Spartacus

Moin zusammen,

irgendwie bin ich zu blöd einen Radiosender zu laden und abzuspielen. Ih finde den Fehler nicht.

Zuerst habe ich die Radiosender geladen:

get SonosBridge Reply Radios;sleep SonosBridge:Reply.*;setreading SonosBridge Radios [SonosBridge:Reply]

Dann möchte ich WR2 in einen Player laden. Und das klappt schon nicht.

set MQTT2_RINCON_B8E9375131E201400 play Radios WDR2 Ruhrgebiet

In der Radioliste gibt es den Sender zwar, aber im Player wird einfach nichts geladen. Es steht dort dann keine Musik vorhanden und es schaut so aus, als würde er den Sender gar nicht finden. Hat jemand eine Idee?

Spartacus.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Otto123

single? Radio? :D
set MQTT2_RINCON_B8E9375131E201400 play Radio WDR2
set MQTT2_RINCON_B8E9375131E201400 play Radio WDR2 Ruhrgebiet
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

kjmEjfu

Zitat von: Spartacus am 16 Mai 2022, 12:53:49
Dann möchte ich WR2 in einen Player laden. Und das klappt schon nicht.

set MQTT2_RINCON_B8E9375131E201400 play Radios WDR2 Ruhrgebiet

In der Radioliste gibt es den Sender zwar, aber im Player wird einfach nichts geladen. Es steht dort dann keine Musik vorhanden und es schaut so aus, als würde er den Sender gar nicht finden. Hat jemand eine Idee?

Der Sender heißt "WDR2 Ruhrgebiet", richtig?
Halt also ein Leerzeichen im Namen.
AFAIK musst du das mit %20 escapen.

Also WDR2%20Ruhrgebiet
Migriere derzeit zu Home Assistant

Otto123

#1205
Es geht an der Stelle tatsächlich mir Leerzeichen :)
Bei mir ist der WDR2 allerdings WDR 2 ...
Aber eben Mehrzahl die Liste: Radios / Favorites / Playlists. Einzahl das einzelne Object: Radio / Favorite / Playlist
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

Spartacus

Moin,

cool! Hat jetzt geklappt, obwohl ich "Radio" auch probiert hatte. War vielleicht irgendeinen Tippfehler drin.

Danke Euch!
Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

m8ichael

Hallo,

ich habe zwei Fragen zu diesem Thema:


  • Nachdem ich meinen Raspberry Pi neu einrichten musste, schaffe ich es derzeit nicht, meine Sonos-Geräte davon zu überzeugen, die TTS-Funktion zum Laufen zu bringen. In der näheren Fehlerbetrachtung habe ich festgestellt, dass der notify-Befehl irgendwie nicht richtig funktioniert. Konkret wird im Reading "input_trackUri" auch die korrekte URI abgelegt (die auch durch Drittgeräte erreichbar ist), aber irgendwie wird das nicht an den MQTT-Provider übermittelt. Weitere Funktionen, wie Stop, PlayFav etc. funktionieren ohne Probleme.
  • Was sind die best practices, um Readings von diesen Sonos-Geräten abzufragen? Aufgrund der unhandlichen Namen der Devices erfolgt ja der Set-Befehl in der Form "set alias=... play". Wie kann man vermeiden, ein Reading mit ReadingsVal("RINCON_347E5C...,"<Reading>","") abfragen zu müssen?

Könnt ihr mir hier ein paar Tipps geben?

Vielen Dank und viele Grüße

Michael

Otto123

Hallo Michale,

zur ersten Frage müsste ich wissen, welche Funktion Du umsetzen willst: die mit dem TEXT2SPEECH Device oder die mit Amazon Polly?
funktioniert denn
set ... notify 25 https://cdn.smartersoft-group.com/various/pull-bell-short.mp3
zur zweiten:
Naja Du kannst die Geräte einfach umbenennen. Ich habe das nicht eingebaut weil man da wieder Sonderbetrachtungen führen muss: aus was setzt man den Namen zusammen und so weiter.
Da ReadingsVal im Perlumfeld verwendet wird, kannst Du auch einleitend den Namen ermitteln:
my $Player = (devspec2array('alias=Wohnzimmer'))[0];

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

m8ichael

Hi!

Zitat
zur ersten Frage müsste ich wissen, welche Funktion Du umsetzen willst: die mit dem TEXT2SPEECH Device oder die mit Amazon Polly?
funktioniert denn
Code: [Auswählen]

set ... notify 25 https://cdn.smartersoft-group.com/various/pull-bell-short.mp3

Das ist genau das Problem. Auch das funktioniert nicht. Irgendwie kann ich keine URIs an die Geräte schicken. Ganz generell funktioniert aber die Verbindung, d.h., sowohl die Readings werden sauber abgelegt (wenn man das Gerät direkt ohne FHEM startet) und auch die generelle Steuerung über FHEM funktioniert (inkl. Favouriten-Listen, Radiostationen etc.). Nur eben das Abspielen von konkreten mp3s nicht.

Zitat
Naja Du kannst die Geräte einfach umbenennen.

OK, das wäre dann auch mein Ansatz gewesen. War mir nur nicht sicher, ob sich dadurch Folgeprobleme ergeben.

Danke schon mal!

Otto123

funktioniert das über x_raw_payload?
{
  "command": "notify",
  "input": {
    "trackUri": "https://cdn.smartersoft-group.com/various/pull-bell-short.mp3",
    "onlyWhenPlaying": false,
    "timeout": 10,
    "volume": 15,
    "delayMs": 700
  }
}
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

m8ichael

Hallo,

Zitat
funktioniert das über x_raw_payload?
Code: [Auswählen]

{
  "command": "notify",
  "input": {
    "trackUri": "https://cdn.smartersoft-group.com/various/pull-bell-short.mp3",
    "onlyWhenPlaying": false,
    "timeout": 10,
    "volume": 15,
    "delayMs": 700
  }
}

Nein. leider auch nicht. Da scheint also irgendetwas in der MQTT-Verarbeitung schief zu laufen. Merkwürdig nur, dass der Rest einwandfrei funktioniert.

Otto123

wie hast Du sonos2mqtt am laufen? nodejs lokal oder docker container? In beiden gibt es ein Log:
z.B. mit portainer ins log schauen bzw. lokal mit pm2 monit oder pm2 logs (allerdings als der user unter dem der nodejs läuft)
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

m8ichael

Hi!

Zitat
wie hast Du sonos2mqtt am laufen? nodejs lokal oder docker container? In beiden gibt es ein Log:
z.B. mit portainer ins log schauen bzw. lokal mit pm2 monit oder pm2 logs (allerdings als der user unter dem der nodejs läuft)

Alles klar, jetzt läuft es. Im Rahmen der Einrichtung lief der Prozess sonos2mqtt anscheinend mehrfach unter verschiedenen Benutzern.

Dankeschön!  :)

australien

#1214
Hallo Otto123,

ich bekomme seit ein paar Tagen auf einen meiner drei sonos folgende Meldung
error_code     ECONNREFUSED

kann ich die irgend wie weg bekommen? Der Sonos reagiert auf nichts via mqtt.

Weiters ist mir aufgefallen, dass die IP der Speaker nicht mit der aktuellen übereinstimmt.
Sieht aus, also ob sich die Bridge nicht akutallisert, obwohl verbunden.

Danke
A.



Lösung: neustart des pm2 am Raspberry, warum notwendig, keine Ahnung.
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"