<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Gridspy Development</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/" />
    <link rel="self" type="application/atom+xml" href="http://blog.gridspy.co.nz/atom.xml" />
    <id>tag:blog.gridspy.co.nz,2010-06-17://1</id>
    <updated>2010-07-18T08:54:51Z</updated>
    <subtitle>All about the development of our power monitoring system for your home or office - Gridspy</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.02</generator>

<entry>
    <title>Out of &apos;the Garage&apos; and into an Office</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2010/07/out-of-the-garage-and-into-an-office.html" />
    <id>tag:blog.gridspy.co.nz,2010://1.29</id>

    <published>2010-07-06T00:38:03Z</published>
    <updated>2010-07-18T08:54:51Z</updated>

    <summary>I&#8217;ve moved office again. When I first left full-time employment for a company I had just begun my exciting new life as a self-employed programmer working in the comfort of my own home. The commute was excellent, the environment comfortable...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>I&#8217;ve moved office again. When <a href="http://blog.gridspy.co.nz/2010/06/breaking-away-from-the-man.html">I first left full-time employment for a company</a> I had just begun my exciting new life as a self-employed programmer working in the comfort of my own home. The commute was excellent, the environment comfortable and the space affordable. For the months up until that move I had been a <a href="http://blog.gridspy.co.nz/2010/02/part-time-entrepreneur.html">part time entrepreneur</a> working 60 to 70 hour weeks (plus father time) and it had taken its toll. I was mentally exhausted, unavailable for the kids and my wife, and stressed out. </p>

<p>When &#8216;working from home&#8217; I bounced back to normal 40 hour weeks, with time spent either contracting to pay the bills or working on Gridspy. The change in environment and focus improved my mental state and allowed  a lot of progress. But then the honeymoon ended.  I have discovered that home is an environment rife with distractions, unfortunately all from people I love. We settled into a routine of the toddlers and their mum going out each morning and then returning at lunchtime to spend the afternoon at home. Towards about 3pm the household becomes progressively louder as the toddlers become more tired and amp up their behavior. When this happened, it became extremely hard to resist lending a helping hand.</p>

<p><a href="http://blog.gridspy.co.nz/Outside_doors.jpg"><img alt="Door of GridSpy's Office Building" src="http://blog.gridspy.co.nz/Outside_doors_banner.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>
]]>
        <![CDATA[<p>The morning should have been a peaceful working haven, and to some degree it was. However, as discussed by Paul Graham in <a href="http://www.paulgraham.com/makersschedule.html">the makers schedule</a> it is hard to program towards a fixed point in time - and in my case the toddlers return was not completely certain. When my little 3 year old walks through the door the last thing I want to do is to ice him out, I want him to know how special he is to me. As my office is in the major shared living space (that&#8217;s right - no doors or walls to shut out distractions) the kids can always see me. In general they are good at understanding that I am working in &#8216;the office,&#8217; and leave me alone. But boy can they be loud. The afternoon would be too loud to call people on the phone, and having my co-founder over to discuss Gridspy was both a lot of traveling and was difficult since the kids wanted to get involved.</p>

<p>To help with the afternoon noise I purchased  noise canceling headphones, which substantially reduced the kids racket. They didn&#8217;t cancel out the direct requests when the kids climbed into my makeshift office in the middle of the lounge. When my stress levels would rise my wife reminded me that I was still getting a lot done despite the short working days. However, I ran into another roadblock. When faced with a particularly big new programming challenge I found it hard to get started on my working day. I&#8217;d avoid the work at hand with simple home chores and comfortable distractions such as making a nice espresso coffee. On hard days I would find it difficult to separate work and home and would mooch around not getting much of anything done. Not being available for the family (because &#8216;I&#8217;m working&#8217;) but not applying myself either. </p>

<p>The challenge that finally defeated me was implementing the <a href="http://blog.gridspy.co.nz/2010/07/firmware-auto-update-overview.html">Automatic Reprogramming of our devices in the field</a> - a sophisticated and complex system required before we can sell widely. As big tasks can do, it simply felt too big. I found myself unable to approach the problem from a manageable angle. I needed to talk it through with my co-founder Stephen in a regular fashion whilst completing the task. It was  this, along with hungering after an office with fewer distractions, that prompted a move.</p>

<p><a href="http://blog.gridspy.co.nz/View.jpg"><img alt="View from GridSpy's office" src="http://blog.gridspy.co.nz/View_banner.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Realizing my roadblock and envisioning all the benefits of working in our own office together I spent an hour on the phone talking it through with Stephen. We decided that a quiet shared working space would afford us many benefits, to name a few:</p>

<ul>
<li>Communication would be simple and natural, meaning we would stay in sync</li>
<li>More motivation to continue working, since the constant reinforcement of demonstrating progress to our partners would keep us excited about our current tasks.</li>
<li>No distractions from the work at hand, an entire day of concentrated working for us to split up as we choose.</li>
<li>Make Gridspy feel more like a real entity</li>
<li>Simpler to maintain relationships with clients, since we would have a quiet talking environment and could easily collaborate on each customer&#8217;s unique situation.</li>
</ul>

<p><em>And hopefully:</em>
 - An address we would be willing to publish, expecting guests to just drop in
 - Some conveniences of an office
 - Better work / life separation</p>

<p>It looked like a serviced office would suit our needs well. Since there are only two of us all we need was space for a couple of desks and access to facilities such as phones, Internet, a kitchen and bathrooms. We considered incubators but we didn&#8217;t like the idea of the distractions and financial issues that might arise, plus we want to try it &#8216;on our own&#8217; for a little while before we pay the steep equity cost of such arrangements. We also considered renting an apartment or renting a spare room but that would lead to distractions at certain times of day and wouldn&#8217;t give us a location that we would want other people to visit.</p>

<p>Once we had decided that we wanted a serviced office, I  had to arrange one that instant. I&#8217;m one of those people who constantly toggles from &#8216;sure, whatever&#8217; to &#8216;hell yes, right NOW,&#8217; in a short space of time.  Stephen and I chatted about offices on Monday, visited my shortlist on Tuesday, signed contracts on Wednesday and moved in on Thursday for our first working afternoon.</p>

<p><a href="http://blog.gridspy.co.nz/2010/07/07/outside.jpg"><img alt="GridSpy's office building" src="http://blog.gridspy.co.nz/2010/07/07/outside_banner.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>I feel we lucked out with <a href="http://www.cpso.co.nz/">our new serviced office</a>. They had a high vacancy rate due to a successful client recently &#8220;graduating&#8221; and vacating several offices, so there was a generous discount. They were flexible, courteous and professional and had a lovely space for us with plenty of natural light. They even provided us with enough furniture to make the move easy. Our other shareholders (that&#8217;d be the wives) have both voiced their approval of our office choice.</p>

<p>It has only been a fortnight but our office already feels like a lovely home away from home. We have settled into a nice routine of planning in the morning, coding until 3pm and then an afternoon of troubleshooting or client calls.  We love all the little office comforts, from a great shared receptionist to instant boiling hot water on tap. Working together has been even better than we hoped, with several long-term unresolved issues handled in the first couple of days. It is now much easier to pass software and hardware to each other and to draw on each other&#8217;s strengths.</p>

<p>One unfortunate side effect of moving out of home has been the lack of a spare computer in the evenings and weekends. Since I primarily use desktop computers, bringing the computer home at night would be a huge pain. The absence of my computer at home has led to the an unexpected benefit of no guilt about taking the night off. I have had the most relaxing evenings over the past week as I arrive home happy after a good day knowing that I cannot, and considering the full workday I&#8217;ve had, should not be working after work. I guess that work-life separation really is important.</p>

<p>Stephen and I have enjoyed the best working week that we have had since we started working on Gridspy together. Concentration has been easy, meetings natural and productive, and goals both set and met. I&#8217;m proud to say that I have made solid progress on the auto-updating. I know my hourly worth based on my contracting rate and it only takes half an hour or so saved each day for the office to pay for itself handsomely. I&#8217;m confident that the mental health benefits and the way it has allowed me to work solidly has been worth the cost. My toddlers vehemently disagree, with several calls containing pleas for &#8220;daddy come home now&#8221; . It breaks my heart but it must be done, honestly it is bliss to be able to hang up the phone and work in silence.</p>

<p>I still have to grapple with some of the issues I raised when I mentioned my move to Full-Time Entrepreneur - especially my illogical expectation that we can move a mountain in just one day. Gridspy has a frustrating amount of plumbing required to create a complete solution and it feels like it has already taken forever. In only a month now we will be ready to launch our shop and sell Nexus internationally, I&#8217;ve got the merchant account and paperwork to prove it. All we need to do now is to make the Nexus hardware rock solid and then we can open the store. Profitability and the associated independence feels so close now that I can taste it. </p>

<p><a href="http://blog.gridspy.co.nz/Reception.jpg"><img alt="Our new reception, all included." src="http://blog.gridspy.co.nz/Reception_bannerlg.jpg" width="700" height="200" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>
]]>
    </content>
</entry>

<entry>
    <title>Firmware Auto-Updates for GridSpy</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2010/07/firmware-auto-update-overview.html" />
    <id>tag:blog.gridspy.co.nz,2010://1.28</id>

    <published>2010-07-01T03:30:05Z</published>
    <updated>2010-07-18T08:51:37Z</updated>

    <summary>I&#8217;d like to dive into some technical detail today about those automatic updates that everyone takes for granted. If you are a web developer, I wouldn&#8217;t blame you for thinking that deploying updated software is (mostly) painless and simple. Once...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="nexus" label="Nexus" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tech" label="Tech" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>I&#8217;d like to dive into some technical detail today about those automatic updates that everyone takes for granted.</p>

<p>If you are a web developer, I wouldn&#8217;t blame you for thinking that deploying updated software is (mostly) painless and simple. Once the latest version of our code is live on the server, all our customers are essentially updated. Because a web developer can control the set-up of the web server it is very easy to deploy quickly and predictably. </p>

<p>Even the desktop folks have it pretty easy. There are lots of automated ways to check for new versions of code, and just as many ways to install the latest version onto the client&#8217;s PC. If things go wrong, as things often do due to both human and hardware issues, there is a human involved who can interact with the computer to fix things. </p>
]]>
        <![CDATA[<p>Then there are hardware devices, each with their own custom communications system. Although hardware vendors completely control the design of the hardware, there are very few standard tools and these devices range from hard to access to impossible.</p>

<p><a href="/2010/07/01/full_board.jpg">
<img alt="Gridspy Microcontroller and surrounding electronics" src="http://blog.gridspy.co.nz/banner_board.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Since GridSpy is a hardware solution combined with a web service, we live at both extremes. On one side we have a web server that is easy for us to update, so keeping all our clients on the bleeding edge is a snap. On the other side we have our custom hardware devices that are to be installed in homes and businesses around the world. Most of these devices will be rarely accessed by humans, they are out of sight and out of mind in a locked cabinet somewhere. </p>

<p><em>Now that would be just fine</em> if we didn&#8217;t want to continually add new features to our products. For example, we&#8217;d like to add info on the GridSpy dashboard showing glitches such as surges and transients in your power supply. To support this new feature we&#8217;d need new code in our Nexus to detect, log and upload these transients. It is a rare feature that does not require any changes at all to the firmware, and a lot of our competitive advantage comes from having a completely flexible smart device installed in our customer&#8217;s office. Without a remote update we would either have to ship new Nexuses to all our clients whenever we performed a firmware update leave or our early adopters behind as our solution evolves. A remote update gives us the agility we need.</p>

<p>There are also selfish reasons to keep all our deployed devices up to date. Each of our devices calls home and interacts with our server code 24/7. Our ongoing communication channel allows us to instantly &#8220;Push&#8221; instructions to the Nexus. This lets us deploy a wide range of interactive features from instantly switching loads, opening windows to setting the temperature in your building, all from our web interface. If we didn&#8217;t upgrade all our devices then the server would need to work with every version of our code that we ever release. So deploying firmware updates in a timely manner saves us effort as we only need to worry about support for the most recent few versions.</p>

<p>The microcontroller at the heart of our devices stores its instructions in 64kb of flash. <em>This web page alone takes up more than double the size of our compiled code</em>. The instructions are like any other file on your computer, just a lump of data that has to be copied into the microcontroller exactly right. There is no operating system on there so every instruction on that chip is our responsibility. On the lab bench, or in the factory, we use a debugging interface called JTAG to load the code into the chip. But we can&#8217;t use JTAG in the field since we&#8217;d need physical access to every Nexus any time we wanted to deploy an update.</p>

<p>Fortunately for us there is a mechanism inside the microcontroller where we can ask it to reprogram one of the flash bytes and store a new value. We have to erase the surrounding &#8216;page&#8217; of 512 bytes before we write new data. Since the microcontroller reads instructions directly out of flash, we must ensure that we do not erase the code that is currently running. With this facility it is possible to install a new code version into the chip, but first we must handle all the detail of getting the code into the chip and creating the reprogramming process.</p>

<p><em>So how do we load new code into a microcontroller?</em> The trick to a self-reprogramming microcontroller  is to separate the reprogramming instructions from the actual application, kind of like storing two files side by side. These instructions become two separate programs that share the flash - the main program and a bootloader that faithfully takes care of it. Most of the time the bootloader stays out of the way. Occasionally the main code asks the bootloader to load new code. </p>

<p><a href="/2010/07/01/flash_card.jpg">
<img alt="Heaps of flash storage for your data" src="http://blog.gridspy.co.nz//2010/07/01/flash_card_banner.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>At GridSpy we ensure that there is plenty of memory space external to the microcontroller to store lots of your power samples and other data. Before the bootloader is invoked we transfer fresh code from the server to the Nexus and save into our memory space ready to load. The bootloader finds this code and checks to ensure that it is valid. It then writes a note to itself at the end of the memory used for code so that it remembers the version of both the new and old programs. It then begins copying the code itself. When finished the bootloader crosses its digital fingers and starts the new code.</p>

<p>It is crucial that no matter what happens the Nexus successfully wakes up and reconnects to our servers. The worst possible situation would be to permanently &#8220;brick&#8221; a Nexus in the field, especially if that Nexus is hard for our customers to access. </p>

<p><em>We have several mechanisms to prevent bricking a Nexus</em></p>

<p>When the Nexus turns on, the bootloader always gets a chance to check the main program before it starts. It quickly checks its own notes to see if there is a complete copy of code loaded or it was half way through a reprogram. If the main program is incomplete the bootloader will continue copying the flash code into memory. Once the bootloader is convinced that the code on the micro matches the image sent to the Nexus by our servers it will start running the new code. </p>

<p><em>But what if the new code is bad?</em> There is always the possibility that we accidentally send out code for updating that is not ready for prime time. It is a human mistake that can happen all too easily in the heat of the moment. Should we get this wrong, hundreds of Nexuses across the world could upgrade to this new version and then fail to call back to the server. The reasons could be subtle and this may only occur on certain devices, say those manufactured at a certain time or with features that were disabled in the factory. We would like our Auto-Update system to detect &#8216;bad code&#8217; and automatically downgrade to the previous working version. </p>

<p>But how do we know that the code is good?
To us, <em>&#8216;Good code&#8217; is code that can call back to our server, code which we can upgrade later over the wire</em></p>

<p>So, after a reprogram the Nexus must call into the server and once it is happy that the nexus is functioning correctly the server gives its seal of approval. We can add as many checks on the server side as we like before we &#8216;okay&#8217; the upgrade. If the Nexus reboots several times without getting a seal of approval, the bootloader then downgrades the firmware to the latest working version. Combined with a &#8220;watchdog&#8221; which reboots the Nexus when it crashes, we can be fairly sure that a Nexus with bad firmware will spring back to life some time later.</p>

<p>Finally, the rollout of new firmware is <em>carefully monitored server-side</em>. The first nexuses to be upgraded are those that are physically easy for us to visit - those at our beta tester&#8217;s homes, our own homes and at clients here in Auckland, New Zealand. From there we ensure that we roll out the new version gradually. If too many Nexuses fail to upgrade correctly we will halt the rollout until we have checked the situation ourselves. This ensures that it will be hard to brick a great number of Nexuses in one go.</p>

<p>As I publish this blog entry I am hard at work on our Firmware Auto-Updating system, which as you now know is a subtle and complex beast. It remains one of the few hurdles that we must cross before we can offer our devices for sale across the world or in large volume.</p>

<p>If you would like to learn more you could read <a href="http://blog.gridspy.co.nz/2009/10/realtime-data-from-sensors-to-browsers.html">how GridSpy has up to the second data</a>, <a href="http://blog.gridspy.co.nz/2010/02/a-pc-in-every-power-cabinet-aaahhhhno.html">why we manufacture custom sensors</a> or just check out the <a href="http://gridspy.co.nz">GridSpy homepage</a>.</p>

<p>Also, did you notice that the images above are clickable?</p>

<p><a href="/2010/07/01/connectors.jpg">
<img alt="Nexus in a photo - 3 sensors plus ethernet." src="http://blog.gridspy.co.nz//2010/07/01/connectors_bannerlg.jpg" width="700" height="250" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>
]]>
    </content>
</entry>

<entry>
    <title>Breaking Away From &apos;The Man&apos;</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2010/06/breaking-away-from-the-man.html" />
    <id>tag:blog.gridspy.co.nz,2010://1.27</id>

    <published>2010-06-01T03:13:49Z</published>
    <updated>2010-07-18T08:50:42Z</updated>

    <summary>Life got very interesting one and a half months ago. I had a meeting with my employer where he sat me down and asked me if GridSpy was ready to survive without my salary. Essentially he asked me if I...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>Life got very interesting one and a half months ago. I had a meeting with my employer where he sat me down and asked me if GridSpy was ready to survive without my salary.  Essentially he asked me if I was ready to leave and take GridSpy full-time. Being an VC funded entrepreneur himself he knew how hard it is to  make that initial leap into full-time start-up and gave me a gentle nudge &#8220;out of the nest.&#8221;</p>

<p>After that meeting my mind was racing. My wife and I agreed that taking GridSpy full-time was absolutely exciting but equally frightening. We&#8217;ve been tightening our belts for some time to get ready for bootstrapping but even we don&#8217;t know how soon GridSpy will transition from a &#8216;sure thing&#8217; to a trading business. I assured her that I could land on my feet with a contracting job should the money run out. </p>
]]>
        <![CDATA[<p>So with much trepidation I decided that it indeed was the time to leave. </p>

<p><img alt="office_narrow.jpg" src="http://blog.gridspy.co.nz/2010/06/17/office_narrow.jpg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>With a month&#8217;s notice given, I served out the notice period with tense anticipation, mostly worrying about the money. It turned out that the money problem soon solved itself. A friend of the family runs a stealth start-up which now had need of a contract programmer, and it was suggested to him that I would fill the role.. </p>

<p>So the plan  was to serve out my notice and start the contract after a well deserved full-time month on GridSpy. It soon came to be that my new client had an urgent need for my services - arguably more urgent than our own start-up for at least a couple of weeks. As a founder, it was a real heart wrenching experience. With complete control over my time I have decided that cash in the hand now to build initial stock is worth delaying our product just that little bit longer. I&#8217;ve also had a nice little splurge, for instance getting the required noise cancelling headphones.</p>

<p>It has been four weeks now since my last day as a salaried employee  and I&#8217;ve had a great time. For the first time in ages overtime has been optional, working conditions are in my control, and opportunities are endless. However, the opportunities being endless thing has taken me away a little, well a lot, from GridSpy. These last four weeks have been great for my client but not so great for GridSpy. I have really enjoyed the programming challenges of the contract work, but I really haven&#8217;t spent any more time on GridSpy than I would have before. I seem to have exchanged one full-time job for another. Again I appear to be working for &#8216;the man.&#8217;</p>

<p>However, my working conditions now are much better. I&#8217;m working from home on my favourite sort of problems with my four screens. After a 5 step commute from the kitchen table to my office in the morning I work solid until lunchtime. The afternoon starts late after lunch and a play with the kids and is occasionally interrupted by one of my gorgeous children demanding a cuddle. Dinner is at 5pm and since that tends to work out as a 6.5 hour day I often work an odd evening too. Even though it seems like a short day I have found my output is huge. I am really able to totally concentrate and complete tasks in a way I enjoy. I&#8217;m much happier and I&#8217;m spending much more time with my wife and kids - that&#8217;s great!</p>

<p>Back when I was a <a href="http://blog.gridspy.co.nz/2010/02/part-time-entrepreneur.html">Part time entrepreneur</a> I constantly dreamed of the day that I went full-time. How much easier it would be when I could work on GridSpy and not have to stop. When looking at schedules of when the next feature would be ready I could wistfully say &#8220;well, it will take a long time but only because I can&#8217;t work on it full-time.&#8221; Although it was true, it was also a very convenient excuse. </p>

<p><a href="http://blog.gridspy.co.nz/2010/06/17/nex_stock.JPG"><img alt="Narrow Nexus Stock Photo" src="http://blog.gridspy.co.nz/2010/06/17/nex_stock_narrow.JPG" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Now I have exactly the opposite problem. With complete control of my time comes an equal amount of guilt when progress on GridSpy doesn&#8217;t suddenly take off. Since late last year I have been eternally thinking that we are only two months away from a product that is worth selling, and today I would make the same claim. What we do have today is a fantastic product and a handful of very happy clients. Today our Minimum Viable Product is pretty refined. It is focusing all my energies into those two months, or what it takes to get GridSpy out there, I am now struggling with. This has been a surprise for me.</p>

<p>Each week I can choose how much to work - somewhere on the slider from &#8220;Instant Cash Today&#8221; to &#8220;Successful business tomorrow.&#8221; It doesn&#8217;t help that I love my contracting job. I had better set the slider back to &#8220;Successful Business&#8221; before we run out of time. To do that requires the ability to say &#8220;No.&#8221; No to fun contracting tasks, No to quick cash, No to partnerships that require a lot of time on our part, and No to distracting marketing. But how do I break away from &#8216;the man&#8217; when I actually really enjoy the work (and the cash too.)</p>

<p>Reflecting on what I have written I can see that I need to reduce the contracting work to the point where it pays some bills only, and spend as much time as possible putting GridSpy as a finished product into the  marketplace. Well, after this particular contracting task is over that is.</p>
]]>
    </content>
</entry>

<entry>
    <title>A PC in Every Power Cabinet - aaahhhh......No.</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2010/02/a-pc-in-every-power-cabinet-aaahhhhno.html" />
    <id>tag:blog.gridspy.co.nz,2010://1.26</id>

    <published>2010-02-21T09:12:18Z</published>
    <updated>2010-07-18T08:49:47Z</updated>

    <summary>Currently Gridspy has a centralised server where each user gets a dashboard online to read their power usage. Originally we planned to have these dashboards hosted inside each building on simple servers. Our first prototype simply used a small PC,...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="dashboard" label="dashboard" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>Currently Gridspy has a centralised server where each user gets a dashboard online to read their power usage. Originally we planned to have these dashboards hosted inside each building on simple servers. Our first prototype simply used a small PC, our IO range and simple sensors. The PC logged the data and also hosted the dashboard. </p>

<p>It seemed sensible at the time. It seemed easier to have one device both logging data and providing a website. A locally hosted dashboard would ensure a nice fast connection between the user and the dashboard. We found ourselves a nice cheap low power PC and created a nice blend of custom software and great open-source technology. The custom part was a sensor-polling database stuffing daemon. This plan let us develop rapidly and we planned to take it to market.</p>
]]>
        <![CDATA[<p>These cheap PCs each need a power supply, case and hard disk drive. Once the hardware is in place we then spend hours setting up a reliable software configuration and installing it onto each PC.  But it soon became apparent that this was going to get annoying, fast. With this system we open ourselves up to the possibility of 3rd party reliability issues. Most cheap PC owners expect to reboot often, but we wanted uptime measured in weeks. I shudder to think how difficult it would be to maintain 1000 PCs in the field. Think of all the failing hard drives.</p>

<p>Also it turns out low power computers are not as green as we thought. These little power hogs would sit there 24/7 chewing up the very power we are trying to save. We also had a performance problem. Our clients expect a very fast response in their web browser, but they use that interface extremely infrequently. In that 0.1% of the time they are waiting for their dashboard to load they want the very best performance. Computers that excel in bringing so much data together in a short time require expensive, power hungry hardware. Our compromise between good performance, low cost, low power and high reliability was not going to end well.</p>

<p>To get performance we need a fast box. That immediately ruled out cheap and low power.</p>

<p>So we centralised the data processing and dashboard aspects of Gridspy into <a href="http://your.gridspy.co.nz">http://your.gridspy.co.nz</a>. Now the <a href="http://blog.gridspy.co.nz/2009/09/introducing-the-nexus.html">Nexus</a> takes the place of the PC in each house. The Nexus is a little box that <a href="http://blog.gridspy.co.nz/2009/10/realtime-data-from-sensors-to-browsers.html">streams sensor readings live</a> from your house to your dashboard. The Nexus has much lower power hardware than the web server because it doesn&#8217;t have to do processing &#8220;on demand&#8221;. Each Nexus draws around 1-2W, a normal PC 150-400W and a powerful web server 500W or more. Since the dashboard sits outside of the users&#8217; premises on a shared web server its real power use per user is minimal.</p>

<p>Our little box has a lot of advantages over the in house PC/dashboard combo. It is easy for us to assemble and program without the complexities of shifting consumer hardware and 3rd party software installs. It has a comparatively low cost, especially as we move into mass manufacture (I look forward to passing that saving on). As there are no moving parts or major heat sources it could be installed in a sealed box inside a hostile, vibrating environment and survive. It integrates the entire system onto a single board, it is silent, it&#8217;s easy to install, and it is discreet (especially compared to a locally hosted PC!). An online dashboard is a huge win for both our customers and for us. </p>

<p>There are lots of advantages to us when we serve our dashboard to clients online. Chief among them is the lack of an installation step. We totally control the hardware that serves the site. We can poke, prod and customise the data collected, and we can analyse it in great depth. This also means that we can roll out a dashboard improvement or bug-fix to all our customers nearly instantly.</p>

<p>A central server also lets us centralise all that expensive hardware so that every individual request is served quickly but the server doesn&#8217;t spend all day standing idle. I have to admit that I get quite excited when I imagine a server performing well under load - requests flying in, processing going on and insightful data flowing out. </p>

<p>For the client monitoring power use it is much easier for the novice to turn a Nexus on and then visit <a href="http://your.gridspy.co.nz">http://your.gridspy.co.nz</a> than it is to type in something like http://192.168.5.1. This is especially so if you bookmarked the dashboard when you purchased your Nexus. Only the &#8216;most hardcore&#8217; computer geek (yes: you, me and all our friends) could successfully route an internal IP address to the wider world so it could be accessed from your mobile phone. By comparison the online dashboard is easy to find and access on any device.</p>

<p>So, Gridspy is the power monitoring solution that just works. It&#8217;s just plug (and get online) and go. </p>

<p>Further reading:</p>

<ul>
<li><a href="http://blog.gridspy.co.nz/2009/10/realtime-data-from-sensors-to-browsers.html">Real-time data from sensors to browsers</a> - more about the website</li>
<li><a href="http://blog.gridspy.co.nz/2009/09/introducing-the-nexus.html">Introducing the Nexus</a> - more about the device</li>
<li><a href="http://blog.gridspy.co.nz/2009/10/where-does-all-the-power-go.html">Where does all the power go?</a> - why you should monitor power</li>
</ul>
]]>
    </content>
</entry>

<entry>
    <title>Part time Entrepreneur, fulltime Employee</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2010/02/part-time-entrepreneur.html" />
    <id>tag:blog.gridspy.co.nz,2010://1.25</id>

    <published>2010-02-09T09:01:39Z</published>
    <updated>2010-07-18T07:59:48Z</updated>

    <summary>Update - we are now now working full-time, in our own office! Most startups seem to embrace 60-80 hour weeks, you keep reading about them and begin to believe that this is normal. After 12 hour marathon coding sessions &#8216;typical...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="employment" label="Employment" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="entrepreneur" label="Entrepreneur" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="fulltime" label="Fulltime" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="startup" label="startup" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p><em>Update - we are now now working <a href="http://blog.gridspy.co.nz/2010/06/breaking-away-from-the-man.html">full-time</a>, in our own <a href="http://blog.gridspy.co.nz/2010/07/out-of-the-garage-and-into-an-office.html">office</a>!</em></p>

<p>Most startups seem to embrace 60-80 hour weeks, you keep reading about them and begin to believe that this is normal. After 12 hour marathon coding sessions &#8216;typical entrepreneurs&#8217; walk 10 metres from desk to bed and collapse in their shared accommodations. Living in such lean conditions makes those crucial first months of business far cheaper. This work ethic and minimial living costs maximises the runway before the seed money runs out.</p>

<p>Paul Graham is one of my favourite bloggers, and in his essay entitled <a href="http://www.paulgraham.com/road.html">The Other Road Ahead</a> he paints a clear picture of how lean a start-up can be, stating &#8220;You can literally launch your product as three guys sitting in the living room of an apartment, and a server collocated at an ISP. We did.&#8221; </p>
]]>
        <![CDATA[<p>No matter how much I&#8217;d love to take the lean ramen noodle approach it&#8217;s simply not practical for me. I&#8217;m a father of two, a husband of one, and an employee. I&#8217;ve got a beautiful family with young children, a modest house with a mortgage, and a full-time job to pay the bills. In short, I have a standard existence that I imagine many of my readers share. Living off noodles in a cheap apartment with my co-founders is not the only way that start-ups are built. I&#8217;ve taken an alternative route that involves just as much hard graft (harder maybe?) and allows me to remain employed full-time. The food sure is better!</p>

<p>I simply have to fit Gridspy into the gaps between the hours at work outside of the home and the start-up and the time put into fatherhood and being an available partner. It is a compromise position that I have had to maintain for the last year until Gridspy was ready. Along with the mandatory overtime, maintaining a full-time job limits my flexibility. I cannot travel to meet potential clients as easily or pick up the phone to talk to them. It markedly slows down progress. However, without the job there would possibly be no Gridspy, or less so than there is now, as there would be no base to develop from. </p>

<p>Despite my full-time commitments I still consistently work on Gridspy. As I mentioned in <a href="http://blog.gridspy.co.nz/2009/12/selling-the-dream-putting-sales-before-software.html">Selling the Dream</a> I spend four evenings a week working on Gridspy (3-4 hours each one) plus all of Sunday and manage to make a lot of progress. Sometimes I spend my four hours on a blog entry, sometimes on some firmware or a little bit of Django code. Lately I have been creating the setup process for new users. There is a ton of documentation to do on our website - it all takes so much time. </p>

<p>Since my baseline existence is &#8216;family-man&#8217; and a full-time job, I have had to pace myself with Gridspy. If I am not careful I will burn myself or my loved ones out (and trust me, we&#8217;ve been close at times) so I have to be the tortoise rather than the hare. At least doing a small chunk every night gives me a lot of time to think through technology decisions and plan my development. </p>

<p>Of course Gridspy is all that I want to work on and all that I can think about. This creates constant tension/wishful thinking in wanting to jump in both feet first and get everything up and running now, yesterday! It doesn&#8217;t help that this fully dedicated full-time start-up founder is also a <a href="http://www.bothsidesofthetable.com/2010/01/05/what-makes-an-entrepreneur-appetite-for-risk-711/">widely published expectation</a>.</p>

<p>But there are no savings to live off, and even though the almost three year old in my life would like to live on noodles for a bit, I don&#8217;t think I could for long.
Being employed isn&#8217;t as simple as just turning up to my &#8216;day job&#8217; and punching keys so I can pay the bills. I want, need, to be a &#8216;good employee.&#8217; It takes conscious effort to honour my commitment to my employer. I remind myself everyday to focus on the work I do for them and to leave Gridspy at home. I&#8217;m sure you can see how after a long day at the office and after the chaos of the early evening with the kids, it can take a while to get down to the business of Gridspy. Sometimes all I want to do is grab a beer and turn on the TV.</p>

<p>I like my job, it has loads of benefits. Not least that I can afford to buy beer and have nice dinners and provide my wife and children with all the comforts of home. I have been given some great introductions to potential business partners through my well connected colleagues. I&#8217;ve had a group of fellow engineers to discuss my ideas with and sound out my features. Plus I&#8217;ve had lots of free coffee and idle banter around the water cooler to enjoy. The benefits of a stable routine and a reliable injection of cash into our bank account each month are not to be frittered away lightly.</p>

<p>But when it comes to developing my own gig, it is a chicken and egg problem. The sooner I take the leap and go fulltime with Gridspy, the sooner we can complete the features that are preventing us from doing a large scale release. But the moment I take that leap, the clock (and the bank account) starts ticking down. I have an extremely short runway and I worry that I could scuttle this opportunity before it has had a chance to take off. </p>

<p>Reading entrepreneurial blogs such as Paul Graham&#8217;s can make you think that you have to go fulltime or give up. I am taking an alternative route. By creating Gridspy part-time I have been able to give it the time and breathing room required to succeed. I&#8217;m starting to think that this path is the most courageous since it requires serious commitment to devote all your free time to your startup. In the end, I am sure that my compromises will pay off.</p>

<p>Please let me know in the comments what your own situation is like. </p>

<ul>
<li>Have you taken the leap yet, or is it not a viable option? </li>
<li>When is the right time to do it? </li>
<li>Are you also battling to keep it part-time even though you really want to take it fulltime?</li>
</ul>

<p>Further reading: </p>

<ul>
<li><a href="http://blog.gridspy.co.nz/2009/12/selling-the-dream-putting-sales-before-software.html">Selling the Dream, putting Sales before Software</a> </li>
<li><a href="http://blog.gridspy.co.nz/2009/09/introducing-the-nexus.html">Introducing the Nexus</a> </li>
</ul>
]]>
    </content>
</entry>

<entry>
    <title>Selling the Dream, putting Sales before Software</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/12/selling-the-dream-putting-sales-before-software.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.24</id>

    <published>2009-12-09T07:06:09Z</published>
    <updated>2010-07-18T07:57:10Z</updated>

    <summary>It is difficult to admit, but Gridspy is not yet complete. The physical prototypes of our new Radio device are not yet manufactured and much of the software is yet to be written. That has not stopped me from putting...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="marketing" label="marketing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>It is difficult to admit, but Gridspy is not yet complete. The physical prototypes of our new Radio device are not yet manufactured and much of the software is yet to be written. That has not stopped me from putting on my sales-person hat and describing Gridspy as a complete system. We know that everything will be finished running and ready for deployment in January or February next year, but it is not ready today.</p>

<p>Sitting down to develop new features for Gridspy is a real pleasure, but it has recently become a rare one. Marketing has quickly become essential to gather feedback from our clients and secure pre-orders. Trust me, there is no time-sink like marketing. Hours flash by as careful email dialogue takes place, meetings are arranged and executed, and promotional materials created. I started to forget how great it is to sit down and code for hours straight and my late hours quickly caught up with me.</p>
]]>
        <![CDATA[<p>Of course the marketing is a requirement and has had may benefits, not least the continuing refining of the product upon hearing client feedback. However, all of this takes time and our to-do list is now longer than our features list. Like any great product, there will always be something new to add. The pragmatic thing to do is to get out there and sell what we have now with an eye to the future. What we do have is our wired device (we call it Nexus) which is already installed and running in a couple of locations. But of course we want to have more, and we want to have it now!</p>

<p>Unfortunately we are not sitting on piles of cash just yet that would fund long uninterrupted hours of development. Without angel funding or a huge savings account to raid, I&#8217;ve continued my full-time programming job and am moonlighting for Gridspy. An average evening for me runs like this: cycle home after a long day as an employee, put the kids to sleep, talk to the wife and cram some dinner down, and then put in around 4 hours of  work on Gridspy before crashing into bed. In that 4 hours I have to housekeep general operations, publicise, secure sales, and oh-yeah, develop the product! I also work as much of the day and night as I can on Sunday, leaving only Saturday for time-out with the family. Stephen isn&#8217;t moonlighting right now, but will probably have too soon. Here&#8217;s hoping that we can begin securing regular sales and devote all our time to development for some old fashioned bootstrapping.</p>

<p>When you are a software developer in a large organisation you remain isolated from the <a href="http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html">sales reality</a>. The day that your new product hits the market a lot of work has already been done by other departments to build buzz and a ready clientèle. Programmers tend to moan about clients being promised features that are not yet complete, but that is simply the reality of sales. As a founder wearing many hats I have had to confront this reality and the early feedback gathered really helps to inform the design, and to assure me we are doing the right thing. </p>

<p>I&#8217;ve realised that striking a balance between publicity and features is essential. Your start-up can die either from incomplete solutions or from lack of exposure. However marketing efforts can quickly become very time consuming, slowing down feature development. The hard work is paying off and word is slowly and surely getting out there, be sure to tell your friends about Gridspy! It is now time to turn my attention back to features. Next on my list is the ability to push software updates out to our installed devices. That is an interesting problem involving flash drivers, firmware downloading and in system programming of our microcontrollers.</p>

<p>We are confident that we will hit our targets on the back of decades of hardware and software development, so no issues there. As hard as it is, selling our system while still in development is the only way to go. To my fellow entrepreneurs - If you haven&#8217;t tried to secure a pre-sale, why not? Are you secretly afraid that you product won&#8217;t sell? Better to test your business model now than after months of development time.</p>

<p>Talking to clients and selling early lines up really well with <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html">releasing early and often</a>, <a href="http://www.paulgraham.com/good.html">creating something people want</a> and validating your market. As you can see we already have our <a href="http://gridspy.co.nz">core features</a> working and our wired solution (Nexus) is already deployed.</p>

<p>The word is out, Gridspy is coming and I can code late into the night in peace, just after I have finished this last email.</p>
]]>
    </content>
</entry>

<entry>
    <title>Cutting your power bills with Gridspy</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/11/cutting-your-power-bills-with-gridspy.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.22</id>

    <published>2009-11-18T06:19:07Z</published>
    <updated>2010-07-18T07:52:36Z</updated>

    <summary>After deciding to cut down our power usage, we know exactly where to start. A quick trip around the home or office to turn off standby devices, shut down computers and set the Air Conditioning to less comfortable levels is...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="powersaving" label="power-saving" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>After deciding to cut down our power usage, we know exactly where to start. A quick trip around the home or office to turn off standby devices, shut down computers and set the Air Conditioning to less comfortable levels is all it takes&#8230; right?</p>

<p>So after doing all those things, you wait and wait and wait some more. Finally the power bill arrives and with luck, it is lower than the previous month. </p>
]]>
        <![CDATA[<p>Usually it isn&#8217;t that simple. The bill is complicated by a change in the seasons, new appliances or computers or changes in energy usage patterns. There are all sorts of reasons why it might not be what you expect. It might turn out that you were using the electric oven more this month, or you spent more evenings out of town with everything turned off.</p>

<p>The obvious next step is to spend hours outside, staring at your power meter and determining how much it has changed since the last time you looked. With <a href="http://www.gridspy.co.nz/">Gridspy</a> you can save yourself the time and hassle. We can your usage into separate channels and view the results on-line. Configure one channel to cover your lighting, another for heating and yet another for hot water.</p>

<p>By narrowing down which particular parts of your house consume energy and when, Gridspy helps you concentrate on the real power hogs. If you lower the thermostat on the water heating, the measurements on that channel will clearly show a saving. Put the appliances in your house on their own channel and hunt down those parasitic loads like cellphone chargers or the TV on standby.</p>

<p>With Gridspy, when you decide to shut down those computers at night you have real numbers to back up your efforts. Gridspy tells you exactly how much power the computers were using before, so you just study the graphs to see the dip in usage overnight. Hey presto! You&#8217;ve just saved power and cut your power bill. Best of all, you know exactly how much you saved - you can clearly see if that extra effort was worth it. It becomes possible to focus your efforts on those areas that have most effect on your power bill.</p>

<p>Most homes have two key power hogs : hot water and space heating. With Gridspy, you quickly get a clear picture of how much money you are spending on each. There are great power saving alternatives such as solar hot water systems and heat pumps. Once you know what you are spending on hot water, you can calculate how long it will take for the solar hot water investment to pay for itself. If you lead the rural life, you might even install a wet-back around your fireplace so you can heat water by simply lighting a fire. At <a href="http://blog.gridspy.co.nz/2009/08/the-barrier-house.html">the barrier house</a>, we have a solar hot water system with a wet-back for the inevitable cloudy day.</p>

<p>In the office, power usage can be slashed by reducing Air Conditioning load, installing smart lighting and turning computers of while not in use. The challenge lies in backing these decisions up with hard data to get buy-in throughout the organisation. Gridspy can give you the data you need, and make power saving fun and interesting. When every single staff member can see the live data feed for their lights and plugs, they understand the impact of turning off the lights they don&#8217;t need and leaving computers off overnight.</p>

<p>When the time comes to renovate or build anew choosing the right building materials and methods will lower the lifetime costs of the new building. The New Zealand research consortium <a href="http://www.beaconpathway.co.nz/">Beacon Pathway</a> is currently performing extensive research into the means of building environmentally friendly houses. Beacon understands the importance of constant measurement to prove the performance of their designs, but collecting that much data without Gridspy is not easy. </p>

<p>Could you like to cut the power bills in your business? <a href="http://www.gridspy.co.nz/">Gridspy</a> can help you determine exactly how, and help to motivate your colleagues to take the necessary steps.</p>
]]>
    </content>
</entry>

<entry>
    <title>Real-time data from sensors to browsers</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/10/realtime-data-from-sensors-to-browsers.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.17</id>

    <published>2009-10-23T08:19:26Z</published>
    <updated>2010-07-18T07:47:00Z</updated>

    <summary> To me, &#8216;web 2.0&#8217; is fresh, fast and fun. Gridspy is all about making power monitoring fascinating and accessible - that&#8217;s the goal. We&#8217;re talking numbers you can understand, graphs you can read and systems that you can intuit...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="backend" label="Backend" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="realtime" label="Realtime" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="story" label="Story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p><img alt="" src="http://blog.gridspy.co.nz/banner/nexus%20banner.jpeg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>To me, &#8216;web 2.0&#8217; is fresh, fast and fun. Gridspy is all about making power
monitoring fascinating and accessible - that&#8217;s the goal. We&#8217;re talking numbers
you can understand, graphs you can read and systems that you can intuit as you
change the amount of power you use. Read on to learn how we deliver on our
live data vision all the way from the Nexus to the browser.</p>
]]>
        <![CDATA[<p>Naturally like any sensor system, the data flow starts at the sensor. We have
two sensor solutions - the wired Nexus and the wireless Gridspy. Both of these
have several sensors that can clip onto the live mains cables in your house
and the Nexus also connects to your home / office Ethernet. Every second each
sensor takes 64 readings and uploads an accurate measurement of your power
usage. Because home power uses the alternating current system to ease the
transmission of power from generators to your house, power readings move up
and down over time. The Gridspy system takes readings over several up and down
cycles of your power and uses sophisticated mathematics to compensate for the
alternating current to get nice smooth power readings.</p>

<p>Once plugged into a home or office Ethernet, the Nexus automatically detects
the network configuration and establishes an outgoing connection to our
servers. Once the connection is established, the nexus begins streaming live
power data. What is really great about this scheme is that outgoing
connections ensure that on most networks absolutely no configuration is
necessary - our users do not have to expose the Nexus or any other device on
the network to the general public to view their data on-line.</p>

<p>The nexus then collects those sensor samples from the nearby Gridspies,
bundles it up with its own data and uploads it to our central servers. To
collect the data we use a custom application written using the excellent
<a href="http://twistedmatrix.com/" title="Twisted Python Framework">Twisted framework</a>. Every single reading gets instant attention: it is
evaluated for real-time events, queued to be stored in the database and
finally forwarded to watching dashboard users. Processing the data stream live
on the server opens up many exciting possible features that I look forward to
discussing in future blog posts. By the time that the sample reaches the
server, it is about 0.2 seconds old.</p>

<p><a href="http://your.gridspy.co.nz/powertech"><img alt="Gridspy Dashboard Banner" src="http://blog.gridspy.co.nz/banner/bargraph.png" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Each time someone opens up a browser and starts viewing the <a href="http://your.gridspy.co.nz/powertech" title="Powertech's office power dashboard">data dashboard
for a Gridspy (live power demo!)</a>, the dashboard makes a connection back to
our server using a technology called <a href="http://orbited.org/" title="Orbited Homepage">Orbited</a>. Orbited gives us a two way
event-driven communication channel so our users can send messages to the
server such as switching lights on and off while receiving those precious data
samples back in real time. Through Orbited, our users subscribe to a &#8220;message
queue&#8221; which efficiently sends power updates and other messages to all
watching web browsers. We are currently using <a href="http://www.morbidq.com/" title="MorbidQ Homepage">MorbidQ</a> as our message
queue for ease of deployment. If you want to set up a similar system, I
thoroughly recommend this tutorial on <a href="http://cometdaily.com/2008/10/10/scalable-real-time-web-architecture-part-2-a-live-graph-with-orbited-morbidq-and-jsio/" title="Tutorial on creating a realtime ajax graph">Orbited, MorbidQ and Twisted</a>.</p>

<p>So, the total time from taking a sample to seeing the result in the dashboard?
It takes as much time as the power message takes to travel from your network
to our server and the reading takes to travel back. For most people, this is a
0.2 to 0.4 second delay or less - it sure beats the old &#8220;<a href="http://blog.gridspy.co.nz/2009/09/database-meet-realtime-data-logging.html" title="Database, meet real-time data logging">poll the database
every 5 minutes for latest readings</a>&#8221; mechanism that I used in our early
prototypes. The result? Power monitoring is fun and intuitive. If you hear the
washing machine speeding up into a spin cycle, you will instantly see that
reflected in your dashboard online. When you turn off those lights, you get
instant feedback showing you exactly how much your power usage has dropped.
This is the sort of feedback that motivates experimentation and power saving.</p>

<p><a href="http://www.gridspy.co.nz/" title="Gridspy resource monitoring homepage">Power monitoring, meet web 2.0!</a></p>

<p>If you want more technical detail on any part of my system, please do drop me
a note in the comments below. You can also <a href="http://www.twitter.com/gridspy/">follow me on Twitter</a>.</p>
]]>
    </content>
</entry>

<entry>
    <title>Where does all the power go?</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/10/where-does-all-the-power-go.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.16</id>

    <published>2009-10-06T09:29:51Z</published>
    <updated>2010-07-18T07:46:06Z</updated>

    <summary>Our Gt Barrier offgrid house uses 2 towel rails worth of power each day (4Kwh), but in our apartment in the city we use 13Kwh. That is 3 times more&#8230;. Is it the hot water, or the fridge, or the...</summary>
    <author>
        <name>Stephen Leys</name>
        <uri>http://www.exsite.co.nz</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>Our <a href="http://blog.gridspy.co.nz/2009/08/the-barrier-house.html">Gt Barrier offgrid house</a> uses 2 towel rails worth of power each day (4Kwh), but in our apartment in the city we use 13Kwh. That is 3 times more&#8230;. Is it the hot water, or the fridge, or the cooking? I just don&#8217;t know and that it annoys me. A friend of mine has tells me his power bill for a single parent and child is between $300 and $500 per month. They wonder if someone is stealing the power somehow.</p>
]]>
        <![CDATA[<p>On Gt Barrier we are running one of the first versions of the Gridspy which monitors and graphs total power, refrigerator power and the power used by our satellite system. But here in town I have not got such a system. </p>

<p>Why no monitoring system in the city? Well I will blame one of our distributors. He said the system on the Gt Barrier would be too expensive for many city people. So we sat and scratched our respective heads. Lots of data to store equals a PC in the house. But no, these days as we have the web. Hey we could dump the PC and put the data directly onto a high speed server online. This means low cost power monitoring. From this version 2 is being born. This has been named the Nexus. </p>

<p>Soon the prototype Nexus will be monitoring the power in the city apartment. There will be extensive testing by many critical friends and family. So many people have put their hands up for testing they will have to be rationed out. It is an exciting time to have a product that so many people want to get their hands on, and finally I will have the tools to answer the question &#8220;Where does all the power go?</p>
]]>
    </content>
</entry>

<entry>
    <title>Gridspy Alpha is up!</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/10/if-there-is-one-thing.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.14</id>

    <published>2009-10-01T06:03:02Z</published>
    <updated>2010-07-18T07:38:32Z</updated>

    <summary>If there is one thing that trying to make my own product has tought me, it is that the old sages are right. The key to success is to choose the very smallest possible subset of your features and focus...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="kiss" label="kiss" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>If there is one thing that trying to make my own product has tought me, it is that the old sages are right. The key to success is to choose the very smallest possible subset of your features and focus with razor vision on that and only that. I have spent the last six months doing nothing else, discarding distracting feature after seemingly important improvement until only the key feature remained.</p>

<p>Over the last few months, my mantra has been &#8220;All I need is web-based graphs of power usage.&#8221;</p>
]]>
        <![CDATA[<p>Well, I am proud to say that it has paid off. I have now got a <a href="http://your.gridspy.co.nz/">system that can send live power data from our very own custom hardware to our twisted server, and have graphs rendered</a>. It has been a hard slog, but now we have something that we might be able to sell&#8230; to one or two clients. I am fairly certian that even with promises of upcoming features we will not sell very many units until our system can do the other impressive things that we have planned. </p>

<p>Fortunately from here things only get easier. With all this key technology in place there are no new peices of the puzzle to add, just nice incremental improvements.</p>

<p>Okay, so who am I kidding? I have to master JQuery to get the live data working the way that I would like to&#8230; I have online billing and subscriptions to set up, Restful apis to develop, all manner of ideas and features that I would like to add. There are important features yet to add to the firmware. But we now have a system that we could install and it is enough to delight at least a few alpha testers. What they have to say about it will ultimately be what guides our decision of the very next thing to implement.</p>

<p>I like to think that a year from now I will look back on this blog entry and smile. Considering how far I have come already, by then our system will be very exciting. </p>

<p>When I look at the power monitoring market now, I see many companies providing cheap meters that do not tap into the power of the internet. There are meters that offer clunky online interfaces and cost the earth. The demand for internet savvy power meters is so strong that many do-it-yourselfers have forged a path with modified off the shelf hardware and garnered quite a following. </p>

<p>We are ready, and the market is waiting. </p>
]]>
    </content>
</entry>

<entry>
    <title>Database, meet realtime data logging.</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/09/database-meet-realtime-data-logging.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.5</id>

    <published>2009-09-15T03:22:51Z</published>
    <updated>2010-07-18T07:35:04Z</updated>

    <summary> I have been programming in C++ for ages, so it would come as no surprise that I am comfortable with it. That however, does not make me god&#8217;s gift to database programming. I have tinkered with these mysterious beasts...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="database" label="database" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="realtime" label="realtime" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p><a href="http://your.gridspy.co.nz/powertech"><img alt="Gridspy Dashboard Banner" src="http://blog.gridspy.co.nz/banner/bargraph.png" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>I have been programming in C++ for ages, so it would come as no surprise
that I am comfortable with it. That however, does not make me god&#8217;s gift to
database programming. I have tinkered with these mysterious beasts several
times and always come away impressed at how much I could do with so little
effort. With just a little SQL, an amazing amount of data just leaps from the
hard disk into a handy table. So, with a little trepidation, I set out to
design a database schema for the <a href="http://blog.gridspy.co.nz/2009/09/introducing-the-nexus.html">Gridspy power-monitoring system</a>.</p>
]]>
        <![CDATA[<p>Of course, back then it hardly had a name. I personally called it ActiveCore,
because it was the active core of your house. I think that Dad called it
something cute, like 5301. He has a tendency to pick names like that.</p>

<p>So&#8230; have you heard of the <a href="http://en.wikipedia.org/wiki/Second-system_effect">Second System Effect</a>?</p>

<p>If you have been lucky enough to work on a first system and found it enough of
a hack - god help you if someone asks you to make a second system from
scratch. It always turns into a huge heap of over engineering. This was true
from the database schema to the code in C++ and it quickly turned what should
have been a simple program into a nightmare. As it turns out, knowing about
the fallacy does nothing to prevent you from committing it. There was a table
for each idea, and expensive joins left, right and centre. You needed to join
about 5 tables to determine which inputs to monitor!</p>

<p>It doesn&#8217;t help that I was up against a challenging problem. I wanted to
monitor many sensors for a long time, at a high resolution. There are 86,400
seconds in the day - this multiplies quickly if you have 10 sensors and 365
days of history. Of course, this data should not be lost of the user decides
to move or upgrade the sensor. The finished data table had indexes on all the
fields I used (date, value, id, sensor id, and more!). At one point 5mb of
data (for a single building no less) had over 100mb of extra data just to (in
theory) accelerate lookups.</p>

<p>So, we have an over-engineered schema and C++ <a href="http://en.wikipedia.org/wiki/Daemon_%28computer_software%29">deamon</a>. Now we just need to
throw some real time demands into the mix. Naturally the design calls for a
way to see how much power you are using this minute. On paper it looked great
to put the database between the deamon and the website. In reality this led to
the (relatively underpowered) computer maxing out the CPU.</p>

<p><a href="http://www.technman.com/products/5030.html"><img alt="5030 lights banner.png" src="http://blog.gridspy.co.nz/banner/5030%20lights%20banner.jpeg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="100" width="700" /></a>
We also have the ability to control outputs and
switch lights. This was done by writing the new output state into a row in the
database. However, I knew we had a problem when the deamon was taking ten
seconds at a time to turn on outputs in response to inputs. At one point Dad
turned on a light to go up the stairs and waited a little. He soon set off up
the dark stairs and returned from his errand in time to see the light switch
on. Trust me, this is totally sorted out now.</p>

<p>In retrospect it is so obvious. Instead of putting the database at the middle
of the system it has now been relegated to its proper location - a permanent
data store. While preferences and historical data is stored in the DB, live
data and communications with our sensors are done directly with a custom
server written on the <a href="http://twistedmatrix.com/">Twisted framework</a>, rather than having our sensors
send many individual Django page requests. Each sensor establishes an ongoing
connection with Twisted and streams data and other info. Twisted can then send
back commands to the sensors, including setting outputs.</p>

<p>Because Twisted has an ongoing connection with the sensor, it handily punches
straight through firewalls and NATs. I knew I had made the right decision
about using Twisted when I controlled my first output. My http request went to
<a href="http://www.djangoproject.com/">Django</a>, who passed a XML request to Twisted, which sent a custom message
to the Nexus. The Nexus had instructed the output to turn on so fast that it
seemed totally instant. No Database could do it quite that fast, not even with
triggers.</p>

<p>I couldn&#8217;t recommend a language and framework more highly than Twisted
<a href="http://python.org/">Python</a>. Now that I am feeling the power of Python, writing C++ is a total
bore by comparison. Of course, as soon as something needs to execute super-
fast I&#8217;ll be back into C++ for that little bit, but no need yet!</p>

<p>I now have a solution that can scale into thousands of sensors. Lets just hope
I am onto the third system now.</p>

<p><em>Further reading:</em> </p>

<p><a href="http://blog.gridspy.co.nz/2009/10/realtime-data-from-sensors-to-browsers.html">My replacement for the database : Live power monitoring</a></p>
]]>
    </content>
</entry>

<entry>
    <title>Introducing the Nexus</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/09/introducing-the-nexus.html" />
    <id>tag:blog.exsite.co.nz,2009://1.4</id>

    <published>2009-09-09T09:35:58Z</published>
    <updated>2010-07-18T07:31:43Z</updated>

    <summary>Update : You can now purchase the Nexus (now called the GridHub) Since the beginning of last year, my Dad and I have been hard at work on our own power monitoring system. It wasn&#8217;t always for power monitoring, originally...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="design" label="design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nexus" label="nexus" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="story" label="story" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p><em>Update : You can now <a href="http://shop.gridspy.co.nz/">purchase the Nexus</a> (now called the GridHub)</em></p>

<p>Since the beginning of last year, my Dad and I have been hard at work on our own power monitoring system. It wasn&#8217;t always for power monitoring, originally it was more about controlling the <a href="http://blog.gridspy.co.nz/2009/08/the-barrier-house.html">cool automated house on great barrier</a>. It didn&#8217;t take long to realise that just measuring power usage is a pretty cool feature in and of itself, one with minimal hardware costs.</p>
]]>
        <![CDATA[<p>A quick search around showed that there were not many people creating devices to monitor power. Those that were had features missing that we consider important, such as easy and open access to live data and web connectivity. Also, Dad and I love making things together so it quickly became a fun project. We have a great working relationship since I have been writing software for Dad&#8217;s custom hardware since I was 13, usually for entrepreneurs under the guise of our company <a href="http://www.technman.com/profile.html">Technman</a>. </p>

<p>The natural first step was to buy a power monitor provided by someone else (we choose a <a href="http://www.ccontrolsys.com/">wattnode</a> with a pulsed output) and connect it to <a href="http://www.technman.com/distributed_io.html">Technman&#8217;s range of IO modules</a>. </p>

<p>I wrote a Linux daemon that runs in the house and reads the power into a postgres database. A separate website reads the database and displays power usage as nice graphs. While this system works fine, it requires a PC running in the house all the time and it also requires each house to contain quite expensive hardware. The natural next step was to reduce the cost with some custom hardware. Our first device - the &#8220;nexus&#8221; is planned to become the hub of our finished system. It is the master of an in-house or in-business radio network that links several of our devices together. The nexus then transmits live data from the house back to our server for logging, analysis and user interface. We chose to do it this way because we want to move the power hungry PC out of our customer&#8217;s house and instead have the analysis (and data storage) in a central data centre. Moving the UI to the data centre also avoids problems with firewalls and will make it easier for us to iterate quickly on our features.</p>

<p>On the Nexus, we wanted low power, wired Ethernet connectivity and power monitoring. We are big fans of the 8051 micro controllers created by <a href="http://www.silabs.com/">Silicon Labs</a>. Along with their off the shelf Ethernet chips and oodles of technical design expertise creating a power monitoring system was not a problem. It has been a busy couple of months but as I write our first prototypes are being assembled for testing. We have already written most of the firmware using development kits provided by silicon labs, and have working code proving all the major subsystems.</p>

<p>One thing that makes us pretty unique is our live, on-line power data. Each nexus has an ongoing connection to our central server and streams sensor samples as they are taken. When someone is logged in to our website, we send them updates via JavaScript on a very regular basis. Well, this is the plan - but the Javascript bit is not implemented as of this writing. Because our power usage is totally live, it is practical for you to wander around turning things on and off with your iPod in your hand or your laptop. As you switch loads, you will immediately see the changes reflected on your on-line dashboard. The graphs are also updated often, so it is intuitive how they work (Update: have a look at a <a href="http://your.gridspy.co.nz/powertech/">live example</a>). </p>

<p>The high resolution graphs make it easy to understand the nature of your power usage. Some things use a lot of power while switching on but for a short time, such as toasters or kettles. When you bring home shopping and load it in the fridge, it uses more power. The washing machine uses different amounts of power depending on its current stage in the wash cycle. The dishwasher uses far less power in eco mode, and the hot water cylinder has to reheat the hot water for either of these appliances. These curves are easy to pick out. High resolution graph rendering is another feature I am looking forward to completing.</p>

<p>It is easy to see the patterns of your day in high resolution graphs, you will be able to see when you have a shower and use hot water, when you run the heater or when you make tea. You can see when you turn the computer on and the effect of the computer&#8217;s power saving modes on your power consumption.</p>

<p>The Nexus can also control the Technman IO modules - you can turn your lights on and off from our website, or anything else you care to switch. If you decide to control something in your house (if you have control) then the Nexus will act on your instructions instantly. You will not perceive a delay unless you have a slow web connection. This really is cool, but you can&#8217;t enjoy the effect from across the web!</p>

<p>Creating all this firmware and getting the systems to talk together has raised some interesting design challenges. I plan to write more about those in later blog entries. I have also put a lot of thought into how I will make a system that relies on lots of devices communicating with a central server scale over time. </p>

<p>To read about the challenges of streaming live data, see <a href="http://blog.gridspy.co.nz/2009/09/database-meet-realtime-data-logging.html">Database, meet realtime data logging</a></p>
]]>
    </content>
</entry>

<entry>
    <title>Essential Firefox Tools</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/08/essential-firefox-tools.html" />
    <id>tag:blog.exsite.co.nz,2009://1.3</id>

    <published>2009-08-26T09:47:42Z</published>
    <updated>2010-07-18T07:27:08Z</updated>

    <summary>Have you ever been stuck in that horrible guess and check routine? You know the one - the page layout is just wrong and Firefox isn&#8217;t quite reading your mind. You keep making small changes to the css but nothing...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="tools" label="Tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="web" label="Web" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p>Have you ever been stuck in that horrible guess and check routine? You know the one - the page layout is just wrong and Firefox isn&#8217;t quite reading your mind. You keep making small changes to the css but nothing seems to change. Suddenly you make the wrong change and everything is a mess. Trust me, I&#8217;ve been there too. I&#8217;ve also seen my fair share of inscrutable JavaScript bugs. As a C++ Veteran coming to all this fancy web stuff is fun but can quickly become frustrating when all you see is that nice opaque view that browsers tend to give our users.</p>
]]>
        <![CDATA[<p>The more information you can get about what is going on under the hood, the faster you are likely to find the problem that is causing you to spin your wheels. I love information and there is nothing more satisfying than seeing the bytes, words and requests that you created with your code flowing beautifully from client to server and back again. The modern web tools allow single stepping JavaScript, css changes on the fly and fully transparent HTTP request debugging. </p>

<p>Many of my favourite tools are plugins to Firefox, which just makes sense. You are using Firefox, right? Of course I understand if you are using anything else, as long as it isn&#8217;t Internet Explorer. If you are Firefox-adverse, you might consider installing it just for these plugins.</p>

<p>First up - HttpFox. This plugin will show you the flow of requests between your computer and the server. Every time you hit a page or load an image in a page, every time you click in a form, even when your browser auto-completes a Google search you will see a request in HttpFox. You can see all the headers that were sent and the headers that were received and gain some insight into what is going on under the hood. I found this really useful when I was first learning how to send data to the server inside of a post request. If you want even more low-level insight into the traffic between you and the web server, I suggest WireShark. This is a standalone GNU tool that will expose all the communications between your computer and the outside world - dns resolutions and all!</p>

<p>Okay, so your web server has sent you a page&#8230; If only you could quickly change something on the page, or debug your javascript that should be modifying that paragraph. You can very easily do this with FireBug. With Firebug, you can see the current html, javascript and css files. You can also edit these files and view the in-memory version that javascript has modified. The Javascript windows feature breakpoints and other powerful debugging tools - at least more powerful that lots of alert(&#8220;hey, I got here&#8221;) statements!</p>

<p>For getting your css looking just right, I recommend Stylizer - it makes it possible to play with css, rather than getting frustrated. As as programmer who is always in a hurry, I don&#8217;t have time to do css unless I can get a lot done quickly. Its interface shows the current webpage and immediately reflects any updates that I decide to make to the styling. It treats simultaneously treats the css like a text file, while providing a very rich interface to interact with it.</p>

<p>Overall, having the right tools can turn web development from being a totally frustrating experience to the wonderful, interactive and rewarding activity that you expect.</p>
]]>
    </content>
</entry>

<entry>
    <title>The Barrier house</title>
    <link rel="alternate" type="text/html" href="http://blog.gridspy.co.nz/2009/08/the-barrier-house.html" />
    <id>tag:blog.gridspy.co.nz,2009://1.2</id>

    <published>2009-08-19T08:24:43Z</published>
    <updated>2010-07-18T07:24:57Z</updated>

    <summary> Far off the beaten trail, you will find the Barrier house. A perfect retreat from city living, it is nestled among trees high on a hill overlooking a bay on Great Barrier Island. Like most houses on the barrier,...</summary>
    <author>
        <name>Tom Leys</name>
        
    </author>
    
    <category term="barrier" label="barrier" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nexus" label="nexus" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="offgrid" label="offgrid" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.gridspy.co.nz/">
        <![CDATA[<p><a href="http://blog.gridspy.co.nz/large-img/gtbarrier_relax_full.jpeg"><img src="http://blog.gridspy.co.nz/banner/gtbarrier_relax.jpeg"></a></p>

<p>Far off the beaten trail, you will find the Barrier
house. A perfect retreat from city living, it is nestled among trees high on a
hill overlooking a bay on Great Barrier Island. Like most houses on the
barrier, it is completely off the grid and has no access to the power grid, or
council provided water and sewerage services. These are all facilities that
have to be provided on site. There is no road access to the property, the only
access is by boat and by foot. The construction process required a barge and a
helicopter!</p>
]]>
        <![CDATA[<p>This home was designed with the goal of being environmentally sound. It is
shaped and oriented to maximise the winter sun while avoiding the heat of
summer, and most of the time you can choose the temperature by just opening or
closing windows. To keep the house warm during the night and cool during the
day, the house surrounds a slab of concrete that absorbs the heat of the day
and releases it at night. The house is nestled among the trees and rises up just enough to afford spectacular views down on to the nearby bay.</p>

<p>Power is provided by a roof mounted solar grid supported by a generator for
occasional use. Usually total consumption is the same as two continually
running towel rails. Also on the roof is a solar hot water system. If the sun
is behind a cloud, you can light a fire for more hot water and heat in the
pot-belly stove that you can also cook on. The power system also has to
support the rainwater and sewerage pumps - a challenging load since these
pumps are most active when weather is bad and solar power is not available.
Without a way to start the generator remotely the house could run out of power
if left unattended.</p>

<p><a href="http://blog.gridspy.co.nz/assets_c/2009/10/gtbarrier_cabinet-9.html" onclick="window.open('http://blog.gridspy.co.nz/assets_c/2009/10/gtbarrier_cabinet-9.html','popup','width=1296,height=1936,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="Power cabinet at great barrier" src="http://blog.gridspy.co.nz/banner/gtbarrier_cabinet_banner.jpeg" width="700" height="100" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>From the start, the barrier house has driven the nexus&#8217;s design. The most
important requirement is to be able to check power and rainwater status from
town. Also important is minimising power use and predicting how long the house
can run on solar alone before the generator will have to be used again. The $2
per kWh that it costs in fuel to run the generator far exceeds the 20c per kWh
available in town so careful power management pays dividends here. Subsystems
such as the satellite based internet connection are switched off when not in
use.</p>

<p>From conception, the house was wired for control. Every light switch is
individually addressable and every light is under computer control 24/7,
accessible via any mobile phone or internet connection. We can monitor power
usage, solar power collection and temperatures and will soon add information
about water heating and usage. We already know that the fridge, computer,
washing machine and vacuum all use the lions share of the power. Over time and
with the nexus&#8217;s live feedback we learn more and more.</p>

<p>We can choose the level of access we give to our friends via the internet.
They can look at our power usage but can&#8217;t control the lights, and if they are
strangers they can only see time-delayed, low resolution data for privacy. We
have complete control over how public or how private we are online and who is
able to do what. When we come back from town we know that the batteries are
full, the lights are on and everything is ready to go!</p>

<p><a href="http://blog.gridspy.co.nz/large-img/gtbarrier_triwindows_full.jpeg"><img src="http://blog.gridspy.co.nz/banner/gtbarrier_triwindowsA.jpeg"></a></p>
]]>
    </content>
</entry>

</feed>
