I ran the CLIController with the discover parameter. It seems (at least on OS X), that after the initial discovery of UPNP devices (startDiscovery()) , the sonos-java fails to wait for responses before executing the actual command(s) and I therefore usually get 0 recognised devices. I quickly screened the code and the MAX_DISCOVER_TIME_IN_MILLISECONDS constant seems to be used for the log message only. Hacking a dirty Thread.sleep() after startDiscovery() fixed the symptoms.