PDA

View Full Version : Third party control of my receiver without Squeeze Server



cbutcher
2009-11-12, 14:09
Hi All,

I have pretty much finished by AMX controller implementation using a local squeeze server, and I'm now onto the next task: Controlling my squeezebox duet receiver without having squeeze server running. Is this possible? From everything Iíve read here, Google searches, Wiki and talking with Logitech...I get the feeling it is NOT.

I am running an AMX processor, which is a Linux based OS. I can talk to other devices from it via IP. What I need to do is talk directly to the receiver without using the remote or a squeeze server. Is there a way to issue any of the standard already defined commands over IP? If so which set of command and what port number would I need to use?

Even if the answers is "It can't be done, it is proprietary", that's fine, I just need an answer.

Thanks,

CJ

Kuben72
2009-11-12, 14:31
http://mysqueezebox.com makes it possible to use it without squeezebox server (SBS). But unless you want to reinvent SBS then you can't

gharris999
2009-11-12, 15:37
Hi All,

I have pretty much finished by AMX controller implementation using a local squeeze server, and I'm now onto the next task: Controlling my squeezebox duet receiver without having squeeze server running. Is this possible? From everything Iíve read here, Google searches, Wiki and talking with Logitech...I get the feeling it is NOT.

I am running an AMX processor, which is a Linux based OS. I can talk to other devices from it via IP. What I need to do is talk directly to the receiver without using the remote or a squeeze server. Is there a way to issue any of the standard already defined commands over IP? If so which set of command and what port number would I need to use?

Even if the answers is "It can't be done, it is proprietary", that's fine, I just need an answer.

Thanks,

CJ
It's not proprietary, but it's not really well documented either. I think you'd have to more or less reverse engineer it by looking at the SoftSqueeze and SqueezeSlave code. The real place to start is by clicking on the "Help" link at the bottom of the Squeezebox Server web interface, then on "Technical Information" and then on "The Squeezebox Client Protocol". That describes what gets communicated over what ports. And yes, you'll essentially need to recreate SBS here. There aren't any high level commands you can communicate this way...just very, very low level stuff.

erland
2009-11-12, 20:45
What kind of commands do you want to send ?
Where is the music you like to play ?
Is the Receiver connected to mysqueezebox.com ?

cbutcher
2009-11-13, 09:35
It's not proprietary, but it's not really well documented either. I think you'd have to more or less reverse engineer it by looking at the SoftSqueeze and SqueezeSlave code. The real place to start is by clicking on the "Help" link at the bottom of the Squeezebox Server web interface, then on "Technical Information" and then on "The Squeezebox Client Protocol". That describes what gets communicated over what ports. And yes, you'll essentially need to recreate SBS here. There aren't any high level commands you can communicate this way...just very, very low level stuff.

Thanks for the input. I have looked into the help that you mentioned, and agree that the docs are not in very good shape. I would be willing to write the docs once I'm done and submit them for review and/or inclusion in the help files.

Based on the docs I have read, I'll be using the IR command to talk with the receiver and then sometime of binary command set to actually control it? My plan is to build in as much functionality as I can, full menu browseing of all internet related sources and if possible local music too.

So either I'll download the Source or use wireshark to sniff the packets I guess.

Any additional input would be great.

Thanks,

CJ

erland
2009-11-13, 11:23
Based on the docs I have read, I'll be using the IR command to talk with the receiver and then sometime of binary command set to actually control it?

I'm not sure I get what you are going to do, maybe you could describe it a bit more ?

Are you talking about controlling it through a IR blaster/sender ?

I don't think the receiver firmware listens for any IR commands over the network but I might be wrong. As far as I know IR commands are passed to the server (SqueezeCenter/Squeezebox Server/mysqueezebox.com) and then the server uses SlimProto commands to communicate with the Receiver.



My plan is to build in as much functionality as I can, full menu browseing of all internet related sources and if possible local music too.

It sounds like you either is going to implement a replacement for SqueezeCenter/Squeezebox Server or implementing a user interface towards mysqueezebox.com. Is this the plan or are you trying to accomplish something else ?

I'm pretty sure the Receiver requires some kind of server, either SqueezeCenter/Squeezebox Server or mysqueezebox.com or your own server implementation.



So either I'll download the Source or use wireshark to sniff the packets I guess.

Receiver firmware source isn't available as far as I know, so you are probably going to need Wireshark or similar tool.

agillis
2009-11-13, 11:58
Why not have a Squeezebox Server running someplace? It would make things much easier. Also won't you need SBS to play music or are you only playing streaming content?

cbutcher
2009-11-14, 04:22
I'm not sure I get what you are going to do, maybe you could describe it a bit more ?

I write home automation software, to control most anything in your come from your pool and thermostats to your alarm system and lighting. And of course your home theater, whole house audio/video systems. I currently support a wide variety of system sources from TiVo, Vudu, various iPod docs, Kaliedescaps, ReQuest servers and on and on. All this from a single touch panel (or other type of controller) or a farm of them all with an intuitive UI that makes controlling all your various sources easy for even the least tech savvy person. So you have a single cohesive touch panel in any number or rooms instead of a stack of remotes, or a possibly complicated universal remote for all the various sources. Again, this is designed for non-technical people that just want a simple user friendly UI to control most anything in their house…no matter where it is in the house. Most of these systems have all the sources rack mounted in a closet or basement someplace, the receiver would be in there also. We could have people listening to music via one receiver in two different rooms, either may want to skip to the next track, change the station or anything else they could do with the remote…but they don’t want a remote in every room, they get moved, batteries run out yada, yada, yada.


Are you talking about controlling it through a IR blaster/sender ?

I have no interest in using an IR blaster of any type. I want to control a receiver or set of receivers via IP. I want and need feedback to what is going on and where they are in the system. If they have 30 favorites they need to know which one they are about to select and have start playing.


It sounds like you either is going to implement a replacement for SqueezeCenter/Squeezebox Server or implementing a user interface towards mysqueezebox.com. Is this the plan or are you trying to accomplish something else ?

I am not looking to implement a server replacement, more like a remote replacement/substitute. The remote talks to the receiver via IP and I’d like to too. So, let’s say I bought a duet, got it all setup and it works great. Now the wife says: “Why doesn’t the control system we have work on the Squeezebox, it works on everything else. I don’t want a new remote lying around the house.” So, yes it would be more of a UI interface towards mysqueezebox.com…via the receiver because it is already in place has all the setup/configuration information for the various plugins and what not.


Receiver firmware source isn't available as far as I know, so you are probably going to need Wireshark or similar tool.

If the receiver source isn’t available then wireshark may have to be my route. But I’m guessing there is an API somewhere.


Why not have a Squeezebox Server running someplace? It would make things much easier. Also won't you need SBS to play music or are you only playing streaming content?

As I mentioned before, I already have an implementation running with SBS. Remember this is for NON-technical people that probably wouldn’t know a server from a DVR, especially if they are all down in a rack system in the basement. They wouldn’t know how to troubleshoot, nor would they want to have too, they just want to go to their touch panel and push a few buttons and have it work. This new version would be for people that have a squeezebox but only want mysqueezebox.com functionality.

erland
2009-11-16, 10:54
I write home automation software, to control most anything in your come from your pool and thermostats to your alarm system and lighting. And of course your home theater, whole house audio/video systems. I currently support a wide variety of system sources from TiVo, Vudu, various iPod docs, Kaliedescaps, ReQuest servers and on and on. All this from a single touch panel (or other type of controller) or a farm of them all with an intuitive UI that makes controlling all your various sources easy for even the least tech savvy person. So you have a single cohesive touch panel in any number or rooms instead of a stack of remotes, or a possibly complicated universal remote for all the various sources. Again, this is designed for non-technical people that just want a simple user friendly UI to control most anything in their houseÖno matter where it is in the house. Most of these systems have all the sources rack mounted in a closet or basement someplace, the receiver would be in there also. We could have people listening to music via one receiver in two different rooms, either may want to skip to the next track, change the station or anything else they could do with the remoteÖbut they donít want a remote in every room, they get moved, batteries run out yada, yada, yada.

Sounds like you want to implement parts of the Controller functionality.

As I've understood the communication scheme is:
Controller -> Squeezebox Server -> Receiver
or
Controller -> mysqueezebox.com -> Receiver

I'm not completely sure about the mysqueezebox.com interaction. It feels like you just want to put your application where the Controller is in the above mentioned communication scheme.



If the receiver source isnít available then wireshark may have to be my route. But Iím guessing there is an API somewhere.

"pippin" has made an implementation in the iPeng iPhone application towards mysqueezebox.com, so you might want to contact him to get to know if he found any specifications or if he just read the code.

From what you describe I'm pretty sure you want to look at the protocol between the Controller and mysqueezebox.com.

Sparren
2009-11-17, 12:11
I'm about to write some own software interfacing SBS.
I've spent some time on the wiki and i asume SBS can be controlled through CLI and feedback is also presented through CLI.

I'm however just scraping the surface so i may be wrong.

Muele
2009-11-18, 02:42
I think your understanding of the architecture of the system is somewhat lacking. (No offence intended, English is not my first language.)

I think Erland is right in what he writes. The receiver (and the other players that have no color-screen) is very basic devices that are capable only of playing the music they are fed by either a local server or the server on the internet called MySqueezebox.com. some of the devices are also capable of sending IR commands back to the server about what music it should send.

But what you are looking to do is certainly possible. There exists several alternatives to control squeezeboxes. E.g. iPeng for iThings, Slimcontrol for windows mobile, a couple of implementations for Android.

I think what you are looking for is the command line interface (CLI). But you need a server of some kind*

*Actually the upcoming Squeezebox Touch contains a server in itself. But it still follows the architecture of separate server, controller and player, even if all three are contained in the same physical box.

Schindler
2009-11-19, 02:01
I think a customer who buys such a remote also wants his own music to play. so you need a local server to store the ripped cds. With that server you could easy remote control the squeezebox clients as with iPeng and others.

The next question would be how does he get his new cd to that server, who does the ripping, the correct tagging make sure the correct cover is set...

Christian

Locuth
2009-11-23, 09:36
SqueezeBox players are dumb.
All they do is listen to a server telling them to play stream xyz, stop playing, turn up the volume, etc.
They know nothing of playlists and albums and so on.

The rich interface for managing your music collection, music services and what not is
offered by the server allone.

If you want to control a SqueezeBox without a local SqueezeCenter running, you'll have to connect to mysqueezebox.com and have mysqueezebox.com control your player.

Unfortunately mysqueezebox.com does not speak CLI. It speaks JSON.
Check out this pictogram:
http://wiki.slimdevices.com/index.php/SqueezeOSArchitecture