 OK, so let's get started. I got quite a bit to cover. I think you've chosen wisely by coming here this afternoon. There's a lot of cool stuff here I'd like to show you. Hopefully everything works. I'm carrying about, what, 60, 70 pounds worth of equipment to this conference. I could easily say I've got the most stuff here. Thank you. Yeah, thanks. So anyway, before we start, I'd like to recognize the people. How many open source contributors do we have here in the house? OK, a few. Basically, this project would be nothing if I didn't have anything to build all this stuff on. This project, I think I've got 40 plus gems that I use to make it happen. And I just wanted to, by a round of applause, thank all the open source contributors for spending nights and weekends helping us on a day-to-day basis. OK, so before we actually really start, I'm a software guy. I'm not an electrical engineer or anything like that. There is a possibility of a small fire that may occur from this equipment here. So I would like you to notice the exit. Already, I've got one blocked out. So you can go that way. So please note your exit pass. OK, a little bit about me. My name is Fernand Galliano. I run the rail group, the Denver Rails users group. I also contributed a couple gems out there. One of them is Zia, which is a graphic package to integrate with your Rails, Merb, or Sinatra applications. Also have the more, which allows you to track user interaction within your website, performance issues, exceptions, things like that. You can check them out there on GitHub. OK, home automation. How many people do home automation here? OK, a few hands. What kind of systems do you guys use? Just extend. Extend. Extend. OK, seems to be the popular model out there. The cool thing about Extend is you don't have to go into drywall and breakwalls and wire stuff together. It's cheap. It's very inexpensive to get into. The issue is, of course, Extend works by noticing spikes using your current wiring. And basically, when a spike is detected, a light can go on or off any kind of devices like that, which is great. I've used Extend in my past. And the problem, I would walk in at my house and have the light turn off, and everything was on. Somebody in the neighborhood used the air dryer or something, and it triggered my house to light up. So it's not very reliable. But let's talk a little bit about what is home automation? What kind of stuff can you do with home automation? So this is kind of what I would look for in a home automation system, right? Be able to control lights is great, but also I want to integrate music, and I integrate my pictures and my videos and my climate control, air conditioning, heater, and stuff like that. There's a lot of concern about security now with the economic downturn, you know, a lot of people fear about their safety at their house. Before this, I was talking to my neighbor. She got one of the security services to help her, preventing her from getting ripped off. And she's spending 90 bucks a month with an outfit not to get ripped off. In my mind, just go off. Hello. OK. Can you hear me now? All right. So there's a slide here. It's about average energy consumption in a regular size house. Of course, heating and air conditioning takes a big chunk of the kilowatts that a house consumes. How many people in their house runs a computer 24 hours? One or more computers 24 hours a day. Yeah, that's the same issue. OK, so maybe it's a gig factor or whatever, but we tend to consume quite a bit of power at our house. Just nothing too terrible here. One thing that's interesting is a regular desktop will suck up 120, 150 watt or more of power. And it's kind of interesting to see the change in computing forms where you start seeing a lot of low power devices getting down to 20 watt for a computer, even 13 watt for a computer. So basically, vendors are trying to get into your house basically a new appliance. You can think of it as a new fridge or a dishwasher, where they want to try to get a box of small computers that will run 24 hours a day on a low power consumption. Speaking of power, we are in the energy crisis. The grid cannot possibly support the demand nowadays. You have basically the cost between, I guess, the windows 3 to 6 o'clock. The power that used to be 2 cents a kilowatt goes up to 80 cents a kilowatt because they have to fire up gas powered generators and nuclear, possibly. So it is a concern for each of us to try to limit the amount of energies that we spend, with the also coming in of the electric cars. Those things would be plugged into the grid. So basically, the current infrastructure won't be able to scale. There's a lot of companies, including Google, that basically try to tap into your house with, I guess they call it, the power meter. Some devices that go by your power at your house, and they'll be able to check what many kilowatts you're consuming, and if you're going over and things like that, of course, using a website. So for me, I actually wanted to look at, what is my power consumption? It's like, we don't have bank statements, just illustrating how much we're spending every month. But when it comes to power, you get one bill, you've sucked up an X amount of kilowatts, you're such and such money, but you never have a breakdown of where is that power going. So you basically have no way of knowing. So I think what I wanted to look at is, how can I monitor my power consumption at my house? What's sucking it up? So that's kind of why also I got into this project. So when I started looking into that community, I found a few. I wanted to do an open source type system. I didn't want to go in and buy this prepackaged solution that you can get out there, but I felt too constrained. I want to use my skill as a software engineer to write code that I can use on a daily basis. So here's a few solutions that are out there. I kind of looked at each of them and tried to investigate whether it was worth spending more time. There's different protocols out there. We already talked about X10 and Insteon in a way. There's some stuff that require wiring to your house, but there's also probably most interesting is the ZigBee and Z-Wave, the last two protocols. Those are radio frequency two-way protocols. You can get status and send commands. ZigBee is probably the most industrial solution out there. Big bandwidth network. It's the same idea as Z-Wave. It's a mesh network. So devices can basically route to expand the range. The one I looked at is Z-Wave, which is kind of more based toward home automation. So there's 200-plus vendors out there, including Lutron, Levitron, the nice switches that you see out there that are getting into the Z-Wave protocol because it's low energy. The chip is very small, and it's easy for them to embed that into their devices. So the one open source system that I wanted to look at was LinuxMCE. How many people have heard about LinuxMCE? Who too? OK, good. Basically, it's always talking about mashup, technology mashup. In my opinion, LinuxMCE is like the biggest open source project out there because they encompass all those concerns that I was listed earlier, telephony and climate control and different protocols, Z-Wave, ZigBee, X10. And basically, they encompass everything into one system. The source code was actually contributed by a company out in Florida. And the bulk of it is really pretty well done because it doesn't matter really what kind of devices you are talking, whether it's an IP device or a Z-Wave device or a TV or a stereo. You can basically talk to it using a given protocol that I'm going to cover here. So before we start looking at the code, a quick thing, the gear. I've got, like I said, a lot of equipment here. This is an ASUS EE box. If you can see it, you can come afterwards and take a look and touch and feel. This is a 20-watt computer. It's an Intel Atom processor. And it's very low power, 160 gig hard drive, under $300. I mean, it's pretty accessible price-wise. Then over here, I've got this. If you guys can see the blue thing that's flashing, this is basically a Z-Wave needs to have a module that recognizes. So you need to register the devices. So when you buy a new device at your house, you can walk around with that dongle and there's a button on it. And you press it. And you register that device. And they give it an ID and so forth. And then you come back to your computer, plug it in. And now you're ready to emit and receive Z-Wave commands. Then I've got this kind of like the gig factor. You know, the Glenn this morning actually covered it. It's kind of funny. You know, like a physical device that allows me to see what's going on within the system. So I've got a little Arduino board here that basically is registered. I've got a rules engine. And when the rules fire, you will actually blink a light there on the Arduino board. Then I've got this is a regular wired IP camera, router, speaker system, things like that. And then those are box here, which is a global cache box that allows me to interact with this system, with my home, amp, TV, and so forth. This is an IR transmitter. So we basically, you know, I can register IR command and then blast my home auto-tomersetter with one of those. Of course, I don't have all the devices here, but you know, the main point here is that you can integrate different protocols within the same system. OK. So like I mentioned, I contributed a gem out there. Hopefully people are interested in it. It's on GitHub, and it's called R-House. All right, so you know, at the base of the system, the Linux MC system, there's something called the DCE router. And this is really the core where every message goes through the DCE router to route the message through the appropriate device. If you don't remember anything else about this talk, this is the important slide to recall. So here, you know, this is what a DCE message protocol will look like. So the first number is, you know, the from device idea. Let me pause for a second. I'm going ahead of myself. Linux MC, the reason why I opted for it is there was really two things. One, Ruby came bundled with it, which I thought was interesting. The other interesting part of it is they have underneath, you know, MySQL database that basically store all the devices that are available on the network. And those here are those IDs, the 28, 0, and so forth are actually device IDs within the system. So for us, you know, people, you know, Ruby and Rails type guys, you know, having a database persistent store that we can tap into and extract information or store information is pretty interesting. So from device 0 to device 28, which, you know, happens to be a light. One, basically, is the message protocol whether I want to actually send a command or an event. 184, again, you know, this is a database ID on the command table. Basically, is turn light on or actually set level on the light. And then the last two parameters are basically what level do you want to dim the light at and, you know, 50 being the value. So part of the architecture here is, you know, you got the DC router, you got your devices and you get a database, right? All of that stuff is already hooked up. This is what you get out of the box, you know, with Linux and CE. And then basically my challenge was to integrate a C++ world into a Ruby world, right? So I needed to be able to figure out a way that I wanted to use my skills as a Ruby developer to, you know, enhance the system and add technologies that I knew about. So the challenge there was, you know, basically using a socket. So the router, you know, will respond. You can open, you know, two sockets, one for command type channel to send commands, you know, to the DC router, to different devices. The second one is basically receiving events. So when a device fires, you can actually get an event from it. So I basically created something called the RAC Interceptor. And this comes, you know, with the R-house gem. It's installed, you know, as a BIN script. And you register the R-house interceptor with the Linux and CE as a device. You know, in Linux and CE everything is a device. And basically once you are registered, you know, you can manifest interesting, you know what? In this system I'm interesting in lighting event and music events and, you know, climate control events. And then basically the router, every time you get such an event, you will actually forward it to the RAC Interceptor. So this is the point of integration between the C++ world and Ruby. Then I created, you know, something else called R-house which is a web service. So basically the idea of home automation is that actually you don't have to be home to use it. So the, you know, I'll show you later, you know, I've got an iPhone app running here. I can be, you know, across the world and basically turn my lights off and on, you know, at my house. You know, yeah, this is a gig factor but if, you know, somebody was at your door and you, you know, tripped the sensor and your camera went on, you probably won't want to see a notification of what's going on, somebody getting to your backyard. So the R-house web service basically is, you know, service available all out there and I can ping it and get status and send commands into my house system. Okay, so basically I can connect to the database as well and extract information. Then, so the interceptor, you know, I wanted to be able to blast stuff, right? So, you know, when you start talking about, you know, many devices at your house, you know, you know, they're going to start, you know, spewing events pretty quickly. So what I ended up doing is putting a rabid MQ, you know, instance up an interceptor just, you know, as soon as it gets an event, it just wraps it up and then push it on the queue and then basically at that level, you know, this is kind of like the interaction level of you creating your own application within the R-house framework. So basically, R-house application is really one of those queue consumers. So you can have, you know, workers to do, you know, whatever you want. At that point, you are actually going to get events. The rabid MQ, I mean, people are familiar with rabid MQ, okay, a few. So basically it's set up, you know, with an exchange and every worker, you know, subscribe to that exchange and get events from there. So the stuff that I've done, you know, there's a noser gem that's called my R-house, which is, you know, kind of like simple applications for the R-house framework. I'm basically giving, you know, a rules engine that basically triggers, you know, different events, you know, respond to different events in some ways. I also have a monitor that, you know, basically, you know, checks, you know, lights on and off type event and, you know, logs it. So at the end of the month, I actually can go back and see, you know, what my wattage was, you know, from my lighting system. Okay, and then, let's see. Then I have, you know, basically the R-house web service, which is really the point of integration, right? I mean, you don't have to use, you know, you can use any kind of technology there to tap into the system, right? So it's, you know, Rails app, you know, the R-house web service actually is Sinatra application. How many people use Sinatra here? Okay, good number, yeah. Okay, so let's, you know, get into a demo. So one thing that's interesting is funny because last time I was setting this thing up and actually have a Twitter, my house actually tweets. And basically, you know, when, you know, I don't have everything tweeting, but, you know, when the lights come on or off, you know, I get a, you know, send a tweet notification. But also when I play some music, he actually tweets. And this morning, I got up in my hotel room and I'm checking, you know, my tweet because I was bored at some time to hear. And, you know, somebody actually replied to one of the tweets because I played one of his favorite band, this is soundtrack. So I thought that was kind of funny. Anyway, so let's jump to a demo. Usually I start that way, I'm kind of maybe too nervous. Let's try this. So here is, I've got a, you know, sensor. It's an occupancy sensor. Basically this guy is kind of a three in one type thing. You know, it tracks brightness and temperature and, you know, whether somebody's in the room or not. And there's also a battery level. So, you know, this is a wireless Z wave device. And, you know, if I trip it, something should happen. So music played, right? The light dimmed 20%. This is the soft mood when you get into your house. You know, basically, you know, here's what happened, right? So I tripped the event. He goes through the RH interceptor. He goes through the rules engine. And the rules engine says, hey, OK, you know, I got, you know, sensor tripped. And, you know, there's some state there as well. But, you know, he actually figures out, OK, well, part of the resolution of this rule is to dim the light to 50% and play very white on your stereo system, right? That's pretty cool. All right, so let me switch the scenario real quick. And I'll show you. So this is the hard part of the demo, because I'm always switching between a bunch of stuff. And OK, so let me play the same thing. So this is what I was, ladies in the audience, which we are very fortunate to have. Now, so if I, oh, sorry. OK, so I'm replaying the same thing. Now, basically, I just set a state. You know, I've got a memcache instance, you know, running on that box. And, you know, I'm going to trip again and see what happened. Hopefully, we get a different resolution. See? Maybe not. Oh. Nope. Bury again. I always have trouble with that sense. Yeah, sometimes it's, you know, just, ah, here we go. So in honor of Stevie Ray's 20th anniversary yesterday, contribute that to Austin folks. So same deal, right, just to state change in memcache. The light went higher, so 100%. And then Stevie Ray started playing on the audio. OK, so now we're going into demo mode. So basically, you know, when I read the system, I kind of wanted to have like a rare type environment, right? So I could develop here on my Mac and don't have to be on the box. So I've got different environments set up. So here, I actually have, you know, the same thing as the script console, right, the RH console, the RHS console. And that gives you, you know, the same level of interaction that you would have, you know, within a rare application. So, you know, I did mention I've got a database underneath me and I built, you know, those active record, you know, models to look at it. So, you know, if I did something like this, you know, so... Oh, oh dear. Let me do this. Can you guys see this? Basically, I just looked for a device with ID 36, which is a lamp. And basically, I can pull this device now and ask it, hopefully. So basically, this device has three commands I can send on, right, it's on, off, and set level. This is on that light over here. Similarly, I can, you know, look at device 36, which is this camera right here. And again, you know, I can ask it, you know, what kind of commands do you support? So, you know, here I can, you know, take a snapshot and move the camera left, right, and so forth. So, let's interact with those devices, right? So, let's see here. Okay, again, my cursor back. Okay, so basically, you know, part of the web service, the house web service, I got two set of commands. One is kind of like the human mode, where I actually will address devices by name. And the other one is kind of more of a machine mode where I can access things, you know, with their IDs. So, part of this is, you know, it's kind of a utility really to the web service. So, I don't have to know the detail about, you know, which port and so forth. You know, I wrote this little, you know, command interaction API. So, basically here, I'm gonna send a human command, you know, this light is in my office at home and I'm actually gonna tell it to go off. So, now the light is going off and you see the little Arduino board, you know, that's basically the Arduino, you know, catch those rules and genes, right? So, you know, red means off and then back on. You know, similarly, I can do, you know, the same thing, I can actually dim it. So, here is the set level command that we saw earlier and whoops, it's going too far. Take my word for it. So, basically it's, you know, the set level command, you know, dim to 50%. Okay, so this is interacting with the Z-Wave, which actually I didn't show you, you know, basically plug into the wall, you know, you have this little, you know, dimmer thing here and this is the Z-Wave device, right? This was registered with that dongle over here and, you know, that's what it is. So, you know, with a regular Z-Wave without matching, you have about 100 feet, worse of distance, you know, unobstructed that you can run this stuff at. Okay, so this is fine. So, this is for the light. Now, if I switch to, you know, my camera, I can actually see. All right, so I'm gonna tell the camera to do something. So, the camera was, ooh. Oh, device 36. It's an IP camera, I think. Okay, of course you can, let's see. So, that's you guys. Yay! All right, so let me shoot that command. Hopefully, something happens here. Where am I? Oh, here I am. Okay, so let me re-shoot that. Hopefully, something happens to the camera. Yeah, so, I don't know, I'll do it again because it's kind of very subtle. So, I should be moving left, I guess. Yeah, okay. So, you know, and then I can move it left as well. Okay, that's fine. Okay, and so, part of this now, if I brought my Twitter guy here. So, I've got my house here. So, you know, basically it's gonna be delayed a little bit. You know, my house is tweeting on lighting and music events, so you can see, you know, Barry White, you know, playing Stevie Ray Vaughn and the lamp was turned off, right? Let's see if I can use these things. No. Okay, let's go back. If you have any questions, feel free to blast. You know, I'm probably gonna run probably over. So, you know, let's look at some code. So, the interceptor, like I said, you know, load this configuration, you know, from a configuration file. It's kind of like Rails, you get different environments, you know, you've got a production environment, testing environment, dev environment, so forth. So, in this case, you know, I just, a lot of the YAML file and the interceptor is actually registered as a device, you know, a generic device, a virtual device with the Linux MC box. So, that executable is actually managed by Linux MC. So, when the system starts up, you know, it's gonna fire me up and I'll be like already hooked up and ready to send the events in and out. Then, you know, this is the configuration file here, you know, nothing too interesting, you know, the ports. The main thing here that's interesting is the events. So, you know, here I'm registered to listen to your camera, lighting event, security, climate, so forth. And then the different environment that I can run this thing in. I saw, like I was explaining, you know, I've done socket programming before. It's not that much fun, but it's actually funnier in Ruby. So, these are actually the two sockets I open, you know, the, you know, event socket, command socket, and then, you know, basically just connect to the router and then, you know, notify that, you know, I won't, you know, hook up to it now. And then, basically, you know, the register event loop that pauses that event YAML in the configuration file and just registers, you know, interest in those events. So, when the router actually gets those events, he knows that I need to get those forwarded to me. Okay, and then, basically, we have, you know, the rule system, rule B is the gem that I use, you know, out there, which is a rules engine in Ruby. And, you know, pretty easy to use, really. You know, you just fire up the rule engine and then I match, you know, the rule based, in this case, you know, the description of the device. So, in this case, that's a design player is actually the CD player on the Linux MCE box. And I can, you know, look at what type of event, whether it was, you know, play or stop or pause. And based on those, say, the little switch statement here that basically entailed the Arduino, you know, go ahead and blink and so forth, right. Okay, then, you know, this is part of the Sinatra application. It's very simple, right. You know, if I get a post for a command, I basically gonna turn around and you call this API here, that knows how to connect to the router and how to, you know, put up a socket and send that command forward. Any questions so far? You guys are pretty quiet. I'm worried. Must be after lunch, but he's kind of digesting the pizza or something. He's straight forward. Cool. All right, so, this is, you know, basically the, you know, the actual send command. You know, I'm using our first, you get another gem here to, you know, connect to the web service and, you know, push out the commands. You know, nothing too terrible here. Okay, so, jump into another demo. This, you know, supposed to be very hands-on type stuff. Yes, sir. So, what's the, what's the other one for? So, okay, you know, basically, you know, I've got a lot of events coming in, right. Those devices, you know, fire up a lot of events. And really, instead of like tailing the log file to figure out, you know, especially I'm doing a lot of changes back and forth, I can just get a visual cue. It's kind of the same thing as the packet Glenn gave out this morning, you know, the little paper thing. It must be like modern age. Now we get actually cooler devices to do, to do that kind of stuff. So, basically, I just get a visual signal that I got the event. And, you know, the colors actually know what to look for, right. So, I know if I got a red, I got an off. If I got a green, I got an on. So, it's basically just for me to monitor this. Yeah, and plus, you know, it was kind of a geek thing too, you know, because I wanted to use an Arduino for the longest time, but I couldn't find a really good scenario to use it in. So, now I have one, right. And eventually, hopefully it'll become, you know, some kind of a piece of furniture in my house, right. I can have a glow, a glob type thing, you know, and yeah. So, that's the idea behind that. Thank you for the question. All right, so, let's do this. So, let me show you what I did. So, you know, I have this command level API that I showed, you know, in the IR vehicle console. So, now let's look at, you know, other things that I got. So, basically I built this web, you know, dashboard type thing, right. So, you know, my light is dim right now, so I'm, you know, 50 watt, you know, lamp. So, I'm, you know, 50% right. My thermostat, you know, same thing at home, right. I can control my thermostat, it's a Z wave thermostat, so I can, you know, between three and six, I'm not at home. You know, what do I care about the AC being on? I can just turn it off from my office, right. Oh, speaking of this actually, you know, this is our house, but all this stuff I'm showing here, you can apply that to your office. How many people live at night with your monitor on? Be honest, you know, leave your monitor on, you know, all day, right, all night. Yeah, so same deal, right. You can use that around the, around your office, you know, the whole X10 lava lamp thing. You can do it cooler with this kind of stuff, right. And you are in Ruby, right. You can integrate to a cruise control right there. Anyway, so, you know, the thermostat, here's you guys again, you know, it's, you know, you know, portal. And then back here, you know, this is kind of like a chart of, you know, my usage, you know, my lighting, right. So I don't know, it's, you know, months worth of stuff here or whatever. And basically I can look at my consumption and see, you know, like, the things, this lamp is actually really in my office at home and it's a dark room. So just kind of tell you how much our is actually put in. Those black lines are probably like weekends where I try to, you know, ease off the gig factor. Anyway, so from here, you know, I added, you know, things so you can, you know, control the thermostat. I mean, it's very simple, you know, off, you know, heat, cool, and the temperature. This, I don't have that device here, so I'm not gonna show anything. And then, you know, the lamp control. So I should be able to bring, you know, the, you know, this thing to higher. Did it do anything? Yeah. It's brighter, you know, turn it down, right. And Arduino should kind of follow here. Same thing on the camera, you know, I can control it as well. So imagine, you know, those things are really devices at your house, right? Somebody ring the doorbell, Z-Wave, boom, you get an event, right? And it's okay, well, who is it, right? You can, you know, be anywhere and see, you know, their mug, you know, right there on your dashboard and figure out whether you should let them in or not. And, you know, same deal here, you know, you should be able to, you know, pan if we do something. Yeah, so we moved, yeah. Okay. All right, so this is one interface, right? Which is fine, you know, it's usable, you know, if you have a, you know, web browser you have, you know, access to, you know, that's cool. And then, let's look at something else now. So if I can find my cursor. The big one for me, you know, I'm, you know, kind of, you know, on the road and not at home very often. And I kind of want to keep striking of things, what things are going on. And of course, you know, this is my idea of my new remote control, you know, I want basically this and this to be my house automation system, right? I'm tired of finally with, you know, 15, 20 remotes, you know, through the years you kind of accumulate them, you don't even have the device anymore, but you keep the remote because either it was cool or you don't remember where it was used at. So this is the same thing, right? This is basically this application here, you know, with the, you know, an iPhone UI on top of it. And, you know, basically same deal, you know, I should be able to cruise around and your iPhone doesn't render that well, but you know, you get the idea, you know, so I should be able to turn the light off here or not. Maybe reload this. I think it's a good name, I phoned it because it doesn't really work all this time. So I'm toast. Okay, so anyway, take my word for it. Here it is right here. So I'm actually gonna go in. Actually, I could do this, right? It should be something like that. I don't know that. It's kind of like Blair Witch Project, maybe a little bit. So I should be able to, you know, hit the light and, you know, so basically it lists, you know, my lights that are available. Can you see that? I don't know. Oh well, so I'll just show it like that. So basically if I hit off the light will go off. Yeah. Feel free to give me some encouragement here. I'm sweating back here. I have carried about 70 pounds worth of equipment. I have no, it's been two days somewhere the same underwear. Okay. But enough about me. Okay, so let's see. So here I got the light, you know, I've got my lamps, you know, same deal here, you know, I've got the camera portal, you know, so I can look at you guys, you know, same thing, you know, I can, you know, activate it and so forth. You know, and here it's nothing special really. I mean, you know, you know, there's the, you know, iTunes remote, you know, you can get here from Apple, right? You can play your music from your iPhone. Well, this is a little bit cooler. I can control the whole house with this thing, right? So I basically build, you know, a thing to access my music library. And Linux MC is really cool, right? You know, I've got a 500 gig, you know, hard drive at home with all my media, you know, photos and videos and music and so forth. I just plug it in. It detects the device. You're going and scan it, index everything and boom, it's available. You do nothing, right? So I don't know, what are you guys in for? Besides players? Okay, let's try that. All right, so, you know, here I've got my album. Should be able to pick that and you'll pick a song. And again, you know, play, pause and volume. So I should be able to hit play. Great. Okay, play. All right, I'm playing music. So I can pause it. Right? I think I might have hit more than once. Okay, so should be able to pause. Okay. Or not. I think I'm too nervous. I hit it probably more than once. Anyway, I got a volume here. So it's lower. Yeah, that works. All right, so this is kind of like, definitely the remote of the future, I think. Okay. I'm directly from that phone or does it control the computer? Yeah, I mean, the music is playing right here. So yeah, that's a very good question. I should clarify this a bit. So, Linux and CU come, Linux and CU actually come in different flavors, right? You have basically a core, you can set up as a core, which is like my ideal home entertainment center, right? It's in my basement, it's a racquetball, you know, it's kind of a maybe macho kind of thing, but you know, a big disk, I can store all the media and so forth. And then you have what's called a media center, and that device will live next to your entertainment center, right? So if you have a TV in the kitchen or whatever, you will have a machine there or in your, you know, bedroom or living room and so forth, you will have a, you know, device that basically is part of Linux MC network, but it's very, you know, it doesn't have to have a big disk and it just has to be able to boot and have a video card on it so that you can control it, you know, remotely. And then this is what I have here, which is basically called the hybrid mode. This is both a core and a media center in one box, right? So this model of S2C box is the, you know, 302 model. It's just, you know, DVI, you know, output for video. It's not really that great. The newer versions have, you know, HDMI so you can, you know, plug in directly into your TV and, you know, Linux MC, I really recommend going to the site and check out the videos. Some of the people out there are really doing some crazy stuff with this thing, right? They have the Jara remote, right? So you'd be like watching a movie. You move the remote that way, you know, the movie goes fast forward and then back. It's really cool, and all the menu system is integrated within your TV set, right? So you fly over, it's kind of like, you know, the Mac, you know, menu bar, you know, it will actually fly up and show you, you know, the various movies, things like that. So, you know, do check it out, it's really cool. Okay, so that's ends this demo. Okay. All right, so we're almost done. So basically, references, so Linux MC site, a lot of good information there. You know, they have a wiki for, you know, how to do things like that. Basically, Linux MC is based on Ubuntu or Ubuntu, Debian, you know, Linux, and, you know, sits right on top of it. The installation is, you know, for this box, really, I kind of sweated a little bit to install it because the Intel video is not that well supported. You know, if you have, you know, an iron processor or an NVIDIA cord, and you don't have to use one of those, right? If you have something in your basement, you know, that you haven't used, no P5 or whatever, you can drag it out and install it on there. Then there's the Z-Wave Alliance for a read more about the Z-Wave protocol. And Mikasa Verde is a site where you have like different, you know, devices and dimmers and light switches and things like that. My links, unfortunately, I don't blog as often as I should. You know, I'm not that big of a blogger. I'll try to do a little more. Basically, I set up a Google group, Ahouse Gem, if you want to join, and I'd love to see what you guys can come up with if you're interested in getting to that project. Again, the Git repo for Ahouse and my Ahouse gems are out there. My email address and my Twitter handle. You know, this is, you know, in my experience, when I get this working, and maybe I'm just a gig, but I thought it was really cool. You know, the fact that I can write code to control physical device is really interesting to me. You know, this is kind of the fun part. And this is, you know, in a way, you know, I want to make you as fat as the guys on the wall here, right? Because you become lazy, right? Why do I need to go downstairs to turn the light off, right? And just hit that phone. So, and usually the same deal, you know, I'm leaving my house, you know, I'm on my street, and I notice I left the light, you know, in my office on, right? I just reach for the iPhone, boom, you know, it's off. You know, that's kind of cool. Anyway, so really and truly, you know, this project is about you guys, right? I mean, you know, I've, unfortunately, I've wrote some code for a long time, you know, probably more than I'd like to admit, but this is kind of an opportunity to use your chops for yourself, right? You can write code and use your code so you can become, you know, the customer, you become the developer, you become the architect, and you can use that code on an everyday basis. It's kind of cool of a concept, I think. So find something that passionates you and you can, you know, find a way to automate or write software for it and use it for yourself as a hobby. I think that's a great thing you can do. Okay, questions, you know, thank you so much. You guys have been great. If you have questions, please be accurate. We only have time for just a couple of questions with a red load behind here. Okay. Let's go ahead and take like three questions. Yes, sir. You mentioned you started looking at this because you wanted to measure power use. What did you use to actually measure and how much of your house could you measure? Okay, so basically, the way I integrate is, you know, of that Rabid MQ. So I've got a listener or monitor that basically, you know, goes through the event. So when I see a lighting event on or off, I actually log it somewhere in the database. So now that graph that I was showing in the bottom of the dashboard, this is the result of looking at that on the database. So now I can easily compute, you know, the usage of my power, right? So I've got, you know, timed entries on when the lights were turned on and off and you should be able to, you know, let's us get, you know, kilowatt, you know, rating from that. So that's the idea behind that. There was a loser here. Yes, sir. What did we find your slide deck here? What's that? What did we find your slide deck here? I don't know. I guess those guys probably will post it somewhere. Yeah, I think that we posted something like that first. And I really could not do that tomorrow. And I've got, you know, it's very similar. I did this presentation at RailsConf this year. So you should be able to find it on slide share, I think. So each time you dim the light, how do you know how much power it is? Yeah, so that's the thing. So basically I got the event. I know, you know, the level of dim. So now I can figure out, you know, what the wattage was for dim light, right? So does this even allow you to get the power spec of how much is it going to do? No, so that's a very good question. Actually, you would have to register. I have not done that. Basically, you would have to register, you know, what kind of device and what kind of wattage it is, right? So that is something that you would have to do to, very good question. Yeah. So you would have to use something like a killer watt kind of a thing to find out how much it doesn't use. Yes, yes, yeah. And you know, it's funny because they had an article on the, you know, some rag. And they actually were showing that even a power strip with everything off will actually still suck up, you know, the ghost power, they call it. So yeah, I don't think you can get to, you know, very precise measurement, but it's getting a vague idea whether you left, you know, two, 300 watt flood lights in your backyard on, you know, for the last two weeks, you know, I was going to take a dent in your budget. Some hands, there were some other hands. Yes, sir. What would you say the cost of looking at something would also be? Okay, that's a very good question. So I already mentioned, so this is, you know, $300. The devices themselves, you know, there's different grade and it also depends whether you're doing low voltage lighting or just line voltage lighting, right? The dimmers are different. Typically, you know, the starting price of a Z wave dimmer, enabled dimmer is about 10 bucks more than what you would pay for a normal thing. So yeah, it's an expensive, you know, endeavor in some way, right? You want to be able to get devices that you can rip off at the end when you move out and move it to the next house. And of course, you know, Lutron, Levitron, that makes you some bitching dimmer, you know, with, you know, LCD and stuff like that. Those are gonna be like way higher, you know, $90, $100, you know, but those are probably low voltage dimmers. You know, this guy was about $50, you know, this is just, you know, regular sensors. The Z wave dongle was like $70, I think. This was, I think, 100 bucks for the IR. So the notifications that you have here, it will send a tweet. Could it call you? You can do, now you are in Ruby, right? So now you have this rule engine that tells you can do, you know, if you want to send, you know, SMS to yourself or whatever, you can actually do that. Yeah. So we're gonna get... Okay, thank you very much, guys. You've been great. Thanks.