beakable / beakpi

Raspberry Pi home automation using dojo
121 stars 24 forks source link

X10 Gateway Support (such as CM11A X10) #26

Closed blak3r closed 11 years ago

blak3r commented 11 years ago

Hi Lian,

I'm interested in collaborating a bit on this.

I have an old X10 Controller (CM11A) which is a serial device. From what I can tell from your webapp you're doing XML post to a service running on the PI which must then be relaying the serial commands to the harmony controller through a usb to serial dongle.

For CM11A support, I'd probably just add a serial port class such as https://code.google.com/p/php-serial/ and invoke commands directly to the CM11A. A separate service would probably be better for being able to keep a memory of the device states... but that seems like overkill for my needs at least.

Anything important about future plans I should know before I start hacking? I.E. is there any gateway abstraction already in the works? Or any timeline on when you think the configuration of the nodes in the web interface will become possible?

Thanks and keep up the great work.

beakable commented 11 years ago

Hey Blake,

This would be fantastic! Would give me a good push to get back into powering on with it!

You're exactly right on how the current setup works and your thoughts on using a serial port class sound good.

No future plans or anything in dev right now on my end for the gateway. I've been mainly focusing on the temperature gauging with CouchDB and the recent settings storage also with Couch.

I'm more than happy to move focus and work on the storage/configuring of the the nodes via the webapp if you want me to do that.

Many thanks for the interest and looking forward to some codes!

Iain

blak3r commented 11 years ago

Hi Iain,

So, i've done a bit of research into other solution for home automation since I posted last.

There are several solutions I found. 1) heyu - this provides a daemon/CLI which works with the CM11A directly and was able to install it on my raspberry pi. It does not however provide any type of web interface or rest api. 2) There are several web frontends that then build on top of heyu to provide a web interface. The one I ended up playing with is called: domus.link (http://domus.link.co.pt/).

Basically, all these home automation systems are way overkill for what I and what I suspect you are looking todo. I just want an incredibly fast way to do 3 things:

The automation systems do all kind of things with creating schedules, having multiple rooms / locations (which would be very nice if you lived in a large home i'm sure)... creating macros etc. They also try and remember the state of all the lights that are on etc so things like dimming can be more intelligent.

It's hard to say how much demand people will have for such a scaled back version home automation that would meet my demands. I get the sense that home automation nerds would want the kitchen sink which to me seems like would make you have to reinvent the wheel too much. Perhaps instead you should just make your project become a frontend for heyu/domus.link... It'd make it more of a pain to setup obviously but would allow you to stay focused on delivering a superior UI.

One interesting thing about the domus.link webapp is it exposes a rest api which you could utilize and then not have to have to get into the lower levels of serial ports or implementing specific drivers for CM11A and it's variants.

Here is what I dislike greatly about the domus.link native android app.... It doesn't cache anything. So, each time you open the native android app. It takes a few seconds to pull your configuration from the server. To me that's not acceptable. It's understandable why it does that... but just not really inline with what I want and actually makes the native app worse then having a webapp.

Oh and one other nice thing about domus.link is it provides a GUI for setting up heyu so that's a plus. In my opinion it's fairly complicated though.

Sooo yeah... what are your thoughts?

beakable commented 11 years ago

Hey Blake,

Yeah that domus app looks extremely overkill, especially when the UI is row after row of different aligned drop downs. I definitely think we're on the same page in terms of wanting simple controls and being able to create modes/macros.

I feel though that reinventing the wheel here might be the best way in the long run though.

Currently I envision the mood/macro setting to record certain calls made via utils to the Pi by the Spotify/Pandora/HomeControl and storing them. On the press of a button these calls will then be repeated which should all be fairly simple for the dimming of lights and playing of creepy music.

Next stage would be adding a timer or conditions which stored within Couch and checked against via the node backend. Calendar/date wise this should be fairly straight forward, if we just throw in the dojo date calendar things.

I presume it will be easier to have the macros auto perform on certain temperatures or perform Mopidy commands for instance if we have built this part ground up?

Or do you feel we would have a lot of control and flex with domus?

blak3r commented 11 years ago

domus does basically give you the entire front for configuring your scenes.

What i'm currently planning on doing is making a very basic phonegap project.

Page 1 = Home page. A list view of each scene. Initially this is going to be a hard coded list of my 4 scenes with an on click which does a rest call

POST http://:pin>@<ip/api.php/runscene/

Page 2 = Settings put your ip / password here...

From there you could get fancy and add a simple settings box which let people add the scenes they want to show.

I don't really know what Mopidy does etc in your project. I don't even have speakers setup at my place at the moment so can't even utilize the spotify part. Sorry to be a tease but I got some other open source projects going on at the moment that i'm failing behind on. I think I'm just gonna do the phonegap part now and put that on github and move on to other things.

~blake

On Fri, Sep 13, 2013 at 3:48 PM, Iain Hamilton notifications@github.comwrote:

Hey Blake,

Yeah that domus app looks extremely overkill, especially when the UI is row after row of different aligned drop downs. I definitely think we're on the same page in terms of wanting simple controls and being able to create modes/macros.

I feel though that reinventing the wheel here might be the best way in the long run though.

Currently I envision the mood/macro setting to record certain calls made via utils to the Pi by the Spotify/Pandora/HomeControl and storing them. On the press of a button these calls will then be repeated which should all be fairly simple for the dimming of lights and playing of creepy music.

Next stage would be adding a timer or conditions which stored within Couch and checked against via the node backend. Calendar/date wise this should be fairly straight forward, if we just throw in the dojo date calendar things.

I presume it will be easier to have the macros auto perform on certain temperatures or perform Mopidy commands for instance if we have built this part ground up?

Or do you feel we would have a lot of control and flex with domus?

— Reply to this email directly or view it on GitHubhttps://github.com/beakable/beakpi/issues/26#issuecomment-24419802 .