PDA

View Full Version : The modern home (Discussion)



RadiationG0D
May 24th, 2013, 11:11 PM
Hi everybody!
I've had this crazy idea for a while now of having a single top-of-the-line computer running linux standing at home in a room, waking up as soon as I got home.
This computer would then connect to all screens in the house (say 2/3 pc monitors, 1 tablet and a TV) and give them each a desktop interface that would not only be able to operate individually from each other, but also have access to the same files and a specifically fitted desktop interface.
Sending open programs to another screen with a it's own linked audiosystem would also be nice, as well as being able to activate all speakers with the same or with different songs at any given time without opening windows on all monitors, or even by using the phone. Voice control throughout the house would also be a nice feature.


So, here are the requirements:



A single ubuntu (or other linux) computer capable of:

Running 3 pc interfaces
Running 1 tablet interface (android tablet)
Running 1 TV interface
controlling individual sound systems on their own and all at once
Running 2 3d intense games on 2 diffrent screens
Running multiple programs at once focused on one screen
Understanding speech
Waking quickly
taking commands from mulitple keyboards, mouses, via a touchscreen and TV remote/cellphone
shutting down as soon as I leave home
sending messages to all screens at once



And the question (for discussion):
If you wanted to accomplish all of this in a single home with today's technology in the cheapest possible way:


[*=1]What kind of software and set-up would one need?
[*=1]What kind of hardware are we looking at (And what prices?)





----------------------------
☢ RadiationG0D ☢
----------------------------

whatthefunk
May 25th, 2013, 12:15 AM
So you want a computer to run 3 different OSs on 5 devices at the same time that can understand speech and have a dozen different input devices. Youll either be needing a time machine or a super computer.

deadflowr
May 25th, 2013, 12:28 AM
I'd begin by reading through stuff like this

https://help.ubuntu.com/community

Then when not reading, working to make lots of money to spend on all the stuff I would need.

georgelappies
May 25th, 2013, 11:10 AM
Well this sort of home automation is semi doable. Have a look at this site:

http://en.wikipedia.org/wiki/List_of_home_automation_software

The biggest issue is the speech recognition. Apple and Google have been pumping millions into trying to get it right and it is still not close to what you see on Star Trek ;) But as for the rest, it could be done with the right sensors and software. Could it be done however at a reasonable cost is another question altogether.

RadiationG0D
May 25th, 2013, 11:42 AM
I'll have a better look at the wiki suggestiond when I get home, but it looks interesting!

However, regarding the interfaces: what would be the easiest way to run 2 or more screens with different desktop interfaces? (KDE, Unity, GNOME)
And how would you stream one of these to a wifi connected tablet?

georgelappies
May 25th, 2013, 12:23 PM
I'll have a better look at the wiki suggestiond when I get home, but it looks interesting!

However, regarding the interfaces: what would be the easiest way to run 2 or more screens with different desktop interfaces? (KDE, Unity, GNOME)
And how would you stream one of these to a wifi connected tablet?

As for running Unity and KDE at the same time but on two different screens from only one box you would have to use vm software like virtualbox and run each instance as its own setup. But why would you want to do this??? Do you just want to 'look' at the screen or do you want to interact with it? If you want to interact with it from the tablet you would have to connect to the applicable vm on the server and use VPN / openssh software to control the vm's desktop.

So you won't stream the screen as streaming implies only a one way interaction but you will actually log in to the vm running either Unity or KDE via the tablet.

vladster
May 25th, 2013, 12:25 PM
That is looking complex

whatthefunk
May 25th, 2013, 03:21 PM
Why would you want to stream an interface to a device which already has an interface? That makes no sense at all.....

The best way to do this whole thing would be to just have a separate computer/device for each thing. Running all these different DEs and screens through one computer is silly.

zer010
May 26th, 2013, 12:06 AM
What you're after is a few clients and a central server. Although it would work for pretty much all of your requirements, it would not be ideal for gaming as you laid out. I guess gaming could be done if the server was a $10000 beast, but it'd be best to let the clients carry that weight. Also, why would you ever want your server to turn off when you leave? You could access it and all of your files remotely and if you add a printer, you can even print remotely and have hard-copy waiting on you when you got home!

Paqman
May 26th, 2013, 07:34 AM
What kind of software and set-up would one need?


Depends how close to your vision you want to get. Home automation is very possible, and can accomplish much of what you're looking for off the shelf. Take a look at projects like Linux MCE (http://www.linuxmce.com/) for an idea of where things stand. Unfortunately much of the home automation hardware like X10 is expensive.

To get all the screens in the house linked up all you need is a server that has all your data on it, that's trivially easy. You can get a pre-confgured server image that does that from Turnkey Linux and have it up and running in a few minutes.

Smart TVs can access content shared via DLNA/UPnP, or you could add a small computer (RPi?) to the back of a dumb screen to enable it to access content over other protocols like NFS or SMB/CIFS. The other options for multi-screen computing would be thin clients, virtual machines or possibly a full-on multi-screen setup.

I would suggest not using thin clients though if you want to have different interfaces. Better to boot off a local device (even if it's just an RPi) and connect to your data over the network.

Voice control would be nice, but doesn't work well in my experience. Micing up a whole house and expecting it to deal with ambient noise and commands from multiple sources would be a nightmare. There are cunning things you can do though, such as carrying a RF fob (something like bluetooth or zigbee?) in your pocket so that the system knows where you are and tracks you smoothly. It could have music or lights follow you, or send the current VM you were working in to the closest machine, so you wouldn't have to be far from a way of interacting. Smartphones are also an obvious option for an interface.



What kind of hardware are we looking at (And what prices?)


Depends on what decisions you make to satisfy your demands.

What I would suggest is that you start with a single reasonably capable server that can be easily expanded as your requirements change. Don't try and do everything all at once. Prioritise what you want into a list of several stages of implementation. It's unlikely any one platform will be able to do everything out of the box. Pick the one that gets you most of the way there and implement that. You may be able to get started with the software side using a machine you already own, or a cheap second hand PC. Sharing data over a network and running some home automation needn't be resource intensive, it's only once you start wnating to do things like gaming that you're in trouble.

Have you considered a streaming gaming service like Onlive to get your multi-screen gaming? Why reinvent the wheel if someone's already done it for you?

What you're trying to do is complex and there are a zillion little frustrations that could get in the way. Don't try and bite off more than you can chew. Divide it up into little stages and do them one at a time. That will smooth out the cost too.

georgelappies
May 26th, 2013, 09:20 AM
Depends how close to your vision you want to get. Home automation is very possible, and can accomplish much of what you're looking for off the shelf. Take a look at projects like Linux MCE (http://www.linuxmce.com/) for an idea of where things stand. Unfortunately much of the home automation hardware like X10 is expensive.

To get all the screens in the house linked up all you need is a server that has all your data on it, that's trivially easy. You can get a pre-confgured server image that does that from Turnkey Linux and have it up and running in a few minutes.

Smart TVs can access content shared via DLNA/UPnP, or you could add a small computer (RPi?) to the back of a dumb screen to enable it to access content over other protocols like NFS or SMB/CIFS. The other options for multi-screen computing would be thin clients, virtual machines or possibly a full-on multi-screen setup.

I would suggest not using thin clients though if you want to have different interfaces. Better to boot off a local device (even if it's just an RPi) and connect to your data over the network.

Voice control would be nice, but doesn't work well in my experience. Micing up a whole house and expecting it to deal with ambient noise and commands from multiple sources would be a nightmare. There are cunning things you can do though, such as carrying a RF fob (something like bluetooth or zigbee?) in your pocket so that the system knows where you are and tracks you smoothly. It could have music or lights follow you, or send the current VM you were working in to the closest machine, so you wouldn't have to be far from a way of interacting. Smartphones are also an obvious option for an interface.



Depends on what decisions you make to satisfy your demands.

What I would suggest is that you start with a single reasonably capable server that can be easily expanded as your requirements change. Don't try and do everything all at once. Prioritise what you want into a list of several stages of implementation. It's unlikely any one platform will be able to do everything out of the box. Pick the one that gets you most of the way there and implement that. You may be able to get started with the software side using a machine you already own, or a cheap second hand PC. Sharing data over a network and running some home automation needn't be resource intensive, it's only once you start wnating to do things like gaming that you're in trouble.

Have you considered a streaming gaming service like Onlive to get your multi-screen gaming? Why reinvent the wheel if someone's already done it for you?

What you're trying to do is complex and there are a zillion little frustrations that could get in the way. Don't try and bite off more than you can chew. Divide it up into little stages and do them one at a time. That will smooth out the cost too.

Excellent reply Paqman, I like the way you think. Your idea with the Raspberry Pi's is great. Think I am moving this into my cool things to do when I have the time list :)

RadiationG0D
May 26th, 2013, 11:24 AM
Agree with georgelappies. Extremely good answer Paqman!

As to the question why one would like to run diffrent interfaces at once: running GNOME 3 on a tablet would not be ideal.

And for everyone who thinks about why one would only want one computer for all this, just because! Also, it's hard to keep multiple clients up to date, with the same files and starting speakers in the entire house whenever you feel like it. Server, well sure but having to publish changes every single time and not having the same local file structure can be frustrating. (Especially when the files won't sync properly - happens to me all the time with U1)

So, to get the "right" idea: think about the Enterprises' main computer and the LCARS system reaching throughout the vessel.
(Star Trek reference for those who don't know.)

Paqman
May 26th, 2013, 11:51 AM
it's hard to keep multiple clients up to date

That needn't be a big problem. LTS releases doing automatic security updates and a local APT mirror should make maintenance pretty minimal and be frugal on bandwidth (if that matters). The hardware would probably need updating before the software did.

Having centralised storage for your data doesn't mean doing absolutely everything on one machine. You only need one machine somewhere on your network that specialises in storage. Generally this is called Network Attached Storage. A server that does other stuff could also be a NAS, or you could go for one of the small low-power dedicated NAS boxes off the shelf. Like you say, syncing files between local machines by going through the internet is needlessly complicated and unreliable. Much easier to centralise all your data and just mount the shares on the other machines. Doing that also simplifies your backup and recovery plan, and allows for easy redundancy (never trust a hard drive!).