Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't find Sonos Play 1 (v 8.4) #30

Open
fetchinson opened this issue Mar 10, 2018 · 7 comments
Open

Can't find Sonos Play 1 (v 8.4) #30

fetchinson opened this issue Mar 10, 2018 · 7 comments

Comments

@fetchinson
Copy link

I've managed to compile noson and things were looking good but when I launch it it tells me "No Sonos zone found". The Sonos Play 1 device is on the local network, both my laptop and the Sonos are wired to the router by ethernet cables. The Sonos device recently updated its software automatically (this is a very annoying feature which I was not able to disable) and so now its version is 8.4 (build 41350131).

The android and windows controllers work though.

How should I go about debugging this? Also, did anybody try noson with version 8.4 on the sonos device?

@janbar
Copy link
Owner

janbar commented Mar 12, 2018

It should work. Have you checked if any firewall is installed on your laptop and then bocks incoming connections ?

The issue #9 relates this case.

@fetchinson
Copy link
Author

Thanks, this might very well be, I didn't think about the incoming connections to the laptop from the sonos device. Will check it soon and get back (don't have the laptop with me now).

@fetchinson
Copy link
Author

I thought I have a firewall problem (and it still may be the case) but couldn't figure out exactly and so things don't work yet.

So I allow incoming connections on port 1400, this I checked by netcat from another computer on the network after starting noson-app on the laptop:

nc -vv 192.168.1.39 1400
Connection to 192.168.1.39 1400 port [tcp/*] succeeded!
HTTP/1.1 400 Bad request

So 192.168.1.39 is my laptop from where I start noson-app and the above is from 192.168.1.44.

Also, if I go to http://192.168.1.39:1400/ I get the expected

Noson Event Broker

Version 1.6.0, compiled on Mar 10 2018 at 11:23:44

Furthermore, on the laptop, I have:

[root@fetch ~]# lsof -i :1025-9999 +c 15
COMMAND           PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
avahi-daemon      764   avahi   12u  IPv4   13654      0t0  UDP *:mdns 
X                 936    root    1u  IPv6   16495      0t0  TCP *:x11 (LISTEN)
X                 936    root    3u  IPv4   16496      0t0  TCP *:x11 (LISTEN)
transmission-gt 20166 fetch   19u  IPv4 4433205      0t0  UDP fetch:38251->192.168.1.1:nat-pmp 
noson-gui       23788 fetch   11u  IPv4 4499380      0t0  TCP *:cadkey-tablet (LISTEN)

And the cadkey-tablet port is 1400. So I guess everything works as it should, yet I still get "No Sonos zone found".

What do you suggest I try further?

@janbar
Copy link
Owner

janbar commented Mar 21, 2018

I am trying to review my code about my usage of the udp socket. Until now I didn't bind a port to catch any messages from devices during discovery stage.
All my Sonos devices (ZP models) send back the ping message. Probably others models don't make that in the same way. I let you know soon.

@fetchinson
Copy link
Author

Thanks a million, that would be great! If you need any testing/debugging/etc on my side I'd be happy to do it of course.

@munnerz
Copy link

munnerz commented Sep 19, 2018

I also seem to be running into a similar issue with a Play:1 and two ZP100s.

After installing the latest version from the Arch AUR repo (3.8.6), I only see "No zones found" when launching.

I've confirmed there's no firewall rules interfering with anything (in fact, I do not have a firewall enabled on this box).

ZP100 running version 9.0, 44254230, hardware version: 1.1.3.2-2 (series S100)
ZP100 running version 9.0, 44254230, hardware version: 1.1.3.2-2 (series S100)
Play:1 running version 9.0, 44254230, hardware version: 1.8.3.7-1 (series A101)

Let me know if there's any additional info I can share to help. I'd be happy to dig into this a bit more myself, if you can provide some pointers to some documentation on how the handshake/discovery protocol works!

EDIT: logs from starting with --debug:

noson-app --debug
Signal handler is enabled.
"using file ':/i18n/noson_en.qm ' for translations."
installing thumbnails cache in folder "/home/james/.local/share/janbar/noson/QML/OfflineStorage"
thumbnailer Last.fm is initialized
(SONOS)Process: bind port 1400
qml: LANG=en_US
thumbnailer: configure key []
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out
(SONOS)ReceiveData: socket(0x7f2d8effcb48) timed out

@janbar
Copy link
Owner

janbar commented Dec 21, 2018

Hi. Sorry for the delay. So here I use two zp100 and one zp90 without issue. Your sonos devices MUST be in same network than the box running the app: using google wifi your box should be connected in the mesh network (plugged or aired).
Any other setup requires custom expert config.
The discovery protocol is SSDP. The app send an udp packet on multicast address 239.355.255.250 and port 1900, containing a search request. Sonos devices should callback to the source socket returning their description url.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants