Calling Sonos users

General HouseBot discussion. Any issues that don't fit into any of the other topics belong here.
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

ievolve:

The device within HouseBot acts as a upnp control point for Sonos and receives asynchronous callbacks from the ZonePlayer for status changes (track, transport, volume, etc.). Though ZPCMD will get you basic transport control, both of the .exe files are "dumb" and can not be leveraged to do all of what you want. My recommendation would be to interface HouseBot to your keypads in some way, allowing HouseBot to do the heavy lifting with keypad presses and also send the keypads the Now Playing information to be displayed. How are you interfacing to the keypads now?

Osler
ievolve
Member
Posts: 6
Joined: Sat Mar 20, 2010 7:00 pm

Re: Calling Sonos users

Post by ievolve »

HI Osler,

Clipsal has a toolkit that you can use in building out your automation very similar to housebot. Right now that is how I talk to the units. There are several little utilities that can be used to talk to c-bus though, including a little java app called C-Gate, and also a DLL for windows. Details on the DLL are here:

http://www2.clipsal.com/cis/technical/d ... oper_tools

I would love to let housebot do the heavy lifting! How difficult would it be to integrate that DLL?

Again, I am looking to:
1) Keypad Press >> Adjust/mute volume on sonos
2) Sonos Song Changes >> Write to the keypad

I think that a way to connect sonos to clipsal would be a very popular product. I love my sonos, but they wife isnt going to approve in on our new home this time around unless I can:
1) hide the speakers in the wall/ceiling
2) make it so she doesnt have to hunt for the remote every time she wants to turn on the music

If I cant do that I'm afraid we'll end up installing a russound or something else with some in-wall control. Seems sonos should be thinking about the whole in-wall thing at some point.
ievolve
Member
Posts: 6
Joined: Sat Mar 20, 2010 7:00 pm

Re: Calling Sonos users

Post by ievolve »

Note, cgate just uses a telnet session to command c-bus, and also uses telnet to feed a stream of events.

If you install the toolkit from http://www2.clipsal.com/cis/technical/d ... us_toolkit it will contain c-gate and also in the install directory you will see the cgatemanual.pdf which explains in depth how it all works.
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

Well, to get a c-bus system integrated into HB, it will take some work on your part. I see that there is a serial protocol available which you could use with the generic serial device. If you prefer the telnet option, you could see if the generic TCP/IP client plugin I wrote can interface to the system. Creating a plugin centered around the .dll is also an option, though I don't have time to get into such a project at the moment.

Osler
ievolve
Member
Posts: 6
Joined: Sat Mar 20, 2010 7:00 pm

Re: Calling Sonos users

Post by ievolve »

I'm not too familiar with the HB stuff so it might be easier for me to write a little java app to listen for the keypad presses and use ZPCMD to adjust volume.

As for listening for sonos song changes. Is that something you see coming to "SonosWatcher" anytime soon? If not, can you explain how/where that info comes from? I have set up a upnp device spy and sniffer and cant see anywhere that that is actually broadcast? Are you simply polling for that info? If so can you help me understand where you are polling? If not can you help me understand how/where you are listening?
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

The point of this forum is the "HB stuff". HB is a very powerful piece of kit and I wouldn't dismiss it if you are truly looking to integrate a variety of components in your home. Just my opinion, as it sounds like you are already going to be running a PC 24/7 to interact with c-bus.

All of the data available via my scripts can be accessed via the windows script component (which is well documented) or, from the ground up, via UPnP. If you open the script component in a text editor, you should be able to see exactly how it is using the upnp.dll to do what it does. The info you are looking for is provided via the AVTransportCallback. You should also see the GetCurrentTrackInfo function as well if you plan on polling.

I've been working on this script since 2006....so good luck to you.

Osler
ievolve
Member
Posts: 6
Joined: Sat Mar 20, 2010 7:00 pm

Re: Calling Sonos users

Post by ievolve »

Thanks Osler. I didnt mean to sound like I was not willing at all to look at HB itself. Just that it felt like using a sledgehammer to do your finish work with ;) It is indeed very full featured, but I was looking just to do a couple small tasks so I originally hadnt considered it as I wasnt looking to create any interfaces, do any conditional automation, etc. Just needed to shim out volume control and song info.

I will play around with HB for a bit and see if I can make it work using the methods you lined out previously. I'm on a mac though so I'll need to vire up a virtual machine. I'll get back to you.
CouchPotatoe
Senior Member
Posts: 103
Joined: Sun Jul 31, 2005 2:43 pm
Location: Yorkshire UK

Re: Calling Sonos users

Post by CouchPotatoe »

I thoroughly recommend Oslers Sonos WSC and Housebot too. One thing you will find with C-Bus is that you likley need something to provide the extra smarts - beyond the basic network. Time scheduling and logic interactions are extras offered by a PAC, HomeGate, Touchscreen or Wiser unit.

Should you wish there is a hardware box that will attach to your C-Bus network and convert the C-Bus messages into xAP messages on Ethernet. There is also a xAP plugin for HouseBot. Using those two every group on C-Bus becomes a HouseBot device and integrates realtime. Obviously that box has a cost (although it's not too expensive - about the same as a DLT). Alternatively you could write your own HouseBot plugin for C-Bus that talks directly to a CNI, PCI , Wiser or C-Gate which, if you are just after triggers from C-Bus switches could be fairly simple. If you wish to fully synchronise and model your C-Bus network then it's fairly complex although C-Gate will do this for you.

Having xAP control of C-Bus allows you to use any xAP capable control application for that role - and HouseBot is a fine choice - thus meaning you don't necessarily need one of those C-Bus hardware controllers - or more preferably that you augment their role with extra functionality (which is what I do) . However I have found having one C-Bus hardware controller is recommended because then you have no PC dependence and 24/7 availability. PC applications are much better at handling richer data like text and graphics - and IP derived data sources - as well as AV control etc. Plus obviously C-Bus has limited display options unless you have HomeGate or a touchscreen.

Having Sonos and C-Bus both as realtime devices in Housebot I think achieves what you are after but maybe not ideal if your VM'ing it on a Mac
ievolve
Member
Posts: 6
Joined: Sat Mar 20, 2010 7:00 pm

Re: Calling Sonos users

Post by ievolve »

CouchPotatoe wrote:Should you wish there is a hardware box that will attach to your C-Bus network and convert the C-Bus messages into xAP messages on Ethernet. There is also a xAP plugin for HouseBot. Using those two every group on C-Bus becomes a HouseBot device and integrates realtime. Obviously that box has a cost (although it's not too expensive - about the same as a DLT).
This sounds like it may be an option, do you have a link to where I can find this unit?
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

See the following link:

http://www.xapautomation.org/index.php?title=Homevision

Email Kevin directly and he should be able to get you what you need.

Osler
vcruz777
Member
Posts: 70
Joined: Sun Jul 08, 2007 9:39 pm

Re: Calling Sonos users

Post by vcruz777 »

Finally got the time to move to the newest version of the script with the Radio Time support. Everything is working great! The only thing I was never able to do was to sucessfully run the album art script to copy all the album art into the C: drive. It starts to run and stops at only 38 covers. I have over 30K songs. But, it is OK. I don't ready need them. The Radio Time feature is great and just what I needed. Thanks a lot Osler for a great script.

Saludos,

Victor
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

I've been meaning to take a look at the album art; however, life has not been too kind to my free time of late. I'm glad RadioTime is working for you. Hopefully I'll have some time in the near future to get back to the script.

Osler
vcruz777
Member
Posts: 70
Joined: Sun Jul 08, 2007 9:39 pm

Re: Calling Sonos users

Post by vcruz777 »

Osler, I was able to export all the album art very quickly using MP3TAG software. It was able to process all the albums in less than 5 minutes. Now everything is working. The only problem I am experiencing right now is that sometimes the Services.Exe process is going very high in CPU usage (~35%) and stays there until I restart the server. I am not sure if its related with the new script but I think that something similar happened to me the last time I tried it. I will keep monitoring it to see if it becomes a problem.

Saludos,

Victor
Osler
HouseBot Guru
Posts: 742
Joined: Fri Feb 03, 2006 11:18 pm

Re: Calling Sonos users

Post by Osler »

One issue with doing it the way that you have is that I search for non-standard characters in the album name and replace them with something else (can't remember what at the moment) so that you don't end up with a wonky path name. The script is going to pass the path to the dynamic image control that contains those replacement characters, so if your jpg file name doesn't contain them the dynamic image won't change.

Osler
vcruz777
Member
Posts: 70
Joined: Sun Jul 08, 2007 9:39 pm

Re: Calling Sonos users

Post by vcruz777 »

OK. I made some changes to the script to fix it. Another thing I noticed was that when the AlbumArt file didn't exist when I open the MusicSelection Panel it kept the last CoverArt displayed. Even when the script was changing the BrowseSelectionImage to point to the TransparentImage.png file when opening the MusicMenu Panel. Apparently Housebot is not updating the Dynamic Image unless the path change when that particular panel is open. Anyway to fix this I just added these lines to the script just after it assigns the path to the BrowseSelectionImage property:

Code: Select all

' Check if Album Art Exists
		Set fso = CreateObject("Scripting.FileSystemObject")
		If (fso.FileExists(BS)) Then
			'Album Art File Exists
		
		Else
			Call SetPropertyValue (".ZPBrowseSelectionImage", "C:\Program Files\Housebot\Config\Themes\SonosAlbumArt\TransparentImage.png")
 
		End If
		Set fso = Nothing
' End of Album Art Check
It just checks if the AlbumArt Exists and if not then change AGAIN the BrowseSelectionProperty to the TransparentImage.png. So when the MusicSelection panel opens it refreshes the Dynamic Image with this one.

Hope it makes sense.

Victor
Post Reply