<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Developing On Digi</title>
	<atom:link href="http://wiredright.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiredright.wordpress.com</link>
	<description>Experiments with the NetStreams DigiLinX architecture</description>
	<lastBuildDate>Sat, 05 Apr 2008 01:42:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='wiredright.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://en.wordpress.com/i/buttonw-com.png</url>
		<title>Developing On Digi</title>
		<link>http://wiredright.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://wiredright.wordpress.com/osd.xml" title="Developing On Digi" />
	<atom:link rel='hub' href='http://wiredright.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Subscribing to DigiLinX</title>
		<link>http://wiredright.wordpress.com/2008/04/04/subscribing-to-digilinx/</link>
		<comments>http://wiredright.wordpress.com/2008/04/04/subscribing-to-digilinx/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 01:41:31 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[Subscriber]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/04/04/subscribing-to-digilinx/</guid>
		<description><![CDATA[Technorati Tags: DigiLinX,NetStreams,Home Automation As a developer who is interested in working with the NetStreams DigiLinX infrastructure, you have two basic integration options. This blog has focused mostly on the first option, which is to develop Lua drivers that allow the DigiLinX system to issue commands to an external system. A good example of this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=91&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wlWriterSmartContent" id="3a3f045d-3873-4709-95ad-a5216e47b24c" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/DigiLinX" rel="tag">DigiLinX</a>,<a href="http://technorati.com/tags/NetStreams" rel="tag">NetStreams</a>,<a href="http://technorati.com/tags/Home%20Automation" rel="tag">Home Automation</a></div>
<p>As a developer who is interested in working with the NetStreams DigiLinX infrastructure, you have two basic integration options. This blog has focused mostly on the first option, which is to develop Lua drivers that allow the DigiLinX system to issue commands to an external system. A good example of <a href="http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/">this is the Proliphix driver I recently published</a>.</p>
<p>The other option, which I haven&#8217;t yet covered on this blog, is to communicate with DigiLinX using their ASCII protocol. DigiLinX devices communicate with each other by broadcasting specially formatted ASCII instructions to a multicast address, allowing other devices who are interested to &#8220;tune in&#8221; for updates. These messages contain data that contains either control or status information. My DigiLinX debugger works in this fashion, listening for all debug messages that arrive at the multicast address.</p>
<p>But what if, as a third party system, we&#8217;re not interested in every message that is sent across the wire? What if we&#8217;re writing an application that simply wants to know when a song on a stream has changed or when a specific SpeakerLinX amplifier has been turned on? DigiLinX offers us an alternative solution in this case. Using Dealer Setup, one can configure what NetStreams refers to as a &#8220;subscription&#8221;. By providing an IP address and port number, the integrator can direct the DigiLinX system to sent ASCII messages to a device using UDP. The integrator can further specify what they are interested in by subscribing only to those services which interest him. Let&#8217;s look at an example.</p>
<h3>Setting Up A Subscriber</h3>
<p>My goal for this exercise is to be alerted whenever an event occurs within an amplifier in one of the rooms. Maybe I&#8217;d like to shut off one amplifier when another one is turned on. Maybe I&#8217;d like to update a UI with the current volume level in each room. Maybe I just need an example.</p>
<p>In this test project, I have one SL220, one TL380, and a CL100. I&#8217;ve also added a dummy SL220 to give my system interface a second room. </p>
<p><img style="border-width:0;" height="320" alt="Project List" src="http://wiredright.files.wordpress.com/2008/04/projectlist.png?w=281&#038;h=320" width="281" border="0"> </p>
<p>I&#8217;d like to configure my development machine as a subscriber. I&#8217;ll write code that listens on a specific port for messages arriving from the Digi system. To do this, from within Dealer Setup 2.2 I click Tools -&gt; Edit Subscribers. I see the following screen (click to expand):</p>
<p><a href="http://wiredright.files.wordpress.com/2008/04/configuredsilversubscriber.png" target="_blank"><img style="border-width:0;" height="173" alt="ConfiguredSilverSubscriber" src="http://wiredright.files.wordpress.com/2008/04/configuredsilversubscriber-thumb.png?w=244&#038;h=173" width="244" border="0"></a> </p>
<p>As you can see, I&#8217;ve specified that my development machine Silver, with an IP Address of 10.15.15.56, will be listening on port 10590 for messages from the Bedroom and Study player services. There are other services available to me as well, but they&#8217;re outside of the scope of this post. For more information on which services are made available by which devices, refer to the DigiLinX Programming for 3rd Party Control document available in the <a href="http://www.netstreams.com/Dealer/Dealerhome.aspx" target="_blank">dealer area on NetStreams.com</a>.</p>
<p>Once my machine is subscribed, I&#8217;ll send the updated configuration to the devices and wait for them to restart. When they do, status updates will start being delivered to my machine for the services I&#8217;ve subscribed to. Let&#8217;s see what they&#8217;re saying to me by writing code to listen on that port.</p>
<h3>A Basic Client</h3>
<p>I&#8217;m going to throw together a basic client that simply dumps the arriving messages to the console. Using <a title="Ohhhh!!!! Freeeeee!!!!!" href="http://www.microsoft.com/express/download/default.aspx" target="_blank">Visual Studio.Net</a>, I&#8217;ll create a new C# Console application. Visual Studio creates a default Program.cs file with a static void Main method in it. This is the code that will run automatically when the console app is executed. I&#8217;ll stub out a method call:</p>
<blockquote><p>private static void Main(string[] args) {<br />&nbsp;&nbsp;&nbsp; TestSubscriber();<br />} </p>
</blockquote>
<p>Now I have to write my TestSubscriber method. It need to:</p>
<ol>
<li>Open a socket and bind to port 10590 (the subscriber port)
<li>Create a buffer that&#8217;s large enough to handle the incoming messages
<li>Tell the socket that we want the next arriving UDP packet and then
<li>Write it to the console. </li>
</ol>
<p>Easy enough, since I do much the same thing with my DigiLinX Debugger. Sorry about the formatting:</p>
<blockquote><p>private static void TestSubscriber() {<br />&nbsp; Socket aSocket = new Socket(AddressFamily.InterNetwork, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SocketType.Dgram, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProtocolType.Udp);
<p>&nbsp; IPEndPoint anEndpoint = new IPEndPoint(IPAddress.Any, 10590);<br />&nbsp; aSocket.Bind(anEndpoint); <br />&nbsp; char[] myTrimChars = new char[] {&#8221;, &#8216;\n&#8217;, &#8216;\r&#8217;};
<p>&nbsp; while (true) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buffer = new byte[8192];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int numBytes = aSocket.Receive(buffer);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(&#8220;{0} &#8211; {1}&#8221;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numBytes,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Encoding.ASCII.GetString(buffer).Trim(myTrimChars));<br />&nbsp; }<br />}</p>
</blockquote>
<p>And there you go &#8211; that&#8217;s all the code you need to act as a subscriber. Fire it up, press a few buttons on the TouchLinX while listening to audio, and you&#8217;ll see the following:
<p><a href="http://wiredright.files.wordpress.com/2008/04/subscriberoutput1.png" target="_blank"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="124" alt="Subscriber Output" src="http://wiredright.files.wordpress.com/2008/04/subscriberoutput-thumb1.png?w=244&#038;h=124" width="244" border="0"></a>
<p>All that&#8217;s left now is to write some code to parse the messages, looking for those that interest you. Again, information about the formatting of these messages can be found in the Programming for 3rd Party Control document published by NetStreams.&nbsp; </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/91/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/91/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=91&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/04/04/subscribing-to-digilinx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/04/projectlist.png" medium="image">
			<media:title type="html">Project List</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/04/configuredsilversubscriber-thumb.png" medium="image">
			<media:title type="html">ConfiguredSilverSubscriber</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/04/subscriberoutput-thumb1.png" medium="image">
			<media:title type="html">Subscriber Output</media:title>
		</media:content>
	</item>
		<item>
		<title>Lots of Updates!</title>
		<link>http://wiredright.wordpress.com/2008/04/02/lots-of-updates/</link>
		<comments>http://wiredright.wordpress.com/2008/04/02/lots-of-updates/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 00:03:53 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[Proliphix]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/04/02/lots-of-updates/</guid>
		<description><![CDATA[Technorati Tags: NetStreams,DigiLinX,Proliphix,Http I just released updates to the following: DigiLinX Debugger &#8211; look for a lot more stability, as well as some more advanced logging and filtering options. I feel like I&#8217;m close to a 1.0 release, having squashed a few bugs that have been bothering me for some time. HTTP Library &#8211; Yup, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=85&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
<div class="wlWriterSmartContent" id="f61bba23-f0f0-4036-bf6d-de24010dc55c" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/NetStreams" rel="tag">NetStreams</a>,<a href="http://technorati.com/tags/DigiLinX" rel="tag">DigiLinX</a>,<a href="http://technorati.com/tags/Proliphix" rel="tag">Proliphix</a>,<a href="http://technorati.com/tags/Http" rel="tag">Http</a></div>
</p>
<p>I just released updates to the following:</p>
<p><strong>DigiLinX Debugger</strong> &#8211; look for a lot more stability, as well as some more advanced logging and filtering options. I feel like I&#8217;m close to a 1.0 release, having squashed a few bugs that have been bothering me for some time.</p>
<p><strong>HTTP Library</strong> &#8211; Yup, another release today. This is a good one, as I managed to catch a number of edge case bugs and smack them down. I also did some code readability updates and improved some tracing output. I&#8217;ve had this running in a dev environment for days, being called every 10 seconds, and my ControlLinX hasn&#8217;t caught fire. </p>
<p><strong><a href="http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/">Proliphix Driver</a></strong> &#8211; This is the target I&#8217;ve had in my sights for some time now. With the HTTP library finally stabilizing, I&#8217;ve been able to wrap this bad boy up into an alpha release. Want to play but don&#8217;t have a Proliphix thermostat? No problem &#8211; you can use my Proliphix emulators on an XP or Vista machine that has Internet Information Services installed and fool Digi into thinking that it&#8217;s talking to a live thermostat. </p>
<p>The Proliphix driver is definitely an alpha build, but I wanted to get a release out to the community for a couple of reasons. First, I wanted to draw a line in the sand and declare the driver to be ready for general consumption. This should help me version in future changes at a regular pace. Second, I&#8217;ve had a number of direct requests for the driver, and I&#8217;ve seen a couple of questions on the forums about the feasibility of integrating another HVAC vendor.</p>
<p>I&#8217;ve also started another CodePlex project to host the Http and Proliphix assets. Version management for plain text code files is a pain without something like CodePlex, and I wanted to be sure that people were always using the proper version of my drivers.</p>
<p>That&#8217;s it! Have at them!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/85/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/85/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=85&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/04/02/lots-of-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>A Proliphix thermostat driver for NetStreams&#8217; HVAC interface</title>
		<link>http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/</link>
		<comments>http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 23:38:56 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[NetStreams]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/</guid>
		<description><![CDATA[Technorati Tags: NetStreams,DigiLinX,Proliphix,HVAC,Home Automation,Lua The DigiLinX system has a nice looking interface that allows users to monitor and control the current status of their HVAC system. The screen&#8217;s appearance and layout make it one of the more compelling features of the Digi system. Unfortunately, it was built to support the AprilAire line of automated thermostats. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=84&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wlWriterSmartContent" id="8152c102-24cd-407f-a8d3-6b8a9f6a3205" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/NetStreams" rel="tag">NetStreams</a>,<a href="http://technorati.com/tags/DigiLinX" rel="tag">DigiLinX</a>,<a href="http://technorati.com/tags/Proliphix" rel="tag">Proliphix</a>,<a href="http://technorati.com/tags/HVAC" rel="tag">HVAC</a>,<a href="http://technorati.com/tags/Home%20Automation" rel="tag">Home Automation</a>,<a href="http://technorati.com/tags/Lua" rel="tag">Lua</a></div>
<p>The DigiLinX system has a nice looking interface that allows users to monitor and control the current status of their HVAC system. The screen&#8217;s appearance and layout make it one of the more compelling features of the Digi system. Unfortunately, it was built to support the AprilAire line of automated thermostats. I&#8217;ll resist my compulsion to lambaste the AprilAire system, but as a whole it</p>
<ul>
<li>costs a heckuva lot to put together because of the cost of the individual parts, and the number of devices required to make it work
<li>only offers setback programming if you purchase a &#8220;<a href="http://www.smarthome.com/3047.html" target="_blank">system controller</a>&#8221; which can cost consumers ~$850. This is amazing &#8211; several thousand dollars into an install you may find that you can&#8217;t turn the A/C off when you go to work every day unless you do it manually at each thermostat.
<li>has been reported that it occasionally stops responding to third party system commands, including NetStreams, Crestron, and AMX
<li>offers no remote administration or interface without the part mentioned above</li>
</ul>
<p>Anyway, it&#8217;s safe to say that I&#8217;m not a fan. At all. I suppose it could be that pile of thermostats, controllers, and temp sensors that I have sitting in the corner of my office. I ripped it out of my home after the above points came to light when I began testing the Digi integration. A nice lesson that only cost me ~$1500. Yes, I&#8217;m bitter.</p>
<h3>Enter Proliphix</h3>
<p>But good things come to those who hate overpriced crap! I discovered the <a href="http://www.proliphix.com/" target="_blank">Proliphix line of thermostats</a> when looking for a replacement for my AprilAire system. Proliphix thermostats are great, and include the following features:</p>
<ul>
<li>They are IP based, like DigiLinX, and require no central brain to operate.
<li>They have an embedded web server that enables remote monitoring, setback scheduling, and the ability to set vacation cooling schedules
<li>They have a fully documented open API that is based upon the open standard of Http
<li>They offer advanced features found in top quality systems, such as humidity monitoring, remote sensors, and alarms
<li>They have a free service that allows you to monitor all your thermostats while away from home. The thermostats report to a central server stored at Proliphix, and you can pull up a dashboard in a web browser from anywhere.
<li>They are competitively priced for the feature set that they provide</li>
</ul>
<p>More good news for those of you who have wired for an AprilAire system &#8211; they use the same cabling approach. A Cat-5 run back to a head end connects the thermostats to a mini hub which provides network access and Power Over Ethernet to the devices themselves.</p>
<p>So once I decided on Proliphix, I went to work on writing a driver to tie the HVAC interface found in DigiLinX to the API made available by Proliphix. The API allows a programmer to retrieve and configure many of the settings and statuses related to the HVAC system. By sending simple HTTP POSTs to a device, one can change the setback temperature, query for current zone temps (both local and remote), determine if the fan is running, and more. The API is secured with a username and password configured when you first install the thermostat, which you pass along with your commands using the <a href="http://en.wikipedia.org/wiki/Basic_authentication_scheme" target="_blank">Basic Authentication scheme</a>. I adopted an implementation of HTTP from <a href="http://www.cs.princeton.edu/~diego/professional/luasocket/" target="_blank">LuaSocket</a>, which I&#8217;ve posted on <a href="http://wiredright.wordpress.com/projects/">my projects page</a>. This library allowed me to focus on the basics of the API in my driver implementation.</p>
<h3>Driver Design</h3>
<p>I won&#8217;t get into the details of how the driver works in this post, but I wanted to point out one design decision that I made. Since a home usually has more than one thermostat in it, I broke the driver into two files. The first, pro.lua, is simply the setup and scheduler for the implementation. It is responsible for binding to the thermostats during the initial load, and then scheduling and executing the status updates.</p>
<p>The second part of the driver is a module that marries the Proliphix API and the DigiLinX system. ProliphixAdapter.lua is self-contained, and is an implementation wrapper for a single thermostat. The host driver (pro.lua) actually creates one adapter for each thermostat in the system. This gives good code isolation, and makes it easier to determine which thermostat is generating trace messages.</p>
<p>I plan to write more posts in the future explaining how the driver works, especially if I see questions from the community on it.</p>
<h3>Caveats and Configuration</h3>
<p>Since this driver was not built by NetStreams, you must configure it manually by editing the text of the driver file. In pro.lua you will see&nbsp; the following code:</p>
<blockquote><p>thermostatIPlist = {&#8220;10.15.15.55&#8243;,&#8221;10.15.15.56&#8243;}<br />userName=&#8221;testuser&#8221;<br />password=<a href="mailto:p@ssword1">p@ssword1</a></p>
</blockquote>
<p>Replace the list of IP addresses with the IP addresses of the thermostats that are installed in the home. You should ensure that the thermostats are on the same subnet as the DigiLinX system, and that a patch cable connects the SwitchLinX to the POE hub that the thermostats are wired to. You will also want to replace the username and password values with the admin username and password for your Proliphix thermostats. Note that all thermostats must have the same username and password configured. That&#8217;s is for pro.lua, unless you want to flip debugging categories on and off.
<p>ProliphixAdapter.lua doesn&#8217;t require any configuration if you have Proliphix thermostats installed. However, the driver also supports using the <a href="http://wiredright.wordpress.com/2007/08/08/a-classic-asp-proliphix-api-emulator/">asp emulators</a> I developed during the authoring of this driver. If you would like to use these instead, drop them in the root of the web server for the development machine that will emulate the Proliphix thermostat, and <em>change the doDebug in proliphixadapter.lua variable from false to true</em>. <strong><u>Note</u></strong>! <strong>The drivers ship in Debug mode!</strong>
<p>Read the comments at the top of both files for more information on driver assumptions and caveats.
<p>Lastly, here is a list of all the files that will need to be installed on the ControlLinX that hosts the HVAC interface. You&#8217;ll need to use the Dealer Setup &#8220;Load Files &#8221; feature, as explained in my Sample HTTP Driver posting to download them all. As I mentioned, the actual driver to use as the Driver File for the ControlLinX is pro.lua.
<ul>
<li>http.lua
<li>httpPrivate.lua
<li>url.lua
<li>ProliphixAdapter.lua
<li>pro.lua</li>
</ul>
<h3>Don&#8217;t Skip This Section!</h3>
<p>I hope everyone who downloads this driver reads this first: <strong><font color="#c60000">I&#8217;m releasing this driver before I get it fully working</font></strong>. Yes, that&#8217;s right &#8211; the driver only works a little. Occasionally. My decision to release this was based upon wanting to help people understand the HVAC interface, and to offer more code samples to the DigiLinX development community. This driver should be treated as an alpha build, and<strong><em> should not be installed at a customer location</em></strong>. If you want to play with it without installing a Proliphix &#8216;stat, you can run it against the <a href="http://wiredright.wordpress.com/2007/08/08/a-classic-asp-proliphix-api-emulator/">Proliphix emulator</a> I wrote in classic ASP.
<p>Also, these drivers contain a ton of debugging messages. The sheer volume of messages introduced into your network may have some adverse effect on your Digi system. When I feel that the drivers are stable enough, I will maintain two versions of each of these files &#8211; one that has debugging stubs left in, and another that doesn&#8217;t.
<p>This driver is the result of a lot of work, so I&#8217;d really appreciate any feedback, bug reports, or overall comments from those who use it.</p>
<p><a href="http://wiredright.wordpress.com/projects/">More information on where to obtain the drivers can be found on my projects page</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/84/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/84/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=84&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/04/02/proliphix-driver-for-digilinx/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>New Version of Http Support Modules Released</title>
		<link>http://wiredright.wordpress.com/2008/03/27/new-version-of-http-support-modules-released/</link>
		<comments>http://wiredright.wordpress.com/2008/03/27/new-version-of-http-support-modules-released/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 20:48:30 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Lua]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/03/27/new-version-of-http-support-modules-released/</guid>
		<description><![CDATA[Technorati Tags: NetStreams,DigiLinX,Http,Lua I just posted an updated version of the Http LUA modules for NetStreams support on my projects page. The new version handles a few things better, including an offline server. This is in preparation of the upcoming release of a beta version of my Proliphix driver in the near future.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=83&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="display:inline;margin:0;padding:0;" class="wlWriterSmartContent">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/NetStreams">NetStreams</a>,<a rel="tag" href="http://technorati.com/tags/DigiLinX">DigiLinX</a>,<a rel="tag" href="http://technorati.com/tags/Http">Http</a>,<a rel="tag" href="http://technorati.com/tags/Lua">Lua</a></div>
<p>I just posted an updated version of the Http LUA modules for NetStreams support on my <a href="http://wiredright.wordpress.com/projects/">projects page</a>. The new version handles a few things better, including an offline server.</p>
<p>This is in preparation of the upcoming release of a beta version of my Proliphix driver in the near future.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/83/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/83/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=83&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/03/27/new-version-of-http-support-modules-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>I Are In Control. Or Not.  &#8211; IRLinX Tracing</title>
		<link>http://wiredright.wordpress.com/2008/03/05/i-are-in-control-or-not-irlinx-tracing/</link>
		<comments>http://wiredright.wordpress.com/2008/03/05/i-are-in-control-or-not-irlinx-tracing/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 01:13:11 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[IR]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/03/05/i-are-in-control-or-not-irlinx-tracing/</guid>
		<description><![CDATA[Technorati Tags: DigiLinX,IR,Home Automation Got this tidbit of information from NetStreams today while working with someone on my IRLinX reliability issues. It is possible to switch on a flag that provides additional output tracing information between the IRLinX and the host SpeakerLinX. First, use the socket generic tool to connect to the host SpeakerLinX. Then [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=82&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
<div class="wlWriterSmartContent" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/DigiLinX" rel="tag">DigiLinX</a>,<a href="http://technorati.com/tags/IR" rel="tag">IR</a>,<a href="http://technorati.com/tags/Home%20Automation" rel="tag">Home Automation</a></div>
</p>
<p>Got this tidbit of information from NetStreams today while working with someone on my <a href="http://wiredright.wordpress.com/2008/03/01/i-are-in-control-or-not-volume-control/">IRLinX reliability issues.</a> It is possible to switch on a flag that provides additional output tracing information between the IRLinX and the host SpeakerLinX. </p>
<p>First, use the socket generic tool to connect to the host SpeakerLinX. Then send the following command to the SpeakerLinX:</p>
<blockquote><p>#DEBUG SERCOM A5</p>
</blockquote>
<p>I haven&#8217;t had a chance to test it yet, but I&#8217;ve been told that this flips on some extended tracing. To turn the extended tracing off, send:</p>
<blockquote><p>#DEBUG SERCOM 0</p>
</blockquote>
<p>As a side note, it appears that the problems I&#8217;ve experienced controlling Digi from my T4 are related to noise that&#8217;s produced by the RP-6 when trigger commands are sent from the T4 to the RP-6 using RF instead of IR. NetStreams is working on a fix to filter out the extra noise. I hear they&#8217;re also working on filtering out extra signals from certain plasma displays. I hope these changes make it to a firmware update soon.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/82/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/82/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=82&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/03/05/i-are-in-control-or-not-irlinx-tracing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>I Are In Control. Or Not. &#8211; Volume Control</title>
		<link>http://wiredright.wordpress.com/2008/03/01/i-are-in-control-or-not-volume-control/</link>
		<comments>http://wiredright.wordpress.com/2008/03/01/i-are-in-control-or-not-volume-control/#comments</comments>
		<pubDate>Sat, 01 Mar 2008 09:32:17 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[IR]]></category>
		<category><![CDATA[Macros]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[System Configuration]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/03/01/i-are-in-control-or-not-volume-control/</guid>
		<description><![CDATA[Technorati Tags: NetStreams,RTI,IR,Home Automation,Macros This is the second posting in a series about controlling DigiLinX with IR. It assumes that you are familiar with the system that I described in my original post in this series, as it makes reference to rooms and devices described in that posting. The Challenge Working with a single IRLinX [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=81&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wlWriterSmartContent" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/NetStreams" rel="tag">NetStreams</a>,<a href="http://technorati.com/tags/RTI" rel="tag">RTI</a>,<a href="http://technorati.com/tags/IR" rel="tag">IR</a>,<a href="http://technorati.com/tags/Home%20Automation" rel="tag">Home Automation</a>,<a href="http://technorati.com/tags/Macros" rel="tag">Macros</a></div>
<p>This is the second posting in a series about controlling DigiLinX with IR. It assumes that you are familiar with the system that I described in <a href="http://wiredright.wordpress.com/2008/02/29/i-are-in-control-or-not/" target="_blank">my original post in this series</a>, as it makes reference to rooms and devices described in that posting.</p>
<h3>The Challenge</h3>
<p>Working with a single IRLinX at the head end introduces a challenge with volume control. The published <strong>Mute</strong>, <strong>Volume+</strong> and <strong>Volume-</strong> IR commands for DigiLinX adjust the volume <strong><em>in the current room only</em></strong>. In my case this would adjust the speakers (were there any) connected to the Head End SpeakerLinX in the A/V closet. Instead, what I want to do is adjust the volume in the room that I&#8217;m currently controlling with my T4.</p>
<h3>The Approach</h3>
<p>My T4 design allows me to be aware of which room the user is when I&#8217;m setting it up. This means that each page of the T4 can have specific commands assigned to the volume buttons. My approach will be to build macros that adjust the volume in a specific room, and assign that macro to the volume buttons in the appropriate room.</p>
<p>Using macros gives me one more advantage. The Kitchen and Family room zones are essentially one large room. Macros will allow me to treat them as a single zone, adjusting the volume and mute in both places at the same time.</p>
<h3>The Solution</h3>
<p>The macro builder in Dealer Setup 2.1 doesn&#8217;t provide a way to adjust volume or down for a specific audio source. Don&#8217;t be mislead by the VOL UP and VOL DN commands that appear for a player service &#8211; they refer to the IR commands that you learn into a ControlLinX. There&#8217;s an option for Set Volume Level, but that only allows you to set the volume to a specific level. What we want is the ability to adjust the volume or down by a tick.</p>
<p>So how do we adjust the volume level for a specific player? You have to go to the ASCII reference in the Programming for Third Party Control manual to find the answer. The format to do this is:</p>
<blockquote><p>#@PLAYER NAME#LEVEL_UP VOL<br />#@PLAYER NAME#LEVEL_DN VOL</p>
</blockquote>
<p>You&#8217;ll have to switch to advanced view in Macro Builder to do this. I&#8217;ll also add in Mute Off here in case the user has muted the sound, so they don&#8217;t have to turn the sound back on manually. Imagine if they cranked the sound all the way up, then realized it was muted and switched the sound on.</p>
<h3>The Implementation</h3>
<p>In the end, I created 6 macros:</p>
<p>Volume Up Family Room<br />Volume Down Family Room<br />Volume Up Living Room<br />Volume Down Living Room<br />Mute Toggle Family Room<br />Mute Toggle Living Room</p>
<p>Here&#8217;s my Volume Up Family Macro:</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/volupfammacro.png" target="_blank"><img style="border-width:0;" height="357" alt="vol up fam macro" src="http://wiredright.files.wordpress.com/2008/03/volupfammacro-thumb.png?w=420&#038;h=357" width="420" border="0"></a> </p>
<p>In my Head End SpeakerLinX, I assigned these macros to User Commands:</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/macrosinheadend.png" target="_blank"><img style="border-width:0;" height="356" alt="Macros In Head End" src="http://wiredright.files.wordpress.com/2008/03/macrosinheadend-thumb.png?w=420&#038;h=356" width="420" border="0"></a> </p>
<p>Lastly, I assigned the IR codes for user commands to the volume buttons on the proper pages in the T4 setup. In the following example, the user has selected the Family Room, so I know that I need to assign the Family Room macros on this page:</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/t4assignedmacro.png" target="_blank"><img style="border-width:0;" height="278" alt="T4 Assigned Macro" src="http://wiredright.files.wordpress.com/2008/03/t4assignedmacro-thumb.png?w=400&#038;h=278" width="400" border="0"></a> </p>
<p>Now when the user presses Volume Up on the Family Room screen, the Head End SpeakerLinX <strike>will</strike> should run the <strong>vol up Family Rm</strong> macro.</p>
<h3>Observations</h3>
<p>All in all, this is a fairly straight forward approach. I wish there were Volume Up and Volume Down options in Macro Builder for a specified player, but it&#8217;s no big deal to switch to advanced mode and type them in manually.</p>
<p>One of the problems I&#8217;ve had with this approach (aside from real reliability issues with IRLinX) is that the user has to click the volume up and down buttons once for each adjustment in volume level. A sustained hold on volume doesn&#8217;t appear to call the macro repeatedly. I&#8217;m still looking for a solution to this, but one work around might be to adjust the macro to turn the volume up and down by 3 levels, rather than just one. This should at least make volume adjustments quicker.</p>
<p>Lastly, a common thread across this series of postings is that IR control of Digi is remarkably unreliable. I&#8217;m getting about 60-70% (non-scientific, of course) reliability when issuing commands. What that means is that the user might have to press Mute twice or three times before the volume actually shuts off. What makes matters worse is that macros sometimes take a couple of seconds to actually execute, so you might press mute twice in a row thinking that the command failed, only to have both presses execute, thus canceling each other out. </p>
<p>One way to determine if a macro has executed or not is to use <a href="http://wiredright.wordpress.com/projects/" target="_blank">my DigiLinX Debugger</a>, filter output to only show the device with the IRLinX you&#8217;re using, and watch for messages that say &#8220;HandlePress Button 255, Time 0&#8243; followed by an ASCII command that represents your macro, such as:</p>
<blockquote><p>CKeypadButton:SendCommand:#@SL2200604700116100B7D2_3SL2200604700116100B7D2_6#MACRO {{#@Family Player#MUTE TOGGLE|#@Kitchen Player#MUTE TOGGLE}}</p>
</blockquote>
<p>When the IRLinX fails to interpret the command, you&#8217;ll see the message &#8220;Suspicious stuck bit&#8221; or &#8220;NQueue::Put: queue NQueue full, message droped&#8221;. If you see the later message, try turning down the output level on the RP6 flasher port. A good practice is to always turn the port down to the lowest level.</p>
<p>I&#8217;m interested in hearing your approach to this problem, if it differs from mine.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/81/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/81/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=81&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/03/01/i-are-in-control-or-not-volume-control/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/volupfammacro-thumb.png" medium="image">
			<media:title type="html">vol up fam macro</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/macrosinheadend-thumb.png" medium="image">
			<media:title type="html">Macros In Head End</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/t4assignedmacro-thumb.png" medium="image">
			<media:title type="html">T4 Assigned Macro</media:title>
		</media:content>
	</item>
		<item>
		<title>I Are In Control. Or Not.</title>
		<link>http://wiredright.wordpress.com/2008/02/29/i-are-in-control-or-not/</link>
		<comments>http://wiredright.wordpress.com/2008/02/29/i-are-in-control-or-not/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 22:55:55 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[NetStreams]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/02/29/i-are-in-control-or-not/</guid>
		<description><![CDATA[Technorati Tags: NetStreams,IR,RTI,Home Automation For the end user, the ultimate measurement of satisfaction with their distributed audio/video system is the interaction point. For DigiLinX customers, these touch points are TouchLinX and KeyLinX devices. The TouchLinX device is a decent implementation of usability, with a few shortcomings. Ask any Digi customer, and they&#8217;ll generally have some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=50&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[</p>
<div class="wlWriterSmartContent" style="display:inline;margin:0;padding:0;">Technorati Tags: <a href="http://technorati.com/tags/NetStreams" rel="tag">NetStreams</a>,<a href="http://technorati.com/tags/IR" rel="tag">IR</a>,<a href="http://technorati.com/tags/RTI" rel="tag">RTI</a>,<a href="http://technorati.com/tags/Home%20Automation" rel="tag">Home Automation</a></div>
</p>
<p>For the end user, the ultimate measurement of satisfaction with their distributed audio/video system is the interaction point. For DigiLinX customers, these touch points are TouchLinX and KeyLinX devices. The TouchLinX device is a decent implementation of usability, with a few shortcomings. Ask any Digi customer, and they&#8217;ll generally have some sort of complaint &#8211; from device size and navigation flow, to skin choices and response times.</p>
<p>Those shortcomings are generally minor or a matter of taste, but one of the largest obstacles is that Digi is a hardwired system, meaning control is embedded in a wall. This is a real problem when you&#8217;re using it in conjunction with Panorama to control a video source. How realistic is it to ask a customer to control what they see on TV while standing next to a wall? If your customer wants to do something as simple as change the channel from the couch in the Living Room, you will be faced with integrating a remote control into the system.</p>
<p>Getting IR to <strike>work</strike> <strike>behave</strike> cooperate with DigiLinX has been one of the most frustrating, least rewarding tasks I have experienced since I began working with NetStreams products. I plan to do a series of postings on controlling DigiLinX with IR, based upon the experiences I&#8217;ve had over the past few months. </p>
<p>Up front I&#8217;ll tell you that, with the firmware and hardware available today, IR control of DigiLinX sucks. I mean it sucks big time. One of the absolute requirements of IR for the end user is that when they press a button on a remote control, the action they initiated will execute. If once in a while my customer hits the mute button on the remote and the sound is still on, they&#8217;re going to be perplexed. If the button fails to work 30-40% of the time, they&#8217;re going to be pissed. And they should be.</p>
<p>My experience thus far is that the shortcomings of IR control of DigiLinX is with the IRLinX receiver. Suggestions from NetStreams support focus on isolating the IRLinX device and minimizing interference or signal reflection. The current &#8220;best practice&#8221; for an IRLinX location is to stick it in a small cardboard box that measures 6&#8243; x 2&#8243; x 1&#8243;, and to tape the receiver to one end and the flasher on the other. </p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/irlinx-in-box.png" target="_blank"><img style="border-width:0;" height="304" alt="IRLinX in Box" src="http://wiredright.files.wordpress.com/2008/03/irlinx-in-box-thumb.png?w=404&#038;h=304" width="404" border="0"></a> </p>
<p>This picture speaks for itself. It doesn&#8217;t exactly look like something you want at a crucial pivot point for your $50,000 install, though, does it? To be honest, I wouldn&#8217;t care if it actually solved the problem. Which it doesn&#8217;t.</p>
<h3>The Environment</h3>
<p>My series of postings will revolve around an IR install I&#8217;m (still) working on for a client of mine. I&#8217;ll focus on controlling two logical areas &#8211; the Family Area and the Living Room. The Family Area is actually one large area made up of two audio zones &#8211; Family Room and Kitchen. I&#8217;ll take this into account as I build my control, keeping the two audio zones synched. </p>
<p>Each logical room has a plasma TV in it, and each TV has a <a href="http://www.vutec.com/artscreen_systems/" target="_blank">Vutec Art Screen</a> in front of it. For purposes of this posting, we can assume that there are two Panorama sources, both of which are DirecTV satellite boxes. One is a DVR and the other is simple an HD box. Note that they both understand the same set of IR commands, so their flashers will have to be isolated from each other.</p>
<p>This is a system I inherited from another installer, so I&#8217;m somewhat stuck with the design they put in place before the walls went up. The home is block construction, and has nicer finishes such as tongue and groove wood ceilings and plaster walls. It&#8217;s not the kind of home that you want to start cutting in to. On top of that, there are a few isolated attic areas, but they are separated from each other. The attic space above the A/V room is small, and doesn&#8217;t offer access to the rest of the house. Because of all these factors, I&#8217;ve decided to install a single SpeakerLinX in the A/V closet (which I&#8217;ll name Head End), and attach an IRLinX to it. An RTI T4 will send RF commands to an RP6 in the closet, which will flash the IRLinX.</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/abramsdesign.jpg" target="_blank"><img style="border-width:0;" height="313" alt="Abrams Design" src="http://wiredright.files.wordpress.com/2008/03/abramsdesign-thumb.jpg?w=420&#038;h=313" width="420" border="0"></a> </p>
<h3>IR Flow</h3>
<p>The remote control will add to the functionality provided by the TouchLinX, but it won&#8217;t replace them. The user wants to be able to use either one to control the system. This means that the IR receiver on each satellite box will have two flashers on it &#8211; one from the RP6 for commands originating from the T4, and the other from the MLA-101 that is driven by the DigiLinX interface.</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/abramsirflow.jpg" target="_blank"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="533" alt="Abrams IR Flow" src="http://wiredright.files.wordpress.com/2008/03/abramsirflow-thumb.jpg?w=420&#038;h=533" width="420" border="0"></a> </p>
<p>Because of the reliability issues of DigiLinX IR, I&#8217;ll send as few commands as possible to the IRLinX, and as many as possible directly to the satellite boxes. This means that I won&#8217;t be using the Digi IR pass-through feature. I consider this a huge win, having used IR pass-through in other jobs. With IR pass through, first you have to hope that the IRLinX will recognize the IR command, and then you have to pray that the command will actually reach the source. It&#8217;s a numbers game, and if you play it, you&#8217;re a loser.</p>
<p>So for this system, I&#8217;ll only have Digi do the following things:</p>
<ul>
<li>Control volume in each logical zone, including volume up and down, and mute. For the family area, I want to direct commands to both audio zones at the same time.
<li>Switch the display sources between the DVR and HD satellite boxes for a given room.
<li>Send the IR commands I&#8217;ve stored in Panorama to turn the TV on and off, and to raise and lower the Vutec screen.
<li>As an added bonus, I&#8217;ll also include a button that will allow the user to &#8220;Watch TV everywhere&#8221;. This will turn the audio on in every room set to the given satellite source, and will turn on every display.</li>
</ul>
<p>Everything else, including channel changing, guide, favorites, etc will use the RP6 to flash DirecTV commands straight to the satellite box.</p>
<h3>The T4 Interface</h3>
<p>To make my intentions clearer, I wanted to show how the user will control the system. The home page allows the user to select one of the rooms. If they select Home Audio, I use the RTI browser interface to load the DigiLinX flash interface from the Head End device.</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/t4home.png" target="_blank"><img style="border-width:0;" height="303" alt="T4 home" src="http://wiredright.files.wordpress.com/2008/03/t4home-thumb.png?w=400&#038;h=303" width="400" border="0"></a> </p>
<p>Once they do this, I ask them to select one of the two Panorama sources. When they click one, I switch the selected room (Family Room, in this example), turn on the audio and TV, and raise the screen. Note that on this screen, I can present them with TV on and off for the Family Room display, since they&#8217;ve already made that selection.</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/t4selectfamily.png" target="_blank"><img style="border-width:0;" height="305" alt="T4 Select family" src="http://wiredright.files.wordpress.com/2008/03/t4selectfamily-thumb.png?w=400&#038;h=305" width="400" border="0"></a> </p>
<p>Now the TV should be on, and the user has control of the TV. Note that at this point, the only Digi IR commands that I&#8217;ll send are volume and Mute. Everything else goes directly to the DVR satellite box.</p>
<p><a href="http://wiredright.files.wordpress.com/2008/03/t4dvrcontrol.png" target="_blank"><img style="border-width:0;" height="275" alt="T4 DVR control" src="http://wiredright.files.wordpress.com/2008/03/t4dvrcontrol-thumb.png?w=400&#038;h=275" width="400" border="0"></a> </p>
<h3>Alternatives</h3>
<p>Another option I had when offering control to my client was to simply provide them with a tablet PC or UMPC, and have them use the flash interface off a Digi device. That would be ok, but it requires that my clients always be aware of what room they&#8217;re in, what source they&#8217;re on, and where the TV controls are located. When a device is installed in a wall and the default room is the current room, there is much less for the end user to think about. Not so when that control is mobile.</p>
<p>Additionally, the DVR interface for DigiLinX doesn&#8217;t have channel up and down. I&#8217;m not sure how that was left out of an interface that is meant to control a TV source, but that&#8217;s the way it is. The lack of a channel favorites screen is also noticeable, as is the absence of the required number of DVR keys that DirecTV offers, such as List and Active.</p>
<p>Now that I&#8217;ve explained the environment that I&#8217;m working in, look for future postings on how I made it all work. </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=50&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/02/29/i-are-in-control-or-not/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/irlinx-in-box-thumb.png" medium="image">
			<media:title type="html">IRLinX in Box</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/abramsdesign-thumb.jpg" medium="image">
			<media:title type="html">Abrams Design</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/abramsirflow-thumb.jpg" medium="image">
			<media:title type="html">Abrams IR Flow</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/t4home-thumb.png" medium="image">
			<media:title type="html">T4 home</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/t4selectfamily-thumb.png" medium="image">
			<media:title type="html">T4 Select family</media:title>
		</media:content>

		<media:content url="http://wiredright.files.wordpress.com/2008/03/t4dvrcontrol-thumb.png" medium="image">
			<media:title type="html">T4 DVR control</media:title>
		</media:content>
	</item>
		<item>
		<title>DigiLinX Debugger 0.85 Released, Source Code Updated</title>
		<link>http://wiredright.wordpress.com/2008/02/18/digilinx-debugger-085-released-source-code-updated/</link>
		<comments>http://wiredright.wordpress.com/2008/02/18/digilinx-debugger-085-released-source-code-updated/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 22:22:23 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/02/18/digilinx-debugger-085-released-source-code-updated/</guid>
		<description><![CDATA[I just posted version 0.85 BETA of my DigiLinX debugger. The new release fixes some threading and performance issues, and adds the ability to bind to a specific network interface when debugging on a computer with multiple network cards. I also updated the source code on the CodePlex site with the freshly refactored bits. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=37&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just <a href="http://wiredright.wordpress.com/projects/" target="_blank">posted version 0.85 BETA of my DigiLinX debugger</a>. The new release fixes some threading and performance issues, and adds the ability to bind to a specific network interface when debugging on a computer with multiple network cards. </p>
<p>I also <a href="http://www.codeplex.com/DigiDebugger" target="_blank">updated the source code on the CodePlex site with the freshly refactored bits</a>. If you&#8217;re looking at the source code, you should really get the latest version from the CodePlex repository. I&#8217;m afraid that my initial source code load contained an &#8220;in-between build&#8221; where I had started adding the interface binding code, but had stopped working on it before the feature was fully implemented. That&#8217;s egg on my face &#8211; sorry about that.</p>
<p>Also, I just wanted to say that I&#8217;m finally getting some feedback from the community on my debugger. Thank you for that. Please keep it coming &#8211; I&#8217;d love to hear what you want from this tool.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=37&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/02/18/digilinx-debugger-085-released-source-code-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>HOW-TO: Reset / Reflash a DigiLinX Device</title>
		<link>http://wiredright.wordpress.com/2008/02/08/how-to-reset-reflash-a-digilinx-device/</link>
		<comments>http://wiredright.wordpress.com/2008/02/08/how-to-reset-reflash-a-digilinx-device/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 22:18:04 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Dealer Setup]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[System Configuration]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/02/08/how-to-reset-reflash-a-digilinx-device/</guid>
		<description><![CDATA[We have a client that we inherited from another installer here in Scottsdale. They have a good sized residential system &#8211; more than 30 devices in a 5000+ square foot house. The wire that was originally pulled for the NetStreams system is crap, and some runs were too short and is sliced in places. Yes, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=36&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We have a client that we inherited from another installer here in Scottsdale. They have a good sized residential system &#8211; more than 30 devices in a 5000+ square foot house. The wire that was originally pulled for the NetStreams system is crap, and some runs were too short and is sliced in places. Yes, they spliced Cat5 wire. Bastards. Re-pulling new runs is out of the question because of the design and finishes used in the home. As a result, every time we go on site to do a minor upgrade or reconfiguration, one of the devices or one of the sources misbehaves and has to be whipped back into line.</p>
<p>Today I was on site installing an IRLinX module and a host SL220. It should have been a simple install &#8211; plug in the SL220 and IRLinX, add them to the project, and send config. No biggie, I thought. 10 minutes tops. </p>
<p>I should have been so lucky. </p>
<p>Instead, a TouchLinX decided to revert to the 10.15.X.X network (the rest of the project uses 192.168.x.x), and the audio from a DirecTV went missing. Not only that, but the SL220 didn&#8217;t want to take the firmware when it was configured to host an IRLinX. This kind of thing happens every time I visit this particular client. They must think I&#8217;m an idiot, because I always end up staying much, much longer than I expect, and often times I leave without having resolved all the issues. I usually leave swearing of DigiLinX for all eternity. A pint of Guinness later that night corrects that reaction.</p>
<p>When this sort of thing happens, I take one of two approaches. Sometimes I think it might be a configuration issue. When this is the case, I usually remove the offending device from the system, and re-add it to the project. Yeah, this is a pain because it usually requires me to reconfigure the static menus, but it&#8217;s usually faster than trying to tinker with little tweaks in hopes that a device will come back to life. </p>
<p>The other option is to pave and reconfigure an individual device. I usually take this approach when a device isn&#8217;t taking files, has fallen off the network, or is behaving oddly. The thing is, I can never remember the exact steps that are required to rebuild a device, and the steps for a TouchLinX are different than other devices. Do it wrong, and the file updates don&#8217;t take. That can be very time consuming in a large system, given the speed of Dealer Setup.</p>
<p>When I want to pave a device, I usually have to call tech support and have them walk me though the process. That&#8217;s a pain because a) I hate calling support in front of a client and b) I get terrible cell phone reception at this particular client&#8217;s home.</p>
<p>Today Rodney from support solved this conundrum for me. He sent me the attached document today when I called for the umpteenth time to ask for help with resetting a Digi device. I know it&#8217;ll save me a lot of time in the future, and I hope it&#8217;ll do the same for other dealers.</p>
<p>Thanks, Rodney!</p>
<p><a href="http://www.wired-right.com/wiredright/Netstreams/media/StopLoad_and_TouchLinX_Re-Flash.pdf" target="_blank">Download StopLoad_and_TouchLinX_Re-Flash.pdf</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=36&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/02/08/how-to-reset-reflash-a-digilinx-device/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
		<item>
		<title>Digi Debugger Source Code Released</title>
		<link>http://wiredright.wordpress.com/2008/02/06/digi-debugger-source-code-released/</link>
		<comments>http://wiredright.wordpress.com/2008/02/06/digi-debugger-source-code-released/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 17:14:53 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[Debugger]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Digilinx]]></category>
		<category><![CDATA[NetStreams]]></category>
		<category><![CDATA[Source Code]]></category>

		<guid isPermaLink="false">http://wiredright.wordpress.com/2008/02/06/digi-debugger-source-code-released/</guid>
		<description><![CDATA[I just published the source code to my DigiLinX Debugger on CodePlex. Feel free to browse through the source, or download a copy for yourself. This is my first time hosting an open source project, so bear with me if you have issues building or browsing the content. The project files are in VS.Net 2008 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=35&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.codeplex.com/DigiDebugger">I just published the source code to my DigiLinX Debugger</a> on <a target="_blank" href="http://www.codeplex.com/">CodePlex</a>. Feel free to <a target="_blank" href="http://www.codeplex.com/DigiDebugger/SourceControl/ListDownloadableCommits.aspx">browse through the source</a>, or <a target="_blank" href="http://www.codeplex.com/CodePlexClient">download a copy for yourself</a>. This is my first time hosting an open source project, so bear with me if you have issues building or browsing the content.</p>
<p>The project files are in VS.Net 2008 format, but you should be able to run it in VS.Net 2005 as well.</p>
<p>Enjoy!</p>
<p><a href="http://www.codeplex.com/DigiDebugger" title="http://www.codeplex.com/DigiDebugger">http://www.codeplex.com/DigiDebugger</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wiredright.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wiredright.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wiredright.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wiredright.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wiredright.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wiredright.wordpress.com&amp;blog=1030424&amp;post=35&amp;subd=wiredright&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wiredright.wordpress.com/2008/02/06/digi-debugger-source-code-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cd170981e7c07c8495161ca542a0491?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Josh</media:title>
		</media:content>
	</item>
	</channel>
</rss>
