- Posted on
Fri Jan 03, 2014 12:16 pm
-
doug@dynamic.com
offline
-
- Posts: 12
- Joined: Sep 30, 2012
I had been corresponding with Michael a few months back about a Niles Plugin. I have the ICS GXR-2 and have written a background server that pushes and pulls information from the Niles and Indigo. I wrote it as a server, because I know nothing about Python and my Applescript knowledge barely keeps me out of trouble.
The server runs in background and connects to the Niles via RS-232. It auto populates Indigo Variables for each zone and source it finds and updates Indigo whenever anything changes. I use Control Pages to send commands to the server via applescript and shell scripts. When started, the server determines the number and name of each zone, default volumes, doorbell info, max volume, etc. and pushes that to Indigo Variables. It also determines the number of sources, their types and descriptive names as they appear on the keypads.
The server supports commands including - setting the time on the Niles, setting maximum and default volumes, changing sources, mute, party modes, all off, volume up/down, volume to a specific level, etc. It works on the principle of monitoring the automatic reporting modes of the Niles - updating the Indigo Variables for changes to the current source as well as changes to other sources. Metadata (Artist, Song, channel), etc. are also updated for sources that supply metadatasuch as Ipods, NetMusic, XM/Sirius, etc. I have a legacy audio source in the Niles connected to Sonos and Indigo uses the Sonos Indigo Plug-In to update metadata whenever a track changes.
I have begun to expand the control pages to support some of the Niles Keypad Menus - such as XM Channel List; Favorites, change channel, etc.
The coding is based upon the Niles TS232G Protocol Version 2.6.2 which may be found on the ICS website.
I would really like to figure out how to incorporate this server into a real Indigo Plug-In.
Doug at dynamic dot com