One of the more interesting aspects of releasing software widely is learning about new configurations and ways people are using a particular program. Similarly, I also get to hear about new problems and situations that we did not anticipate and test in beta. Here’s our first major one.
If you’re a Thinking Home user and are having problems getting Shion to see your devices, you need to follow these steps:
1. In Finder, navigate to the /System/Library/Extensions folder.
2. Find a file named ThinkingHomeUSB.kext. Move that file from the Extensions folder to somewhere else safe.
3. Reboot your Mac. Once the reboot is complete, start Shion. You should see the controller device and be able to control your devices.
What’s going on: traditional home automation applications on the Mac (e.g. Indigo & Thinking Home) use kernel extensions to communicate with USB devices. They install the .kext file to reserve exclusive access to the device for their applications. Once these .kext files are in place, no other applications can access the controller device. It becomes necessary to remove or replace the problem file in order to allow other apps to communicate with the controller.
In contrast, Shion uses the system’s built-in driver to access the hardware. This eliminates the need to muck about in the local system folders as well as permitting non-administrative users the ability to install and run Shion. If you decide to go back to Thinking Home after trying Shion, there’s nothing on our end that you will need to remove. However, you will need to reinstall the .kext and restart you Mac to resume using your original software.
Update: Bruce Lawton from Always Thinking describes with a better way to get around this issue:
In removing the extension, you can skip the reboot by using the Thinking Home Prefs. Just uncheck the “USB Access” checkbox and TH2 will remove it and do a kextunload (skipping the reboot).
One very minor clarification: the extension doesn’t grab the USB device for exclusive access; it just tells the Apple driver to leave it alone.
I wanted to wait until Shion 2.0 had gone live before talking about this, but since it’s now out there, it’s time to address the open source question.
Some readers will remember that Shion 1.x was an open-source application distributed under the MIT license. I created Shion as part of my context-sensing research that was underway at Northwestern University. After I decided to leave academia, I knew that I wanted to make a living building and selling software products. Shion was a natural candidate, an in December 2008, I began writing Shion 2 (from scratch) using the lessons learned from Shion 1.
I’ve never wanted to stop contributing to the open-source community, so I engineered Shion 2 in such a way that I can make a living and integrate more hardware selling the software, while giving developers & hobbyists an opportunity to create home automation apps & services themselves. To accomplish this, I’ve separated the Shion device communication code from the Shion GUI code as a separate reusable framework.
Audacious Software will be making an official release of the Shion framework later this summer, when I have some time to refactor and document the framework source code. Shion.framework will be made available under the GNU General Public License 2.0. Basically, interested developers are free to use the Shion framework in their own projects under the stipulation that they distribute their own work under the same license (GPL2).
My two goals in releasing this code are the following:
1. Encourage hobbyists and other developers to implement innovative new home automation software.
2. Collaborate with the community to improve the Shion framework in terms of robustness, performance, and device compatibility.
If you’re interested in checking out the framework now (sans documentation, warts and all), please feel free to fetch it out from the Shion Google Code site. The original Shion 1.x code is there as well and remains available under the MIT license.
Please don’t hesitate to post a comment or send me an e-mail if you have any questions about the framework.
I’m currently building a roadmap for Shion features and device support and was wondering what mobile devices should be able to function as a Shion remote. Please take the brief survey below to help me figure out whether I should plan on supporting the Palm Pre, whether Series 60 support comes before Android support, and so on. Please only vote for devices that you own (or are planning to acquire) and would use with Shion.
I first encountered the phrase “spouse acceptance factor” (also called “wife acceptance factor”) when reading through Gordon Meyer’s Smart Home Hacks. Apparently the term has been around since the 1970′s, with a more recent push to make it gender-neutral. Wikipedia provides a good definition:
The Spouse Acceptance Factor (SAF) is the playful estimation of the acceptance or refusal of a new acquisition or project by the significant other. It relies on the cliche that men are driven by a certain geekiness when it comes to acquisitions like home theater or PCs, disregarding the stereotypically female aspects of aesthetics, design and practical/financial considerations, let alone ease-of-use. The first known SAF reference was in a 1989 article about wives rebellion against “oversized loudspeakers.”
The following recipe shows one easy way to mitigate your significant other’s resistance by letting them control the Shion system as well (without co-opting your own computer).