Tell LinuxMCE about your home

From LinuxMCE
Revision as of 23:06, 5 December 2007 by Bmk789 (Talk | contribs)

Jump to: navigation, search
This article is a stub and requires expansion


Most people who have experience with other smart home solutions say LinuxMCE's setup, or actually lack thereof, is the best part. With other products it can take weeks of programming for your dealer to get the system setup. With LinuxMCE, it can be done in only a couple hours, without programming or macros. The dealer or the homeowner himself uses a simple website, called LinuxMCE Admin, which runs on the Core, to describe the home and specify the preferences. This requires a fresh way of looking at home automation and a couple new concepts. IMPORTANT: Be sure to read the concepts below carefully, since everything else will be much clearer then.

Concept #1 - No Macros

If you've worked with other smart home software, you know that everything revolves around macros, scripts and programs. But with LinuxMCE there are none. So this approach may seem foreign at first. Quick example: To setup A/V equipment with other products, you get a design/macro tool. With Crestron, it's VTPro, with Philips Pronto, it's ProntoEdit. If you want a button called 'Watch Videotape', you use the design tool to create the button, and then you build macros: the macro sends an 'on' command to the TV, waits 5 seconds, then sends a 'switch to input: svhs', then sends an 'on' to the receiver, waits 5 seconds, and sends a 'switch to input: video2', and so on. The macro is just a 'dumb script'--it doesn't know what you're really trying to do, and cannot make accommodations dynamically. Also, the script can get out of sync if you do things in a different order, and if you change your A/V equipment, you must write new macros again--reprogram everything.

With LinuxMCE you have an A/V wizard page that shows you a diagram of all your a/v devices. Just drag and drop to tell LinuxMCE how you connected the VCR to the tv and receiver, as shown below. That's it--LinuxMCE figures the rest out on it's own. LinuxMCE handles everything else automatically. It knows to take into account things like delays for power on, timing of digits--it's all automatic. And the best part is this approach allows LinuxMCE to actually anticipate your wishes. If you walk over to the receiver and physically turn it on and switch the dial to 'video2', LinuxMCE senses this and knows that's what the VCR is connected to. So LinuxMCE reacts accordingly, without you doing anything. It will automatically turn on the VCR, turn on the TV to the right input, adjust the lights, and display a VCR remote control on any Orbiters in the room, etc. This kind of "artificial intelligence" would be impossible with a macro-based system like everyone else uses.

Audio/Video connection wizard--just draw a line and LinuxMCE does the rest

Concept #2 - You don't build the user interface--LinuxMCE builds it automatically

As mentioned above, with virtually all other smart home systems there is a design tool where you build the user interface. With them you pick various images and basically "draw" a screen that will appear on the remote control, or Orbiter. Of course LinuxMCE also has a design tool, called Designer. However it is not intended that dealers or homeowners will ever use it, or will ever design their own user interface. With LinuxMCE the actual user interface you see on the Orbiter is built for you automatically by a piece of software called OrbiterGen. All you do is tell LinuxMCE what equipment you have and what you want to do with it using a non-technical web-based wizard, and you pick from a catalog the style, aka motif or skin, that you like, and OrbiterGen does the rest.

It's true that you lose some flexibility this way. For example, you cannot decide that you want the button which starts the TV to be twice as big as the one to start DVD, like you can with the other smart home products where you build your own user interface. You can't do that with LinuxMCE because you are not deciding on the size and position of the buttons at will, rather OrbiterGen is making those decisions for you based on the style you chose.

However, there are 2 huge advantages which we feel make it worth it. The first is speed and cost. If OrbiterGen didn't design the user interface for you, you would either need to do it yourself, or hire a dealer. Either way it takes a huge amount of time and costs a lot of money. Plus everything needs to be redone every time you want to make changes. The second advantage is consistency. A comfortable user interface is the biggest factor in determining how much you enjoy your smart home system. With other smart home systems this varies greatly depending on the skills of the person, or dealer, who designed the user interface. With LinuxMCE it's consistent.

Concept #3 - Devices

Every piece of equipment in your home that LinuxMCE will control is a "Device"; the motion detector, the VCR and the telephone are all devices. The Core, media directors and Orbiters are also Devices, as are all the various pieces of software running on them, such as the PVR and DVD Player.

Some devices are called "Interface Devices", which mean they are used to interface with, or control, other devices. When you have 1 device that connects to a piece of LinuxMCE equipment, and then a bunch of other devices connect to it, that 1 device is usually an "Interface Device". For example, when setting up the security system you will probably have an alarm panel which connects to the LinuxMCE Core. Then you will also have various sensors throughout the house which connect to the alarm panel. The alarm panel is an interface device, the various sensors are security devices. You probably will have an infrared transmitter which controls your a/v equipment by sending infrared codes. The infrared transmitter connects to a media director, or to your LAN, and is what LinuxMCE communicates with. It is an Interface Device. The a/v equipment it controls is not--they are normal a/v devices. If you have a lighting system, chances are there is 1 interface device, which is the master controller, and then a bunch of lighting devices like lamps and light switches.

Every device, except for the Core, Media Directors and Orbiters, has a controlling device aka the "Controlled Via" device. This is the device that is responsible for controlling it. In your lighting system, the "Controlled Via" devices for the lighting interface is whatever computer you connected it to, either the Core or a media director, since that computer is what will be responsible for controlling the lighting interface. Then all the lamps and light switches you add to the house will be "Controlled Via" the lighting interface.

This concept allows you to mix a lot of devices together. For example part of your house may have a Lutron lighting system, and the other part may have some X10 lights. Therefore you will have 2 interface devices: the Lutron controller, and the X10 controller. On the lighting devices page you can add all your lamps and light switches regardless of what kind they are. Each will have a "Controlled Via" pull-down. For the lamps connected to the Lutron system you will chose the Lutron controller as the "Controlled Via", and for the X10 lamps, the X10 controller. The advantage of this approach is clear when you go to create a Lighting scenario. You can create a scenario which adjusts all the lights in your house, even though they are on 2 different systems. And the interactive floorplans list all your lights together. This is much more convenient than maintaining 2 separate systems. But it requires that when choose the correct "Controlled Via" device when you add the light.

Concept #4 - Scenarios

What we call 'Scenarios' are sometimes called 'Commands', 'Actions', 'Command Groups', 'Scenes', or 'Moods' on other systems. A scenario is basically a series of commands, or tasks, which are activated by touching a button. All the commands will be sent to devices, so when using LinuxMCE Admin you must choose your devices before you can create scenarios. Remember how we said that with LinuxMCE you don't design the user interface, OrbiterGen does? OrbiterGen will create a button for each scenario you create. So, when you want a button on the Orbiter in the Living Room called "Entertaining" that turns on some lights and starts some background music, you don't use a design tool, rather you create a scenario in the Living Room, which you call "Entertaining", and in the scenario you choose the lights and music player you want to control. To keep things organized, scenarios are separated into rooms, and arranged by type: Lighting Scenarios, Media Scenarios, Climate Scenarios, Security Scenarios, Telecom Scenarios, and Other Miscellaneous Scenarios.

Putting it all together

There are then two ways to use the Orbiter to control the devices in your home. The most common way is to create a scenario that does common tasks and which appears as a button on the Orbiter. The second way is to control the device individually using a floorplan. In the LinuxMCEo Admin site you will be able to upload graphical floorplans of your home, and then position devices on it. The Orbiter will then show you the floorplan and let you touch individual devices to control them.

Here are some screen shots to show you how it all works:

include/images/quickstart/lights.jpg" target="_blank"><img src="include/images/quickstart/lights_small.jpg" border="0
Step 1: Add devices using LinuxMCE Admin. This is the lighting devices wizard, reached by choosing Wizard, Devices, Lights from the LinuxMCE Admin web site on your Core. Note that 3 of the lights are EIB, controlled by the EIB Interface we called "EIB Test Device", and 1 of the lights is controlled by a low cost 1-wire relay interface, called "Link 45i". Also note that for the light called "Big Lamp" we chose the floorplan object "Ceiling Light"

include/images/quickstart/floorplan.jpg" target="_blank"><img src="include/images/quickstart/floorplan_small.jpg" border="0
Step 2: We upload one or more floorplans of our house that we create using any paint program or that we scan in. Position the lights using the floorplan wizard. We got there by choosing Wizard, Devices, Floorplans, and then choosing "Lighting Zones". Note that we just drag and drop the lights, and you can see we put "Big Lamp" in the middle of the main room.


Step 3a: Create some lighting scenarios. We got here by choosing Wizard, Scenarios, Lighting. In Katie's room we created a lighting scenario called "Bedtime".

include/images/quickstart/litscenb.jpg" target="_blank"><img src="include/images/quickstart/litscenb_small.jpg" border="0
Step 3b: When we click on the 'Edit' link next to "Bedtime" scenario, you can see that this scenario will turn off 2 lights in the house, including "Big Lamp", and leave the other 2 alone.

include/images/quickstart/mainmenu.jpg" target="_blank"><img src="include/images/quickstart/mainmenu_small.jpg" border="0
The finished result: After we run OrbiterGen, this is the main menu it created for us which we see on the Orbiter. When we touch the button "Bedtime" it will turn off those 2 lights, including "Big Lamp".

include/images/quickstart/light_floor.jpg" target="_blank"><img src="include/images/quickstart/light_floor_small.jpg" border="0
When we hit the "Lighting" button on the main menu, we see our floorplan and the 3 lights we positioned using the floorplan wizard. Note that "Big Lamp" is in the middle of the main room, where we positioned it, and that the icon used to represent it is a "ceiling lamp", which we specified when we created the light. The icon is color-coded to indicate its current state. In this case orange means it's turned on. To control this light individually touch the icon on the floorplan and then a set of controls will popup so you can turn it on or off or dim it.

Concept #5 - Quick Reload Router and Quick Regen Orbiter

The main device that coordinates all the activity in the home is called DCERouter. It forwards messages to devices, sometimes hundreds per second. So for performance reasons when DCERouter gets a message for a device it does not look this device up in the master database which LinuxMCE Admin uses to store your devices. That would be too slow. But this means that if you just added a new device and then immediately try to use it DCERouter will not know the device exists, and won't send any commands to it. So, after you add new devices, before you can use them DCERouter must re-read the list of devices in the master database. You could, of course, reboot the Core, however that takes a while. A faster option is in LinuxMCE Admin to go to Wizard, Restart and choose "Quick Reload Router". That only takes a few seconds and DCERouter will pick up any new devices. You can add all the devices you want, but remember that before using them you either have to reboot or do a "Quick Reload Router".

Also, you remember that the tool called "OrbiterGen" is building your user interface for you. This actually takes some time since it means stretching and scaling the graphics, choosing the right language, and applying the skin, or style, you chose to get the right look and feel. If Orbiter tried to do this on the fly each time you needed to view a screen it would be too slow. So, OrbiterGen pre-renders all the screens so the Orbiters can respond quickly to your requests. But this means that if you add a new scenario or change what a scenario does you won't see the new button on the Orbiters until you run OrbiterGen. You do this by choosing Wizard, Devices, Orbiters in LinuxMCE Admin and clicking the "Quick Regen" button.

How long it takes to generate the user interface depends on how extensive your changes are. If you only added some scenarios OrbiterGen shouldn't take more than a minute or two to build the user interface for an Orbiter. But if you changed the skin, or motif, or resolution, or other changes that require OrbiterGen to recreate every single screen from scratch it can take up to 20 minutes or so to build the user interface for each Orbiter. Whenever you reboot the Core/Hybrid all the Orbiters user interfaces will be generated if you made recent changes. So, while you're still tinkering with your scenarios the best approach is to create or modify several scenarios at once, then do a "Quick Regen" on just 1 Orbiter. Then test those scenarios on that Orbiter, and repeat until you are satisfied with all the scenarios. Then you can either reboot, or choose "Quick Regen All" to regenerate the user interfaces for every Orbiter in the house, including all the media directors, webpads, pda's and mobile phones.

Let's get started

Now that you understand the concepts, let's get going! First turn on your Core, or hybrid. If you chose a Core, not being used as a Media Director, then it will boot up and you will see a simple menu like this:
include/images/quickstart/console.jpg" target="_blank"><img src="include/images/quickstart/console_small.jpg" border="0
LinuxMCE Core; After boot-up menu

<p>You don't need to do anything. Your Core is up and running. Just make note of the IP address � you will need it to configure the system. <p>If you choose a "Hybrid", that is you are using your Core as a Media Director, it will boot up to the same welcome menu as any media director. Note the welcome menu will only appear on the first boot. After that, it will boot to the normal main menu, however, you can click the LinuxMCE logo in the lower left corner of the main menu to see the advanced options, including all the buttons on the welcome menu.
include/images/quickstart/welcome.jpg" target="_blank"><img src="include/images/quickstart/welcome_small.jpg" border="0
LinuxMCE Media Director/Hybrid; Welcome menu

<p>You need a web browser to configure your LinuxMCE system using the LinuxMCE Admin Website. You will see the following web page.

include/images/quickstart/wizard.jpg" target="_blank"><img src="include/images/quickstart/wizard_small.jpg" border="0
LinuxMCE Admin web site; Starting the Wizard

You will select each of the links in the left panel to choose your basic settings, add the devices, scenarios, and event handlers. This quick start guide has a general overview. However, every page in the LinuxMCE Admin site has context-sensitive help. Click the 'HELP' button for detailed instructions about that page.

Normally when you are using LinuxMCE Admin for the first time you should complete each page in order since sometimes a page lower in the list may rely on information provided on another page higher up. After the initial setup, you can jump around. Always be sure you specify at least the rooms and users first. Almost every page will ask you to pick a room or user.

Specifying Basic Info, Devices and Scenarios

The first few pages ask you for Basic Info--who are the family members, what are the rooms in the house, and so on. Then you will tell LinuxMCE about the devices in your home. Here you can check off what software modules you want and choose options for your media directors and orbiters, like screen resolution and the look and feel of the user interface. You also pick the a/v equipment you have and tell LinuxMCE how you hooked them up, and choose the home automation devices you will use. Here you can add more Orbiters, too, if you want to use webpad's, pda's or pc's as remote controls. Don't worry about adding mobile phone Orbiters--as soon as LinuxMCE detects them it will display a message on all the media directors and other orbiters asking you if want to use that phone as a remote control. If you do, LinuxMCE will create the device and put the software on the phone automatically--you don't have to do anything but hit 'ok' or 'accept' on the phone and accept the default settings when prompted. There's also a Floorplan wizard. You can create one or more floorplans of your home using your favorite paint program, and then upload them into the Floorplan wizard, which then lists all the devices in your home and lets you drag and drop them on the floorplan.

See: Testing and troubleshooting devices for info on sending commands and following logs. It can be a bit techie.

Scenarios pages. This goes back to concept #4. Remember what we call 'Scenarios' are sometimes called 'Commands', 'Actions', 'Command Groups', 'Scenes', or 'Moods' on other systems. A 'Scenario' is a set of tasks you want LinuxMCE to perform. For each scenario you create the Orbiter will display a button you select to make LinuxMCE execute that scenario. For example, you can create a scenario called 'Good morning' that opens the blinds in your bedroom, turns on the lights, turns the tv on to the local news, adjusts the temperature, and takes the phones off do not disturb. Then a button will appear on the orbiter, the media director, and the mobile phone that says 'Good morning'. You only create the scenario 1 time in LinuxMCE Admin, and it becomes a part of the user interface on every Orbiter throughout the home. Select it, and LinuxMCE does all those things. To make it easier on you, LinuxMCE categorizes your scenarios as Lighting, Media, Climate, Security, Telecom and Misc.

In reality any scenario can do anything. The 'Good morning' scene we mentioned actually does a bit of everything. So what type of scenario is it? It really doesn't matter, you can put it in whatever category you want. But in general practice, it would probably be a 'Lighting Scenario' since those scenarios are normally used for moods, or scenes. The 'Media Scenarios' are often just for media tasks, like 'TV', 'Movies', 'Music', etc. The 'Climate Scenarios' are typically reserved for controlling environmental devices, like the hvac, pool, jacuzzi, sprinklers, etc. 'Security scenarios' usually consist of arming/disarming the alarm, viewing surveillance cameras, and an 'SOS' button. 'Telecom scenarios' are normally for making phone calls, and are most often speed dials.

To make it easier for you to create your scenarios, LinuxMCE's scenario wizards will guide you by default. For example, when creating a 'Lighting scenario', the wizard gives you a simple check list of all the lights in the home. Of course, if you want your Lighting scenario to also, say, turn on the a/c, then while creating your lighting scenario just choose the 'climate wizard' to throw in some climate commands too.

You will probably have lots and lots of scenarios, so LinuxMCE groups them by room. Your Orbiters and mobile phone remote controls will automatically show you only the scenarios for the room you're in to keep things simple. However, you can hit a button to select a different room, and select one of that room's scenarios. Note that putting a scenario in a room doesn't mean you only control devices in that room. You can create a scenario called 'Go to bed' that you put in the room 'Master bedroom'. That scenario can turn off all the lights around the house, lock the front door, etc. When you put the scenario in the room 'Master bedroom', you're just telling LinuxMCE that you would normally only want to see that scenario when you're in the Master bedroom--not that you only want to control devices in the bedroom. You're not so likely to want that scenario when you're in the kitchen--there you'll have other scenarios like 'Make Dinner'.

This structured approach makes LinuxMCE much more usable. Rather than a screen with tons of buttons, when you enter a room you see at first just the scenarios you are most likely to want in that room. A few Lighting scenarios or moods, some buttons to control whatever media is in that room, and so on.

Orbiter Generator even analyzes the tasks you will need to preform based on your scenarios, and automatically builds other user interfaces for you. For example, if you create a scenario to control your jacuzzi, Orbiter Generator knows to build you a graphical user interface with the advanced options for the jacuzzi too.

IMPORTANT NOTE: Remember concept #5. Whenever you add, remove or change any scenarios or any devices on your floorplans, or if you change the look and feel for an Orbiter (called the 'Skin'), the Orbiter Generator tool needs to rebuild your user interface. While your Orbiter's user interface is being generated you will not be able to use that Orbiter.

Real world example & tutorial

Every home has a different mix of devices and you will want to do different things. However we created a step-by-step tutorial for setting up a low-cost smart home system for under $1,000 based on X10, a gc100, and a couple SlimDevices. The procedure and concepts, however, is exactly the same with a $100,000 high-end based on Lutron, Vantage, EIB, etc. So, you may want to read the tutorial anyway to better understand the techniques. It can be found Testing and troubleshooting devices.

Next Steps

By this point you're probably done with LinuxMCE Admin for now. However, there are some other things you will want to do:

Setting up your phone system

If you chose the Asterisk module, see: AMP Configuration Guide

Setting up your PVR

If you're using Myth TV, the software is already installed and most options are already set. Please read the quick step-by-step tutorial to set a few final options: Setting up MythTV

Upload your media

The Core automatically creates Microsoft Windows compatible network shares (uses Samba) . There is a "public" share for putting all files that the whole family can share--movies, music, etc. And there is a private share for each family member. To access these network shares in Windows, choose Start, Run, and type \\ plus the IP address of the Core or hybrid. For example: \\ Note that if you add new family members, their network share will not be available until after you reboot the Core/Hybrid. Once you copy your media into the appropriate folder, you can go into the LinuxMCE Admin site, choose "Files & Media" and "Media Files Sync" to be sure your media is in the database, add attributes (artist, actor, etc.), and choose cover art. You can also put a disk in any media director and hit 'copy disk' to copy the media to the Core.


After you have set everything up, you should do a full reboot of the "LinuxMCE universe", meaning rebooting the Core/Hybrid plus any media directors. You can do this by choosing "Restart" from the LinuxMCE Admin site wizard (the last option), or from any orbiter or media director by clicking the LinuxMCE logo on the main menu and choosing "Reboot Core".

If your media directors support both software power off and wake on lan, the core will turn them off before it reboots itself, and will turn them back on when it has finished booting up. If not, you may need to reboot the media directors manually by cycling power on them. Note that you should not turn the media directors on until the Core/Hybrid has finished booting up.


LinuxMCE will automatically keep an eye out for software updates and will notify you when it would like to update itself.