OpenRemote converts your PC, Mac, Linux computer or even your NAS device like QNAP or Synology into a full-featured Home Automation Gateway. It is also worth mentioning that OpenRemote delivers a nice WYSIWYG framework called OpenRemote Designer, which helps you in creating iOS/Android applications with a visual design tool.
If you will try to dig deeper, then you will understand that OpenRemote is basically an "integration platform" for connecting different useful components into a working system, for example:
- It doesn't have its own Z-Wave Controller, but provides recommendations and code examples to integrate with RaZberry or Aeon USB Z-Stick using their available APIs.
- It doesn't have its own implementations for many other protocol controllers like EnOcean, X10, KNX, AMX etc. But is has some proven methods and integration code for connecting to the vendors' certified devices, for example: USB gateway for EnOcean network or NetLinx Controller for AMX.
The full list of supported protocols is available on OpenRemote's web site: http://www.openremote.org/display/docs/OpenRemote+2.0+User+Tutorial#OpenRemote2.0UserTutorial-ProtocolIntegration
So what's the real value of OpenRemote itself? If it doesn't implement the actual networks and the protocol-level controllers for your Smart Home.
My own assessment of the main value of OpenRemote - quick and easy implementation of GUI applications for the control panels. Yes, including the backend system for GUI to serve the actual logic of your Home Automation applications.
Again, OpenRemote is an integration and automation platform for wrapping around all the involved technologies and presenting them with a nice GUI. You will need some other things, both extra hardware and software, for implementing a working Smart Home solution using OpenRemote.
So let's try to play around with OpenRemote and implement our own "Hello World" Smart Home system - controlling the light bulbs with Z-Wave protocol.
For our "Hello World" Smart Home we will need the following things:
- Any device officially supported by OpenRemote Controller - it can be your Mac/PC laptop or another device from the list of supported ones: http://www.openremote.org/display/docs/Get+Started#GetStarted-SettingUpOpenRemote
- Z-Wave Controller - the one supported by OpenRemote: RaZberry board (http://razberry.z-wave.me) or Aeon USB Z-Stick (http://amzn.com/B003MWQ30E)
- Any kind of Z-Wave enabled Light Bulb Socket - for example: http://amzn.com/B00G3OEW9C Please pay attention to the radio frequency values for Z-Wave, they must be compatible between your Z-Wave Controller and Light Bulb Socket.
- Registered account for OpenRemote Designer: https://composer.openremote.org/demo/login.jsp
Since OpenRemote Designer is a web-based tool you won't need any installations. Just open it and try to create some devices for your Smart Home and some screens for your iPhone application:
- Go to "Devices" section and create "Smart Light Bulb" device.
- Next we need to create several commands to control our Smart Light Bulb: "Light On" and "Light Off" to keep it simple. You can also add "Light Level" command for dimming the lights later.
- Upon creating these commands please select Z-Wave in the protocol selection and a couple of extra Z-Wave parameters: nodeID and Command Name. Please use this web page for the related instructions: http://www.openremote.org/display/docs/Discover+Controller+Z-Wave+Devices
- Now logically we need to create a "Light Switch" for turning on/off our Smart Light Bulb remotely. But there are several other steps to be accomplished before this one.
- Create a new command "Light State" for reading the current state of our Smart Light Bulb (on, off). Please use the instructions from OpenRemote to configure the detailed Z-Wave parameters.
- Create a new sensor object - go to "New Sensor", enter "Light Sensor" for its name and select "Light State" in the list of available commands. In the list called "Type" just select "switch", because we're dealing with a binary operation here (on/off switch).
- Now we're good to create our "Light Switch" object - go to "New Switch", enter "Light Switch" for its name, select our previously created "Light State" sensor and logically select "Light On" and "Light Off" for the related commands.
OK, now we're good to go with our Smart Home network. We've just created our own controllable Connected Lighting network based on Z-Wave protocol. Let's create some screens for your iPhone application now.
- Go to "Panel" section in OpenRemote Designer and create "Lights" screen using the intuitive panel with widgets.
- Place the switch GUI control onto your screen and connect it to the previously created "Light Switch" object.
- Basically you're done now or you can continue implementing some other GUI features for your iPhone application. I've added another option for dimming the lights based on the slider GUI control.
Picture 2: Creating a new screen in OpenRemote Designer for Connected Lighting App
Now save all your work in OpenRemote Designer and export everything in "openremote.zip" file - downloaded automatically by pressing "Export" button in the top menu.
Open the previously installed OpenRemote Controller in your web browser, by default it is available with the following URL: http://localhost:8080/controller
Select "offline" for the configuration update mode and upload your "openremote.zip" file from OpenRemote Designer. Or use the "online" mode for direct syncing with OpenRemote Designer - it just didn't work for me somehow...
Now just follow the rest of instructions on OpenRemote web site to deploy the designed user interface to your iPhone device: http://www.openremote.org/display/docs/Deploy+your+user+interface
That's it! Now you can control your home lighting with your iPhone device!