Hey everyone, really appreciate the viewership of this site. I’m really surprised how many people came check it out. Anyway this particular blog (homeawesomation.wordpress.com) has been retired and moved over to HomeAwesomation.com
It’s the exact same site, just with a different hosting company.
There will be no more new posts here, please go to HomeAwesomation.com instead. Thanks!
We moved and this is outdated, please go to HomeAwesomation.com instead. Thanks!
Well it’s been a couple months since I installed my IPcamera and linked it to my x10 door bell. It’s been pretty great. I plan to show a new refreshed video and a full introduction to the software features I use in some backend scripts and a web as well as a smartphone app that I’ve been working on.
For now I’m interested in showing my IPcamera/doorbell script I wrote for XBMC just this evening. I use XBMC on all TV’s and computer systems in my house.
This slideshow requires JavaScript.
It’s been pretty great so far at automating my media across the network and integrating my home automation notifications. I decided to write a script to send a notification to all XBMC instances when my doorbell rings and to display a live video feed of the IPcam at my porch for 10 seconds.
My particular use case was I realized when in my exercise room I will not be able to hear my doorbell over my treadmill motor and music/video playing, AND I’m probably going to be spending most of my time in that room looking at an XBMC screen. It works great, it’s very simple and it’s very cool since it pops up on any screen I have running in the house
[CODE]
##Deprecated Example!#Import the XBMC/XBMCGUI modules.import xbmc, xbmcgui, time, urllib#inherit from WindowDialog instead of Window so that it's shown on top of#what's onscreen instead of replacing it entirelyclass CamView(xbmcgui.WindowDialog): def __init__(self): #Define image location and size self.image = xbmcgui.ControlImage(870, 438, 380, 253, "") self.addControl(self.image)viewer = CamView()viewer.show()start_time = time.time()while(time.time() - start_time <= 14): #set url to ip cam image, password auth not supported urllib.urlretrieve("http://asdf.com/camera/", '/tmp/bell.jpg') viewer.image.setImage("") viewer.image.setImage("/tmp/bell.jpg") #Define image transparency viewer.image.setAnimations([('conditional', 'effect=fade start=90 end=90 time=0 condition=true',)]) xbmc.sleep(500)viewer.close()del viewer[/CODE]
This script can be run in the Programs menu or ideally for what I’m demonstrating here, it’s called by a command line script when it sees that my doorbell has been pressed. This is just a regular HTTP GET to your XBMC machine telling it to run the script.
Please note I’m using HTTP GET’s on XBMC 11, XBMC 12 requires an equivalent command over a json call. I’m pretty sure it’s not hard, I just don’t have that information right now.
http://XBMCHOSTNAME:PORT/xbmcCmds/xbmcHttp?command=ExecBuiltIn¶meter=XBMC.RunScript(/PATH/TO/SCRIPTS/DIR/script.doorbell/doorbell.py)
From a linux shell you'd execute this as:
wget "http://XBMCHOSTNAME:PORT/xbmcCmds/xbmcHttp?command=ExecBuiltIn¶meter=XBMC.RunScript(/PATH/TO/SCRIPTS/DIR/script.doorbell/doorbell.py)";
or you can just paste this into a regular webbrowser to test.
I have fully installed my door bell and camera, have developed a decent looking website and html email template and configured my cellphone to make door bell dings when the message letting me know someone is at the door arrives. It was all pretty simple. I’ll be posting a video soon but currently it’s -25’C outside.
I just got my hands on a used x10 pan/tilt camera mount. With it I have retrofitted my non-pan/tilt IP camera with it and I have written a simple yet easy on the eyes web interface with live 1 frame per second(by choice) view.
We moved and this is outdated, please go to HomeAwesomation.com instead. Thanks!
This slideshow requires JavaScript.
So what you’re seeing here is me using a Harmony remote, and a mediapc running XBMC, plus x10 Home Automation to control my Lights, Thermostat and Fireplace. The Harmony remote and my PC drive the functionality. XBMC’s Notifications via API allow on screen feed back for what commands I’m executing.
Soon I will update this page with links to illustrations, script examples and a parts list.
Parts Used:
-Logitech Harmony Remote
-XBMC PC
-X10 lights + PC Controller (any HA lights would do)
-IR543 (is an x10 IR received for the remote, but an xbmc script could do this)
Parts Used:
-Logitech Harmony Remote
-XBMC PC
-X10 Universal Module for fireplace (basically a relay switch)
-TX15B X10 thermostat (deprecated, I recommend a good WIFI thermostat)
Here are some screen shots, I’ve included a summary of most of the dialogs to give you an idea.
People might be interested in this x10 plugin for XBMC. It doesn't support linux services but I'm actually planning to add this to the existing script. http://forum.xbmc.org/showthread.php?tid=110392
Here’s some videos I’ve made of 2 solutions I did for my Carpc. On done from scratch in Ubuntu and one using off the shelf software centrafuse for windows 7.
If your car has homelink (built in garage door opener) you might want to check out using an X10 transceiver as a way to control your home automation from your car (within distance, driveway)
Common misconception, your home automation gear doesn’t have to be X10 to take advantage of this. You just leverage X10 as a bridge/transport between your car’s transmitter and your home automation server.
Simply buy a cheap X10 transceiver and USB interface (check ebay, kijiji, craigslist). You can use this to receive signals from cars with a “homelink” universal unit. Typically meant for garage door openers.
I currently have my homelink unit in my car configured to 1) open/close my garage, 2) Welcome Home Mode: Turn off house alarm, turn on exterior lights, turn on main level house lights. 3) Away Mode: Turn on house alarm, turn off all house lights, turn off exterior lights, indicate to devices like thermostat.
I use an inexpensive X10 transceiver module and an X10 USB dongle. I connect this to my Linux server (or use a raspberry pi), have a script intercept it, and perform actions like controlling my lights, security system, even thermostat.
For me this is great. I have a driveway that goes to the back yard of my house and to a detached garage. It’s really cool being able to come home and with one button press, I can light up my entire path back to my house’s side entrance. Or being able to pull away and turn off any lights I forgot about, without having to dig for my phone to do so.
Range is limited in my experience. 30 feet perhaps more. Depending on your layout you might want to set up a couple transceivers. In my case, I have one transceiver in my garage and one at the front corner of my house. I have a L shaped driveway that wraps around my house and this seems to cover it.
X10 Transceivers like this, http://www.x10.com/tm751.html are really inexpensive if found from the right source. I paid pennies on the dollar for boxes full of X10 stuff on ebay and kijiji. You’ll also need a cm19a or cm15a interface. Do your homework before deciding which and buying.
I’ve been gone for a while and now I’m back. I’ve noticed there’s a severe lack in good (and good looking) software for modern DIY home automation. In this post I’m throwing up some screen shots of a software suite that I’m currently working on. I’m focusing on my thermostat, motion sensors and lights. And getting them to eventually work together.
Considering I see a lot of impressive thermostats and various home automation products being built from scratch using Arduinos and the like, it’s a shame that none of them have a particularly good software user interface. I was in the same boatand thought, “why shouldn’t we all have a pleasant home automation interface?” I plan to put the code I’m working on up on Github as open source so that others can use this in their projects if they like, or even contribute improvements.
If you’ve created your own Arduino thermostat, this app is for you.
This software platform has been designed so that none of the protocol specifics matter to the user interface. It’s completely abstract, so if I want to use X10 or Zwave or Arduino or Philips or whicheverproducts in my home, I don’t have touch the UI code. What I have to do is configure the devices in the database, and write a “protocol translator” for the device. In other words, if I bought a new thermostat (or made one) and it had a completely different protocol/API, all I would have to do is write a basic shell script to sit between my core software and the thermostat, translating commands to API calls. Probably sounds more complicated than it is.
This slideshow requires JavaScript.
I was previously managing the thermostat and motion sensors through some ugly shell scripts. I’ve moved both over to a mysql database for configuration and state, with an HTML5 front end and some basic shell scripts to interface with the hardware. I think by decoupling these three tasks it will make it easy to shim in other protocols and hardware down the road.
In the motion sensors app, I can now get a very good idea of what each sensor is doing, making the set up and troubleshooting of sensors easy. This app shows me which zones see motion in green, dormant zones in grey. I can click a zone button to disable motion detection in that particular zone. It tells me how long it’s been since it has last seen motion . It also shows me the number of “hits” behind the main text.
When a sensor is triggered, it will run a related macro for it, to say turn on lights on that room, or whatever. The macros are just a series of basic shell scripts.
The back end service for motion detection compares the last time a zone saw motion to a timeout which can be a hard set number or perhaps a dynamic number based on “hits” of activity seen in that zone recently. An exponential push-back on the timeout. When the timeout is exceeded a macro is run to turn things like lights off or maybe adjust my thermostat. Maybe auto-arm the alarm when all zones are dormant and it’s during work hours.
Speaking of alarm, it also acts like an alarm system now. When enabled, triggered zones show up in red on the UI. The back end servertakes photos from my cameras, emails me the photos, and plays a siren and flashes all of my lights on and off in my house. It’s pretty cool considering it was a $0 feature add.
All of the data is maintained in the same database as the thermostat app. I plan to write something to use this motion data to dictate thermostat functions, so that it will operate similar to a nest thermostat.
This slideshow requires JavaScript.
The thermostat app provides your typical thermostat functions. This interfaces to an x10 thermostat which I don’t recommend. But it would easily work with any WIFI thermostat with an open API or a home made thermostat with an Arduino or Raspberry Pi.
This app also pulls data from yahoo’s weather API and logs it to the database. So now I can correlate external weather to internal thermostat usage over the years. Possibly use that data and compare it to my Utility bills.
The image in the background updates dynamically and is animated.
With both apps, it updates status changes from the back end service quickly. So changes made on one client(phone) reflects to other clients almost immediately. This is great for multi-user homes.
Also these apps automatically scale for mobile or desktop view. Meaning I only have to maintain one code line. The cool part about this is it will act as an end to end solution. It will work and look good on desktops, tablets (maybe on a wall), and phones.
I’ll post my software publicly when I have modified it for easier distribution. If you’re interested in working with it or possibly adding to it, send me your github information.
In this project we explore how to add automatic window control for a relatively cheap price to your car. I have a 2003 civic and due to its age it doesn’t have any of these features built in. It has one touch auto down for the driver window, like many cars. But I wanted auto down and auto up like luxury cars of its period. I also wanted to roll my windows up, or down, from my car’s remote/key fob. Many cars these days in the mid to high price range come with both of these features stock. Not only are these upgrade cool, but they’re useful. For one, just being able to hop out of my car, and hit lock and know that my windows will be up on their own is nice. Also on hot sunny days it’s nice to be able to crack the window an inch or two, or drop them down all the way as I approach to let the car air out.
A pleasant side effect of doing this project is it turns all of your driver side window switches into one touch auto up and auto down switches. The passenger switch will still work but won’t be automatic. IF you wanted the passenger side to be automatic, you would have to run a pair of wire from it, back to this DIE530t control unit.
The install is pretty simple so don’t let the instruction manual fool you. Follow the tutorial posted below. One issue with this guy’s tutorial is he decided to pop the door panel and wire this unit closer to the wires at the switch panel and motor. Although this is easier as far as figuring out which wire is which, ultimately it is completely unnecessary. When you open your door and look near the hinges you will see a black rubber tube going from the door to your car. This tube or hose contains all the electrical wiring going to your door panel. If you see my point here you will realize you can wire everything up under your drivers kicker panel behind the steering wheel. All you have to do is find where those wires coming in from that tube goes, and which wire does what. These wires are in a harness that just clips into a connector. That is where you should wire everything from. However popping the door panel to initially trace the wiring is probably the easiest thing.
If you try this project and want to get your door panel off, do yourself a favor and invest in a panel popper. You can get these at your local automotive store, they’re cheap, and because they’re purpose built for doing just this very thing, they work like magic. It’ll look something like one of these on the right.
If you’re too cheap or impatient to get one of these, you can use a butter knife, but you’ll probably break a few tabs. But at the end of the day the door panel will probably go back on fine. They put more tabs than required for a solid fit.
My last bit of advice is instead of tying into an existing 12v source found under your dash, run a wire from the battery. You might already have a wire if you have a subwoofer/speaker amp or a carpc. I found that when I tied into an existing power source, it wasn’t delivering enough amperage, and in cold weather the window motor was under powered.
I was recently asked by Loxone to do a review of their mini server. Right off that bat I’ll say they didn’t pay me, I got no swag, they didn’t give me any free stuff. I just did it because I wanted to check it out and they were nice enough to ask. I also owe them a huge apology as due to other unexpected obligations in my life I wasn’t able to do this in a timely fashion. Same reason why other projects I’m posting in the near future have yet to go up and my site hasn’t had any new content this year.
The videos(below) pretty much speak for themselves. I did one long, monolithic video that’s about 40 minutes, but I’ve also broken it up into smaller digests. However I’ll try to sum up in a bit of text what the Loxone Mini Server is.
The Loxone server is a lights controller, a thermostat, a security alarm, a remote door bell with camera and two way audio support. The Loxone server is a window blinds controller, a garage door controller. It’s a multi room temperature sensor. It’s a media controller. It controls door locks, RGB light strips (with amazing granularity and responsiveness). I could go on.
The software is quite robust, it has all of the built-ins you would hope for. You can take all sorts of inputs like time of day, weather, indoor temp, if you’re home and who you are, and in turn control all kinds of outputs.
Let’s not all be silly here, you obviously need to buy all the things to interface with it.. the camera, the RGB strip, the window blinds. But this is one hardware/software combo that’s able to handle whatever your demands are.
I was a little skeptical about products like this because at face value it looks like a raspberry pi with a bunch of add-ons. Something that any nerd could easily build themselves. True enough, I say to myself, this is a DIY Home Automation website isn’t it? But after using this unit it was clear that the sophistication of software provided for this system is a on completely different level than anything I’d have the time to write myself or any open source home automation solutions I’ve tried.
This slideshow requires JavaScript.
The mobile application itself is very nice. I was really impressed by the functionality and the responsiveness from the input to output. I also enjoyed a few key features like saving new scenes on the fly, and being able to schedule macros from the mobile app itself. The on-screen feed back of things like window blinds and RGB light strip color selection was a nice touch.
Considering the cost of around the $500 US range, I really don’t think I’d save that much money by building the hardware myself, and after which I’d still have to author all of the software. Although I’m pretty set for my base functionality at my current home, I think going forward in my next home I’ll be looking for a professional solution, that isn’t tied down with propriety. The Loxone Mini Server may have its own line of products to add on, but it doesn’t back you into a corner.
If you’re intrigued, take the time to watch the video as this write up doesn’t scratch the surface. But be for I go on I have to say beyond the software another selling point for me was the support. I spent 3 hours on the phone with their support to get oriented. Granted they were willing to invest the time with me as I was giving them some free publicity, but that did give me the impression that support with this company was not a bunch of crickets on the other end. It’s free and it’s comprehensive. I’m actually not sure if they have circumstances in which they charge.
I’ve also broken the full review out into shorter digests:
Additionally, Loxone also has a sizable library of general overview and support videos on their youtube channel https://www.youtube.com/user/LoxoneUS. Quite frankly they do a better job than I at explaining what their system is. I also suggest checking out their blog. It’s updated regularly and has some good articles, http://blog.loxone.com/enus/.
Conclusion
Pros:
Cost – very sophisticated offering considering the price
Very sophisticated offering 🙂
Flexible configurations and purposes
Free and real support!
Powerful configuration software
Great mobile application
Very responsive software
Losts of cool functionality baked in
Save scene from app
Schedule macros from app
Not locked in to propriety
Cons:
Platform dependant
No OSX or Linux configuration tool
No Windows Phone or BlackBerry mobile app
Web client compatibility issues
Doesn’t scale well on mobile (requires pinch zoom)
Broken on one current-gen browser tested
System was unresponsive once
I’m guessing it lost its DHCP lease and didn’t grab a new IP
Cost – I’m cheap, if it was in the $300 price range I’d be all over it
You might notice I listed cost as a pro as well…
Overall Arbitrary Scoring
Hardware – 6/10
8 wired lights out of the box, fewer if you want to run something else off the relays like a furnace/AC.
If you choose to go pure wireless for lights that’s not an issue, in fact frees up the relays for things like.. thermostats, maybe even sprinklers. All kinds of things you can accomplish with relays.
I’d like to see a USB port and software support for common solutions for retrofit purposes (zwave transmitter for example)
Addon modules are a bit too pricey for my liking
But you can solve some problems without their addons
Software – 8/10
Platform dependent (stated already)
Few minor bugs
Themes would be nice (maybe I missed it, but the default is far from ugly anyway)
Steep learning curve on config software
Support – 9/10
’nuff said, it’s rare these days to expect much here, so it’s a pleasant surprise to find out they have a practical level of support.
What does it take to get a 10/10, I have no idea.. magic maybe?
I’m pretty hard to impress when it comes to hardware, I suppose I’d have to be shown something that I hadn’t considered before or seems alien to me. However, regardless of the hardware score, I believe great software trumps the actual hardware. Really awesome hardware with garbage software is a paper weight.
I’ve had a few people ask me to clarify where the servo actually goes. And as I stated before I planned to do a full, start to finish video tutorial. I still will, but I lied on the timeline. It’s summer, I’m a home owner with many things to do, and I’m a beer drinker with many women to slur at. This blog will be more lively in the winter.
Anyway this blog post with be a live document where I will continue to add more how-to details on the blinds project. I’ve decided to start a new post because my original one was getting very long.
Tutorial #1 – Where does the servo go?
Taken from a photo that a viewer sent me, I’ve updated it with the latest in computer graphics to demonstrate that in my case I had to remove the manual crank, shorten the rod (mine was plastic) and hot glue the servo into one of the spools.
My question/advice was to see if you can turn the rod, by hand, with the manual crank still in place. Is there resistance? If so that means the crank needs to be removed. It’s pretty easy; in my case it’s just held in by clips. Looks the same in this guy’s case too.
One issue with this guy’s set up is where the green arrow is pointing, you can see that the rod is what rests on the brackets/holders. But in my set up, the spool (metal drum.. plastic in my case) has a lip on each end and this is what rests on the holders. So, this guy will have to be innovative to get this to work and I look forward to seeing photos of how it’s accomplished.
p.s. I’ve been super negligent in my task of offering a tutorial of this. I just haven’t built anymore yet.
I just wanted to do a post giving a big thanks to all those in the arduino.cc community. Every since I’ve posted my project on their user’s WIKI I’ve been getting steadily 10 times the traffic I used to, every day.
And I can see that many of them are also looking at my other non-Arduino projects. I would love to hear from the community and know what kind of stuff interests them.
I’ve only been using Arduino’s for a couple of months now but I’ve quickly become addicted. I have some more projects on the way…