svrooij / sonos2mqtt

:speaker: Sonos mqtt controller. Control your speakers from your mqtt server. mqtt-smarthome insprired.
https://sonos2mqtt.svrooij.io/
MIT License
76 stars 18 forks source link

Documentation: Document configuration when running against a splitted (S1/S2) system #127

Closed jmerifjKriwe closed 3 years ago

jmerifjKriwe commented 3 years ago

Hi, I have to Sonos networks. One with old Play 5 players (controlled via Sonos S1 app) and newer Play 1 players (controlled via 'normal' Sonos app). Depending on the setting of SONOS2MQTT_DEVICE I can control the old players or the new players but not both at the same time. Is there any hack to control both together? Currently I'm thinking about using two Docker container (one for the old players, one for the new players) but it feels like overkill. And I don't have an idea if node-sonos-ts (SONOS_LISTENER_HOST) is able to work with two containers.

Best regards

svrooij commented 3 years ago

Two versions (S1 and S2) means two instances of this app. Since a lot depends on the speakers talking to each other there is no other way. The app starts by asking which speaker the current speaker knows. The JoinGroup command also uses that endpoint.

You're right that there will be some issues with the events. Take a look at the getting started and the sonos event listener configuration

My guess that if you use these settings, you'll get a working solution. You create 2 instances of this app with these environment variables: Setting Instance 1 Instance 2
SONOS_LISTENER_HOST {ip-of-docker-host} {ip-of-docker-host}
SONOS_LISTENER_PORT 6239 or not set 6238
SONOS2MQTT_DEVICE {ip-of-v1-speaker} {ip-of-v2-speaker}
SONOS2MQTT_PREFIX sonos or not set sonosv2

You then expose port 6239 to instance 1 (as in the example docker compose) and port 6238 to instance 2.

This will have all the messages from/to the v1 system starting with topic sonos/ and sonosv2/ for the v2 speakers.

Would you care to send a PR with your findings? this file could be improved for this exact situation.

I also own some old play5 speakers, but I don't see the point in splitting my system so I cannot test this out.

jmerifjKriwe commented 3 years ago

Works out of the box as described :-) Many thanks.

But I have no idea how to create a PR :-(

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 3.1.1-beta.7 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

svrooij commented 3 years ago

I've also setup building the documentation from the beta branch. Which can be found here https://sonos2mqtt-beta.svrooij.io/

Info about a splitted system can be found at this page https://sonos2mqtt-beta.svrooij.io/splitted-system.html

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 3.1.2 :tada:

The release is available on:

Your semantic-release bot :package::rocket: